Le Segment Routing (SR) ou routage par segments, est une architecture de routage utilisée dans les réseaux informatiques. Elle permet à un nœud d'entrée d'imposer aux paquets un chemin à travers le réseau en leur associant une séquence ordonnée d'instructions, appelées segments. Développée au sein du groupe de travail SPRING (Source Packet Routing in Networking) de l'IETF (Internet Engineering Task Force), cette architecture s'appuie sur les principes du source routing et peut être mise en œuvre aussi bien sur les réseaux IP que MPLS.

Dans un domaine de Segment Routing, le routeur d'entrée (ingress) associe à chaque paquet une liste ordonnée de segments. Chaque segment représente une instruction de transfert ou une fonction réseau devant être éxécutée par les routeurs traversés. Le chemin emprunté par le paquet est ainsi déterminé par cette séquence de segments, plutôt que par les seules décisions de routage prises indépendamment à chaque saut ()

Histoire Les concepts à l'origine du segment routing proviennent de recherches visant à simplifier l'ingénierie du trafic dans les réseaux IP et MPLS. Historiquement, cette fonction reposait sur des protocoles de signalisation tels que RSVP-TE (Resource Reservation Protocol-Traffic Engineering) pour établir des chemins explicites à travers le réseau. Cette approche nécessitait toutefois le maintien d'un état associé à chaque tunnel sur les routeurs intermédiaires, ce qui augmentait la complexité opérationnelle et limitait la capacité de passage à l'échelle des réseaux. Face à la croissance des infrastructures des fournisseurs de services, des architectures réduisant les besoins de signalisation et simplifiant l'exploitation du réseau ont progressivement été étudiées, conduisant au développement du Segment Routing.

En 2013, l'IETF a créé le SPRING (Source Packet Routing in Networking), un groupe de travail chargé de développer une architecture standardisée basée sur les principes du source routing pour les réseaux à commutation de paquets. Les premiers travaux ont porté sur l'intégration du Segment Routing aux étiquettes MPLS sans nécessiter de protocoles de signalisation supplémentaires . Cette approche a ensuite été désignée sous le nom de SR-MPLS .

Des travaux ultérieurs ont étendu l'architecture à IPv6 avec l'introduction de l'en-tête SRH, un en-tête d'extension IPv6 contenant une liste d'identificateurs de segment (SID).

Cette extension, connue sous le nom de SRv6 (Segment Routing over IPv6) , permet de représenter les comportements de transfert et les fonctions réseau sous la forme d’adresses IPv6.

L'architecture a été normalisée par une série de publications de l'IETF, dont la , qui définit l'architecture du Segment Routing, la , qui spécifie l'en-tête SRH pour IPv6, et la , qui définit les extensions du SRv6 Network Programming Protocol pour MPLS, OSPF, IS-IS, BGP et les technologies connexes, tandis que le développement se poursuit au sein du groupe de travail SPRING de l'IETF.

Aperçu Le Segment Routing est conçu pour fonctionner à partir des informations de topologie distribuées par les protocoles de routage à état de liens existants, tels que OSPF et IS-IS. Les SIDs sont annoncés via des extensions de protocole, permettant ainsi aux routeurs du domaine de routage de conserver une vue cohérente des segments disponibles.

Contrairement aux déploiements MPLS traditionnels basés sur des protocoles de signalisation tels que RSVP-TE, le routage par segments s'appuie sur les informations déjà échangées par le protocole de routage pour construire les chemins de transfert. La liste des segments peut être générée par le routeur d'entrée lui-même ou calculée par un contrôleur externe tel qu'un Path Computation Element (PCE).

Segments Un segment représente une instruction exécutée par un routeur lors du transfert d'un paquet. Les segments peuvent identifier :

Un routeur au sein du domaine de routage (Node SID) Préfixe réseau (Prefix SID) Une interface sortante ou une adjacence (Adjacency SID) Une politique de transfert (Brinding SID) Un comportement de transfert défini localement

Un paquet peut contenir un ou plusieurs segments. Les routeurs traitent le segment courant, le suppriment, puis transmettent le paquet à sa destination suivante. Le traitement se poursuit jusqu'à ce que tous les segments aient été traités.

Segment Routing sur MPLS Le Segment Routing peut être déployé sur un réseau MPLS, où il est généralement appelé SR-MPLS.

Dans SR-MPLS, les segments sont représentés par des étiquettes MPLS. Le routeur d'entrée associe au paquet une pile d'étiquettes correspondant au chemin à suivre. A chaque saut, le routeur examine l'étiquette située au sommet de la pile afin de déterminer l'action de transfert à effectuer, puis la retire avant de transmettre le paquet. Les étiquettes restantes guident ainsi son acheminement jusqu'à sa destination.

Les identifiants de segments (SID) sont distribués au moyen d'extensions des IGP (Interior Gateway Protocols), notamment OSPF et IS-IS.

Segment Routing sur IPv6 Le Segment Routing peut également être mis en oeuvre sur les réseaux IPv6 au moyen de SRv6 (Segment Routing over IPv6)

En SRv6, les segments sont représentés par des adresses IPv6 transportées dans une extension de l'en-tête IPv6 appelée SRH (Segment Routing Header), normalisée par l'IETF. Chaque segment identifie soit une destination de transfert, soit un comportement de traitement ou de transfert associé à une adresse IPv6.

A mesure qu'un paquet traverse le réseau, les routeurs traitent successivement les segments décrits dans le SRH. Chaque segment est éxécuté dans l'ordre jusqu'à ce que la liste soit entièrement parcourue ou que le paquet atteigne sa destination.

Le Segment Routing Header Le Segment Routing Header (SRH) est un en-tête d'extension de IPv6 défini pour prendre en charge le Segment Routine. Il contient les informations nécessaires au traitement et à l'exécution des segments tout au long du chemin emprunté par un paquet.

L'en-tête contient notamment une liste ordonnée de segments IPv6, un champ indiquant le segment actuellement en cours de traitement (Segments Left), ainsi que des objets optionnels au format TLV (Type-Longueur-Valeur). A chaque étape de l'acheminement, les routeurs mettent à jour ce champ afin de sélectionner le segment suivant jusqu'à ce que le paquet atteigne sa destination finale. La structure et le fonctionnement du SRH sont définis dans la .

Distribution des identifiants de segment La distribution des identifiants de segment (SID) repose généralement sur des extentions des protocoles de routage à état de liens, telles que celles définies pour OSPF et IS-IS par l'IETF.

Dans les déploiements SR-MPLS, les identifiants de segment sont généralement représentés par des étiquettes MPLS issues de l'espace d'étiquetage du réseau. Dans les déploiements SRv6, ils sont représentés par des adresses ou des préfixes IPv6 attribués par l'opérateur du réseau.

Selon leur fonction, les identifiants de segment peuvent avoir un role global dans un domaine de routage ou un un role local pour un routeur individuel.

Ingénierie du trafic Le Segment Routing peut être utilisé pour mettre en œuvre des politiques d'ingénierie du trafic en définissant des chemins de transfert explicites à travers un réseau.

Au lieu de suivre systématiquement le plus court chemin calculé par le protocole de routage, les paquets peuvent être acheminés via des nœuds ou des liens spécifiquement sélectionnés afin de satisfaire des objectifs opérationnels tels que la répartition de charge, les contraintes de latence ou l'application de politiques de routage.

La liste des segments définissant le chemin emprunté par le paquet peut être calculée directement par le routeur d'entrée ou par un contrôleur centralisé.

Reroutage rapide Le Segment Routing prend en charge des mécanismes de protection destinés à réduire les interruptions de trafic suite à des coupures de liens ou la panne d'un équipement.

L'un de ces mécanismes est le TI-LFA (Topology Independent Loop-Free Alternate), qui permet aux routeurs de réacheminer le trafic vers un chemin de secours précalculé dès la détection d'une défaillance de lien ou de noeud, dans attendre la convergence complète du protocole de routage. Ce mécanisme vise à limiter les interruptions de service en assurant une restauration rapide de la connectivité.

Chaînage des fonctions de service Le Segment Routing peut être utilisé pour implémenter le SFC (Service Function Chaining), dans lequel les paquets sont acheminés à travers une séquence ordonnée de fonctions réseau.

Selon le déploiement, ces fonctions peuvent inclure des pare-feu, le NAT (Network Address Translation), des équilibreurs de charge, des systèmes de détection d'intrusion ou d'autres services de traitement de paquets. En SRv6, ces fonctions peuvent être représentées directement par des segments IPv6 associés à des comportements de transfert spécifiques.

Applications Le Segment Routing est déployé dans divers environnements réseau, notamment:

Réseaux dorsaux (backbone) des fournisseurs d'accès Internet (FAI) Réseaux étendus d'entreprise Interconnexions de centres de données Architectures SDN (Software Defined Networking) Réseaux mobiles Infrastructures cloud

Il peut être utilisé dans de nombreux cas d'usage, notamment pour l'ingénierie du trafic, le réacheminement rapode, le chaînage de fonctions de service (Service Function Chaining) et le découpage de réseau (Network Slicing)

Avantages et limitations Le Segment Routing réduit le recours à des protocoles de signalisation dédiés pour l'établissement de chemins explicites en s'appuyant sur les informations déjà distribuées par les protocoles de routage. Cette approche permet de simplifier l'exploitation des réseaux mettant en oeuvre des mécanismes d'ingénierie du trafic, notamment en limitant la quantité d'informations d'état que les équipements du coeur de réseau doivent maintenir.

Dans les déploiements SRv6, chaque segment occupe une adresse IPv6 dans le SRH, ce qui augmente la taille de l'en-tête des paquets à mesure que des segments supplémentaires sont ajoutés. Le traitement des comportements de transfert SRv6 peut également dépendre de la prise en charge matérielle fournie par les équipements réseau.

Standardisation Le Segment Routing est normalisé par l'IETF. Ses principales spécifications sont les suivantes :

8402 : Architecture de routage par segments 8754 : En-tête de routage de segment IPv6 (SRH) 8986 : Programmation du routage de segments sur IPv6 (SRv6)

Des RFC supplémentaires définissent des extensions aux protocoles de routage, MPLS et BGP pour les déploiements de routage segmenté.

Le développement de l'architecture se poursuit au sein du groupe de travail SPRING de l'IETF.

Voir aussi

Chemin de Bang Routage dynamique des sources Le routage basé sur des politiques peut également être utilisé pour acheminer les paquets en fonction de leurs adresses sources. Routage source évolutif

Références

Liens externes

The Segment Routing homepage The Linux implementation of IPv6 Segment Routing

Segment Routing: a Comprehensive Survey of Research Activities, Standardization Efforts and Implementation Results

Catégorie:Architecture réseau Catégorie:Algorithme Catégorie:Pages avec des traductions non relues