Modulo QSPN - Esempio di uso degli indirizzi virtuali
Passo 4
In questo passo aggiungiamo un nuovo nodo al g-nodo g1(๐ผ).
Il nuovo indirizzo virtuale globale [2, 1, 0] viene assegnato a ๐ฝ. Quello che si forma รจ un nodo completamente nuovo, che si assegna a caso un nuovo identificativo, chiamiamolo ๐ฝB, mantenendo comunque lo stesso indirizzo link-local che aveva prima.
Ad esso si associa un nuovo fingerprint, una nuova mappa dei percorsi vuota e un nuovo set di archi.
La duplicazione di un arco esistente tra due nodi รจ una operazione che i due nodi eseguono in accordo, dialogando tra loro tramite il vecchio arco. Ad esempio, tramite l'arco ๐ผ-๐ฝi(1,2) il nodo ๐ฝi(1,2) comunica a ๐ผ di avere una nuova identitร : ๐ฝB. Quindi i due nodi realizzano il nuovo arco ๐ผ-๐ฝB.
Nel disegno seguente evidenziamo in rosso gli elementi nuovi.
Riassumiamo l'esito di queste operazioni di concertazione nel seguente elenco di tutti gli archi ora esistenti:
๐ผ-๐ฝB
๐พ-๐ฝB
๐-๐ฝB
๐ผ-๐ฝi(1,2)
๐พ-๐ฝi(1,2)
- ๐พ-๐ฟ
- ๐ฟ-๐
๐-๐ฝi(1,2)
Non ci sono, comunque, da fare nuove assegnazioni di indirizzi nรฉ di rotte verso nodi vicini.
L'assegnazione del nuovo indirizzo globale a ๐ฝB non comporta un comando di assegnazione di indirizzo per il nodo ๐ฝ, poichรฉ anche questo indirizzo รจ virtuale al livello 0.
Il nodo ๐ฝ segnala al suo utilizzatore che non espone piรน il percorso verso il g-nodo [0], che prima si raggiungeva passando per l'arco ๐ผ-๐ฝi(1,2).
Quindi diamo questi comandi:
- nodo ๐ฝ
ip r del 10.0.0.0/30 via 169.254.69.30 dev eth1
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.
Questa destinazione perรฒ non sarร esposta dal modulo poichรฉ si tratta del massimo distinto g-nodo di ๐ฝi(1,2) per ๐ฝB.
Il nodo ๐ฝB sa di poter raggiungere il nodo [0, 1, 0] passando per l'arco ๐ผ-๐ฝB.
Quindi diamo questi comandi:
- nodo ๐ฝ
ip r add 10.0.0.2/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.
Sono due conoscenze nuove, ma che non cambiano il miglior percorso verso quelle destinazioni per ๐ผ e ๐พ. 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.
Andrebbe quindi cambiata, dal nodo ๐ผ, la rotta verso 10.0.0.4/30. Ma cambiare da ๐ฝi(1,2) a ๐ฝB รจ superfluo trattandosi del medesimo indirizzo link-local.
Andrebbe poi rimossa, dal nodo ๐ผ, la sua rotta verso ๐ฝi(1,2), ma poichรฉ esso ha una rotta verso ๐ฝB che ha il medesimo indirizzo link-local non serve alcun comando.
Andrebbe poi rimossa, dal nodo ๐ฝ, la rotta di ๐ฝi(1,2) verso ๐ผ, ma poichรฉ ๐ฝB, che รจ lo stesso nodo, ha una rotta verso ๐ผ non serve alcun comando.
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.