Exemple de mise en oeuvre de 6PE

From Livre IPv6

Revision as of 23:59, 7 February 2006 by Bruno Stévant (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
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