Exemple de mise en oeuvre de 6PE
Un article de IPv6.
La technique 6PE | Table des matières | Réseaux privés virtuels IPv6 sur MPLS |
Dans l'exemple suivant, la mise en oeuvre de la fonctionnalité 6PE est effectué sur une plate-forme comprenant 3 routeurs MPLS : deux PE-routeurs et un P-routeur. La fonctionalité 6PE est introduite de façon incrémentale :
- mise en oeuvre du routage interne IS-IS,
- ajout du protocole de distribution des labels LDP,
- ajout des peering BGP,
- et finalement activation de la fonctionnalité 6PE.
Le schéma de la plate-forme est donné dans la figure plateforme MPLS-6PE.
Les routeurs sont de marque Cisco et les versions du système d'exploitation sont donnés dans le See Versions des IOS pour la plate-forme 6PE.
Routeur | version | Note |
---|---|---|
R1 | 12.2(15)T | 6PE aware, DS |
R2 | 12.3(1) | Juste MPLS |
R3 | 12.2(15)T | 6PE aware, DS |
La première étape consiste à activer les technologies suivantes :
- routage interne IPv4 avec IS-IS ;
- MPLS avec LDP comme protocole de distribution de labels.
Les configurations des routeurs sont les suivantes :
6PE-1#sh run version 12.2 hostname 6PE-1 boot system disk0:c7200-js-mz.122-15.T.bin ip cef clns routing mpls label protocol ldp mpls ldp logging neighbor-changes ! interface Loopback6 ip address 192.168.127.1 255.255.255.255 ! interface Ethernet0/0 ip address 192.168.12.1 255.255.255.0 ip router isis mpls label protocol ldp tag-switching ip ! interface GigabitEthernet0/0 ip address 192.168.11.1 255.255.255.0 ! router isis net 49.0001.1921.6812.7001.00 is-type level-2-only metric-style wide redistribute connected passive-interface GigabitEthernet0/0 passive-interface Loopback6 ! ip route 192.168.111.0 255.255.255.0 GigabitEthernet0/0 6PE-1#
6PE-2#sh run version 12.2 hostname 6PE-2 boot system disk0:c7200-js-mz.122-15.T.bin ip cef clns routing mpls label protocol ldp no mpls ldp logging neighbor-changes ! interface Loopback6 ip address 192.168.127.3 255.255.255.255 ! interface Ethernet0/0 ip address 192.168.23.2 255.255.255.0 ip router isis mpls label protocol ldp tag-switching ip ! interface GigabitEthernet0/0 ip address 192.168.33.1 255.255.255.0 ! router isis net 49.0001.1921.6812.7003.00 is-type level-2-only metric-style wide redistribute connected passive-interface GigabitEthernet0/0 passive-interface Loopback6 ! ip route 192.168.133.0 255.255.255.0 GigabitEthernet0/0 6PE-2#
P#sh run version 12.3 hostname P boot system flash:C2600-JS-MZ.123-1.BIN ip cef clns routing mpls label protocol ldp mpls ldp logging neighbor-changes ! interface Loopback0 ip address 192.168.127.2 255.255.255.255 ! interface FastEthernet0/0 ip address 192.168.12.2 255.255.255.0 ip router isis mpls label protocol ldp tag-switching ip ! interface FastEthernet0/1 ip address 192.168.23.1 255.255.255.0 ip router isis mpls label protocol ldp tag-switching ip ! router isis net 49.0001.1921.6812.7002.00 is-type level-2-only metric-style wide redistribute connected passive-interface Loopback0 ! P#
Pour vérifier que les configurations des routeurs sont correctes, il est possible de tester l'apprentissage des routes par IS-IS. Sur le routeur 6PE-2, la commande suivante permet de vérifier que les routes sont bien apprises :
6PE-2#sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area * - candidate default, U - per-user static route, o - ODR P - periodic downloaded static route Gateway of last resort is not set i L2 192.168.12.0/24 [115/20] via 192.168.23.1, Ethernet0/0 S 192.168.133.0/24 is directly connected, GigabitEthernet0/0 192.168.127.0/32 is subnetted, 3 subnets C 192.168.127.3 is directly connected, Loopback6 i L2 192.168.127.2 [115/10] via 192.168.23.1, Ethernet0/0 i L2 192.168.127.1 [115/20] via 192.168.23.1, Ethernet0/0 i L2 192.168.11.0/24 [115/20] via 192.168.23.1, Ethernet0/0 C 192.168.23.0/24 is directly connected, Ethernet0/0 C 192.168.33.0/24 is directly connected, GigabitEthernet0/0 6PE-2#
De même, pour l'apprentissage des labels MPLS par LDP. Sur le routeur P la commande suivante permet de vérifier l'activation du protocole LDP sur les interfaces :
P#sh mpls interfaces detail Interface FastEthernet0/0: IP labeling enabled (ldp) LSP Tunnel labeling not enabled BGP tagging not enabled Tagging operational Fast Switching Vectors: IP to MPLS Fast Switching Vector MPLS Turbo Vector MTU = 1500 Interface FastEthernet0/1: IP labeling enabled (ldp) LSP Tunnel labeling not enabled BGP tagging not enabled Tagging operational Fast Switching Vectors: IP to MPLS Fast Switching Vector MPLS Turbo Vector MTU = 1500 P#
Enfin sur le routeur 6PE-2, la commande suivante permet d'afficher la table de commutation MPLS :
6PE-2#sh mpls forwarding-table Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface 16 Pop tag 192.168.12.0/24 0 Et0/0 192.168.23.1 17 Pop tag 192.168.127.2/32 0 Et0/0 192.168.23.1 18 17 192.168.127.1/32 0 Et0/0 192.168.23.1 19 18 192.168.11.0/24 0 Et0/0 192.168.23.1 6PE-2#
Ainsi :
- pour la FEC 192.168.127.1/32, le label de sortie sera 17 ;
- pour la FEC 192.168.12.0/24, 6PE-2 fait un POP du label (car il est le PHP pour le next-hop de ce préfixe, i.e. le router P).
La commande traceroute vers 192.168.127.1 montre que le flux passe sur MPLS et que le tag de sortie est effectivement 17 :
6PE-2#traceroute 192.168.127.1 Tracing the route to 192.168.127.1 1 192.168.23.1 [MPLS: Label 17 Exp 0] 0 msec 4 msec 0 msec 2 192.168.12.1 0 msec * 0 msec 6PE-2#
La capture d'un PING vers 192.168.127.1 confirme également que le trafic emprunte le LSP (cf. figure Capture d'un paquet de ping).
La seconde étape consiste à ajouter de la fonction 6PE. Le routeur P n'est pas concerné par cette fonction, par contre les routeurs 6PE-1 et 6PE-2 doivent établir une session i-BGP entre eux afin de pouvoir s'échanger les préfixes IPv6 avec MP-BGP. Les configurations des routeurs sont alors les suivantes (seuls les éléments nouveaux par rapport aux configurations précédentes sont listés) :
6PE-1#sh run [..] ipv6 unicast-routing mpls ipv6 source-interface Loopback6 ! interface Loopback6 ip address 192.168.127.1 255.255.255.255 ipv6 address 2001:127::1/128 ! interface Ethernet0/0 ! interface GigabitEthernet0/0 ipv6 address 2001:11::1/48 ipv6 enable ! router isis [..] ! router bgp 106 [..] neighbor 192.168.127.3 remote-as 106 neighbor 192.168.127.3 update-source Loopback6 ! address-family ipv6 neighbor 192.168.127.3 activate neighbor 192.168.127.3 soft-reconfiguration inbound neighbor 192.168.127.3 send-label redistribute connected redistribute static exit-address-family ! address-family ipv4 redistribute connected redistribute static neighbor 192.168.127.3 activate neighbor 192.168.127.3 soft-reconfiguration inbound exit-address-family ! ipv6 route 2001:111::/32 GigabitEthernet0/0 6PE-1#
6PE-2#sh run [..] ipv6 unicast-routing mpls ipv6 source-interface Loopback6 ! interface Loopback6 ip address 192.168.127.3 255.255.255.255 ipv6 address 2001:127::3/128 ! interface Ethernet0/0 [..] ! interface GigabitEthernet0/0 [..] ipv6 address 2001:33::1/48 ipv6 enable ! router isis [..] ! router bgp 106 [..] neighbor 192.168.127.1 remote-as 106 neighbor 192.168.127.1 update-source Loopback6 ! address-family ipv6 neighbor 192.168.127.1 activate neighbor 192.168.127.1 soft-reconfiguration inbound neighbor 192.168.127.1 send-label redistribute connected redistribute static exit-address-family ! address-family ipv4 redistribute connected redistribute static neighbor 192.168.127.1 activate neighbor 192.168.127.1 soft-reconfiguration inbound exit-address-family ! ipv6 route 2001:133::/32 GigabitEthernet0/0 6PE-2#
La commande suivante permet de vérifier cette configuration en testant le peering BGP sur 6PE-2 :
6PE-2#sh bgp ipv6 neighbor BGP neighbor is 192.168.127.1, remote AS 106, internal link BGP version 4, remote router ID 192.168.127.1 BGP state = Established, up for 00:34:04 Last read 00:00:04, hold time is 180, keepalive interval is 60 seconds Neighbor capabilities: Route refresh: advertised and received(old & new) Address family IPv4 Unicast: advertised and received Address family IPv6 Unicast: advertised and received ipv6 MPLS Label capability: advertised and received [..] For address family: IPv6 Unicast BGP table version 3, neighbor version 3 Index 1, Offset 0, Mask 0x2 Inbound soft reconfiguration allowed Sending Prefix & Label Sent Rcvd Prefix activity: ---- ---- Prefixes Current: 1 1 (Consumes 72 bytes) Prefixes Total: 2 2 [..] 6PE-2#sh bgp ipv6 2001:127::1/128 BGP routing table entry for 2001:127::1/128, version 3 Paths: (1 available, best #1, table Global-IPv6-Table) Not advertised to any peer Local, (received & used) ::FFFF:192.168.127.1 (metric 20) from 192.168.127.1 (192.168.127.1) Origin incomplete, metric 0, localpref 100, valid, internal, best 6PE-2#
Sur le routeur 6PE-2, les labels utilisés par MP-BGP pour le transport d'IPv6 sur MPLS peuvent être visualisés :
6PE-2#sh bgp labels Network Next Hop In label/Out label 2001:111::/32 ::FFFF:192.168.127.1 nolabel/22 2001:127::1/128 ::FFFF:192.168.127.1 nolabel/21 2001:127::3/128 :: 21/nolabel 2001:133::/32 :: 22/nolabel 2003::/16 ::FFFF:192.168.127.1 nolabel/23 2005:1234::/32 ::FFFF:192.168.127.1 nolabel/24 6PE-2#
Pour cet exemple, des routes statiques IPv6 supplémentaires a été ajoutées sur le routeur 6PE-1 afin de montrer que chaque préfixe se voit attribué un nouveau label. La capture (cf. figure Capture d'une annonce MP-BGP) décode l'annonce MP-BGP qui résulte de l'ajout de la route statique IPv6 2005 :1234 ::/32 (message BGP UPDATE). Ce message BGP UPDATE annonce à la fois le préfixe IPv6 (2005:1234::/32) et le label MPLS associé (18 en hexadécimal, soit 24 en décimal, avec le bit S positionné à 1) (RFC 3107).
Sur le routeur 6PE-2, il est possible de visualiser comment sont apprises les routes :
6PE-2#sh ipv6 route IPv6 Routing Table - 4 entries Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP U - Per-user Static route I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2 B 2001:127::1/128 [200/0] via ::FFFF:192.168.127.1, IPv6-mpls LC 2001:127::3/128 [0/0] via ::, Loopback6 L FE80::/10 [0/0] via ::, Null0 L FF00::/8 [0/0] via ::, Null0 6PE-2#
Le préfixe IPv6 2001:127::1/128 est appris par MP-BGP via l'adresse IPv6 IPv4 mappée ::FFFF:192.168.127.1. L'indication IPv6-mpls montre que le flux IPv6 correspondant est acheminé sur MPLS (c'est la fonction 6PE).
Sur le routeur 6PE-2, la table de commutation MPLS peut être affichée :
6PE-2#sh mpls forwarding-table Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface 16 Pop tag 192.168.12.0/24 0 Et0/0 192.168.23.1 17 Pop tag 192.168.127.2/32 0 Et0/0 192.168.23.1 18 17 192.168.127.1/32 0 Et0/0 192.168.23.1 19 18 192.168.11.0/24 0 Et0/0 192.168.23.1 21 Aggregate IPv6 1040 6PE-2#
Le label attribué à la fonction 6PE possède la valeur 21. La capture d'un ECHO REQUEST vers 2001:127::1 (cf. figure Capture d'un message "echo request") montre que le flux emprunte le LSP 6PE :
On remarque qu'il y a deux labels :
- le label « normal » qui assure la commutation MPLS (et l'on voit alors que le routeur P ignore qu'il commute de l'IPv6) ;
- le label 6PE qui permet ensuite d'établir la correspondance avec IPv6 sur le routeur PE de sortie.
La capture de la figure Capture de la réponse est la réponse à cette requête.
On remarquera qu'il n'y a que le label 6PE car le routeur précédent (routeur P) a déjà décapsulé le label « normal » de commutation MPLS.
La technique 6PE | Table des matières | Réseaux privés virtuels IPv6 sur MPLS |