Exemple de mise en oeuvre de 6PE
From Livre 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 | |





