Modulo QSPN - Esempio di uso degli indirizzi virtuali
Passo 4
In questo passo assegnamo alla nuova identitร di ๐ฝ, ๐ฝB, un indirizzo definitivo nel g-nodo g1(๐ผ). Per l'esattezza gli assegnamo l'indirizzo virtuale [2, 1, 0].
Nel disegno seguente gli archi di ๐ฝB con ๐ผ e ๐พ non sono piรน tratteggiati in quanto ๐ฝB fa ora parte della rete.
Riassumiamo l'elenco di tutti gli archi ora esistenti coi relativi indirizzi IP link-local:
๐ผ-๐ฝB
- 169.254.69.30-169.254.96.141
๐ผ-๐ฝi(1,2)
- 169.254.69.30-169.254.27.218
๐พ-๐ฝB
- 169.254.94.223-169.254.96.141
๐พ-๐ฝi(1,2)
- 169.254.94.223-169.254.27.218
๐-๐ฝB
- 169.254.163.36-169.254.96.141
๐-๐ฝi(1,2)
- 169.254.163.36-169.254.27.218
- ๐พ-๐ฟ
- 169.254.94.223-169.254.253.216
- ๐ฟ-๐
- 169.254.253.216-169.254.119.176
Non ci sono, comunque, da fare nuove assegnazioni di indirizzi nรฉ di rotte verso nodi vicini.
Poichรฉ il nuovo indirizzo definitivo di ๐ฝB รจ virtuale al livello 0, la sua assegnazione non comporta un comando di assegnazione di indirizzo IP globale nella rete per il nodo ๐ฝ, nรฉ di un indirizzo interno al livello 2, nรฉ di un indirizzo interno al livello 1.
Ora il nodo ๐ฝB chiede un ETP completo ai vicini tramite i suoi archi e li processa con questo nuovo indirizzo. Grazie ad essi:
Il nodo ๐ฝB sa di poter raggiungere il g-nodo [1] passando per l'arco ๐ฝB-๐พ.
Il nodo ๐ฝB sa di poter raggiungere il nodo [0, 1, 0] passando per l'arco ๐ฝB-๐ผ.
Quindi diamo questi comandi:
- nodo ๐ฝ
ip route add 10.0.0.4/30 via 169.254.94.223 dev eth1 ip route add 10.0.0.2/32 via 169.254.69.30 dev eth1 ip route add 10.0.2.2/32 via 169.254.69.30 dev eth1 ip route add 10.0.1.0/32 via 169.254.69.30 dev eth1
Il nodo ๐ฝB avendo ora completato il suo bootstrap, comunica via ETP ai suoi vicini ๐ผ e ๐พ tutti i percorsi che conosce. Quindi ora:
Il nodo ๐ผ sa di poter raggiungere il g-nodo [1] passando per l'arco ๐ผ-๐ฝB.
Il nodo ๐พ sa di poter raggiungere il g-nodo [0] passando per l'arco ๐พ-๐ฝB.
Il nodo ๐ฝi(1,2) sa di poter raggiungere il g-nodo [0] passando per l'arco ๐ฝi(1,2)-๐พ.
Sono conoscenze nuove, ma che non cambiano il miglior percorso verso quelle destinazioni per quei nodi. Quindi nessun comando verrร dato.
Inoltre ora:
Il nodo ๐ผ sa di poter raggiungere il nodo [2, 1, 0] passando per l'arco ๐ผ-๐ฝB.
Anche questa รจ una conoscenza nuova, ma l'indirizzo di destinazione รจ virtuale. Quindi nessun comando verrร dato.
Ora che il nodo ๐ฝB ha trasmesso i suoi primi ETP ai diretti vicini ๐ผ e ๐พ, dopo aver atteso qualche istante per permettere la loro processazione da parte di ๐ผ e ๐พ, il nodo ๐ฝi(1,2) rimuove i suoi archi con nodi che non appartengono al suo g-nodo di livello 2. Si ricordi infatti che il livello piรน alto in cui i due g-nodi A e B differiscono รจ 2. Quindi ๐ฝi(1,2) rimuove il suo arco con il nodo ๐ผ.
Questo fa si che il nodo ๐ผ non puรฒ piรน raggiungere il g-nodo [1] passando per l'arco ๐ผ-๐ฝi(1,2). Perรฒ abbiamo detto prima che aveva appreso di poterlo fare passando per l'arco ๐ผ-๐ฝB.
Va quindi cambiata, dal nodo ๐ผ, la rotta verso 10.0.0.4/30, sostituendo il gateway ๐ฝi(1,2) con ๐ฝB. Va poi rimossa, dal nodo ๐ผ, la sua rotta verso ๐ฝi(1,2).
Va poi rimossa, dal nodo ๐ฝ, la rotta di ๐ฝi(1,2) verso ๐ผ, e vanno rimosse o cambiate le rotte che eventualmente si appoggiavano su tale arco.
Quindi diamo questi comandi:
- nodo ๐ผ
ip route change 10.0.0.4/30 src 10.0.0.2 via 169.254.96.141 dev eth1 ip route del 169.254.27.218 dev eth1 src 169.254.69.30
- nodo ๐ฝ
ip netns exec ntkv0 ip route change 10.0.0.0/30 via 169.254.94.223 dev ntkv0_eth1 ip netns exec ntkv0 ip route del 169.254.69.30 dev ntkv0_eth1 src 169.254.27.218
Ora il nodo ๐ฝB, avendo rimosso un suo arco, comunica le variazioni apportate alla sua mappa tramite un ETP agli altri vicini. Quindi il nodo ๐พ, al ricevere tale ETP, sa che non puรฒ piรน raggiungere il g-nodo [0] passando per l'arco ๐พ-๐ฝi(1,2). Perรฒ abbiamo detto prima che aveva appreso di poterlo fare passando per l'arco ๐พ-๐ฝB. Va quindi cambiata, dal nodo ๐พ, la rotta verso 10.0.0.0/30, sostituendo il gateway ๐ฝi(1,2) con ๐ฝB.
Quindi diamo questi comandi:
- nodo ๐พ
ip route change 10.0.0.0/30 src 10.0.0.6 via 169.254.96.141 dev eth1
Riassumiamo l'elenco degli archi ora presenti e il grafo che descrive la rete.
๐ผ-๐ฝB
๐พ-๐ฝB
๐-๐ฝB
๐พ-๐ฝi(1,2)
- ๐พ-๐ฟ
- ๐ฟ-๐
๐-๐ฝi(1,2)
Temporaneamente, il nodo ๐ฝ non รจ in grado di comunicare con gli altri nodi della rete in quanto ha solo indirizzi virtuali al livello 0. Nonostante questo, il nodo รจ perfettamente in grado di inoltrare pacchetti provenienti da altri nodi e destinati ad altri nodi nella rete. Quindi sebbene ๐ฝ sia un nodo punto di articolazione, il grafo resta connesso.
Proseguiamo con il passo 5.