Modulo QSPN - Esempio di uso degli indirizzi virtuali
Passo 10
Il nodo π puΓ² ora entrare in [1] grazie al suo link con πi(2,2) e assegnarsi l'indirizzo [1, 1]. PoichΓ© esso vuole fare da gateway verso una sottorete autonoma, diciamo che si assegna l'indirizzo [0, 1, 1] e riserva l'indirizzo [1, 1, 1] per un nodo nella sua sottorete.
Si vede dal grafo che, pur non essendoci un link diretto tra π e πΏ, il g-nodo [1] resta internamente connesso.
Quindi diamo questi comandi:
- nodo π
ip route add unreachable 10.0.0.0/29 ip route add unreachable 10.0.2.0/30 ip route add unreachable 10.0.1.0/31 ip address add 10.0.0.6 dev eth1 ip address add 10.0.2.2 dev eth1 ip address add 10.0.1.0 dev eth1
Il nodo π chiede e riceve un ETP completo da πi(2,2) e uno da πN. Tramite essi:
Il nodo π sa di poter raggiungere il g-nodo [0] passando per il vicino πN.
Il nodo π sa di poter raggiungere il g-nodo [0, 1] passando per il vicino πi(2,2).
Quindi diamo questi comandi:
- nodo π
ip route add 10.0.0.0/30 src 10.0.0.6 via 169.254.163.36 dev eth1 ip route add 10.0.0.4/31 src 10.0.0.6 via 169.254.241.153 dev eth1 ip route add 10.0.2.0/31 src 10.0.2.2 via 169.254.241.153 dev eth1
Il nodo π ha terminato il bootstrap. Esso ora invia un ETP che informa su come raggiugere [1, 1]. In quanto ricevuto da πi(2,2) (che fa parte di [1]) esso si propaga solo internamente a [1]. In quanto ricevuto da πN (che fa parte di [0]) esso informa di un nuovo percorso per raggiungere [1] e si propaga internamente a [0].
Per brevitΓ , supponiamo che ad eccezione di πN, tutti gli altri nodi di [0] preferiscano il vecchio percorso per raggiungere [1].
Diamo questi comandi ai nodi:
- nodo π
# come πN ip route change 10.0.0.4/30 via 169.254.109.22 dev eth1 src 10.0.0.1 # come πi22 ip netns exec ntkv1 ip route add 10.0.0.6/31 via 169.254.109.22 dev ntkv1_eth1 ip netns exec ntkv1 ip route add 10.0.2.2/31 via 169.254.109.22 dev ntkv1_eth1
- nodo π½
# come π½i12,i22 ip netns exec ntkv1 ip route add 10.0.0.6/31 via 169.254.241.153 dev ntkv1_eth1 ip netns exec ntkv1 ip route add 10.0.2.2/31 via 169.254.241.153 dev ntkv1_eth1
- nodo πΎ
# come πΎi22 ip netns exec ntkv1 ip route add 10.0.0.6/31 via 169.254.42.4 dev ntkv1_eth1 ip netns exec ntkv1 ip route add 10.0.2.2/31 via 169.254.42.4 dev ntkv1_eth1
- nodo πΏ
ip route add 10.0.0.6/31 via 169.254.24.198 dev eth1 src 10.0.0.5 ip route add 10.0.2.2/31 via 169.254.24.198 dev eth1 src 10.0.2.1
- nodo π
ip route add 10.0.0.6/31 via 169.254.253.216 dev eth1 src 10.0.0.4 ip route add 10.0.2.2/31 via 169.254.253.216 dev eth1 src 10.0.2.0
Possiamo verificare che il nodo π raggiunge tutti gli indirizzi IP dei nodi esistenti.
Inoltre possiamo verificare che i nodi che hanno assunto una identitΓ di connettivitΓ sono in grado di smistare correttamente pacchetti IP aventi per destinazione un indirizzo interno.
- Se il nodo π invia un pacchetto a 10.0.2.0 (cioΓ¨ verso il nodo [0, 0, x] nel g-nodo di livello 1 di cui fa parte π) raggiunge πΎ.
- Se il nodo π invia un pacchetto a 10.0.2.0 (cioΓ¨ verso il nodo [0, 0, x] nel g-nodo di livello 1 di cui fa parte π), sebbene passa da π e da πΎ, raggiunge π.
Proseguiamo con il passo 11.