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.

CS85.gif

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.

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).

CS86.gif

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).

CS87.gif

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 :

CS88.gif

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.

CS89.gif

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
Personal tools