Routing EigenNet

Da EigenWiki.

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