Modulo QSPN - Esempio di uso degli indirizzi virtuali
Passo 8
In questo passo assegnamo alle nuove identitΓ in πN, un indirizzo definitivo nel g-nodo N. Per l'esattezza gli assegnamo l'indirizzo virtuale [2, 0].
Nel disegno seguente gli archi che collegano nodi che ora fanno parte della rete non sono piΓΉ tratteggiati.
PoichΓ© i nuovi indirizzi definitivi sono virtuali al livello 1, la loro assegnazione non comporta un comando di assegnazione di indirizzo IP globale nella rete per i nodi in πN, nΓ© di un indirizzo interno al livello 2. I nodi in πN avevano giΓ assegnato un indirizzo interno al livello 1.
Ora ogni border-nodo in πN chiede un ETP completo ai vicini che non appartengono a πN tramite i suoi archi e li processa con questo nuovo indirizzo. Grazie ad essi:
Il nodo πN sa di poter raggiungere il g-nodo [1, 0] passando per l'arco πN-π½B.
Il nodo πN sa di poter raggiungere il g-nodo [1] passando per l'arco πN-π½B. Il percorso sarebbe πN-π½B-πΎi(2,2). Si tratta di un percorso che rimarrΓ valido per poco tempo in quanto l'arco π½B-πΎi(2,2) sparirΓ presto. Ma a quel punto potrΓ avvalersi di un altro percorso, πN-π½i(1,2),N-πΎN-πΏ che verrΓ scoperto a breve.
Il nodo πΎN sa di poter raggiungere il g-nodo [1, 0] passando per l'arco πΎN-π½B.
Il nodo πΎN sa di poter raggiungere il g-nodo [1] passando per l'arco πΎN-πΏ.
Quindi diamo questi comandi:
- nodo π
ip route add 10.0.0.2/31 via 169.254.96.141 dev eth1 ip route add 10.0.2.2/31 via 169.254.96.141 dev eth1 ip route add 10.0.0.4/30 via 169.254.96.141 dev eth1
- nodo πΎ
ip route add 10.0.0.2/31 via 169.254.96.141 dev eth1 ip route add 10.0.2.2/31 via 169.254.96.141 dev eth1 ip route add 10.0.0.4/30 via 169.254.253.216 dev eth1
I border-nodi in πN potrebbero anche chiedere un ETP ai vicini che appartengono a πN, ma effettivamente non lo otterrebbero perchΓ© questi non hanno completato il loro bootstrap.
Invece bisogna notare che i nodi in πN che non sono border-nodi, sebbene chiedano un ETP completo a tutti i loro vicini e non ne ricevono nessuno, non devono considerare fallito il loro ingresso nella rete. Tra l'altro essi hanno ricevuto dalla loro precedente identitΓ alcuni percorsi verso g-nodi di livello inferiore a 1 (il livello della migrazione).
Poi i border-nodi in πN avendo completato la fase di bootstrap ritrasmettono un ETP completo ai vicini. In questo modo le conoscenze riprendono a propagarsi sia ai nodi interni a πN che al di fuori. Riassumiamo queste nuove conoscenze:
Il nodo π½B sa di poter raggiungere il g-nodo [2, 0] passando per l'arco π½B-πN.
Il nodo π½B sa di poter raggiungere il g-nodo [2, 0] passando per l'arco π½B-πΎN. Supponiamo che preferisca il precedente arco π½B-πN.
Per ora, siccome l'indirizzo di destinazione Γ¨ virtuale, questo non comporta alcun comando.
Il nodo π½B sa di poter raggiungere il g-nodo [1] passando per l'arco π½B-πΎN. GiΓ sapeva di poterlo fare passando per l'arco π½B-πΎi(2,2). Per ora non cambia la rotta che giΓ aveva impostata.
Il nodo πΌ sa di poter raggiungere il g-nodo [2, 0] passando per l'arco πΌ-π½B.
Per ora, siccome l'indirizzo di destinazione Γ¨ virtuale, questo non comporta alcun comando.
Il nodo πΏ sa di poter raggiungere il g-nodo [0] passando per l'arco πΏ-πΎN. GiΓ sapeva di poterlo fare passando per l'arco πΏ-πΎi(2,2). Questo nuovo percorso Γ¨ certamente migliore, quindi cambia la rotta che giΓ aveva impostata.
Per quanto sopra, il nodo πΎi(2,2) apprende il percorso verso il g-nodo [0] costituito dagli archi πΎi(2,2)-πΏ-πΎN. Per ora tale percorso non migliora il vecchio πΎi(2,2)-π½B, quindi non cambia la rotta che giΓ aveva impostata.
Per quanto sopra, il nodo π½i(1,2),i(2,2) apprende il percorso verso il g-nodo [0] costituito dagli archi π½i(1,2),i(2,2)-πΎi(2,2)-πΏ-πΎN. Per ora tale percorso non migliora il vecchio π½i(1,2),i(2,2)-πΎi(2,2)-π½B, quindi non cambia la rotta che giΓ aveva impostata. Tra l'altro il gateway sarebbe rimasto lo stesso.
Per quanto sopra, il nodo πi(2,2) apprende il percorso verso il g-nodo [0] costituito dagli archi πi(2,2)-π½i(1,2),i(2,2)-πΎi(2,2)-πΏ-πΎN. Per ora tale percorso non migliora il vecchio πi(2,2)-π½B, quindi non cambia la rotta che giΓ aveva impostata.
Il nodo π½i(1,2),N sa di poter raggiungere il g-nodo [1, 0] passando per l'arco π½i(1,2),N-πN.
Il nodo π½i(1,2),N sa di poter raggiungere il g-nodo [1, 0] passando per l'arco π½i(1,2),N-πΎN. Supponiamo che preferisca il precedente arco π½i(1,2),N-πN.
Il nodo π½i(1,2),N sa di poter raggiungere il g-nodo [1] passando per l'arco π½i(1,2),N-πΎN.
Il nodo π½i(1,2),N sa di poter raggiungere il g-nodo [1] passando per l'arco π½i(1,2),N-πN. Il percorso sarebbe π½i(1,2),N-πN-π½B-πΎi(2,2). Supponiamo che preferisca il precedente arco π½i(1,2),N-πΎN.
Il nodo πN sa di poter raggiungere il g-nodo [1, 0] passando per l'arco πN-π½i(1,2),N. Questo percorso di sicuro non Γ¨ migliore di quello che giΓ conosceva attraverso l'arco πN-π½B.
Il nodo πN sa di poter raggiungere il g-nodo [1] passando per l'arco πN-π½i(1,2),N. Per ora di sicuro il nodo preferisce il percorso che conosceva: πN-π½B-πΎi(2,2).
Il nodo πΎN sa di poter raggiungere il g-nodo [1, 0] passando per l'arco πΎN-π½i(1,2),N. Per ora di sicuro il nodo preferisce il percorso che conosceva: πΎN-π½B.
Il nodo πΎN sa di poter raggiungere il g-nodo [1] passando per l'arco πΎN-π½i(1,2),N. Il percorso sarebbe πΎN-π½i(1,2),N-πN-π½B-πΎi(2,2). Supponiamo che preferisca il precedente arco πΎN-πΏ.
Quindi diamo questi comandi:
- nodo π½
ip netns exec ntkv0 ip route add 10.0.0.2/31 via 169.254.163.36 dev ntkv0_eth1 ip netns exec ntkv0 ip route add 10.0.2.2/31 via 169.254.163.36 dev ntkv0_eth1 ip netns exec ntkv0 ip route add 10.0.0.4/30 via 169.254.94.223 dev ntkv0_eth1
- nodo πΏ
ip route change 10.0.0.0/30 via 169.254.94.223 dev eth1 src 10.0.0.5
Ora i border-nodi in πN, avendo trasmesso i primi ETP e atteso qualche istante per la loro processazione da parte dei vicini, con le loro identitΓ in πi(2,2) rimuovono i loro archi con nodi che non appartengono al loro g-nodo di livello 2. Si ricordi infatti che il livello piΓΉ alto in cui i due g-nodi M e N differiscono Γ¨ 2. Quindi πi(2,2) rimuove il suo arco con π½B e πΎi(2,2) rimuove il suo arco con π½B.
Ricordiamo che:
Il nodo π½B conosce un percorso verso il g-nodo [1] per l'arco π½B-πΎN.
Il nodo πΎi(2,2) conosce un percorso verso il g-nodo [0] per l'arco πΎi(2,2)-πΏ.
Il nodo π½i(1,2),i(2,2) conosce un percorso verso il g-nodo [0] per l'arco π½i(1,2),i(2,2)-πΎi(2,2).
Il nodo πi(2,2) conosce un percorso verso il g-nodo [0] per l'arco πi(2,2)-π½i(1,2),i(2,2).
Quindi diamo questi comandi:
- nodo π½
ip r change 10.0.0.4/30 via 169.254.94.223 dev eth1 src 10.0.0.3 ip route del 169.254.241.153 dev eth1 src 169.254.96.141 ip route del 169.254.24.198 dev eth1 src 169.254.96.141
- nodo π
ip netns exec ntkv1 ip route change 10.0.0.0/30 via 169.254.42.4 dev ntkv1_eth1 ip netns exec ntkv1 ip route del 169.254.96.141 dev ntkv1_eth1 src 169.254.241.153
- nodo πΎ
ip netns exec ntkv1 ip route change 10.0.0.0/30 via 169.254.253.216 dev ntkv1_eth1 ip netns exec ntkv1 ip route del 169.254.96.141 dev ntkv1_eth1 src 169.254.24.198
Aggiorniamo il disegno.
Gli stessi border-nodi in πN che hanno rimosso questi archi, ora comunicano le variazioni apportate alla loro mappa tramite un ETP agli altri vicini. Si aggiungono queste conoscenze:
Il nodo π½i(1,2),i(2,2) non ha piΓΉ il percorso π½i(1,2),i(2,2)-πΎi(2,2)-π½B per raggiungere il g-nodo [0], ma solo π½i(1,2),i(2,2)-πΎi(2,2)-πΏ-πΎN. Dovrebbe cambiare la rotta che aveva impostata, ma il gateway rimane lo stesso quindi non darΓ alcun comando.
Non risultano necessari altri comandi.
Proseguiamo con il passo 9.