Table des matières

Introduction

Prérequis

Exigences

Composants utilisés

Informations générales

Problème

Solution

Bloc global SR

Serveur de mappage SR

Client de mappage

Topologie - Inter-AS Option C (avec réflecteurs de route)

Brève présentation du schéma de topologie

Schéma d’adressage IP

Configurations

Informations connexes

Introduction

Ce document décrit comment un déploiement SR partiel peut être utilisé pour fournir des avantages SR au trafic basé sur LDP, y compris une application possible de SR dans le contexte de cas d'utilisation MPLS inter-domaines.

Prérequis

Exigences

Cisco vous recommande de prendre connaissance des rubriques suivantes :

- Routage de segment

- MPLS

- Inter-AS

- PLD

Composants utilisés

Les informations contenues dans ce document sont basées sur les versions de matériel et de logiciel suivantes :

- Routage des segments de support

- NCS5500, ASR9000

The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Si votre réseau est en ligne, assurez-vous de bien comprendre l’incidence possible des commandes.

Informations générales

Ce document décrit les mécanismes par lesquels SR interagit avec LDP dans les cas où une combinaison de routeurs compatibles SR et non compatibles SR coexistent au sein du même réseau et plus précisément dans le même domaine de routage.

Un client MCC (Multicast Control Plane Client), fonctionnant au niveau d'un noeud, doit s'assurer que l'étiquette entrante qu'il installe dans le plan de données MPLS du noeud a été allouée de manière unique et que le routage de segment utilise le bloc SRGB (Segment Routing Global Block) pour l'allocation d'étiquette. L'utilisation du SRGB permet à SR de coexister avec tout autre MCC.

Conseil : ces informations vous aident avec la solution Inter-AS pour MPLS SR et MPLS LDP en utilisant Inter-AS Option C.

Problème

Le déploiement SR dans un environnement hétérogène avec le plan de contrôle MPLS SR interagit avec le plan de contrôle LDP MPLS à l'aide de l'option C Inter-AS définie dans la RFC 4364.

Ce document décrit une méthode par laquelle le réseau du fournisseur de services utilisant MPLS LDP et SR MPLS pour fournir un réseau privé virtuel utilisant l'option Inter-AS C.

Solution

Un bref aperçu de l'option C inter-AS :

L'option C d'inter-AS est la troisième option d'interconnexion de backbones multi-AS couverte par la RFC 4364. Il s'agit de l'option la plus évolutive des trois jusqu'à présent et elle possède ses propres scénarios d'applicabilité que nous devons connaître pour appliquer cette conception correctement.

L'option C est un bon candidat parce qu'elle est évolutive. Les routeurs ASBR ne transportent aucune route VPN et ils se chargent simplement de la distribution des routes IPv4 étiquetées des PE au sein de leur propre système autonome.

Pour améliorer l'évolutivité, une session VPNv4 MP-EBGP transporte toutes les routes VPN (routes externes) entre PE ou RR. Dans le cas de l'utilisation de RR pour échanger les routes externes, le tronçon suivant des routes VPNv4 doit être préservé.

Le routeur ASBR utilise le protocole EBGP pour échanger les informations de routage PE internes entre les systèmes autonomes (routes internes). Ces routes internes correspondent aux tronçons suivants BGP des routes externes annoncées par la session MP-EBGP à plusieurs tronçons entre les PE ou les RR. Les routes internes annoncées par les routeurs ASBR peuvent être utilisées pour établir les sessions MP-EBGP entre les PE et permettent la configuration LSP de l'entrée vers la sortie du PE.

L'option C est une très bonne solution du point de vue de l'évolutivité et constitue la solution à adopter pour les mêmes réseaux SP multi-AS.

Un bref aperçu du routage par segment :

Le routage de segment (SR) exploite les paradigmes de routage et de tunnellisation source. Un noeud dirige un paquet à travers un ensemble contrôlé d’instructions, appelées segments, en ajoutant un en-tête SR au début du paquet. Un segment peut représenter n'importe quelle instruction, topologique ou basée sur un service. SR permet d'imposer un flux via n'importe quel chemin topologique et chaîne de service tout en conservant un état par flux uniquement au niveau du noeud d'entrée du domaine SR. L'architecture de routage de segment peut être directement appliquée au plan de données MPLS avec un petit changement sur le plan de transfert. Elle nécessite des extensions mineures aux protocoles de routage à état de liens existants. Le routage de segment peut également être appliqué à IPv6 avec un nouvel en-tête d'extension de routage.

Un segment est codé en tant qu'étiquette MPLS. Une liste ordonnée de segments est codée sous la forme d'une pile d'étiquettes. Le segment à traiter se trouve en haut de la pile. A l'achèvement d'un segment, l'étiquette associée est extraite de la pile.  Les opérations de routage de segment du plan de données MPLS sont les opérations push, swap et pop, conformément au transfert MPLS traditionnel. Les types de segment suivants sont définis dans le routage de segment :

- Segment de préfixe

- Segment De Contiguïté

- Segment d'appairage BGP

- Segment de préfixe BGP

Bloc global SR

Le bloc global de routage de segment (SRGB) est la plage de valeurs d'étiquette conservées pour le routage de segment dans le LSD. Les valeurs d'étiquette SRGB sont attribuées en tant qu'identificateurs de segment de préfixe (SID) aux noeuds SR et ont une signification globale dans l'ensemble du domaine.

- La plage d'étiquettes SR NE peut PAS commencer sous 16 000. Le bloc global SR par défaut est : 16 000 - 24 000.

- La configuration SRGB n'est PAS spécifique à la famille d'adresses, car le « sous-TLV SR-Capabilities » du TLV de capacité du routeur défini dans n'est pas spécifique à la famille d'adresses.

- Si l'interface de ligne de commande entraîne l'agrandissement ou le déplacement de la valeur SRGB par défaut, il est possible d'exiger un rechargement, mais uniquement si des clients ont des étiquettes dans la nouvelle plage.

- Avant de configurer SRGB, l'administrateur doit s'assurer qu'une partie de la base d'étiquettes configurée pour le routage de segment est libre et n'est pas utilisée par d'autres clients LSD MPLS.

Serveur de mappage SR

Mapping Server attribue de manière centralisée des préfixes-SID pour tout ou partie des préfixes connus. Un routeur doit pouvoir agir en tant que serveur de mappage, client de mappage ou les deux.

- Un serveur de mappage est un mécanisme de plan de contrôle et sa position est comparable à un réflecteur de route BGP

- Permet à l'utilisateur de configurer des entrées de mappage SID ne se chevauchant pas pour spécifier les préfixes-SID pour tout ou partie des préfixes.

- ISIS annonce la stratégie de mappage SID locale dans 'SID/Label Binding TLV'

- Le serveur de mappage doit être résilient, une redondance doit être fournie

Les principales fonctions de Mapping Server sont les suivantes :

- Annonce des mappages préfixe-vers-SID dans IGP pour le compte d'autres noeuds non compatibles SR. Les mappages préfixe-vers-SID sont configurés sur le serveur de mappage

- Permettre aux noeuds compatibles SR d'interagir avec les noeuds LDP (non compatibles SR). Un serveur de mappage est requis pour l'interfonctionnement SR/LDP

Client de mappage

- Reçoit et analyse le TLV de liaison SID/étiquette reçu à distance pour créer des entrées de mappage SID distantes. À l'aide des entrées de mappage acquises à distance et configurées localement, construisez la stratégie de mappage active cohérente sans chevauchement.

- L'instance IGP utilise la stratégie de mappage active pour (re)calculer les SID de préfixe de tout ou partie des préfixes.

Cette section vous aide à comprendre et à configurer le service de réseau privé virtuel (VPN) de couche 3 entre le réseau du fournisseur avec l'appairage de réseau compatible SR/la connexion avec un réseau non compatible SR. Dans cette section, vous apprendrez à configurer l'option C définie dans la RFC « 4364 » et les exemples d'utilisation.

Topologie - Inter-AS Option C (avec réflecteurs de route)

Brève présentation du schéma de topologie

Vers le haut du schéma de topologie, nous avons un réseau SR comprenant des réflecteurs de route, des routeurs de périphérie fournisseur et des routeurs de périphérie client.

Les routeurs de périphérie client CE1 et CE2 ont respectivement les VRF A et VRF B. Il appartient à l'AS 65002.

Vers la fin du schéma de topologie, nous avons un réseau compatible LDP comprenant des réflecteurs de route, des routeurs de périphérie fournisseur et des routeurs de périphérie client.

Les routeurs de périphérie client CE3 et CE4 ont respectivement les VRF A et VRF B. Il appartient à AS65001.

Les VRF A et VRF B à chaque extrémité des réseaux SR et LDP ont besoin de communiquer entre eux.

Schéma d’adressage IP

Nom de l'hôte

Adresse IP

RR-01

10.0.0.1

RR-02

10.0.0.2

PE1

10.0.0.3

PE2

10.0.0.4

CE1

10.0.0.5

CE2

10.0.0.6

RR-03

10.0.1.1

RR-04

10.0.1.2

PE5

10.0.1.3

PE6

10.0.1.4

CE3

10.0.1.5

CE4

10.0.1.6

Configurations

Les configurations des périphériques sont décrites.

RR-1

segment-routing mpls

!

mapping-server

!

prefix-sid-map

address-family ipv4

10.0.0.1/32 index 200 range 10

exit-address-family

!

!

interface Loopback0

description Loopback0

ip address 10.0.0.1 255.255.255.255

ip router isis 65002

!

!

router isis 65002

net xx.xxxx.xxxx.xxxx.xx

metric-style wide

segment-routing mpls

segment-routing prefix-sid-map advertise-local

!

router bgp 65002

bgp router-id 10.0.0.1

neighbor 10.0.0.3 remote-as 65002

neighbor 10.0.0.3 description rr client

neighbor 10.0.0.3 update-source Loopback0

neighbor 10.0.0.4 remote-as 65002

neighbor 10.0.0.4 description rr client

neighbor 10.0.0.4 update-source Loopback0

neighbor 10.0.0.2 remote-as 65002

neighbor 10.0.0.2 description iBGP peer

neighbor 10.0.0.2 update-source Loopback0

neighbor 10.0.1.1 remote-as 65001

neighbor 10.0.1.1 ebgp-multihop 255

neighbor 10.0.1.1 update-source Loopback0

neighbor 10.0.1.2 remote-as 65001

neighbor 10.0.1.2 ebgp-multihop 255

neighbor 10.0.1.2 update-source Loopback0

!

address-family ipv4

neighbor 10.0.0.3 activate

neighbor 10.0.0.3 route-reflector-client

neighbor 10.0.0.4 activate

neighbor 10.0.0.4 route-reflector-client

neighbor 10.0.0.2 activate

neighbor 10.0.1.1 activate

neighbor 10.0.1.2 activate

exit-address-family

!

address-family vpnv4

neighbor 10.0.0.3 activate

neighbor 10.0.0.3 send-community extended

neighbor 10.0.0.3 route-reflector-client

neighbor 10.0.0.4 activate

neighbor 10.0.0.4 send-community extended

neighbor 10.0.0.4 route-reflector-client

neighbor 10.0.0.2 activate

neighbor 10.0.0.2 send-community extended

neighbor 10.0.1.1 activate

neighbor 10.0.1.1 send-community both

neighbor 10.0.1.1 next-hop-unchanged

neighbor 10.0.1.2 activate

neighbor 10.0.1.2 send-community both

neighbor 10.0.1.2 next-hop-unchanged

exit-address-family

!

RR-2

segment-routing mpls

!

mapping-server

!

prefix-sid-map

address-family ipv4

10.0.0.2/32 index 200 range 10

exit-address-family

!

!

interface Loopback0

description Loopback0

ip address 10.0.0.2 255.255.255.255

ip router isis 65002

!

!

router isis 65002

net xx.xxxx.xxxx.xxxx.xx

metric-style wide

segment-routing mpls

segment-routing prefix-sid-map advertise-local

!

router bgp 65002

bgp router-id 10.0.0.2

neighbor 10.0.0.3 remote-as 65002

neighbor 10.0.0.3 description rr client

neighbor 10.0.0.3 update-source Loopback0

neighbor 10.0.0.4 remote-as 65002

neighbor 10.0.0.4 description rr client

neighbor 10.0.0.4 update-source Loopback0

neighbor 10.0.0.1 remote-as 65002

neighbor 10.0.0.1 description iBGP peer

neighbor 10.0.0.1 update-source Loopback0

neighbor 10.0.1.1 remote-as 65001

neighbor 10.0.1.1 ebgp-multihop 255

neighbor 10.0.1.1 update-source Loopback0

neighbor 10.0.1.2 remote-as 65001

neighbor 10.0.1.2 ebgp-multihop 255

neighbor 10.0.1.2 update-source Loopback0

!

address-family ipv4

neighbor 10.0.0.3 activate

neighbor 10.0.0.3 route-reflector-client

neighbor 10.0.0.4 activate

neighbor 10.0.0.4 route-reflector-client

neighbor 10.0.0.1 activate

neighbor 10.0.1.1 activate

neighbor 10.0.1.2 activate

exit-address-family

!

address-family vpnv4

neighbor 10.0.0.3 activate

neighbor 10.0.0.3 send-community extended

neighbor 10.0.0.3 route-reflector-client

neighbor 10.0.0.4 activate

neighbor 10.0.0.4 send-community extended

neighbor 10.0.0.4 route-reflector-client

neighbor 10.0.0.1 activate

neighbor 10.0.0.1 send-community extended

neighbor 10.0.1.1 activate

neighbor 10.0.1.1 send-community both

neighbor 10.0.1.1 next-hop-unchanged

neighbor 10.0.1.2 activate

neighbor 10.0.1.2 send-community both

neighbor 10.0.1.2 next-hop-unchanged

exit-address-family

!

PE-1

interface Loopback0

description Loopback0

ip address 10.0.0.3 255.255.255.255

ip router isis 65002

!

vrf A                               # Define VRF A

address-family ipv4 unicast

import route-target

65000:1

!

export route-target

65000:1

!

!

vrf B                               # Define VRF B

address-family ipv4 unicast

import route-target

65000:2

!

export route-target

65000:2

!

!

router isis 65002                   # ISIS Level 2

is-type level-2-only

net xx.xxxx.xxxx.xxxx.xx

address-family ipv4 unicast

metric-style wide

advertise link attributes

mpls traffic-eng level-2-only

mpls traffic-eng router-id Loopback0

router-id Loopback0

segment-routing mpls sr-prefer

!

router bgp 65002                    # BGP

bgp router-id 10.0.0.3

neighbor-group RR

remote-as 65002

update-source Loopback0

address-family vpnv4 unicast

!

!

neighbor 10.0.0.1

use neighbor-group RR

!

neighbor 10.0.0.2

use neighbor-group RR

vrf A

rd 65000:1

address-family ipv4 unicast

redistribute connected

allocate-label all

!

neighbor 10.0.0.5           # IP address of CE1

remote-as 61001

ebgp-multihop 255

update-source Loopback100

address-family ipv4 unicast

!

vrf B

rd 65000:2

address-family ipv4 unicast

redistribute connected

allocate-label all

!

neighbor 10.0.0.6           # IP address of CE2

remote-as 61001

ebgp-multihop 255

update-source Loopback101

address-family ipv4 unicast

!

interface GigabitEthernet1         # Link to CE-01

vrf A

ipv4 address x.x.x.x 255.255.255.0

!

interface GigabitEthernet2         # Link to CE-02

vrf B

ipv4 address x.x.x.x 255.255.255.0

!

segment-routing

global-block 16000 23999

!

RR-3

interface Loopback0

description Loopback0

ip address 10.0.1.1 255.255.255.255

ip router isis 65001

!

!

router isis 65001

net xx.xxxx.xxxx.xxxx.xx

metric-style wide

segment-routing mpls

segment-routing prefix-sid-map advertise-local

!

router bgp 65001

bgp router-id 10.0.1.1

neighbor 10.0.1.3 remote-as 65001

neighbor 10.0.1.3 description rr client

neighbor 10.0.1.3 update-source Loopback0

neighbor 10.0.1.4 remote-as 65001

neighbor 10.0.1.4 description rr client

neighbor 10.0.1.4 update-source Loopback0

neighbor 10.0.1.2 remote-as 65001

neighbor 10.0.1.2 description iBGP peer

neighbor 10.0.1.2 update-source Loopback0

neighbor 10.0.0.1 remote-as 65002

neighbor 10.0.0.1 ebgp-multihop 255

neighbor 10.0.0.1 update-source Loopback0

neighbor 10.0.0.2 remote-as 65002

neighbor 10.0.0.2 ebgp-multihop 255

neighbor 10.0.0.2 update-source Loopback0

!

address-family ipv4

neighbor 10.0.1.3 activate

neighbor 10.0.1.3 route-reflector-client

neighbor 10.0.1.4 activate

neighbor 10.0.1.4 route-reflector-client

neighbor 10.0.1.2 activate

neighbor 10.0.0.1 activate

neighbor 10.0.0.2 activate

exit-address-family

!

address-family vpnv4

neighbor 10.0.1.3 activate

neighbor 10.0.1.3 send-community extended

neighbor 10.0.1.3 route-reflector-client

neighbor 10.0.1.4 activate

neighbor 10.0.1.4 send-community extended

neighbor 10.0.1.4 route-reflector-client

neighbor 10.0.1.2 activate

neighbor 10.0.1.2 send-community extended

neighbor 10.0.0.1 activate

neighbor 10.0.0.1 send-community both

neighbor 10.0.0.1 next-hop-unchanged

neighbor 10.0.0.2 activate

neighbor 10.0.0.2 send-community both

neighbor 10.0.0.2 next-hop-unchanged

exit-address-family

!

RR-4

interface Loopback0

description Loopback0

ip address 10.0.1.2 255.255.255.255

ip router isis 65001

!

!

router isis 65001

net xx.xxxx.xxxx.xxxx.xx

metric-style wide

segment-routing mpls

segment-routing prefix-sid-map advertise-local

!

router bgp 65001

bgp router-id 10.0.1.2

neighbor 10.0.1.3 remote-as 65001

neighbor 10.0.1.3 description rr client

neighbor 10.0.1.3 update-source Loopback0

neighbor 10.0.1.4 remote-as 65001

neighbor 10.0.1.4 description rr client

neighbor 10.0.1.4 update-source Loopback0

neighbor 10.0.1.1 remote-as 65001

neighbor 10.0.1.1 description iBGP peer

neighbor 10.0.1.1 update-source Loopback0

neighbor 10.0.0.1 remote-as 65002

neighbor 10.0.0.1 ebgp-multihop 255

neighbor 10.0.0.1 update-source Loopback0

neighbor 10.0.0.2 remote-as 65002

neighbor 10.0.0.2 ebgp-multihop 255

neighbor 10.0.0.2 update-source Loopback0

!

address-family ipv4

neighbor 10.0.1.3 activate

neighbor 10.0.1.3 route-reflector-client

neighbor 10.0.1.4 activate

neighbor 10.0.1.4 route-reflector-client

neighbor 10.0.1.1 activate

neighbor 10.0.0.1 activate

neighbor 10.0.0.2 activate

exit-address-family

!

address-family vpnv4

neighbor 10.0.1.3 activate

neighbor 10.0.1.3 send-community extended

neighbor 10.0.1.3 route-reflector-client

neighbor 10.0.1.4 activate

neighbor 10.0.1.4 send-community extended

neighbor 10.0.1.4 route-reflector-client

neighbor 10.0.1.1 activate

neighbor 10.0.1.1 send-community extended

neighbor 10.0.0.1 activate

neighbor 10.0.0.1 send-community both

neighbor 10.0.0.1 next-hop-unchanged

neighbor 10.0.0.2 activate

neighbor 10.0.0.2 send-community both

neighbor 10.0.0.2 next-hop-unchanged

exit-address-family

!

PE-6

interface Loopback0

description Loopback0

ip address 10.0.1.3 255.255.255.255

ip router isis 65001

!

vrf A                               # Define VRF A

address-family ipv4 unicast

import route-target

65000:1

!

export route-target

65000:1

!

vrf B                               # Define VRF B

address-family ipv4 unicast

import route-target

65000:2

!

export route-target

65000:2

!

router isis 65001

is-type level-2-only

net xx.xxxx.xxxx.xxxx.xx

address-family ipv4 unicast

metric-style wide

advertise link attributes

mpls traffic-eng level-2-only

mpls traffic-eng router-id Loopback0

router-id Loopback0

segment-routing mpls sr-prefer

!

router bgp 65001

bgp router-id 10.0.1.3

neighbor-group RR

remote-as 65002

update-source Loopback0

address-family vpnv4 unicast

!

!

neighbor 10.0.1.1

use neighbor-group RR

!

neighbor 10.0.1.2

use neighbor-group RR

vrf A

rd 65000:1

address-family ipv4 unicast

redistribute connected

allocate-label all

!

neighbor 10.0.1.5           # IP address of CE3

remote-as 61001

ebgp-multihop 255

update-source Loopback100

address-family ipv4 unicast

!

vrf B

rd 65000:2

address-family ipv4 unicast

redistribute connected

allocate-label all

!

neighbor 10.0.1.6           # IP address of CE4

remote-as 61001

ebgp-multihop 255

update-source Loopback101

address-family ipv4 unicast

!

interface GigabitEthernet1         # Link to CE3

vrf A

ipv4 address x.x.x.x 255.255.255.0

!

interface GigabitEthernet2         # Link to CE4

vrf B

ipv4 address x.x.x.x 255.255.255.0

!

Informations connexes

- Assistance et documentation techniques - Cisco Systems

- https://tools.ietf.org/html/rfc8661

- https://tools.ietf.org/html/rfc4659

- https://tools.ietf.org/html/rfc4364

- https://tools.ietf.org/html/draft-ietf-spring-segment-routing-ldp-interop-08

- https://tools.ietf.org/html/draft-ietf-isis-segment-routing-extensions-19

- https://tools.ietf.org/html/draft-ietf-spring-segment-routing-ldp-interop-15#ref-I-D.ietf-isis-segment-routing-extensions

- https://learningnetwork.cisco.com/s/question/0D53i00000Ksqy9CAB/interas-option-c