Inhalt

Einleitung

Voraussetzung

Anforderungen

Verwendete Komponenten

Hintergrundinformationen

Problem

Lösung

Globaler SR-Block

SR-Zuordnungsserver

Zuordnungsclient

Topologie - Option C für die AS-Verbindung (mit Routen-Reflektoren)

Kurzübersicht des Topologiediagramms

IP-Adressierungsschema

Konfigurationen

Zugehörige Informationen

Einleitung

In diesem Dokument wird beschrieben, wie eine teilweise SR-Bereitstellung verwendet werden kann, um LDP-basierten Datenverkehr von SR-Vorteilen zu profitieren. Dies gilt auch für eine mögliche Anwendung von SR bei domänenübergreifenden MPLS-Anwendungsfällen.

Voraussetzung

Anforderungen

Cisco empfiehlt, dass Sie über Kenntnisse in folgenden Bereichen verfügen:

- Segment-Routing

- MPLS

- Inter-AS

- LDP

Verwendete Komponenten

Die Informationen in diesem Dokument basierend auf folgenden Software- und Hardware-Versionen:

- Unterstützendes Segment-Routing

- NCS 5500, ASR 9000

Die Informationen in diesem Dokument beziehen sich auf Geräte in einer speziell eingerichteten Testumgebung. Alle Geräte, die in diesem Dokument benutzt wurden, begannen mit einer gelöschten (Nichterfüllungs) Konfiguration. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die möglichen Auswirkungen aller Befehle verstehen.

Hintergrundinformationen

In diesem Dokument werden die Mechanismen erläutert, über die SR mit LDP zusammenarbeitet, wenn sowohl SR-fähige als auch nicht SR-fähige Router im selben Netzwerk und genauer in derselben Routing-Domäne vorhanden sind.

Ein Multicast Control Plane Client (MCC), der an einem Knoten betrieben wird, muss sicherstellen, dass das von ihm in der MPLS-Datenebene des Knotens installierte eingehende Label eindeutig zugewiesen wurde und Segment Routing den Segment Routing Global Block (SRGB) für die Label-Zuweisung verwendet. Durch die Verwendung des SRGB kann SR mit einem beliebigen anderen MCC koexistieren.

Tipp: Diese Informationen helfen Ihnen bei der Inter-AS-Lösung für MPLS SR und MPLS LDP mit Option C.

Problem

Die SR-Bereitstellung in einer heterogenen Umgebung mit der SR MPLS-Steuerungsebene ist mit der MPLS LDP-Steuerungsebene unter Verwendung der in RFC 4364 definierten Option C für die AS-Verbindung kompatibel.

In diesem Dokument wird eine Methode beschrieben, mit der ein Service Provider-Netzwerk unter Verwendung von MPLS LDP und SR MPLS ein virtuelles privates Netzwerk unter Verwendung von Option C für die AS-Verbindung bereitstellen kann.

Lösung

Ein kurzer Überblick über Option C für die AS-Verbindung:

Option C für die AS-Verbindung ist die dritte Option für die Verbindung von Multi-AS-Backbones, die in RFC 4364 behandelt wird. Es handelt sich hierbei um die skalierbarste Option der drei Lösungen, und es gibt eigene Anwendungsszenarien, die bekannt sein müssen, um dieses Design korrekt anwenden zu können.

Option C ist ein guter Kandidat, da sie skalierbar ist. ASBRs übertragen keine VPN-Routen und übernehmen lediglich die Verteilung von IPv4-Routen mit Labels der PEs innerhalb ihres eigenen AS.

Zur Verbesserung der Skalierbarkeit werden alle VPN-Routen (externen Routen) zwischen PEs oder RRs über eine MP-EBGP VPNv4-Sitzung transportiert. Wenn RR zum Austausch der externen Routen verwendet wird, muss der Next-Hop der VPNv4-Routen beibehalten werden.

Der ASBR verwendet EBGP zum Austausch der internen PE-Routing-Informationen zwischen den AS (interne Routen). Diese internen Routen entsprechen den BGP Next-Hops der externen Routen, die über die MP-EBGP-Multi-Hop-Sitzung zwischen PEs oder RRs gemeldet werden. Die von den ASBRs gemeldeten internen Routen können zum Einrichten der MP-EBGP-Sitzungen zwischen PEs verwendet werden und ermöglichen die LSP-Einrichtung vom Eingangs- zum Ausgangs-PE.

Option C ist vom Standpunkt der Skalierbarkeit aus eine sehr gute Lösung und eignet sich für die gleichen SP-Multi-AS-Netzwerke.

Ein kurzer Überblick über Segment Routing:

Segment Routing (SR) nutzt die Quell-Routing- und Tunneling-Paradigmen. Ein Knoten steuert ein Paket durch einen gesteuerten Satz von Anweisungen, die als Segmente bezeichnet werden, indem dem Paket ein SR-Header vorangestellt wird. Ein Segment kann eine beliebige Anweisung darstellen, topologisch oder dienstbasiert. SR ermöglicht das Durchsetzen eines Datenflusses über einen beliebigen topologischen Pfad und eine beliebige Servicekette, während nur am Eingangsknoten der SR-Domäne ein Status pro Datenfluss aufrechterhalten wird. Die Segment-Routing-Architektur kann direkt auf die MPLS-Datenebene angewendet werden, ohne dass Änderungen an der Weiterleitungsebene erforderlich sind. Es sind geringfügige Erweiterungen der vorhandenen Link-State-Routing-Protokolle erforderlich. Segment-Routing kann auch mit einem neuen Typ von Routing-Erweiterungs-Header auf IPv6 angewendet werden.

Ein Segment wird als MPLS-Label codiert. Eine geordnete Liste von Segmenten wird als Stapel von Labels codiert. Das zu verarbeitende Segment befindet sich am oberen Rand des Stacks. Nach Abschluss eines Segments wird das zugehörige Label aus dem Stapel entfernt.  Beim Segment-Routing werden die MPLS-Datenebenenvorgänge gemäß der traditionellen MPLS-Weiterleitung per Push, Swap und Pop ausgeführt. Die folgenden Segmenttypen werden in Segment-Routing definiert:

- Präfixsegment

- Adjacency-Segment

- BGP-Peering-Segment

- BGP-Präfixsegment

Globaler SR-Block

Der Segment Routing Global Block (SRGB) ist der Bereich der Label-Werte, die für das Segment-Routing im LSD beibehalten werden. Die SRGB-Label-Werte werden SR-fähigen Knoten als Prefix Segment Identifiers (SIDs) zugewiesen und haben in der gesamten Domäne globale Bedeutung.

- Der SR-Labelbereich darf NICHT unter 16.000 beginnen. Der globale Standardblock für SR ist 16.000 bis 24.000.

- Die SRGB-Konfiguration ist NICHT adressenfamilienspezifisch, da die in definierte "SR-Capabilities Sub-TLV" der Routerfähigkeits-TLV nicht adressenfamilienspezifisch ist.

- Wenn CLI zu einer Vergrößerung oder Verschiebung des Standard-SRGB führt, ist es in Ordnung, ein Neuladen zu verlangen, aber nur, wenn es Clients mit Labels im neuen Bereich gibt.

- Vor der Konfiguration von SRGB muss der Administrator sicherstellen, dass ein Teil der Labelbasis, der für Segment-Routing konfiguriert wird, kostenlos ist und nicht von anderen MPLS LSD-Clients verwendet wird.

SR-Zuordnungsserver

Der Zuordnungsserver weist einigen oder allen bekannten Präfixen zentral Präfix-SIDs zu. Ein Router muss als Zuordnungsserver, Zuordnungsclient oder als beides fungieren können.

- Ein Mapping-Server ist ein Kontrollebenenmechanismus, dessen Position mit einem BGP-Routen-Reflektor vergleichbar ist.

- Ermöglicht dem Benutzer, nicht überlappende SID-Zuordnungseinträge zu konfigurieren, um die Präfix-SIDs für einige oder alle Präfixe anzugeben.

- ISIS meldet die lokale SID-Zuordnungsrichtlinie in 'SID/Label Binding TLV'

- Der Mapping-Server muss ausfallsicher sein, Redundanz muss gegeben sein

Hauptfunktionen des Zuordnungsservers sind:

- Anzeigen von Präfix-zu-SID-Zuordnungen im IGP im Auftrag anderer nicht SR-fähiger Knoten Auf dem Zuordnungsserver werden Präfix-zu-SID-Zuordnungen konfiguriert.

- Ermöglicht SR-fähigen Knoten die Zusammenarbeit mit (nicht SR-fähigen) LDP-Knoten. Für SR/LDP-Interworking ist ein Zuordnungsserver erforderlich.

Zuordnungsclient

- Empfängt und analysiert remote empfangene SID/Label Binding TLV, um Remote-SID-Zuordnungseinträge zu erstellen. Erstellen Sie mithilfe der remote erfassten und lokal konfigurierten Zuordnungseinträge die Richtlinie für die nicht überlappende, konsistente aktive Zuordnung.

- Die IGP-Instanz verwendet die aktive Zuordnungsrichtlinie, um die Präfix-SIDs einiger oder aller Präfixe (neu) zu berechnen.

Dieser Abschnitt hilft Ihnen, den L3 Virtual Private Network (VPN)-Service zwischen Anbieternetzwerken mit SR-fähigem Netzwerk-Peering/Verbindungen mit Nicht-SR-fähigen Netzwerken zu verstehen und zu konfigurieren. In diesem Abschnitt erfahren Sie, wie Sie die in RFC "4364" definierte Option C konfigurieren und Anwendungsfälle auswählen.

Topologie - Option C für die AS-Verbindung (mit Routen-Reflektoren)

Kurzübersicht des Topologiediagramms

Am oberen Rand des Topologiediagramms befindet sich ein SR-fähiges Netzwerk aus Routen-Reflektoren, Provider Edge-Routern und Customer Edge-Routern.

Die Edge-Router CE1 und CE2 des Kunden haben VRF A bzw. VRF B. Dies gehört zu AS 65002.

Unten im Topologiediagramm sehen wir ein LDP-fähiges Netzwerk aus Routen-Reflektoren, Provider Edge-Routern und Kunden-Edge-Routern.

Die Edge-Router CE3 und CE4 des Kunden haben VRF A bzw. VRF B. Dies gehört zu AS65001.

VRF A und VRF B an beiden Enden der SR- und LDP-fähigen Netzwerke müssen miteinander kommunizieren.

IP-Adressierungsschema

Hostname

IP-Adresse

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

Konfigurationen

Es werden die Konfigurationen der Geräte beschrieben.

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

!

Zugehörige Informationen

- Technischer Support und Dokumentation für Cisco Systeme

- 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