Aller au contenu principal

1. Introduction

Le routage par segment (Segment Routing, SR) exploite le paradigme du routage à la source. Un nœud oriente un paquet à travers une politique SR instanciée sous forme de liste ordonnée d'instructions appelées "segments". Un segment peut représenter n'importe quelle instruction, basée sur la topologie ou sur le service. Un segment peut avoir une sémantique locale à un nœud SR ou globale au sein d'un domaine SR. Le SR prend en charge le routage explicite par flux tout en maintenant l'état par flux uniquement aux nœuds d'entrée du domaine SR.

Un segment est souvent référencé par son identifiant de segment (Segment Identifier, SID).

Un segment peut être associé à une instruction topologique. Un segment local topologique peut ordonner à un nœud de transférer le paquet via une interface sortante spécifique. Un segment global topologique peut ordonner à un domaine SR de transférer le paquet via un chemin spécifique vers une destination. Différents segments peuvent exister pour la même destination, chacun avec des objectifs de chemin différents (par exemple, quelle métrique est minimisée, quelles contraintes sont spécifiées).

Un segment peut être associé à une instruction de service (par exemple, le paquet doit être traité par un conteneur ou une machine virtuelle (Virtual Machine, VM) associé au segment). Un segment peut être associé à un traitement QoS (par exemple, modeler les paquets reçus avec ce segment à x Mbps).

L'architecture SR prend en charge tout type d'instruction associé à un segment.

L'architecture SR prend en charge tout type de plan de contrôle: distribué, centralisé ou hybride.

Dans un scénario distribué, les segments sont alloués et signalés par IS-IS, OSPF ou BGP. Un nœud décide individuellement d'orienter les paquets sur une politique SR (par exemple, protection locale pré-calculée [RFC8355]). Un nœud calcule individuellement la politique SR.

Dans un scénario centralisé, les segments sont alloués et instanciés par un contrôleur SR. Le contrôleur SR décide quels nœuds doivent orienter quels paquets sur quelles politiques routées à la source. Le contrôleur SR calcule les politiques routées à la source. L'architecture SR ne limite pas la manière dont le contrôleur programme le réseau. Les options probables sont le protocole de configuration réseau (Network Configuration Protocol, NETCONF), le protocole de communication d'élément de calcul de chemin (Path Computation Element Communication Protocol, PCEP) et BGP. L'architecture SR ne limite pas le nombre de contrôleurs SR. Plus précisément, plusieurs contrôleurs SR peuvent programmer le même domaine SR. L'architecture SR permet à ces contrôleurs SR de découvrir quels SID sont instanciés sur quels nœuds et quels ensembles d'étiquettes locales (SRLB) et globales (SRGB) sont disponibles sur quel nœud.

Un scénario hybride complète un plan de contrôle distribué de base avec un contrôleur centralisé. Par exemple, lorsque la destination est en dehors du domaine IGP, le contrôleur SR peut calculer une politique SR au nom d'un nœud IGP. L'architecture SR ne limite pas la manière dont les nœuds qui font partie du plan de contrôle distribué interagissent avec le contrôleur SR. Les options probables sont PCEP et BGP.

Les hôtes PEUVENT faire partie d'un domaine SR. Un contrôleur centralisé peut informer les hôtes des politiques soit en poussant ces politiques vers les hôtes, soit en répondant aux demandes des hôtes.

L'architecture SR peut être instanciée sur divers plans de données. Ce document présente deux instanciations de plan de données de SR: SR sur MPLS (SR over MPLS, SR-MPLS) et SR sur IPv6 (SR over IPv6, SRv6).

Le SR peut être appliqué directement à l'architecture MPLS sans modification du plan de transfert [SR-MPLS]. Un segment est codé comme une étiquette MPLS. Une politique SR est instanciée comme une pile d'étiquettes. Le segment à traiter (le segment actif) se trouve au sommet de la pile. À l'achèvement d'un segment, l'étiquette associée est retirée de la pile.

Le SR peut être appliqué à l'architecture IPv6 avec un nouveau type d'en-tête de routage appelé en-tête SR (SR Header, SRH) [IPv6-SRH]. Une instruction est associée à un segment et codée comme une adresse IPv6. Un segment SRv6 est également appelé SRv6 SID. Une politique SR est instanciée sous forme de liste ordonnée de SRv6 SID dans l'en-tête de routage. Le segment actif est indiqué par l'adresse de destination (Destination Address, DA) du paquet. Le prochain segment actif est indiqué par le pointeur SegmentsLeft (SL) dans le SRH. Lorsqu'un SRv6 SID est terminé, le SL est décrémenté et le segment suivant est copié dans la DA. Lorsqu'un paquet est orienté sur une politique SR, le SRH associé est ajouté au paquet.

Dans le contexte d'un plan de contrôle distribué basé sur IGP, deux segments topologiques sont définis: le segment d'adjacence IGP (IGP-Adjacency segment) et le segment de préfixe IGP (IGP-Prefix segment).

Dans le contexte d'un plan de contrôle distribué basé sur BGP, deux segments topologiques sont définis: le segment de peering BGP (BGP peering segment) et le segment de préfixe BGP (BGP-Prefix segment).

L'extrémité de tête d'une politique SR lie un SID (appelé segment de liaison ou BSID, Binding segment) à sa politique. Lorsque l'extrémité de tête reçoit un paquet avec un segment actif correspondant au BSID d'une politique SR locale, l'extrémité de tête oriente le paquet dans la politique SR associée.

Ce document définit les segments IGP, BGP et de liaison pour les plans de données SR-MPLS et SRv6.

Note: Ce document définit l'architecture du routage par segment, y compris les définitions d'objets et de fonctions de base et une description de la conception globale. Il ne définit PAS les moyens de mise en œuvre de l'architecture -- cela est contenu dans de nombreux documents référencés, dont certains sont mentionnés dans ce document pour la commodité du lecteur.