MPLS-Unterstützung in cRPD
Unterstützung von MPLS auf cRPD
Die MPLS-Konfiguration wird auf 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. LSPs sind unidirektionale Routen durch ein Netzwerk oder ein autonomes System (AS). MPLS-Router innerhalb eines AS ermitteln 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 für die Weiterleitung des Pakets an eine vorher festgelegte Adresse für den nächsten Hop verantwortlich.
Router, die Teil des LSP sind, sind Label-Switching-Router (LSRs). Ein MPLS-LSP wird mithilfe statischer LSPs eingerichtet. Bei einem statischen LSP muss jeder Router entlang des Pfads explizit konfiguriert werden. Sie müssen den Pfad und die zugehörigen Beschriftungswerte manuell konfigurieren.
cRPD unterstützt nur eine begrenzte Anzahl von Junos OS MPLS-Funktionen. Sie können MPLS interface, ipv6-tunneling, , label-historylabel-rangeund static-label-switched-path in cRPD CLI unter der Hierarchie edit protocols mpls konfigurieren.
Supported Features
BGP-Konfiguration
MPLS mit PRPD-API
Unicast-Konfiguration mit BGP-Bezeichnung
Siehe auch
Beispiel: Konfigurieren von statischen Label-Switched-Pfaden für MPLS in cRPD
In diesem Beispiel wird gezeigt, wie der VPN-Datenverkehr durch einen v4-MPLS-Tunnel zwischen PEs fließt, indem BGP- und MPLS-Pfade mit statischen Bezeichnungen 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 Release-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 denen die cRPD-Instanz erstellt wird. Weitere Informationen finden Sie unter Konfigurieren von Einstellungen unter Host OS.
-
Provider-Edge-Router (PE1), Provider-Router (P) und Provider-Edge-Router (PE2). Informationen zur Installation finden Sie unter Installieren von cRPD auf Docker.
Überblick
In diesem Beispiel fungiert PE1 als Label-Edge-Router oder Eingangsknoten für das MPLS-Netzwerk, das die Pakete durch Anhängen von Labels einkapselt. 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 Paths (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 Routers "Anbieter P".
- Konfigurieren des PE2-Routers
- Befund
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 Label-Bereich und die statischen LSP-Parameter für den Eingang.
[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 für 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
Befund
Bestätigen Sie im Konfigurationsmodus Ihre Konfiguration, indem Sie die show protocols bgp Befehle und run show configuration protocols mpls in PE1 eingeben. Wenn in der Ausgabe nicht die beabsichtigte Konfiguration angezeigt wird, 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, wechseln Sie in den Konfigurationsmodus.
Konfigurieren des Routers "Anbieter P".
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
Befund
Bestätigen Sie im Konfigurationsmodus Ihre Konfiguration, run show configuration protocols mplsindem Sie die show protocols bgpBefehle , und run show mpls interface und auf P eingeben. Wenn in der Ausgabe nicht die beabsichtigte Konfiguration angezeigt wird, 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, wechseln Sie in den Konfigurationsmodus.
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 für 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
Befund
Bestätigen Sie im Konfigurationsmodus Ihre Konfiguration, indem Sie die run show configuration protocols mpls Befehle und run show mpls interface in PE2 eingeben. Wenn in der Ausgabe nicht die beabsichtigte Konfiguration angezeigt wird, 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, wechseln Sie in den Konfigurationsmodus.
Verifizierung
- Ü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 der statische LSP zwischen PEs auf allen Geräten aktiviert ist und die Routen in den entsprechenden Routingtabellen inet.o und inet.3 in der Linux FIB aufgefüllt sind.