Prise en charge de MPLS dans cRPD
Prise en charge de MPLS sur cRPD
La configuration MPLS est prise en charge sur cRPD pour transférer les paquets vers la destination dans le réseau MPLS.
Avec MPLS, seul le premier équipement effectue une recherche de routage. Au lieu de trouver le saut suivant, l’appareil trouve la destination finale ainsi qu’un chemin vers cette destination. Le chemin d’un paquet MPLS est appelé chemin de commutation d’étiquettes (LSP). Les LSP sont des routes unidirectionnelles à travers un réseau ou un système autonome (AS). Les routeurs MPLS au sein d’un AS déterminent les chemins à travers un réseau grâce à l’échange d’aspects techniques du trafic MPLS. À l’aide de ces chemins, les routeurs dirigent le trafic à travers le réseau le long d’un itinéraire établi. Plutôt que de sélectionner le prochain saut le long du chemin comme dans le cas du routage IP, chaque routeur est responsable du transfert du paquet vers une adresse de saut suivant prédéterminée.
Les routeurs qui font partie du LSP sont des routeurs de commutation d’étiquettes (LSR). Un LSP MPLS est établi à l’aide de LSP statiques. Un LSP statique nécessite que chaque routeur le long du chemin soit configuré explicitement. Vous devez configurer manuellement le chemin d’accès et les valeurs d’étiquette associées.
cRPD ne prend en charge qu’un nombre limité de fonctionnalités MPLS de Junos OS. Vous pouvez configurer MPLS interface, ipv6-tunneling, label-history, label-rangeet static-label-switched-path dans l’interface de ligne de commande cRPD sous la edit protocols mpls hiérarchie.
Supported Features
Configuration BGP
MPLS à l’aide de l’API PRPD
Configuration unicast étiquetée BGP
Voir aussi
Exemple : Configurer des chemins de commutation d’étiquettes statiques pour MPLS dans cRPD
Cet exemple montre comment le trafic VPN circule à travers un tunnel MPLS v4 entre les PE en configurant des chemins de commutation d’étiquettes statiques BGP et MPLS.
Exigences
Cet exemple utilise les composants matériels et logiciels suivants :
-
Logiciel Ubuntu version 18.04
-
Noyau Linux version 4.5 ou ultérieure
-
Logiciel cRPD version 19.4R1 ou ultérieure
Avant de configurer un LSP statique pour le transfert MPLS, vous devez installer les composants de base :
-
Modules MPLS sur le système d’exploitation hôte sur lequel l’instance cRPD est créée. Pour plus d’informations, reportez-vous à la section Configurer les paramètres sur le système d’exploitation hôte.
-
routeur de périphérie (PE1), routeur (P) et routeur Provider Edge (PE2). Pour l’installation, consultez Installer cRPD sur Docker.
Aperçu
Dans cet exemple, PE1 agit comme un routeur Label Edge ou un nœud d’entrée dans le réseau MPLS, qui encapsule les paquets en attachant des étiquettes. P agit en tant que routeur de commutation d’étiquettes qui transfère les paquets MPLS à l’aide d’étiquettes dans le réseau MPLS.
Pour configurer MPLS, vous devez d’abord créer un ou plusieurs chemins nommés sur les routeurs d’entrée et de transit. Pour chaque chemin, vous pouvez spécifier une partie ou la totalité des routeurs de transit dans le chemin.
La configuration des chemins statiques de commutation d’étiquettes (LSP) pour MPLS est similaire à la configuration de routes statiques sur des routeurs individuels.
Topologie
La figure 1 illustre la topologie utilisée dans cet exemple.
Configuration
Pour configurer un LSP statique pour MPLS sur cRPD :
- Configuration du routeur PE1
- Configuration du routeur Provider P.
- Configuration du routeur PE2
- Résultats
Configuration du routeur PE1
Procédure étape par étape
Pour configurer le LSP statique :
-
Créez les tables inet.0 et 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 -
Configurez la session BGP.
[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 -
Configurez la plage d’étiquettes statiques et les paramètres LSP statiques entrants.
[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 -
Configurez une route statique à partir du PE2 entrant.
[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 -
Configurez une instance de routage VRF sur PE1 et d’autres paramètres d’instance de routage.
[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
Résultats
À partir du mode configuration, confirmez votre configuration en entrant les show protocols bgp commandes et run show configuration protocols mpls sur PE1. Si la sortie n’affiche pas la configuration prévue, répétez les instructions de configuration de cet exemple pour la corriger.
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;
}
}
Si vous avez terminé de configurer l’appareil, entrez commit à partir du mode de configuration.
Configuration du routeur Provider P.
Procédure étape par étape
Pour configurer le LSP statique :
-
Configurez l’ID de routeur pour le routeur P.
[edit routing-options] user@crpd2# set rib mpls.0 user@crpd2# set router-id 30.3.3.3 -
Configurez un LSP statique de transit pour les étiquettes swap et pop.
[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
Résultats
À partir du mode configuration, confirmez votre configuration en saisissant les show protocols bgpcommandes , run show configuration protocols mpls, et run show mpls interface sur P. Si la sortie n’affiche pas la configuration prévue, répétez les instructions de configuration de cet exemple pour la corriger.
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;
}
}
Si vous avez terminé de configurer l’appareil, entrez commit à partir du mode de configuration.
Configuration du routeur PE2
Procédure étape par étape
Pour configurer le LSP statique pour MPLS sur PE2 :
-
Configurez la session BGP.
[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 -
Configurez les paramètres LSP statiques d’entrée.
[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 -
Configurez l’ID de routeur et une route statique à partir du PE1 entrant.
[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 -
Configurez une instance de routage VRF sur PE2 et d’autres paramètres d’instance de routage.
[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
Résultats
À partir du mode configuration, confirmez votre configuration en entrant les run show configuration protocols mpls commandes et run show mpls interface sur PE2. Si la sortie n’affiche pas la configuration prévue, répétez les instructions de configuration de cet exemple pour la corriger.
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;
}
}
Si vous avez terminé de configurer l’appareil, entrez commit à partir du mode de configuration.
Vérification
- Vérifier le transfert MPLS sur PE1
- Vérifier le transfert MPLS sur P
- Vérifier le transfert MPLS sur PE2
Vérifier le transfert MPLS sur PE1
But
Pour vérifier la configuration de MPLS sur PE1.
Action
À partir du mode opérationnel, entrez la show route table vrfblue.inet.0 50.5.5.5 commande :
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)
À partir du mode opérationnel, entrez la show mpls label usage commande :
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
À partir du mode opérationnel, entrez la show mpls static-lsp commande :
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
À partir du mode opérationnel, entrez la show route table inet.3 commande :
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
À partir du mode opérationnel, entrez la show route table mpls.0 commande :
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
À partir du mode opérationnel, entrez la ip route list table 5 50.5.5.5 commande :
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
À partir du mode opérationnel, entrez la ip -f mpls route commande :
user@crpd1> ip -f mpls route
299776 via inet 10.10.10.1 dev pe1-ce1 proto 22
Vérifier le transfert MPLS sur P
But
Pour vérifier la configuration de MPLS sur P.
Action
En mode shell, entrez la show route table mpls.0 commande :
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
En mode shell bash, entrez la ip -f mpls route commande :
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
Vérifier le transfert MPLS sur PE2
But
Pour vérifier la configuration de MPLS sur P.
Action
En mode shell, entrez la show route table vrfblue.inet.0 10.1.1.1 commande :
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
En mode shell bash, entrez la ip -f mpls route commande :
user@crpd3:/# ip -f mpls route
299776 via inet 40.40.40.5 dev pe2-ce2 proto 22
En mode shell bash, entrez la ip route list table 5 10.1.1.1 commande :
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
Signification
Vous pouvez vérifier que le LSP statique entre les PE est actif sur tous les périphériques et que les routes sont renseignées dans les tables inet.o de routage correspondantes et inet.3 dans la FIB Linux.