3.5.7. Messaggio Label Mapping
Un LSR invia un messaggio Label Mapping a un peer LDP per pubblicizzare associazioni FEC-etichetta al peer.
La codifica del messaggio Label Mapping è:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0| Label Mapping (0x0400) | Message Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| FEC TLV |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Label TLV |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Optional Parameters |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Message ID Valore a 32 bit usato per identificare questo messaggio.
FEC TLV Specifica la componente FEC della mappatura FEC-Label pubblicizzata. Vedere la sezione "FEC TLVs" per la codifica.
Label TLV Specifica la componente Label della mappatura FEC-Label. Vedere la sezione "Label TLV" per la codifica.
Optional Parameters Questo campo di lunghezza variabile contiene 0 o più parametri, ciascuno codificato come TLV. I parametri opzionali sono:
Optional Parameter Length Value
Label Request 4 See below
Message ID TLV
Hop Count TLV 1 See below
Path Vector TLV variable See below
Le codifiche dei TLV Hop Count e Path Vector si trovano nella sezione "TLV Encodings for Commonly Used Parameters".
Label Request Message ID Se questo messaggio Label Mapping è una risposta a un messaggio Label Request, DEVE (MUST) includere il parametro opzionale Label Request Message ID. Il valore di questo parametro opzionale è il Message ID del messaggio Label Request corrispondente.
Hop Count Specifica il totale corrente del numero di hop LSR lungo l'LSP in corso di configurazione da parte del messaggio Label. La sezione "Hop Count Procedures" descrive come gestire questo TLV.
Path Vector Specifica gli LSR lungo l'LSP in corso di configurazione da parte del messaggio Label. La sezione "Path Vector Procedures" descrive come gestire questo TLV.
3.5.7.1. Procedure del messaggio Label Mapping
Il messaggio Mapping è usato da un LSR per distribuire una mappatura di etichette per una FEC a un peer LDP. Se un LSR distribuisce una mappatura per una FEC a più peer LDP, è una questione locale se associare un'unica etichetta alla FEC e distribuire quella mappatura a tutti i suoi peer, oppure usare una mappatura diversa per ciascuno dei suoi peer.
Un LSR è responsabile della coerenza delle mappature di etichette che ha distribuito e del fatto che i suoi peer dispongano di tali mappature.
Un LSR che riceve un messaggio Label Mapping da un LSR a valle per un Prefix NON DOVREBBE (SHOULD NOT) usare l'etichetta per l'inoltro a meno che la sua tabella di instradamento contenga una voce che corrisponda esattamente al FEC Element.
Vedere l'Appendice A, "LDP Label Distribution Procedures", per maggiori dettagli.
3.5.7.1.1. Mapping con controllo indipendente
Se un LSR è configurato per il controllo indipendente, un messaggio di mapping viene trasmesso dall'LSR in ognuna delle seguenti condizioni:
-
L'LSR riconosce una nuova FEC tramite la tabella di inoltro, e la modalità di advertisement delle etichette è l'advertisement Downstream Unsolicited.
-
L'LSR riceve un messaggio Request da un peer a monte per una FEC presente nella tabella di inoltro dell'LSR.
-
Il next hop per una FEC cambia verso un altro peer LDP, e il rilevamento dei loop è configurato.
-
Gli attributi di una mappatura cambiano.
-
La ricezione di una mappatura dal next hop a valle E
a) nessuna mappatura a monte è stata creata OPPURE b) il rilevamento dei loop è configurato OPPURE c) gli attributi della mappatura sono cambiati.
3.5.7.1.2. Mapping con controllo ordinato
Se un LSR effettua il controllo ordinato, un messaggio Mapping viene trasmesso dagli LSR a valle in ognuna delle seguenti condizioni:
-
L'LSR riconosce una nuova FEC tramite la tabella di inoltro ed è l'egress per quella FEC.
-
L'LSR riceve un messaggio Request da un peer a monte per una FEC presente nella tabella di inoltro dell'LSR, e l'LSR è l'egress per quella FEC OPPURE ha una mappatura a valle per quella FEC.
-
Il next hop per una FEC cambia verso un altro peer LDP, e il rilevamento dei loop è configurato.
-
Gli attributi di una mappatura cambiano.
-
La ricezione di una mappatura dal next hop a valle E
a) nessuna mappatura a monte è stata creata OPPURE
b) il rilevamento dei loop è configurato OPPURE
c) gli attributi della mappatura sono cambiati.
3.5.7.1.3. Advertisement di etichette Downstream on Demand
In generale, l'LSR a monte è responsabile della richiesta di mappature di etichette quando opera in modalità Downstream on Demand. Tuttavia, se non si seguono alcune regole, è possibile che LSR vicini con modalità di advertisement diverse entrino in una situazione di livelock in cui tutto funziona correttamente, ma nessuna etichetta viene distribuita. Ad esempio, si considerino due LSR Ru e Rd, dove Ru è l'LSR a monte e Rd è l'LSR a valle per una particolare FEC. In questo esempio, Ru usa la modalità di advertisement Downstream Unsolicited e Rd usa la modalità Downstream on Demand. In questo caso, Rd può presumere che Ru richiederà una mappatura di etichette quando ne avrà bisogno, e Ru può presumere che Rd pubblicizzerà un'etichetta se desidera che Ru ne usi una. Se Rd e Ru operano come suggerito, nessuna etichetta verrà distribuita da Rd a Ru.
Questa situazione di livelock può essere evitata se si osserva la seguente regola: non ci si DEVE (SHOULD NOT) aspettare che un LSR che opera in modalità Downstream on Demand invii advertisement di mapping non sollecitati. Pertanto, se l'LSR a valle opera in modalità Downstream on Demand, l'LSR a monte è responsabile di richiedere le mappature di etichette secondo necessità.
3.5.7.1.4. Advertisement di etichette Downstream Unsolicited
In generale, l'LSR a valle è responsabile di pubblicizzare una mappatura di etichette quando desidera che un LSR a monte usi l'etichetta. Un LSR a monte può emettere una richiesta di mapping se lo desidera.
La combinazione della modalità Downstream Unsolicited e della conservazione conservativa (Conservative Label retention) può portare a una situazione in cui un LSR rilascia l'etichetta per una FEC di cui avrà bisogno in seguito. Ad esempio, se l'LSR Rd pubblicizza all'LSR Ru l'etichetta per una FEC per cui non è il next hop di Ru, Ru rilascerà l'etichetta. Se in seguito il next hop di Ru per la FEC cambia verso Rd, avrà bisogno dell'etichetta precedentemente rilasciata.
Per far fronte a questa situazione, Ru può richiedere esplicitamente l'etichetta quando ne ha bisogno, oppure Rd può ripubblicizzarla periodicamente a Ru. In molte situazioni Ru saprà quando ha bisogno dell'etichetta da Rd. Ad esempio, quando il suo next hop per la FEC cambia verso Rd. Tuttavia, potrebbero esserci situazioni in cui Ru non lo sa. Ad esempio, Rd potrebbe cercare di stabilire un LSP con proprietà non standard. Forzare Ru a richiedere esplicitamente l'etichetta in questa situazione richiederebbe di mantenere stato su un potenziale LSP con proprietà non standard.
Nelle situazioni in cui Ru sa di aver bisogno dell'etichetta, è responsabile di richiederla esplicitamente mediante un messaggio Label Request. Nelle situazioni in cui Ru può non sapere di aver bisogno dell'etichetta, Rd è responsabile di ripubblicizzare periodicamente l'etichetta a Ru.
Per questa versione di LDP, l'unica situazione in cui Ru sa di aver bisogno di un'etichetta per una FEC da Rd è quando Rd è il suo next hop per la FEC, Ru non ha un'etichetta da Rd, e l'LSP per la FEC è uno che può essere stabilito con i TLV definiti nel presente documento.