À l’origine, Internet était soumis à une obligation de moyen, c’est-à-dire fournir la meilleure connectivité possible via le chemin d’accès le moins coûteux possible. Peu d’infrastructures avaient alors un accès à Internet et seules les applications remplissant certaines conditions pouvaient être connectées.
Aujourd’hui, Internet connecte des milliards d’entreprises, de foyers et d’appareils, mais aussi des applications critiques comme la télémédecine, le contrôle du trafic aérien et les transactions financières. Certaines applications (par ex. la messagerie électronique) sont tolérantes aux pertes de paquets et variations de latence, tandis que d’autres (par ex. le gaming) le sont beaucoup moins.
Dans de très nombreux cas, l’obligation de moyen fait donc place à une obligation de résultat. Et comme les applications critiques sont aujourd’hui omniprésentes, les opérateurs réseau doivent se montrer à la hauteur en fournissant des services avancés à grande échelle : ingénierie de trafic, reroutage rapide (fast reroute), etc. Or, cela passe d’abord par une réduction de la complexité au sein du réseau.
Le routage de segments, ou Segment Routing (SR), apporte une réponse innovante aux problématiques récurrentes d’ingénierie de trafic et de reroutage rapide. Dans un cas comme dans l’autre, le Segment Routing permet de simplifier non seulement les protocoles de routage, mais également l’architecture et les opérations du réseau.
De nombreux équipementiers réseau proposent des solutions SR interopérables, avec en toile de fond une innovation continue chez Juniper Networks comme dans le reste du secteur. Cette série de blogs a pour but de guider le lecteur dans cette nouvelle ère du Segment Routing.
Mais avant de nous pencher sur les récentes avancées du SR, un bref retour aux bases s’impose. C’est l’un des objectifs de cette série d’articles, à travers notamment une analyse des implémentations et expérimentations effectuées sur les premiers déploiements.
Un autre article sera consacré aux bonnes pratiques de déploiement et de gestion opérationnelle du Segment Routing. Enfin, un autre épisode de la série traitera des écarts observés, des nouvelles exigences et des récentes innovations en matière de Segment Routing.
Commençons donc par une définition du domaine SR et du chemin SR.
Domaine SR
Un domaine SR est un ensemble de nœuds utilisés par des protocoles SR. Le nœud d’un domaine SR peut exécuter des procédures d’entrée, de transit ou de sortie. La figure 1 illustre un réseau sur lequel un nœud source envoie un paquet vers un nœud de destination. Les nœuds source et de destination sont situés en dehors du domaine SR, mais le chemin qui les relie passe par ce domaine.
Figure 1 : Physionomie d’un domaine SR
Lorsque le paquet atteint le nœud d’entrée SR, ce dernier y applique une politique de routage imposant certaines conditions et actions. Si le paquet répond à ces conditions, le nœud l’encapsule dans un tunnel SR. Le tunnel traverse le chemin SR en direction du nœud de sortie SR.
Le chemin SR peut être paramétré de manière à prendre en compte un certain nombre de contraintes (bande passante minimale, latence maximale, etc.). Ainsi, bien que le trafic SR puisse suivre la voie la moins coûteuse vers le nœud de sortie, ces contraintes pourront l’orienter sur un autre chemin.
Le nœud source et le nœud d’entrée SR seront généralement situés sur des plateformes matérielles distinctes. Par exemple, le nœud source pourra être un ordinateur portable tandis que le nœud d’entrée SR sera un routeur. Il y a toutefois des exceptions. En effet, si le nœud source est une machine virtuelle et le nœud d’entrée SR un hyperviseur, les deux pourront se situer sur la même plateforme matérielle.
Idem avec le nœud de destination et le nœud de sortie SR. Les deux peuvent aussi bien se situer sur des plateformes matérielles distinctes que sur la même plateforme.
Dans une configuration moins habituelle, le nœud source se situera à l’intérieur du domaine SR. Dans ce cas, il fera également office de nœud d’entrée SR étant donné qu’il exécutera des procédures d’entrée SR. Même scénario avec le nœud de destination. Situé à l’intérieur du domaine SR, il servira également de nœud de sortie SR étant donné qu’il exécutera des procédures de sortie SR.
Chemin SR
Un chemin SR est une suite ordonnée de segments qui relient un nœud d’entrée SR à un nœud de sortie SR. Ce chemin empruntera généralement la voie la moins coûteuse, mais pas toujours.
Par ailleurs, de nombreux chemins SR ont des segments en commun, comme illustré sur la figure 2. Ici, le chemin A relie le nœud d’entrée A au nœud de sortie Z, tandis que le chemin B relie le nœud d’entrée B au même nœud de sortie Z. Ainsi, les deux chemins empruntent le segment 3.
Figure 2 : Chemins SR empruntant un même segment
Lorsqu’un nœud d’entrée SR encapsule un paquet dans un tunnel SR, il encode la liste de segments associés dans l’entête du tunnel, puis transfère le paquet. Les nœuds de transit examinent l’entête du tunnel puis, à leur tour, transfèrent le paquet vers le segment suivant.
Parce que le nœud d’entrée SR encode tout le chemin dans l’entête du tunnel, les nœuds de transit n’ont pas à conserver les informations de chaque chemin qu’ils traitent. Leur mission consiste uniquement à examiner l’entête du tunnel et à transférer le paquet vers le segment suivant.
C’est là un des grands avantages du Segment Routing. Étant donné que les nœuds de transit ne sont pas obligés de conserver les informations de chemin, le processus est beaucoup moins lourd. Les protocoles de routage sont simplifiées, l’évolutivité plus transparente et les opérations réseau moins complexes.
Certes, encoder les informations de chemin dans les paquets et les retirer des nœuds de transit génère quelques problématiques, mais le bilan global est largement positif. Nous y reviendrons dans de prochains articles.
Étape suivante
L’article suivant de cette série revient plus en détail sur les segments et types de segments.