MPLS-Unterstützung in cRPD
Grundlegendes zur MPLS-Unterstützung in cRPD
Die MPLS-Konfiguration (Multiprotocol Label Switching) wird in cRPD für die Weiterleitung von Paketen an das Ziel im MPLS-Netzwerk unterstützt.
Bei MPLS führt nur das erste Gerät eine Routing-Suche durch. Anstatt den nächsten Hop zu finden, findet das Gerät das endgültige Ziel zusammen mit einem Pfad zu diesem Ziel. Der Pfad eines MPLS-Pakets wird als Label-Switched-Pfad (LSP) bezeichnet. Sprachdienstleister sind unidirektionale Routen durch ein Netzwerk oder ein autonomes System (AS). MPLS-Router innerhalb eines AS bestimmen Pfade durch ein Netzwerk durch den Austausch von MPLS-Traffic-Engineering-Informationen. Über diese Pfade leiten die Router den Datenverkehr entlang einer festgelegten Route durch das Netzwerk. Anstatt wie beim IP-Routing den nächsten Hop entlang des Pfads auszuwählen, ist jeder Router dafür verantwortlich, das Paket an eine vorher festgelegte Adresse des nächsten Hops weiterzuleiten.
Router, die Teil des LSP sind, sind Label-Switching-Router (LSRs). Ein MPLS-LSP wird mithilfe statischer LSPs eingerichtet. Für einen statischen LSP muss jeder Router entlang des Pfads explizit konfiguriert werden. Sie müssen den Pfad und die zugehörigen Bezeichnungswerte manuell konfigurieren.
cRPD unterstützt nur eine begrenzte Anzahl von MPLS-Funktionen von Junos OS. Sie können MPLS interface
, , , label-history
ipv6-tunneling
label-range
und static-label-switched-path
in der cRPD-CLI unter der edit protocols mpls
Hierarchie konfigurieren.
Supported Features
BGP-Konfiguration
MPLS mit PRPD-API
Unicast-Konfiguration mit BGP-Bezeichnung
Siehe auch
Beispiel: Konfigurieren von Static Label Switched Paths für MPLS in cRPD
Dieses Beispiel zeigt, wie der VPN-Datenverkehr durch einen v4 MPLS-Tunnel zwischen PEs fließt, indem BGP- und MPLS-Pfade mit statischer Bezeichnung konfiguriert werden.
Anforderungen
In diesem Beispiel werden die folgenden Hardware- und Softwarekomponenten verwendet:
Ubuntu-Softwareversion 18.04
Linux-Kernel Version 4.5 oder höher
cRPD-Software-Version 19.4R1 oder höher
Bevor Sie einen statischen LSP für die MPLS-Weiterleitung konfigurieren, müssen Sie die grundlegenden Komponenten installieren:
MPLS-Module auf dem Hostbetriebssystem, auf dem die cRPD-Instanz erstellt wird. Weitere Informationen finden Sie unter Konfigurieren von Einstellungen auf dem Hostbetriebssystem.
Provider-Edge-Router (PE1), ein Provider-Router (P) und Provider-Edge-Router (PE2). Informationen zur Installation finden Sie unter Installieren von cRPD auf Docker.
Übersicht
In diesem Beispiel fungiert PE1 als Label Edge-Router oder Eingangsknoten für das MPLS-Netzwerk, das die Pakete durch Anhängen von Labels kapselt. P fungiert als Label Switching Router, der MPLS-Pakete mithilfe von Labels im MPLS-Netzwerk überträgt.
Um MPLS zu konfigurieren, müssen Sie zunächst einen oder mehrere benannte Pfade auf den Eingangs- und Transitroutern erstellen. Für jeden Pfad können Sie einige oder alle Transitrouter im Pfad angeben.
Die Konfiguration statischer Label-Switched-Pfade (LSPs) für MPLS ähnelt der Konfiguration statischer Routen auf einzelnen Routern.
Topologie
Abbildung 1 zeigt die in diesem Beispiel verwendete Topologie.

Konfiguration
So konfigurieren Sie statisches LSP für MPLS auf cRPD:
- Konfigurieren des PE1-Routers
- Konfigurieren des Provider-P-Routers.
- Konfigurieren des PE2-Routers
- Ergebnisse
Konfigurieren des PE1-Routers
Schritt-für-Schritt-Anleitung
So konfigurieren Sie den statischen LSP:
Erstellen Sie die Tabellen inet.0 und mpls.0.
[edit routing-options] user@crpd1# set rib inet.0 user@crpd1# set rib mpls.0 user@crpd1# set router-id 20.2.2.2
Konfigurieren Sie die BGP-Sitzung.
[edit protocols bgp group VPN] user@crpd1# set type internal local-address 20.2.2.2 family inet-vpn unicast user@crpd1# set local-as 5 user@crpd1# set neighbor 40.4.4.4 family inet-vpn unicast
Konfigurieren Sie den statischen Bezeichnungsbereich und die statischen LSP-Eingangsparameter.
[edit protocols mpls] user@crpd1# set interface all user@crpd1# set label-range static-label-range 1000000 1048575 user@crpd1# set static-label-switched-path pe2 ingress install 40.4.4.4/32 active user@crpd1# set static-label-switched-path pe2 ingress to 40.4.4.4 next-hop 20.20.20.2 push 1000001
Konfigurieren Sie eine statische Route vom Eingangs-PE2.
[edit routing-options static] user@crpd1# set route 20.2.2.2/32 next-hop 20.20.20.2 user@crpd1# set route 40.4.4.4/32 static-lsp-next-hop pe2
Konfigurieren Sie eine VRF-Routing-Instanz auf PE1 und andere Routing-Instanzparameter.
[edit routing-instances vrfblue] user@crpd1# set routing-options static route 10.1.1.1/32 next-hop 10.10.10.1 user@crpd1# set route-distinguisher 100:100 user@crpd1# set vrf-target target:100:100 user@crpd1# set interface all
Ergebnisse
Bestätigen Sie im Konfigurationsmodus Ihre Konfiguration, indem Sie die show protocols bgp
Befehle und run show configuration protocols mpls
auf PE1 eingeben. Wenn die Ausgabe nicht die gewünschte Konfiguration anzeigt, wiederholen Sie die Konfigurationsanweisungen in diesem Beispiel, um sie zu korrigieren.
user@crpd1# show protocols bgp group VPN { type internal; local-address 20.2.2.2; family inet-vpn { unicast; } local-as 5; neighbor 40.4.4.4 { family inet-vpn { unicast; } } }
user@crpd1# run show configuration protocols mpls interface all; static-label-switched-path pe2 { ingress { next-hop 20.20.20.3; to 40.4.4.4; push 1000001; } }
Wenn Sie mit der Konfiguration des Geräts fertig sind, geben Sie Commit aus dem Konfigurationsmodus ein.
Konfigurieren des Provider-P-Routers.
Schritt-für-Schritt-Anleitung
So konfigurieren Sie den statischen LSP:
Konfigurieren Sie die Router-ID für Router P.
[edit routing-options] user@crpd2# set rib mpls.0 user@crpd2# set router-id 30.3.3.3
Konfigurieren Sie einen statischen Transit-LSP für Swap- und Pop-Labels.
[edit protocols mpls] user@crpd2# set label-range static-label-range 1000000 1048575 user@crpd2# set static-label-switched-path pe2 transit 1000001 next-hop 30.30.30.4 swap 1000002 user@crpd2# set static-label-switched-path pe1 transit 1000003 next-hop 20.20.20.2 swap 1000004 user@crpd2# set static-label-switched-path pe2 transit 1000001 pop next-hop 30.30.30.4 user@crpd2# set static-label-switched-path pe1 transit 1000003 pop next-hop 20.20.20.2
Ergebnisse
Bestätigen Sie im Konfigurationsmodus Ihre Konfiguration, indem Sie die show protocols bgp
Befehle , run show configuration protocols mpls
und run show mpls interface
auf P eingeben. Wenn die Ausgabe nicht die gewünschte Konfiguration anzeigt, wiederholen Sie die Konfigurationsanweisungen in diesem Beispiel, um sie zu korrigieren.
user@crpd2# run show configuration protocols mpls interface all; static-label-switched-path pe1 { transit 1000003 { next-hop 20.20.20.2; swap 1000004; } } static-label-switched-path pe2 { transit 1000001 { next-hop 30.30.30.4; swap 1000002; } }
Wenn Sie mit der Konfiguration des Geräts fertig sind, geben Sie Commit aus dem Konfigurationsmodus ein.
Konfigurieren des PE2-Routers
Schritt-für-Schritt-Anleitung
So konfigurieren Sie den statischen LSP für MPLS auf PE2:
Konfigurieren Sie die BGP-Sitzung.
[edit protocols bgp group VPN ] user@crpd3# set type internal local-address 40.4.4.4 family inet-vpn unicast user@crpd3# set local-as 5 user@crpd3# set neighbor 20.2.2.2 family inet-vpn unicast
Konfigurieren Sie die statischen LSP-Parameter für den Eingang.
[edit protocols mpls ] user@crpd3# set interface all user@crpd3# set label-range static-label-range 1000000 1048575 user@crpd3# set static-label-switched-path pe1 ingress install 20.2.2.2/32 active user@crpd3# set static-label-switched-path pe1 ingress to 20.2.2.2 next-hop 30.30.30.4 push 1000003
Konfigurieren Sie die Router-ID und eine statische Route vom Eingangs-PE1.
[edit routing-options] user@crpd3# set rib inet.0 user@crpd3# set router-id 40.4.4.4 user@crpd3# set static route 40.4.4.4/32 next-hop 30.30.30.4 user@crpd3# set static route 20.2.2.2/32 static-lsp-next-hop pe1
Konfigurieren Sie eine VRF-Routing-Instanz auf PE2 und andere Routing-Instanzparameter.
[edit routing-instances vrfblue] user@crpd3# set routing-options static route 50.5.5.5/32 next-hop 40.40.40.5 user@crpd3# set route-distinguisher 100:100 user@crpd3# set vrf-target target:100:100 user@crpd3# set interface all
Ergebnisse
Bestätigen Sie im Konfigurationsmodus Ihre Konfiguration, indem Sie die run show configuration protocols mpls
Befehle und run show mpls interface
auf PE2 eingeben. Wenn die Ausgabe nicht die gewünschte Konfiguration anzeigt, wiederholen Sie die Konfigurationsanweisungen in diesem Beispiel, um sie zu korrigieren.
user@crpd3# show protocols bgp group VPN { type internal; local-address 40.4.4.4; family inet-vpn { unicast; } local-as 5; neighbor 20.2.2.2 { family inet-vpn { unicast; } } }
user@crpd3# run show configuration protocols mpls interface all; static-label-switched-path pe2 { ingress { next-hop 20.20.20.3; to 40.4.4.4; push 1000001; } }
Wenn Sie mit der Konfiguration des Geräts fertig sind, geben Sie Commit aus dem Konfigurationsmodus ein.
Überprüfung
- Überprüfen der MPLS-Weiterleitung auf PE1
- Überprüfen der MPLS-Weiterleitung auf P
- Überprüfen der MPLS-Weiterleitung auf PE2
Überprüfen der MPLS-Weiterleitung auf PE1
Zweck
So überprüfen Sie die Konfiguration für MPLS auf PE1.
Aktion
Geben Sie im Betriebsmodus den show route table vrfblue.inet.0 50.5.5.5
folgenden Befehl ein:
user@crpd1> show route table vrfblue.inet.0 50.5.5.5
vrfblue.inet.0: 5 destinations, 5 routes (5 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 50.5.5.5/32 *[BGP/170] 00:01:03, localpref 100, from 40.4.4.4 AS path: I, validation-state: unverified > to 20.20.20.3 via pe1-p, Push 299776, Push 1000001(top)
Geben Sie im Betriebsmodus den show mpls label usage
folgenden Befehl ein:
user@crpd1> show mpls label usage
Label space Total Available Applications LSI 999984 999983 (100.00%) BGP/LDP VPLS with no-tunnel-services, BGP L3VPN with vrf-table-label Block 999984 999983 (100.00%) BGP/LDP VPLS with tunnel-services, BGP L2VPN Dynamic 999984 999983 (100.00%) RSVP, LDP, PW, L3VPN, RSVP-P2MP, LDP-P2MP, MVPN, EVPN, BGP Static 48576 48576 (100.00%) Static LSP, Static PW Effective Ranges Range name Shared with Start End Dynamic 16 999999 Static 1000000 1048575 Configured Ranges Range name Shared with Start End Dynamic 16 999999 Static 1000000 1048575
Geben Sie im Betriebsmodus den show mpls static-lsp
folgenden Befehl ein:
user@crpd1> show mpls static-lsp
Ingress LSPs: LSPname To State pe2 40.4.4.4 Up Total 1, displayed 1, Up 1, Down 0 Transit LSPs: Total 0, displayed 0, Up 0, Down 0 Bypass LSPs: Total 0, displayed 0, Up 0, Down 0 Segment LSPs: Total 0, displayed 0, Up 0, Down 0
Geben Sie im Betriebsmodus den show route table inet.3
folgenden Befehl ein:
user@crpd1> show route table inet.3
inet.3: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 40.4.4.4/32 *[MPLS/6/1] 00:04:44, metric 0 > to 20.20.20.3 via pe1-p, Push 1000001
Geben Sie im Betriebsmodus den show route table mpls.0
folgenden Befehl ein:
user@crpd1> show route table mpls.0
mpls.0: 6 destinations, 6 routes (6 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 0 *[MPLS/0] 00:15:45, metric 1 Receive 1 *[MPLS/0] 00:15:45, metric 1 Receive 2 *[MPLS/0] 00:15:45, metric 1 Receive 13 *[MPLS/0] 00:15:45, metric 1 Receive 299776 *[VPN/170] 00:06:32 > to 10.10.10.1 via pe1-ce1, Pop 299776(S=0) *[VPN/170] 00:06:32 > to 10.10.10.1 via pe1-ce1, Pop
Geben Sie im Betriebsmodus den ip route list table 5 50.5.5.5
folgenden Befehl ein:
user@crpd1> ip route list table 5 50.5.5.5
50.5.5.5 encap mpls 1000001/299776 via 20.20.20.3 dev pe1-p proto 22
Geben Sie im Betriebsmodus den ip -f mpls route
folgenden Befehl ein:
user@crpd1> ip -f mpls route
299776 via inet 10.10.10.1 dev pe1-ce1 proto 22
Überprüfen der MPLS-Weiterleitung auf P
Zweck
So überprüfen Sie die Konfiguration für MPLS auf P.
Aktion
Geben Sie im Shell-Modus den show route table mpls.0
folgenden Befehl ein:
user@crpd2> show route table mpls.0
mpls.0: 10 destinations, 10 routes (10 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 0 *[MPLS/0] 00:00:11, metric 1 Receive 1 *[MPLS/0] 00:00:11, metric 1 Receive 2 *[MPLS/0] 00:00:11, metric 1 Receive 13 *[MPLS/0] 00:00:11, metric 1 Receive 299776 *[VPN/170] 00:00:05 > to 20.20.20.2 via p-pe1, Pop 299776(S=0) *[VPN/170] 00:00:05 > to 20.20.20.2 via p-pe1, Pop 299792 *[VPN/170] 00:00:05 > to 30.30.30.4 via p-pe2, Pop 299792(S=0) *[VPN/170] 00:00:05 > to 30.30.30.4 via p-pe2, Pop 1000001 *[MPLS/6] 00:00:11, metric 1 > to 30.30.30.4 via p-pe2, Swap 1000002 1000003 *[MPLS/6] 00:00:11, metric 1 > to 20.20.20.2 via p-pe1, Swap 1000004
user@crpd2> show mpls static-lsp
Ingress LSPs: Total 0, displayed 0, Up 0, Down 0 Transit LSPs: LSPname Incoming-label State pe1 1000003 Up pe2 1000001 Up Total 2, displayed 2, Up 2, Down 0 Bypass LSPs: Total 0, displayed 0, Up 0, Down 0 Segment LSPs: Total 0, displayed 0, Up 0, Down 0
Geben Sie im Bash-Shell-Modus den ip -f mpls route
folgenden Befehl ein:
user@crpd2:/# ip -f mpls route
299776 via inet 20.20.20.2 dev p-pe1 proto 22 299792 via inet 30.30.30.4 dev p-pe2 proto 22 1000001 as to 1000002 via inet 30.30.30.4 dev p-pe2 proto 22 1000003 as to 1000004 via inet 20.20.20.2 dev p-pe1 proto 22
Überprüfen der MPLS-Weiterleitung auf PE2
Zweck
So überprüfen Sie die Konfiguration für MPLS auf P.
Aktion
Geben Sie im Shell-Modus den show route table vrfblue.inet.0 10.1.1.1
folgenden Befehl ein:
user@crpd3> show route table vrfblue.inet.0 10.1.1.1
vrfblue.inet.0: 5 destinations, 5 routes (5 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 10.1.1.1/32 *[BGP/170] 00:03:00, localpref 100, from 2.2.2.2 AS path: I, validation-state: unverified > to 30.30.30.3 via pe2-p, Push 299776, Push 1000003(top)
user@crpd3> show mpls static-lsp
Ingress LSPs: LSPname To State pe1 20.2.2.2 Up Total 1, displayed 1, Up 1, Down 0 Transit LSPs: LSPname Incoming-label State pe2 1000002 Dn Total 1, displayed 1, Up 0, Down 1 Bypass LSPs: Total 0, displayed 0, Up 0, Down 0 Segment LSPs: Total 0, displayed 0, Up 0, Down 0
user@crpd3> show route table mpls.0
mpls.0: 6 destinations, 6 routes (6 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 0 *[MPLS/0] 00:17:31, metric 1 Receive 1 *[MPLS/0] 00:17:31, metric 1 Receive 2 *[MPLS/0] 00:17:31, metric 1 Receive 13 *[MPLS/0] 00:17:31, metric 1 Receive 299776 *[VPN/170] 00:03:07 > to 40.40.40.5 via pe2-ce2, Pop 299776(S=0) *[VPN/170] 00:03:07 > to 40.40.40.5 via pe2-ce2, Pop
Geben Sie im Bash-Shell-Modus den ip -f mpls route
folgenden Befehl ein:
user@crpd3:/# ip -f mpls route
299776 via inet 40.40.40.5 dev pe2-ce2 proto 22
Geben Sie im Bash-Shell-Modus den ip route list table 5 10.1.1.1
folgenden Befehl ein:
user@crpd3:/# ip route list table 5 10.1.1.1
10.1.1.1 encap mpls 1000003/299776 via 30.30.30.3 dev pe2-p proto 22
Bedeutung
Sie können überprüfen, ob die statischen LSPs zwischen PEs auf allen Geräten aktiv sind und die Routen in den entsprechenden Routing-Tabellen inet.o
und inet.3
im Linux-FIB aufgefüllt sind.