Segment Routing

Segment Routing
Logiciel

Informations
Fonction Ingénierie du trafic
Date de création 2013
Auteur(s) / Autrice(s) IETF SPRING Working Group
RFC RFC 8402

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 (hop-by-hop)

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[1].

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 [2]. Cette approche a ensuite été désignée sous le nom de SR-MPLS [3].

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)[4].

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

L'architecture a été normalisée par une série de publications de l'IETF, dont la RFC 8402, qui définit l'architecture du Segment Routing, la RFC 8754, qui spécifie l'en-tête SRH pour IPv6, et la RFC 8986, 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 RFC 8754 .

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:

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 :

  • RFC 8402 : Architecture de routage par segments
  • RFC 8754 : En-tête de routage de segment IPv6 (SRH)
  • RFC 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

Références

(en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Segment routing » (voir la liste des auteurs).
  1. (en) Stefano Previdi et Clarence Filsfils Source Packet Routing in Networking (SPRING) Problem Statement and Requirements (rapport), Internet Engineering Task Force, (lire en ligne)
  2. (en) Ahmed Bashandy et Clarence Filsfils Segment Routing with the MPLS Data Plane (rapport), Internet Engineering Task Force, (lire en ligne)
  3. (en) « IETF », Segment Routing (consulté le )
  4. (en) Clarence Filsfils et Darren Dukes IPv6 Segment Routing Header (SRH) (rapport), Internet Engineering Task Force, (lire en ligne)
  5. (en) Clarence Filsfils et Pablo Camarillo Segment Routing over IPv6 (SRv6) Network Programming (rapport), Internet Engineering Task Force, (lire en ligne)

Liens externes

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.