Routing EigenNet: differenze tra le versioni
mNessun oggetto della modifica |
m (categoria) |
||
Riga 28: | Riga 28: | ||
Le metriche per le rotte babel sono calcolate come 10000/velocita' in megabit dove 10000 equivale a 10 gigabit | Le metriche per le rotte babel sono calcolate come 10000/velocita' in megabit dove 10000 equivale a 10 gigabit | ||
[[Categoria:eigenNet]] |
Versione attuale delle 05:37, 10 nov 2016
Routing su EigenNet
La rete Eigennet è composta da antenne che parlano fra loro via wireless. Esse parlano a layer 2, l'indirizzamento dei pacchetti ovvero come essi vengono spediti al giusto dispositivo è fatto attraverso il MAC address: un numero esadecimale univoco per ogni scheda di rete. Il protocollo di routing usato a layer 2 è Batman-adv. Usiamo anche babeld per il routing a livello 3, esso usa indirizzi ip, noi usiamo ipv6 per identificare le antenne e i nostri servers. Perchè le antenne possano comunicare fra loro a layer 2 è necessario che esse siano nella stessa subnet, nel caso che non lo fossero vengono in aiuto i servers che fanno da router e usando schede di rete distinte, una per subnet interessata, possono instradare i pacchetti in modo che raggiungano il destinatario corretto.
Praticamente: Se io ho un ip 192.168.1.45 e voglio comunicare con una macchina con indirizzo 131.114.43.21 a livello 2 direttamente non posso: Che strada farà il mio pacchetto?
- Dalla mia macchina arriverà all'antenna eigennet (layer 1 e/o layer 2)
- Dall'antenna arriverà, attraverso la mesh gateway del client (un router) su una scheda di rete ( mesh layer 2 )
/* Di default il mio pacchetto uscirebbe su internet per raggiungere la macchina desiderata ma siccome presente quella subnet nelle rotte*/
- Sul router il demone babeld ha provveduto a inserire delle rotte: il mio pacchetto deve raggiungere una macchina appartenente alla subnet 131.114.0.0/23 (ovvero 131.114.xxx.xxx)
- Il router inoltra il pacchetto alla scheda di rete appartenente alla subnet desiderata e il mio pacchetto raggiunge la macchina senza fare un lungo giro su internet.
Attraverso babeld possiamo istruire i nostri router a raggiungere determinati set di indirizzi in diversi modi: Per ogni subnet creiamo delle rotte: esse dicono alla macchina che per raggiungere un tale indirizzo, invece di passare per tutto internet che potrebbe essere meno conveniente in termini di tempo, il gateway predefinito non è quello di default ma un'altro. Per esempio
default via 192.168.1.1 dev wlan0 proto static
questo vuol dire che per raggiungere tutti gli indirizzi i pacchetti devono essere inoltrati al gateway con indirizzo all'interno della rete locale 192.168.1.1. Esso si occuperà poi di inoltrare il pacchetto al next hop.
131.114.250.0/23 dev eth0 scope link metric 3
questo invece vuol dire che per raggiungere gli ip della subnet 131.114.250.0/23 ovvero tutti gli ip nel range 131.114.250.0-131.114.251.255 devono passare per l'interfaccia eth0 appartenente a quella subnet.
131.114.0.0/16 via 131.114.250.1 dev eth0 proto 60 metric 100
questo invece vuol dire che tutti i pacchetti con indirizzo di destinazione della subnet 131.114.0.0/16 vanno inoltrati a 131.114.250.1, sarà lui il router che inoltrerà i pacchetti correttamente.
Le metriche per le rotte babel sono calcolate come 10000/velocita' in megabit dove 10000 equivale a 10 gigabit