Passa al contenuto principale

RFC 4379 - 2. Motivation

2. Motivazione (Motivation)​

Quando un LSP non riesce a consegnare il traffico utente, il guasto non può sempre essere rilevato dal piano di controllo MPLS. È necessario fornire uno strumento che consenta agli utenti di rilevare tali "buchi neri" di traffico o instradamenti errati entro un periodo di tempo ragionevole, e un meccanismo per isolare i guasti.

In questo documento descriviamo un meccanismo che raggiunge questi obiettivi. Tale meccanismo è modellato sul paradigma ping/traceroute: ping (ICMP echo request [ICMP]) è usato per le verifiche di connettività, mentre traceroute è usato per la localizzazione dei guasti hop-by-hop e per il tracciamento del percorso. Questo documento specifica una modalità "ping" e una modalità "traceroute" per testare gli LSP MPLS.

L'idea di base è verificare che i pacchetti appartenenti a una particolare classe di equivalenza di inoltro (Forwarding Equivalence Class, FEC) terminino effettivamente il loro percorso MPLS su un router a commutazione di etichetta (Label Switching Router, LSR) che è un egress per quella FEC. Questo documento propone di eseguire il test inviando un pacchetto (chiamato "MPLS echo request") lungo lo stesso percorso dati degli altri pacchetti appartenenti a questa FEC. Un MPLS echo request trasporta inoltre informazioni sulla FEC il cui percorso MPLS è in corso di verifica. Questo echo request viene inoltrato esattamente come qualsiasi altro pacchetto appartenente a quella FEC. In modalità "ping" (verifica di connettività di base), il pacchetto dovrebbe raggiungere la fine del percorso, dove viene inviato al piano di controllo dell'LSR di uscita, che verifica poi se è effettivamente un egress per la FEC. In modalità "traceroute" (isolamento dei guasti), il pacchetto viene inviato al piano di controllo di ciascun LSR di transito, che esegue varie verifiche per accertare di essere effettivamente un LSR di transito per questo percorso; tale LSR restituisce anche ulteriori informazioni che aiutano a confrontare il piano di controllo con il piano dati, cioè a verificare che l'inoltro corrisponda a quanto i protocolli di routing hanno determinato come percorso.

Uno dei modi di usare questi strumenti è eseguire periodicamente il ping di una FEC per garantire la connettività. Se il ping fallisce, si può avviare un traceroute per determinare dove si trovi il guasto. Si possono anche tracciare periodicamente le FEC per verificare che l'inoltro corrisponda al piano di controllo; tuttavia, ciò comporta un carico maggiore sugli LSR di transito e va quindi usato con prudenza.

2.1. Uso dell'intervallo di indirizzi 127/8 (Use of Address Range 127/8)​

Come descritto sopra, LSP ping è inteso come uno strumento diagnostico. Esso mira a consentire ai fornitori di un servizio basato su MPLS di isolare i guasti di rete. In particolare, LSP ping deve diagnosticare le situazioni in cui i piani di controllo e dati sono disallineati. Lo fa instradando un pacchetto MPLS echo request esclusivamente in base alla sua pila di etichette. Vale a dire, l'indirizzo IP di destinazione non viene mai usato in una decisione di inoltro. Anzi, il mittente di un pacchetto MPLS echo request può non conoscere a priori l'indirizzo del router all'estremità dell'LSP.

I fornitori di servizi basati su MPLS necessitano inoltre della capacità di tracciare tutti i possibili percorsi che un LSP può seguire. Poiché la maggior parte dei servizi MPLS si basa sull'inoltro unicast IP, questi percorsi sono soggetti alla condivisione di carico su percorsi a costo uguale (Equal-Cost Multi-Path, ECMP).

Ne derivano i seguenti requisiti:

  1. Sebbene l'LSP in questione possa essere guasto in modi sconosciuti, la probabilità che un pacchetto di diagnostica venga consegnato a un utente di un servizio MPLS MUST essere mantenuta a un minimo assoluto.

  2. Se un LSP è guasto in modo tale da terminare prematuramente, il pacchetto di diagnostica MUST NOT essere inoltrato in IP.

  3. È quindi REQUIRED un mezzo per variare i pacchetti di diagnostica in modo che percorrano tutti i percorsi ECMP.

È evidente che l'uso di indirizzi unicast generali non soddisfa nessuno dei primi due requisiti. Sono state considerate diverse altre opzioni di indirizzamento, tra cui una porzione dello spazio di indirizzi privati (determinata dall'operatore di rete) e i nuovi indirizzi link local IPv4. L'uso dello spazio di indirizzi privati è stato giudicato inefficace, poiché il principale servizio basato su MPLS è una rete privata virtuale (Virtual Private Network, VPN) IPv4. Le VPN usano spesso indirizzi privati.

Gli indirizzi link local IPv4 sono più attraenti in quanto l'ambito entro cui possono essere inoltrati è limitato. Tuttavia, se si usasse un indirizzo di questo intervallo, sarebbe comunque possibile che il primo destinatario di un pacchetto di diagnostica "sfuggito" da un LSP guasto abbia quell'indirizzo assegnato all'interfaccia su cui è arrivato e possa quindi ricevere erroneamente tale pacchetto. Inoltre, l'intervallo di indirizzi link local IPv4 è stato assegnato solo di recente. Molti router già installati inoltrerebbero un pacchetto con un indirizzo di tale intervallo verso la rotta predefinita.

L'intervallo 127/8 per IPv4, e lo stesso intervallo incorporato come indirizzi IPv6 mappati IPv4 per IPv6, è stato scelto per diversi motivi.

La RFC 1122 assegna il 127/8 come "Internal host loopback address" (indirizzo di loopback interno dell'host) e afferma: "Addresses of this form MUST NOT appear outside a host." (Gli indirizzi di questa forma MUST NOT comparire al di fuori di un host.) Pertanto, il comportamento predefinito degli host è di scartare tali pacchetti. Ciò contribuisce a garantire che, se un pacchetto di diagnostica viene indirizzato per errore a un host, esso venga scartato silenziosamente.

La RFC 1812 [RFC1812] afferma:

Un router SHOULD NOT inoltrare, se non su un'interfaccia di loopback, alcun pacchetto il cui indirizzo di destinazione si trovi sulla rete 127. Un router MAY disporre di un commutatore che consenta al gestore della rete di disabilitare questi controlli. Se tale commutatore è fornito, esso MUST eseguire i controlli per impostazione predefinita.

Ciò contribuisce a garantire che i pacchetti di diagnostica non vengano mai inoltrati in IP.

L'intervallo di indirizzi 127/8 fornisce 16M di indirizzi, consentendo ampia flessibilità nel variare gli indirizzi per percorrere i percorsi ECMP. Infine, come ottimizzazione implementativa, il 127/8 fornisce un mezzo semplice per identificare i possibili pacchetti LSP.