Inhalt

Einleitung

Voraussetzungen

Anforderungen

Verwendete Komponenten

Hintergrundinformationen

Konfigurieren

Netzwerkdiagramm

Konfiguration auf PE1

Konfiguration auf ABR1

Überprüfung

Fehlerbehebung

Zugehörige Informationen

Einleitung

Dieses Dokument beschreibt den Zweck von Unified Multiprotocol Label Switching (MPLS) und enthält ein Konfigurationsbeispiel für Cisco IOS® XR.

Voraussetzungen

Anforderungen

Es gibt keine spezifischen Anforderungen für dieses Dokument.

Verwendete Komponenten

Dieses Dokument bezieht sich speziell auf Cisco IOS XR, ist jedoch nicht auf eine bestimmte Softwareversion oder Hardware beschränkt.

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 Netz Live ist, überprüfen Sie, ob Sie die mögliche Auswirkung jedes möglichen Befehls verstehen.

Hintergrundinformationen

Bei Unified MPLS dreht sich alles um die Skalierung. Um ein MPLS-Netzwerk zu skalieren, in dem verschiedene Arten von Plattformen und Services in Teilen des Netzwerks vorhanden sind, ist es sinnvoll, das Netzwerk in verschiedene Bereiche aufzuteilen. Ein typisches Design führt eine Hierarchie mit einem Kern in der Mitte und einer Aggregation auf der Seite ein. Zur Skalierung können im Core verschiedene Interior Gateway Protocols (IGPs) im Vergleich zur Aggregation verwendet werden. Zur Skalierung können IGP-Präfixe nicht von einem IGP auf das andere verteilt werden. Wenn Sie die IGP-Präfixe nicht von einem IGP auf das andere IGP verteilen, sind die End-to-End Label-Switched Paths (LSPs) nicht möglich.

Für die End-to-End-Bereitstellung von MPLS-Services muss der LSP ein End-to-End-System sein. Das Ziel besteht darin, die MPLS-Services (MPLS VPN, MPLS L2VPN) beizubehalten, wie sie sind, jedoch eine größere Skalierbarkeit zu ermöglichen. Verschieben Sie hierzu einige IGP-Präfixe in das Border Gateway Protocol (BGP) (die Loopback-Präfixe der Provider Edge (PE)-Router), das die Präfixe dann End-to-End verteilt.

Konfigurieren

Hinweis: Siehe Best Practices für die Suche nach Befehlen (nur registrierte Kunden), um weitere Informationen zur Recherche nach Befehlen zu erhalten.

Netzwerkdiagramm

Abbildung 1 zeigt ein Netzwerk mit drei verschiedenen Bereichen: einem Kern und zwei Aggregationsbereichen an der Seite. Jeder Bereich führt sein eigenes IGP aus, ohne dass diese über den Area Border Router (ABR) neu verteilt werden. Der Einsatz von BGP ist erforderlich, um einen End-to-End-MPLS-LSP bereitzustellen. Das BGP versieht die Loopbacks der PE-Router mit einem Label für die gesamte Domäne und stellt einen End-to-End-LSP bereit. BGP wird zwischen den PEs und ABRs mit RFC 3107 (BGP mit der Bezeichnung Unicast) bereitgestellt, d. h. das BGP sendet das IPv4-Präfix + Label (Address Family Identifier (AFI) 1 und Subsequent Address Family Identifier (SAFI) 4).

Abbildung 1

Da der Core- und der Aggregationsteil des Netzwerks integriert sind und End-to-End-LSPs bereitgestellt werden, wird die Unified MPLS-Lösung auch als "Seamless MPLS" bezeichnet.

Hier werden keine neuen Technologien oder Protokolle verwendet, sondern nur MPLS, Label Distribution Protocol (LDP), IGP und BGP. Da die Loopback-Präfixe der PE-Router nicht von einem Teil des Netzwerks an einen anderen Teil verteilt werden sollen, müssen die Präfixe im BGP übertragen werden. Das iBGP (Internal Border Gateway Protocol) wird in einem Netzwerk verwendet, sodass die nächste Hop-Adresse der Präfixe die Loopback-Präfixe der PE-Router sind, die dem IGP in den anderen Teilen des Netzwerks nicht bekannt sind. Das bedeutet, dass die nächste Hop-Adresse nicht für die Rekursion zu einem IGP-Präfix verwendet werden kann. Der Trick besteht darin, die ABR-Router zu Routen-Reflektoren (RR) zu machen und den nächsten Hop auf sich selbst zu setzen, selbst wenn es sich um die reflektierten iBGP-Präfixe handelt.

Nur die RRs benötigen Software, um diese Architektur zu unterstützen. Da die RRs die BGP-Präfixe mit dem Next-Hop selbst ankündigen, weisen sie den BGP-Präfixen ein lokales MPLS-Label zu. Das bedeutet, dass die auf diesen End-to-End-LSPs weitergeleiteten Pakete auf Datenebene ein zusätzliches MPLS-Label im Label-Stack haben. Die RRs befinden sich im Weiterleitungspfad.

Hinweis: Über diese Architektur werden alle MPLS-Services bereitgestellt. Der Service MPLS VPN oder MPLS L2VPN wird beispielsweise zwischen den PE-Routern bereitgestellt. Der Unterschied in der Datenebene dieser Pakete besteht darin, dass sie nun drei Labels im Label-Stack haben, wohingegen sie zwei Labels im Label-Stack hatten, als Unified MPLS nicht verwendet wurde.

Es gibt zwei mögliche Szenarien:

- Der ABR definiert den nächsten Hop für die vom ABR im Aggregations-Teil des Netzwerks angekündigten (vom BGP wiedergegebenen) Präfixe nicht selbst. Aus diesem Grund muss der ABR die Loopback-Präfixe der ABRs vom Kern-IGP in das Aggregations-IGP umverteilen. In diesem Fall bleibt die Skalierbarkeit erhalten. Nur die ABR-Loopback-Präfixe (vom Core) müssen im Aggregationsteil angekündigt werden, nicht die Loopback-Präfixe der PE-Router der Remote-Aggregationsteile.

- Der ABR setzt den nächsten Hop für die vom ABR im Aggregationsteil angekündigten (vom BGP wiedergegebenen) Präfixe auf sich selbst. Aus diesem Grund muss der ABR die Loopback-Präfixe der ABRs nicht vom Core-IGP in das Aggregations-IGP umverteilen.

In beiden Szenarien setzt der ABR den nächsten Hop für die vom ABR angekündigten (vom BGP wiedergegebenen) Präfixe vom Aggregations- zum Core-Teil des Netzwerks auf sich selbst. Geschieht dies nicht, muss der ABR die Loopback-Präfixe der PEs vom Aggregations-IGP in das Core-IGP umverteilen. In diesem Fall gibt es keine Skalierbarkeit.

Es können verschiedene Konfigurationen angewendet werden, um den nächsten Hop für die reflektierten iBGP-markierten Unicast-Routen auf den ABRs auf sich selbst festzulegen.

Diese Lösungen funktionieren nicht, um RFC 3107 in Cisco IOS XR zu aktivieren:

- next-hop-self funktioniert nicht.

Beispiele:

router bgp 1

neighbor 10.100.1.1

remote-as 1

update-source Loopback0

address-family ipv4 labeled-unicast

route-reflector-client

next-hop-self

!

- RPL mit set next-hop self funktioniert nicht.

Beispiele:

router bgp 1

neighbor 10.100.1.1

remote-as 1

update-source Loopback0

address-family ipv4 labeled-unicast

route-reflector-client

route-policy nhs-ibgp-3107 out

!

route-policy nhs-ibgp-3107

set next-hop self

end-policy

- set next-hop to peer-address ist kein gültiger Operator für den Anschlusspunkt.

Beispiele:

router bgp 1

neighbor 10.100.1.1

address-family ipv4 labeled-unicast

route-policy nhs-ibgp-3107-peer out

!!% Could not find entry in list: Policy [nhs-ibgp-3107-peer]

uses 'set-to-peer-address next-hop'. 'set' is not a valid

operator for the 'next-hop' attribute at the bgp neighbor-out-dflt attach point.

!

!

!

route-policy nhs-ibgp-3107-peer

set next-hop peer-address

end-policy

- Next-Hop auf eine bestimmte Adresse in einer Routing-Richtlinie festlegen und bbgp-Richtlinie out, Erzwingungsänderungen funktionieren nicht.

Beispiele:

router bgp 1

ibgp policy out enforce-modifications

!

neighbor 10.100.1.1

remote-as 1

update-source Loopback0

address-family ipv4 labeled-unicast

route-reflector-client

route-policy nhs-ibgp-3107 out

!

!

route-policy nhs-ibgp-3107-peer

set next-hop 10.100.1.3

end-policy

Diese Lösungen funktionieren wirklich.

Stellen Sie sicher, dass Sie die ibgp-Richtlinie außer Kraft setzen - Änderungen!

Beispiele:

router bgp 1

ibgp policy out enforce-modifications

!

neighbor 10.100.1.1

remote-as 1

update-source Loopback0

address-family ipv4 labeled-unicast

route-reflector-client

next-hop-self

!

!

Beispiele:

router bgp 1

ibgp policy out enforce-modifications

!

neighbor 1.100.1.1

remote-as 1

update-source Loopback0

address-family ipv4 labeled-unicast

route-reflector-client

route-policy nhs-ibgp-3107 out

!

!

route-policy nhs-ibgp-3107

set next-hop self

end-policy

Beispiele:

router bgp 1

ibgp policy out enforce-modifications

!

neighbor 10.100.1.1

remote-as 1

update-source Loopback0

address-family ipv4 labeled-unicast

route-reflector-client

route-policy nhs-ibgp-3107 out

next-hop-self

!

!

!

route-policy nhs-ibgp-3107

set next-hop self

end-policy

Beispiele:

router bgp 1

ibgp policy out enforce-modifications

!

neighbor 10.100.1.1

remote-as 1

update-source Loopback0

address-family ipv4 labeled-unicast

route-reflector-client

route-policy nhs-ibgp-3107 out

next-hop-self

!

!

!

route-policy nhs-ibgp-3107

set next-hop 10.100.1.3

end-policy

Konfiguration auf PE1

hostname PE1

!

vrf one     <<< MPLS service is MPLS VPN

address-family ipv4 unicast

import route-target

1:1

!

export route-target

1:1

!

!

address-family ipv6 unicast

import route-target

1:1

!

export route-target

1:1

!

!

interface Loopback0

ipv4 address 10.100.1.1 255.255.255.255

!

!

interface GigabitEthernet0/0/0/0

ipv4 address 10.1.1.1 255.255.255.0

!

!

interface GigabitEthernet0/0/0/1   <<< VRF interface to CE1

vrf one

ipv4 address 10.9.1.3 255.255.255.0

!

!

router ospf 1

router-id 10.100.1.1

area 0

interface Loopback0

!

interface GigabitEthernet0/0/0/0

network point-to-point

!

!

!

router bgp 1

address-family ipv4 unicast

network 10.100.1.1/32    <<< advertise PE loopback in BGP

allocate-label all

!

address-family vpnv4 unicast

!

neighbor 10.100.1.3

remote-as 1

update-source Loopback0

address-family ipv4 labeled-unicast

!

!

neighbor 10.100.1.7     <<< vpnv4 iBGP session to PE2

remote-as 1

update-source Loopback0

address-family vpnv4 unicast

!

!

vrf one

rd 1:1

address-family ipv4 unicast

!

neighbor 10.9.1.2    <<< eBGP session to CE1

remote-as 65001

address-family ipv4 unicast

route-policy pass in

route-policy pass out

!

!

!

!

mpls ldp

mldp

logging notifications

address-family ipv4

!

!

router-id 10.100.1.1

address-family ipv4

!

interface GigabitEthernet0/0/0/0

address-family ipv4

!

!

!

Konfiguration auf ABR1

hostname ABR1

!

interface Loopback0

ipv4 address 10.100.1.3 255.255.255.255

!

!

interface GigabitEthernet0/0/0/0

ipv4 address 10.1.3.3 255.255.255.0

!

interface GigabitEthernet0/0/0/1

ipv4 address 10.1.2.3 255.255.255.0

!

route-policy nhs-ibgp-3107

set next-hop 10.100.1.3    <<< set next hop to loopback

end-policy

!

route-policy connected-into-ospf2

if destination in (10.100.1.3/32) then

pass

endif

end-policy

!

router ospf 1

router-id 10.100.1.3

area 0

interface Loopback0

!

interface GigabitEthernet0/0/0/1

network point-to-point

!

!

!

router ospf 2

redistribute connected route-policy connected-into-ospf2

area 0

interface GigabitEthernet0/0/0/0

network point-to-point

!

!

!

router bgp 1

ibgp policy out enforce-modifications

address-family ipv4 unicast

allocate-label all

!

neighbor 10.100.1.1     <<< iBGP neighbor PE1

remote-as 1

update-source Loopback0

address-family ipv4 labeled-unicast

route-reflector-client

route-policy nhs-ibgp-3107 out

next-hop-self

!

!

neighbor 10.100.1.5      <<< iBGP neighbor ABR2

remote-as 1

update-source Loopback0

address-family ipv4 labeled-unicast

route-policy nhs-ibgp-3107 out

next-hop-self

!

!

!

mpls ldp

mldp

address-family ipv4

!

!

router-id 10.100.1.3

interface GigabitEthernet0/0/0/0

address-family ipv4

discovery transport-address interface

!

!

interface GigabitEthernet0/0/0/1

address-family ipv4

!

!

Hinweis: Allozierungs-Label-Alle- oder Allozierungs-Label-Weiterleitungsrichtlinie ist erforderlich. Andernfalls verfügen die bezeichneten Unicast-Routen nicht über ein erforderliches lokales Label, da der ABR der Next-Hop für die vom iBGP reflektierten Routen ist.

Hinweis: Eine Neuverteilung des Core-IGP (OSPF 2) auf das Aggregations-IGP (OSPF 1 oder OSPF 3) oder umgekehrt wird nicht durchgeführt. Das Loopback-Präfix des RR muss jedoch auch im Aggregations-IGP bekannt sein, damit das BGP auf dem PE-Router eine Peer-Verbindung mit dem Loopback des ABR/RR herstellen kann. Dazu wird die Neuverteilung der verbundenen Routen in das Aggregations-IGP mit RPL durchgeführt. Die neu verteilten verbundenen Routen sind auf das Loopback-Präfix des ABR mit RPL beschränkt.

Überprüfung

Abbildung 2 zeigt die Funktionsweise der Kontrollebene:

Abbildung 2

Abbildung 3 zeigt die MPLS-Labelankündigungen:

Abbildung 3

In Abbildung 4 sehen Sie, wie Sie die Paketweiterleitung überprüfen:

Abbildung 4

Auf diese Weise werden Pakete von PE1 an PE2 weitergeleitet. Das Loopback-Präfix von PE2 lautet 10.100.1.7/32, sodass das Präfix von Interesse ist.

RP/0/0/CPU0:PE1#traceroute

Protocol [ipv4]:

Target IP address: 10.100.1.7

Source address: 10.100.1.1

Numeric display? [no]:

Timeout in seconds [3]:

Probe count [3]:

Minimum Time to Live [1]:

Maximum Time to Live [30]:

Port Number [33434]:

Loose, Strict, Record, Timestamp, Verbose[none]:

Type escape sequence to abort.

Tracing the route to 10.100.1.7

1  10.1.1.2 [MPLS: Labels 24000/24005 Exp 0] 439 msec  119 msec  109 msec

2  10.1.2.3 [MPLS: Label 24005 Exp 0] 109 msec  109 msec  109 msec

3  10.1.3.4 [MPLS: Labels 24001/24003 Exp 0] 99 msec  99 msec  149 msec

4  10.1.4.5 [MPLS: Label 24003 Exp 0] 119 msec  119 msec  99 msec

5  10.1.5.6 [MPLS: Label 24001 Exp 0] 109 msec  139 msec  99 msec

6  10.1.6.7 109 msec  *  109 msec

Label 24000 ist das von P2 für das Präfix 10.100.1.3/32 bezogene LDP-Label. Label 24005 ist das BGP RFC 3107-Label, das für das Präfix 10.100.1.7/32 ermittelt wurde.

RP/0/0/CPU0:PE1#show route 10.100.1.7/32

Routing entry for 10.100.1.7/32

Known via "bgp 1", distance 200, metric 0, [ei]-bgp, type internal

BIER rid=0x0, flags=0x0, count=0

Installed May 27 02:52:07.184 for 00:08:52

Routing Descriptor Blocks

10.100.1.3, from 10.100.1.3      <<< next-hop is ABR1

Route metric is 0

No advertising protos.

RP/0/0/CPU0:PE1#show cef 10.100.1.7/32

10.100.1.7/32, version 89, internal 0x1000001 0x0 (ptr 0xa1470f74)

[1], 0x0 (0xa1456614), 0xa08 (0xa16181e0)

Updated May 27 02:52:07.203

Prefix Len 32, traffic index 0, precedence n/a, priority 4

via 10.100.1.3, 3 dependencies, recursive [flags 0x6000]

path-idx 0 NHID 0x0 [0xa16806f4 0x0]

recursion-via-/32

next hop 10.100.1.3 via 24001/0/21

local label 24003

next hop 10.1.1.2/32 Gi0/0/0/0    labels imposed {24000 24005}

RP/0/0/CPU0:PE1#show bgp ipv4 unicast labels

BGP router identifier 10.100.1.1, local AS number 1

BGP generic scan interval 60 secs

Non-stop routing is enabled

BGP table state: Active

Table ID: 0xe0000000   RD version: 44

BGP main routing table version 44

BGP NSR Initial initsync version 2 (Reached)

BGP NSR/ISSU Sync-Group versions 0/0

BGP scan interval 60 secs

Status codes: s suppressed, d damped, h history, * valid, > best

i - internal, r RIB-failure, S stale, N Nexthop-discard

Origin codes: i - IGP, e - EGP, ? - incomplete

Network            Next Hop        Rcvd Label      Local Label

*> 10.100.1.1/32      0.0.0.0         nolabel         3

*>i10.100.1.7/32      10.100.1.3      24005           24003

Processed 2 prefixes, 2 paths

Es gibt Penultimate-Hop Popping (PHP) in Richtung ABR1.

RP/0/0/CPU0:P2#show mpls forwarding labels 24000

Local  Outgoing    Prefix             Outgoing     Next Hop        Bytes

Label  Label       or ID              Interface                    Switched

------ ----------- ------------------ ------------ --------------- ------------

24000  Pop         10.100.1.3/32      Gi0/0/0/1    10.1.2.3        694765

Label 24005 wird durch Label 24003 auf ABR1 ersetzt.

RP/0/0/CPU0:ABR1#show bgp ipv4 unicast labels

BGP router identifier 10.100.1.3, local AS number 1

BGP generic scan interval 60 secs

Non-stop routing is enabled

BGP table state: Active

Table ID: 0xe0000000   RD version: 60

BGP main routing table version 60

BGP NSR Initial initsync version 2 (Reached)

BGP NSR/ISSU Sync-Group versions 0/0

BGP scan interval 60 secs

Status codes: s suppressed, d damped, h history, * valid, > best

i - internal, r RIB-failure, S stale, N Nexthop-discard

Origin codes: i - IGP, e - EGP, ? - incomplete

Network            Next Hop        Rcvd Label      Local Label

*>i10.100.1.1/32      10.100.1.1      3               24003

*>i10.100.1.7/32      10.100.1.5      24003           24005

Processed 2 prefixes, 2 paths

RP/0/0/CPU0:ABR1#show mpls forwarding labels 24005

Wed May 27 04:08:24.255 UTC

Local  Outgoing    Prefix             Outgoing     Next Hop        Bytes

Label  Label       or ID              Interface                    Switched

------ ----------- ------------------ ------------ --------------- ------------

24005  24003       10.100.1.7/32                   10.100.1.5      6347

Es gibt PHP von P1 bis ABR2.

RP/0/0/CPU0:P1#show mpls forwarding labels 24001

Local  Outgoing    Prefix             Outgoing     Next Hop        Bytes

Label  Label       or ID              Interface                    Switched

------ ----------- ------------------ ------------ --------------- ------------

24001  Pop         10.100.1.5/32      Gi0/0/0/1    10.1.4.5        348835

Das BGP-Label für die RFC 3107-Route 10.100.1.7/32, die ABR2 vom PE2 erhält, lautet 3. Dies ist das implizite Null-Label, das PHP angibt.

RP/0/0/CPU0:ABR2#show bgp ipv4 unicast labels

BGP router identifier 10.100.1.5, local AS number 1

BGP generic scan interval 60 secs

Non-stop routing is enabled

BGP table state: Active

Table ID: 0xe0000000   RD version: 47

BGP main routing table version 47

BGP NSR Initial initsync version 2 (Reached)

BGP NSR/ISSU Sync-Group versions 0/0

BGP scan interval 60 secs

Status codes: s suppressed, d damped, h history, * valid, > best

i - internal, r RIB-failure, S stale, N Nexthop-discard

Origin codes: i - IGP, e - EGP, ? - incomplete

Network            Next Hop        Rcvd Label      Local Label

*>i10.100.1.1/32      10.100.1.3      24003           24005

*>i10.100.1.7/32      10.100.1.7      3               24003

Processed 2 prefixes, 2 paths

Label 24003 wird durch Label 24001 auf ABR2 ersetzt.

RP/0/0/CPU0:ABR2#show mpls forwarding labels 24003

Local  Outgoing    Prefix             Outgoing     Next Hop        Bytes

Label  Label       or ID              Interface                    Switched

------ ----------- ------------------ ------------ --------------- ------------

24003  24001       10.100.1.7/32      Gi0/0/0/0    10.1.5.6        403676

Es gibt PHP von P3 bis PE2.

RP/0/0/CPU0:P3#show mpls forwarding labels 24001

Local  Outgoing    Prefix             Outgoing     Next Hop        Bytes

Label  Label       or ID              Interface                    Switched

------ ----------- ------------------ ------------ --------------- ------------

24001  Pop         10.100.1.7/32      Gi0/0/0/1    10.1.6.7        685191

RP/0/0/CPU0:PE2#show bgp ipv4 unicast labels

BGP router identifier 10.100.1.7, local AS number 1

BGP generic scan interval 60 secs

Non-stop routing is enabled

BGP table state: Active

Table ID: 0xe0000000   RD version: 42

BGP main routing table version 42

BGP NSR Initial initsync version 2 (Reached)

BGP NSR/ISSU Sync-Group versions 0/0

BGP scan interval 60 secs

Status codes: s suppressed, d damped, h history, * valid, > best

i - internal, r RIB-failure, S stale, N Nexthop-discard

Origin codes: i - IGP, e - EGP, ? - incomplete

Network            Next Hop        Rcvd Label      Local Label

*>i10.100.1.1/32      10.100.1.5      24005           24004

*> 10.100.1.7/32      0.0.0.0         nolabel         3

Processed 2 prefixes, 2 paths

Fehlerbehebung

Für diese Konfiguration sind derzeit keine spezifischen Informationen zur Fehlerbehebung verfügbar.

Zugehörige Informationen

- Nahtlose MPLS-Architektur

- Technischer Support und Dokumentation für Cisco Systeme