⇤ ← Revision 1 as of 2015-12-19 22:06:19
4834
Comment:
|
4840
|
Deletions are marked like this. | Additions are marked like this. |
Line 6: | Line 6: |
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. | Il nuovo indirizzo ''virtuale'' ''definitivo'' [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. |
Line 28: | Line 28: |
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. | L'assegnazione del nuovo indirizzo ''definitivo'' a 𝛽~-,,B,,-~ non comporta un comando di assegnazione di indirizzo per il nodo 𝛽, poiché anche questo indirizzo è ''virtuale'' al livello 0. |
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 definitivo [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 definitivo 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.