Passa al contenuto principale

1. Introduction (Introduzione)

Il Segment Routing (SR) sfrutta il paradigma del source routing. Un nodo indirizza un pacchetto attraverso una politica SR instanziata come un elenco ordinato di istruzioni chiamate "segmenti". Un segmento può rappresentare qualsiasi istruzione, basata sulla topologia o sul servizio. Un segmento può avere una semantica locale rispetto a un nodo SR o globale all'interno di un dominio SR. SR supporta il routing esplicito per flusso mantenendo lo stato per flusso solo presso i nodi di ingresso al dominio SR.

Un segmento è spesso referenziato dal suo identificatore di segmento (Segment Identifier, SID).

Un segmento può essere associato a un'istruzione topologica. Un segmento locale topologico può istruire un nodo a inoltrare il pacchetto tramite un'interfaccia in uscita specifica. Un segmento globale topologico può istruire un dominio SR a inoltrare il pacchetto tramite un percorso specifico verso una destinazione. Possono esistere diversi segmenti per la stessa destinazione, ciascuno con obiettivi di percorso diversi (ad esempio, quale metrica viene minimizzata, quali vincoli vengono specificati).

Un segmento può essere associato a un'istruzione di servizio (ad esempio, il pacchetto deve essere elaborato da un contenitore o da una macchina virtuale (Virtual Machine, VM) associata al segmento). Un segmento può essere associato a un trattamento QoS (ad esempio, modellare i pacchetti ricevuti con questo segmento a x Mbps).

L'architettura SR supporta qualsiasi tipo di istruzione associata a un segmento.

L'architettura SR supporta qualsiasi tipo di piano di controllo: distribuito, centralizzato o ibrido.

In uno scenario distribuito, i segmenti vengono allocati e segnalati da IS-IS, OSPF o BGP. Un nodo decide individualmente di indirizzare i pacchetti su una politica SR (ad esempio, protezione locale precalcolata [RFC8355]). Un nodo calcola individualmente la politica SR.

In uno scenario centralizzato, i segmenti vengono allocati e instanziati da un controller SR. Il controller SR decide quali nodi devono indirizzare quali pacchetti su quali politiche source-routed. Il controller SR calcola le politiche source-routed. L'architettura SR non limita il modo in cui il controller programma la rete. Le opzioni probabili sono il protocollo di configurazione di rete (Network Configuration Protocol, NETCONF), il protocollo di comunicazione degli elementi di calcolo del percorso (Path Computation Element Communication Protocol, PCEP) e BGP. L'architettura SR non limita il numero di controller SR. In particolare, più controller SR possono programmare lo stesso dominio SR. L'architettura SR consente a questi controller SR di scoprire quali SID sono instanziati presso quali nodi e quali set di etichette locali (SRLB) e globali (SRGB) sono disponibili presso quale nodo.

Uno scenario ibrido integra un piano di controllo distribuito di base con un controller centralizzato. Ad esempio, quando la destinazione è al di fuori del dominio IGP, il controller SR può calcolare una politica SR per conto di un nodo IGP. L'architettura SR non limita il modo in cui i nodi che fanno parte del piano di controllo distribuito interagiscono con il controller SR. Le opzioni probabili sono PCEP e BGP.

Gli host POSSONO far parte di un dominio SR. Un controller centralizzato può informare gli host sulle politiche sia spingendo queste politiche agli host sia rispondendo alle richieste dagli host.

L'architettura SR può essere instanziata su vari piani dati. Questo documento introduce due instanziazioni del piano dati di SR: SR su MPLS (SR over MPLS, SR-MPLS) e SR su IPv6 (SR over IPv6, SRv6).

SR può essere applicato direttamente all'architettura MPLS senza modifiche al piano di inoltro [SR-MPLS]. Un segmento è codificato come un'etichetta MPLS. Una politica SR è instanziata come uno stack di etichette. Il segmento da elaborare (il segmento attivo) si trova in cima allo stack. Al completamento di un segmento, l'etichetta correlata viene rimossa dallo stack.

SR può essere applicato all'architettura IPv6 con un nuovo tipo di intestazione di routing chiamata intestazione SR (SR Header, SRH) [IPv6-SRH]. Un'istruzione è associata a un segmento e codificata come un indirizzo IPv6. Un segmento SRv6 è anche chiamato SRv6 SID. Una politica SR è instanziata come un elenco ordinato di SRv6 SID nell'intestazione di routing. Il segmento attivo è indicato dall'indirizzo di destinazione (Destination Address, DA) del pacchetto. Il successivo segmento attivo è indicato dal puntatore SegmentsLeft (SL) nell'SRH. Quando un SRv6 SID è completato, SL viene decrementato e il segmento successivo viene copiato nella DA. Quando un pacchetto viene indirizzato su una politica SR, l'SRH correlato viene aggiunto al pacchetto.

Nel contesto di un piano di controllo distribuito basato su IGP, vengono definiti due segmenti topologici: il segmento di adiacenza IGP (IGP-Adjacency segment) e il segmento di prefisso IGP (IGP-Prefix segment).

Nel contesto di un piano di controllo distribuito basato su BGP, vengono definiti due segmenti topologici: il segmento di peering BGP (BGP peering segment) e il segmento di prefisso BGP (BGP-Prefix segment).

L'headend di una politica SR lega un SID (chiamato segmento di binding o BSID) alla sua politica. Quando l'headend riceve un pacchetto con un segmento attivo che corrisponde al BSID di una politica SR locale, l'headend indirizza il pacchetto nella politica SR associata.

Questo documento definisce i segmenti IGP, BGP e di binding per i piani dati SR-MPLS e SRv6.

Nota: Questo documento definisce l'architettura per il Segment Routing, incluse le definizioni di oggetti e funzioni di base e una descrizione del design complessivo. NON definisce i mezzi per implementare l'architettura -- ciò è contenuto in numerosi documenti referenziati, alcuni dei quali sono menzionati in questo documento per comodità del lettore.