Dieses Dokument beschreibt den Zweck von Unified Multiprotocol Label Switching (MPLS) und enthält ein Konfigurationsbeispiel.
Für dieses Dokument bestehen keine speziellen Anforderungen.
Dieses Dokument ist nicht auf bestimmte Software- und Hardwareversionen beschränkt.
Die Informationen in diesem Dokument wurden von den Geräten in einer bestimmten Laborumgebung erstellt. Alle in diesem Dokument verwendeten Geräte haben mit einer leeren (Standard-)Konfiguration begonnen. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die potenziellen Auswirkungen eines Befehls verstehen.
Unified MPLS dient ausschließlich der Skalierung. Zur Skalierung eines MPLS-Netzwerks, in dem in Teilen des Netzwerks verschiedene Arten von Plattformen und Services vorhanden sind, ist es sinnvoll, das Netzwerk in verschiedene Bereiche aufzuteilen. Ein typisches Design führt eine Hierarchie ein, die einen Kern in der Mitte mit Aggregation auf der Seite hat. Zur Skalierung können im Core unterschiedliche Interior Gateway Protocols (IGPs) im Vergleich zur Aggregation vorhanden sein. Zur Skalierung können die 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.
Um die MPLS-Services durchgängig bereitstellen zu können, muss der LSP durchgängig sein. Das Ziel besteht darin, die MPLS-Services (MPLS VPN, MPLS L2VPN) unverändert beizubehalten, jedoch eine höhere Skalierbarkeit zu gewährleisten. Hierzu verschieben Sie einige IGP-Präfixe in das Border Gateway Protocol (BGP) (die Loopback-Präfixe der Provider Edge (PE)-Router), das die Präfixe dann durchgängig verteilt.
Abbildung 1 zeigt ein Netzwerk mit drei verschiedenen Bereichen: ein Kern und zwei Aggregationsbereiche nebeneinander. Jeder Bereich führt sein eigenes IGP aus, ohne dass die Verteilung zwischen diesen Bereichen auf den Area Border Router (ABR) erfolgt. Zur Bereitstellung eines End-to-End-MPLS-LSP ist die Verwendung von BGP erforderlich. Das BGP kündigt die Loopbacks der PE-Router mit einem Label über die gesamte Domäne an und stellt einen End-to-End-LSP bereit. BGP wird zwischen den PEs und ABRs mit RFC 3107 bereitgestellt, d. h., das BGP sendet das IPv4-Präfix +-Label (AFI/SAFI 1/4).
Da die Kern- und Aggregationsteile des Netzwerks integriert sind und End-to-End-LSPs bereitgestellt werden, wird die Unified MPLS-Lösung auch als "Nahtloses MPLS" bezeichnet.
Hier werden keine neuen Technologien oder Protokolle verwendet, sondern nur MPLS, Label Distribution Protocol (LDP), IGP und BGP. Da Sie die Loopback-Präfixe der PE-Router nicht von einem Teil des Netzwerks in einen anderen Teil verteilen möchten, müssen Sie die Präfixe im BGP übernehmen. Das interne Border Gateway Protocol (iBGP) wird in einem Netzwerk verwendet, sodass die nächste Hop-Adresse der Präfixe die Loopback-Präfixe der PE-Router sind, die vom 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 Routen-Reflektoren (RR) für ABR-Router zu erstellen und den nächsten Hop selbst festzulegen, selbst für die reflektierten iBGP-Präfixe. Damit dies funktioniert, ist ein neuer Knopf erforderlich.
Nur die RRs benötigen neuere Software, um diese Architektur zu unterstützen. Da die RRs die BGP-Präfixe mit dem nächsten Hop selbst melden, weisen sie den BGP-Präfixen ein lokales MPLS-Label zu. Das bedeutet, dass die auf diesen End-to-End-LSPs weitergeleiteten Pakete auf der Datenebene im Label-Stack über ein zusätzliches MPLS-Label verfügen. Die RRs befinden sich im Weiterleitungspfad.
Es gibt zwei mögliche Szenarien:
In beiden Szenarien legt der ABR den nächsten Hop für die Präfixe fest, die vom ABR aus dem Aggregationsteil des Netzwerks in den Core-Teil angekündigt (dargestellt durch BGP) werden. Andernfalls muss der ABR die Loopback-Präfixe der PEs vom Aggregation IGP auf das Core-IGP verteilen. Ist dies der Fall, gibt es keine Skalierbarkeit.
Um den nächsten Hop für reflektierte iBGP-Routen auf sich selbst festzulegen, müssen Sie den Befehl neighbor x.x.x.x next-hop-self all konfigurieren.
Dies ist die Konfiguration der PE-Router und ABRs für Szenario 2.
PE1
interface Loopback0
ip address 10.100.1.4 255.255.255.255
!
interface Ethernet1/0
no ip address
xconnect 10.100.1.5 100 encapsulation mpls
!
router ospf 2
network 10.2.0.0 0.0.255.255 area 0
network 10.100.1.4 0.0.0.0 area 0
!
router bgp 1
bgp log-neighbor-changes
network 10.100.1.4 mask 255.255.255.255
neighbor 10.100.1.1 remote-as 1
neighbor 10.100.1.1 update-source Loopback0
neighbor 10.100.1.1 send-label
RR1
interface Loopback0
ip address 10.100.1.1 255.255.255.255
router ospf 1
network 10.1.0.0 0.0.255.255 area 0
network 10.100.1.1 0.0.0.0 area 0
!
router ospf 2
redistribute ospf 1 subnets match internal route-map ospf1-into-ospf2
network 10.2.0.0 0.0.255.255 area 0
!
router bgp 1
bgp log-neighbor-changes
neighbor 10.100.1.2 remote-as 1
neighbor 10.100.1.2 update-source Loopback0
neighbor 10.100.1.2 next-hop-self all
neighbor 10.100.1.2 send-label
neighbor 10.100.1.4 remote-as 1
neighbor 10.100.1.4 update-source Loopback0
neighbor 10.100.1.4 route-reflector-client
neighbor 10.100.1.4 next-hop-self all
neighbor 10.100.1.4 send-label
ip prefix-list prefix-list-ospf1-into-ospf2 seq 5 permit 10.100.1.1/32
route-map ospf1-into-ospf2 permit 10
match ip address prefix-list prefix-list-ospf1-into-ospf2
RR2
interface Loopback0
ip address 10.100.1.2 255.255.255.255
router ospf 1
network 10.1.0.0 0.0.255.255 area 0
network 10.100.1.2 0.0.0.0 area 0
!
router ospf 3
redistribute ospf 1 subnets match internal route-map ospf1-into-ospf3
network 10.3.0.0 0.0.255.255 area 0
!
router bgp 1
bgp log-neighbor-changes
neighbor 10.100.1.1 remote-as 1
neighbor 10.100.1.1 update-source Loopback0
neighbor 10.100.1.1 next-hop-self all
neighbor 10.100.1.1 send-label
neighbor 10.100.1.5 remote-as 1
neighbor 10.100.1.5 update-source Loopback0
neighbor 10.100.1.5 route-reflector-client
neighbor 10.100.1.5 next-hop-self all
neighbor 10.100.1.5 send-label
ip prefix-list prefix-list-ospf1-into-ospf3 seq 5 permit 10.100.1.2/32
route-map ospf1-into-ospf3 permit 10
match ip address prefix-list prefix-list-ospf1-into-ospf3
PE2
interface Loopback0
ip address 10.100.1.5 255.255.255.255
interface Ethernet1/0
no ip address
xconnect 10.100.1.4 100 encapsulation mpls
router ospf 3
network 10.3.0.0 0.0.255.255 area 0
network 10.100.1.5 0.0.0.0 area 0
router bgp 1
bgp log-neighbor-changes
network 10.100.1.5 mask 255.255.255.255
neighbor 10.100.1.2 remote-as 1
neighbor 10.100.1.2 update-source Loopback0
neighbor 10.100.1.2 send-label
In Abbildung 2 wird der Betrieb der Kontrollebene überprüft.
In Abbildung 3 können Sie die Meldungen für das MPLS-Label überprüfen.
Zur Überprüfung der Paketweiterleitung siehe Abbildung 4.
Auf diese Weise werden Pakete von PE1 an PE2 weitergeleitet. Das Loopback-Präfix für PE2 lautet 10.100.1.5/32, sodass das Präfix von Interesse ist.
PE1#show ip route 10.100.1.5
Routing entry for 10.100.1.5/32
Known via "bgp 1", distance 200, metric 0, type internal
Last update from 10.100.1.1 00:11:12 ago
Routing Descriptor Blocks:
* 10.100.1.1, from 10.100.1.1, 00:11:12 ago
Route metric is 0, traffic share count is 1
AS Hops 0
MPLS label: 22
PE1#show ip cef 10.100.1.5
10.100.1.5/32
nexthop 10.2.2.6 Ethernet0/0 label 19 22
PE1#show ip cef 10.100.1.5 detail
10.100.1.5/32, epoch 0, flags rib defined all labels
1 RR source [no flags]
recursive via 10.100.1.1 label 22
nexthop 10.2.2.6 Ethernet0/0 label 19
PE1#show bgp ipv4 unicast labels
Network Next Hop In label/Out label
10.100.1.4/32 0.0.0.0 imp-null/nolabel
10.100.1.5/32 10.100.1.1 nolabel/22
P1#show mpls forwarding-table labels 19 detail
Local Outgoing Prefix Bytes Label Outgoing Next Hop
Label Label or Tunnel Id Switched interface
19 Pop Label 10.100.1.1/32 603468 Et1/0 10.2.1.1
MAC/Encaps=14/14, MRU=1504, Label Stack{}
AABBCC000101AABBCC0006018847
No output feature configured
RR1#show mpls forwarding-table labels 22 detail
Local Outgoing Prefix Bytes Label Outgoing Next Hop
Label Label or Tunnel Id Switched interface
22 21 10.100.1.5/32 575278 Et0/0 10.1.1.3
MAC/Encaps=14/22, MRU=1496, Label Stack{17 21}
AABBCC000300AABBCC0001008847 0001100000015000
No output feature configured
RR1#show bgp ipv4 unicast labels
Network Next Hop In label/Out label
10.100.1.4/32 10.100.1.4 19/imp-null
10.100.1.5/32 10.100.1.2 22/21
P3#show mpls forwarding-table labels 17 detail
Local Outgoing Prefix Bytes Label Outgoing Next Hop
Label Label or Tunnel Id Switched interface
17 Pop Label 10.100.1.2/32 664306 Et1/0 10.1.2.2
MAC/Encaps=14/14, MRU=1504, Label Stack{}
AABBCC000201AABBCC0003018847
No output feature configured
RR2#show mpls forwarding-table labels 21 detail
Local Outgoing Prefix Bytes Label Outgoing Next Hop
Label Label or Tunnel Id Switched interface
21 17 10.100.1.5/32 615958 Et0/0 10.3.1.7
MAC/Encaps=14/18, MRU=1500, Label Stack{17}
AABBCC000700AABBCC0002008847 00011000
No output feature configured
RR2#show bgp ipv4 unicast labels
Network Next Hop In label/Out label
10.100.1.4/32 10.100.1.1 22/19
10.100.1.5/32 10.100.1.5 21/imp-null
P2#show mpls forwarding-table labels 17 detail
Local Outgoing Prefix Bytes Label Outgoing Next Hop
Label Label or Tunnel Id Switched interface
17 Pop Label 10.100.1.5/32 639957 Et1/0 10.3.2.5
MAC/Encaps=14/14, MRU=1504, Label Stack{}
AABBCC000500AABBCC0007018847
No output feature configured
PE1#trace
Protocol [ip]:
Target IP address: 10.100.1.5
Source address: 10.100.1.4
DSCP Value [0]:
Numeric display [n]:
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.5
VRF info: (vrf in name/id, vrf out name/id)
1 10.2.2.6 [MPLS: Labels 19/22 Exp 0] 3 msec 3 msec 3 msec
2 10.2.1.1 [MPLS: Label 22 Exp 0] 3 msec 3 msec 3 msec
3 10.1.1.3 [MPLS: Labels 17/21 Exp 0] 3 msec 3 msec 2 msec
4 10.1.2.2 [MPLS: Label 21 Exp 0] 2 msec 3 msec 2 msec
5 * * *
6 10.3.2.5 4 msec * 4 msec
P2#show ip route 10.100.1.4
% Subnet not in table
Für diese Konfiguration sind derzeit keine spezifischen Informationen zur Fehlerbehebung verfügbar.
Überarbeitung | Veröffentlichungsdatum | Kommentare |
---|---|---|
1.0 |
03-Jul-2013 |
Erstveröffentlichung |