Implémentation MPLS VPN sur des Tunnels TE ccnp_cch ccnp_cch
Sommaire • Introduction • Rappel Tunnel TE - Topologie PE1 à PE2 - Prérequis • Rappel ● Etablissement initial de VPN entre CE1 et CE2 sans Tunnel TE - Topologie - Configuration - Vérification ● Cas 1: VPN sur un Tunnel TE quand le tunnel va de PE1 à PE2 - Topologie ● Cas 2: VPN sur un Tunnel TE quand le tunnel va de PE1 à P2 - Topologie - Explication - Solution ● Cas 3: VPN entre CE1 et CE2 sur un Tunnel TE qui va de P1 à P2 quand TDP/LDP n'est pas validé - Vérification - Solution ● Cas 4: VPN sur un Tunnel TE entre P1 et P2 quand TDP est validé ccnp_cch
- Vérification ● Conclusion ● Cas 5: VPN MPLS sur un sur un Tunnel TE entre P1 et PE2 - Topologie - Configuration - Vérification ● Conclusion ccnp_cch
Introduction Rappel ccnp_cch Ce document fournit des exemples de configuration pour implémenter des VPN MPLS (Multiprotocol Label Switching) sur des tunnels TE (Traffic Engineering) dans un réseau MPLS. Pour obtenir des avantages d'un VPN MPLS sur des tunnels TE, les deux doivent coexister dans le réseau. Ce document illustre plusieurs scénarios qui expliquent pour- quoi l'acheminement des paquets da ns un VPN MPLS sur des tunnels TE peut échouer. Ce document fournit également la solution possible. Prérequis Les lecteurs de ce document doivent avoir connaissance de ces thèmes : ● MPLS Traffic Engineering and Enhancements. ● Configuration de base d'un VPN MPLS Rappel CE1 CE2 PE1 PE2 P1 P2 172.16.13.0 Lo: 10.2.2.2 172.16.1.0 Lo: 10.7.7.7 Lo: 10.11.11.11 Lo: 10.5.5.5 Comme cela est montré dans cette topologie, dans une configuration simple VPN MPLS, le PE1 (Provider Edge 1) apprend le label VPN (Label 1 [L1]) pour le préfixe de VPN 172.16.13.0/24 via MP-BGP ( Multiprotocol Border Gateway Protocol) directement du PE2 avec comme prochain saut l'adresses loopback de PE2. PE1 apprend également le label (L2) pour l'adresse de loopback de PE2 via LDP (Label Distribution Protocol) de son prochain saut P1. Quand les données sont acheminées vers le préfixe VPN 172.16.13.0, PE1 utilise une pile de labels (L2L1) avec L2 comme label de sortie. L2 va être échangé avec le label de transit du routeur LSR P1. P2 retire le Label L2 et achemine le paquet vers PE2 avec uniquement le Label L1. Pour mieux comprendre pourquoi P2 retire L2, référez-vous à la section 3.16 sur le PHP (Penultimate Hop Popping) dans le RFC 3031. Ainsi les pa- quets VPN IP version 4 (IPv4) de préfixe 172.16.13.0/24 sont commutés par Label dans le réseau MPLS. L'opération d'acheminement VPN MPLS échoue si un routeur P reçoit le paquet avec L1 (Label VPN) comme le seul Label dans la pile (au lieu de la pile L2L1). cet échec est du au fait qu'aucun des routeurs P n'a L1 dans sa table LFIB (Label Forwarding Informa- tion Base) pour commuter ce paquet. Un TE MPLS utilise RSVP (Resource Reservation Protocol) pour échanger des labels. Quand un routeur est configuré pour TE et TDP (Tag distribution protocol)/LDP, le rou- teur reçoit des labels différents de LDP et de RSVP pour un préfixe donné. Les Labels de LDP et de RSVP n'ont pas besoin d'être les mêmes dans toutes les situations. Le rou- teur installe le Label LDP dans la table d'acheminement si le préfixe est appris sur une interface LDP et il installe le Label RSVP dans la table d'acheminement si le préfixe est appris via une interface Tunnel. ccnp_cch
Dans les cas d'un Tunnel classique ( sans LDP/TDP validé sur le Tunnel), le LSR d'en- trée (le LSR sur l'entrée du Tunnel) utilise le même Label qu'il utilise pour joindre la sortie du Tunnel TE pour toutes les routes qui ont été apprises via un Tunnel TE. Par exemple, il y a un tunnel TE de PE à P2 apprenant le préfixe 10.11.11.11/32 sur le tunnel. La sortie du tunnel sur P2 est 10.5.5.5 et le label pour atteindre 10.5.5.5 dans PE1 est L3. PE1 utilise ensuite L3 pour atteindre la destination 10.11.11.11/32 apprise sur le tunnel TE. Dans le scénario ci-dessus, quand il y a un Tunnel TE entre PE1 et PE2 considérez que PE1 achemine les données vers CE2 (Customer Edge 2). si L4 est le Label VPN, PE1 achemine les données avec la pile de Labels (L3 L4). P1 retire L3 et P2 reçoit le paquet avec L4. PE2 est le seul LSR qui peut acheminer correctement le paquet avec le Label P4. P2 n'a pas de session MP-BGP avec PE2 aussi il ne reçoit pas le Label L4 de PE2. Par conséquent P2 n'a aucune connaissance de L2 et il élimine le paquet. Les configurations et les sorties show qui suivent démontrent cela et illustrent une so- lution possible à ce problème. Etablissement initial de VPN entre CE1 et CE2 sans Tunnel TE Topologie CE1 CE2 PE1 PE2 P1 P2 172.16.13.0 Lo: 10.2.2.2 172.16.1.0 Lo: 10.7.7.7 Lo: 10.11.11.11 Lo: 10.5.5.5 .13 Configuration PE1 hostname PE1 ip cef ! ip vrf aqua rd 100:1 route−target export 1:1 route−target import 1:1 mpls traffic−eng tunnels interface Loopback0 ip address 10.2.2.2 255.255.255.255 no ip directed−broadcast interface Ethernet2/0/1 ip vrf forwarding aqua ip address 172.16.1.2 255.255.255.0 ccnp_cch
ccnp_cch ! interface Ethernet2/0/2 ip address 10.7.7.2 255.255.255.0 ip router isis mpls traffic−eng tunnels tag−switching ip router isis passive−interface Loopback0 net 47.1234.2222.2222.2222.00 is−type level−1 metric−style wide mpls traffic−eng router−id Loopback0 mpls traffic−eng level−1 router bgp 1 bgp log−neighbor−changes neighbor 10.11.11.11 remote−as 1 neighbor 10.11.11.11 update−source Loopback0 address−family vpnv4 neighbor 10.11.11.11 activate neighbor 10.11.11.11 send−community extended exit−address−family address−family ipv4 no auto−summary no synchronization address−family ipv4 vrf aqua redistribute connected ccnp_cch
ccnp_cch PE2 hostname PE2 ! ip vrf aqua rd 100:1 route−target export 1:1 route−target import 1:1 mpls traffic−eng tunnels interface Loopback0 ip address 10.11.11.11 255.255.255.255 interface POS0/1 ip address 10.12.12.10 255.255.255.0 ip router isis tag−switching ip crc 16 clock source internal interface POS5/1 ip vrf forwarding aqua ip address 172.16.13.11 255.255.255.0 crc 32 router isis passive−interface Loopback0 mpls traffic−eng router−id Loopback0 mpls traffic−eng level−1 net 47.1234.1010.1010.1010.00 is−type level−1 metric−style wide router bgp 1 bgp log−neighbor−changes neighbor 10.2.2.2 remote−as 1 neighbor 10.2.2.2 update−source Loopback0 no auto−summary address−family vpnv4 neighbor 10.2.2.2 activate neighbor 10.2.2.2 send−community extended exit−address−family address−family ipv4 vrf aqua redistribute connected no synchronization ccnp_cch
Vérification ccnp_cch PE2 apprend le préfixe PE1 VPN IPv4 172.16.1.0/24 par voisinage MP-BGP entre PE1 et PE2. Ceci est montré ci-dessous: PE2# show ip route vrf aqua Codes: C − connected, S − static, I − IGRP, 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, E − EGP 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 Gateway of last resort is not set 10.0.0.0/24 is subnetted, 2 subnets B 172.16.1.0 [200/0] via 10.2.2.2, 16:09:10 C 172.16.13.0 is directly connected, POS5/1 De manière similaire, PE1 apprend le préfixe PE2 VPN IPv4 172.16.13.0/24 par voisi- nage MP-BGP entre PE1 et PE2. Ceci est montré ci-dessous: PE1# show ip route vrf aqua B 172.16.13.0 [200/0] via 10.11.11.11, 16:09:49 C 172.16.1.0 is directly connected, Ethernet2/0/1 PE1# show ip route vrf aqua 172.16.13.13 Routing entry for 172.16.13.0/24 Known via "bgp 1", distance 200, metric 0, type internal Last update from 10.11.11.11 16:13:19 ago Routing Descriptor Blocks: * 10.11.11.11 (Default−IP−Routing−Table), from 10.11.11.11, 16:13:19 ago Route metric is 0, traffic share count is 1 AS Hops 0, BGP network version 0 PE1# show ip cef vrf aqua 172.16.13.13 172.16.13.0/24, version 11, cached adjacency 10.7.7.7 0 packets, 0 bytes tag information set local tag: VPN route head fast tag rewrite with Et2/0/2, 10.7.7.7, tags imposed {17 12308} via 10.11.11.11, 0 dependencies, recursive next hop 10.7.7.7, Ethernet2/0/2 via 10.11.11.11/32 valid cached adjacency tag rewrite with Et2/0/2, 10.7.7.7, tags imposed {17 12308} !−−− La pile de Labels utilisée pour atteindre 172.16.13.13 est !−−− {17 12308} dans laquelle 17 est le Label de sortie pour atteindre le !−−− prochain saut 10.11.11.11 et 12308 est Label VPN IPv4 pour 172.16.13.0/24. ccnp_cch
Cas 1: VPN sur un Tunnel TE quand le tunnel va de PE1 à PE2 PE1# show ip cef 10.11.11.11 10.11.11.11/32, version 31, cached adjacency 10.7.7.7 0 packets, 0 bytes tag information set local tag: 21 fast tag rewrite with Et2/0/2, 10.7.7.7, tags imposed {17} via 10.7.7.7, Ethernet2/0/2, 1 dependency next hop 10.7.7.7, Ethernet2/0/2 valid cached adjacency tag rewrite with Et2/0/2, 10.7.7.7, tags imposed {17} !−−− Le Label de sortie 17 est utilisé pour joindre le prochain saut 10.11.11.11. Ainsi CE1 peut atteindre 172.16.13.13 sur le réseau CE2 via l'interface VRF (VPN Rou- ting and Forwarding) "aqua" qui est configuré sur PE1 en utilisant la pile de Labels [17 12308] comme cela est montré ci-dessus: La sortie de la commande ping confirme la connectivité. CE1# ping 172.16.13.13 Type escape sequence to abort. Sending 5, 100−byte ICMP Echos to 172.16.13.13, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round−trip min/avg/max = 1/1/4 ms Cas 1: VPN sur un Tunnel TE quand le tunnel va de PE1 à PE2 Topologie CE1 CE2 PE1 PE2 P1 P2 172.16.13.0 Lo: 10.2.2.2 172.16.1.0 Lo: 10.7.7.7 Lo: 10.11.11.11 Lo: 10.5.5.5 .13 Tunnel TE Quand le Tunnel TE est construit entre les routeurs PE avec l'annonce autoroute utili- sée, le prochain saut de sortie PE BGP est accessible via l'interface Tunnel TE. Ainsi PE1 utilise le Label TE pour atteindre PE2. Note: MPLS TE est indépendant de LDP ce qui signifie que si vous voulez un maillage total de tunnels de PE vers PE, vous pouvez effectivement dévalider LDP sur les rou- teurs et vous n'avez pas besoin d'activer LDP sur les interfaces Tunnel TE. Toutefois vous devez construire tous les tunnels vers le prochain saut BGP des routes VPN ver- sion 4 (VPN v4). Dans cet exemple de configuration vous pouvez voir que ce prochain saut BGP est l'interface Loopback 0 10.11.11.11 sur PE2. Cette même interface Loop- back est aussi le tunnel destination pour le tunnel de PE1 vers PE2. Ceci explique pourquoi dans cet exemple, s'il y a également un tunnel de PE2 vers PE1 pour le trafic retour vous pouvez dévalider LDP dans le cœur de réseau. Ensuite l'acheminement de CE à CE fonctionne avec tout le trafic VPNv4 transporté sur les Tunnels TE. Si le pro- chain saut BGP n'est pas le même que celui du Tunnel TE destination alors LDP doit être activé dans le cœur de réseau et sur le tunnel TE. ccnp_cch
ccnp_cch Configuration La configuration additionnelle sur PE1 pour établir un Tunnel TE est la suivante: PE1 PE1# show run interface tunnel 0 ! interface Tunnel0 ip unnumbered Loopback0 no ip directed−broadcast no ip route−cache distributed tunnel destination 10.11.11.11 tunnel mode mpls traffic−eng tunnel mpls traffic−eng autoroute announce tunnel mpls traffic−eng path−option 10 dynamic end Vérification PE1# show ip cef vrf aqua 172.16.13.13 172.16.13.0/24, version 11 0 packets, 0 bytes tag information set local tag: VPN route head fast tag rewrite with Tu0, point2point, tags imposed {19 12308} via 10.11.11.11, 0 dependencies, recursive next hop 10.11.11.11, Tunnel0 via 10.11.11.11/32 valid adjacency tag rewrite with Tu0, point2point, tags imposed {19 12308} !−−− La pile de labels pour atteindre 172.16.13.13 est {19 12308}. !−−− le prochain saut BGP pour le préfixe VPNv4 est 10.11.11.11 !−−− lequel est le même que le tunnel TE destination. PE1# show ip route 10.11.11.11 Routing entry for 10.11.11.11/32 Known via "isis", distance 115, metric 40, type level−1 Redistributing via isis Last update from 10.11.11.11 on Tunnel0, 00:02:09 ago Routing Descriptor Blocks: * 10.11.11.11, from 10.11.11.11, via Tunnel0 !−−− La route est via Tunnel0. Route metric is 40, traffic share count is 1 ccnp_cch
Maintenant confirmons le Label de sortie utilisé pour atteindre le prochain saut 10.11.11.11 via Tunnel 0. PE1# show mpls traffic−eng tunnels tunnel 0 Name: PE1_t0 (Tunnel0) Destination: 10.11.11.11 Status: Admin: up Oper: up Path: valid Signalling: connected path option 10, type dynamic (Basis for Setup, path weight 30) Config Parameters: Bandwidth: 0 kbps (Global) Priority: 7 7 Affinity: 0x0/0xFFFF Metric Type: TE (default) AutoRoute: enabled LockDown: disabled Loadshare: 0 bw−based auto−bw: disabled InLabel : − OutLabel : Ethernet2/0/2, 19 !−−− Le Label 19 de RSVP est utilisé pour atteindre la destination !--- 10.11.11.11/32. RSVP Signalling Info: Src 10.2.2.2, Dst 10.11.11.11, Tun_Id 0, Tun_Instance 31 RSVP Path Info: My Address: 10.7.7.2 Explicit Route: 10.7.7.7 10.8.8.7 10.8.8.5 10.12.12.10 10.11.11.11 Record Route: NONE Tspec: ave rate=0 kbits, burst=1000 bytes, peak rate=0 kbits RSVP Resv Info: Fspec: ave rate=0 kbits, burst=1000 bytes, peak rate=Inf Shortest Unconstrained Path Info: Path Weight: 30 (TE) Explicit Route: 10.7.7.2 10.7.7.7 10.8.8.7 10.8.8.5 10.12.12.10 10.11.11.11 History: Tunnel: Time since created: 17 hours, 17 minutes Time since path change: 32 minutes, 54 seconds Current LSP: Uptime: 32 minutes, 54 seconds Prior LSP: ID: path option 10 [14] Removal Trigger: tunnel shutdown ccnp_cch
Une autre manière de voir cette information rapidement est d'utiliser des filtres de sor- tie dans les commandes show comme cela est montré ci-dessous: PE1# show mpls traffic−eng tunnels tunnel 0 | include Label InLabel : − OutLabel : Ethernet2/0/2, 19 !−−− Ceci est le Label pour atteindre 10.11.11.11. Regardons la pile de Labels. Le Label 19, qui est le Label TE , est utilisé pour achemi- ner les paquets vers le prochain saut 10.11.11.0 sur Tunnel 0. PE1# show tag forwarding−table 10.11.11.11 detail Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface 21 Pop tag 10.11.11.11/32 0 Tu0 point2point MAC/Encaps=14/18, MTU=1500, Tag Stack{19}, via Et2/0/2 00603E2B02410060835887428847 00013000 No output feature configured Per−packet load−sharing, slots: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 PE1# Ainsi PE1 transmet un paquet destiné à 172.16.13.13 avec la pile de Label [19 12308]. P1 échange le Label 19. le paquet atteint P2 qui retire le Label de sortie 19. Ensuite le paquet est acheminé vers PE2 avec uniquement le Label 12308. Sur PE2 le paquet avec le Label 12308 est reçu et commuté d'après l'information de la table d'acheminement. ceci est montré ci-dessous. PE2# show tag for tags 12308 detail Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface 12308 Aggregate 172.16.13.0/24[V] 12256 MAC/Encaps=0/0, MTU=0, Tag Stack{} VPN route: aqua PE2# ccnp_cch
Cas 2: VPN sur un Tunnel TE quand le tunnel va de PE1 à P2 Note: Aucune "Outgoing Interface" n'est affichée car le Label de sortie est "Aggregate". Ceci parce que le préfixe associé au Label est une route directement connectée. Les messages ping de CE1 vers un host sur CE2 confirmes la connectivité VPN sur le Tunnel TE. CE1# ping 172.16.13.13 Type escape sequence to abort. Sending 5, 100−byte ICMP Echos to 172.16.13.13, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round−trip min/avg/max = 4/13/36 ms CE1# Cas 2: VPN sur un Tunnel TE quand le tunnel va de PE1 à P2 Topologie CE1 CE2 PE1 PE2 P1 P2 172.16.13.0 Lo: 10.2.2.2 172.16.1.0 Lo: 10.7.7.7 Lo: 10.11.11.11 Lo: 10.5.5.5 .13 Tunnel TE Configuration La configuration TE additionnelle sur la configuration de base de PE1 est la suivante: PE1 PE1# show run interface tunnel 0 ! interface Tunnel0 ip unnumbered Loopback0 no ip directed−broadcast no ip route−cache distributed tunnel destination 10.5.5.5 tunnel mode mpls traffic−eng tunnel mpls traffic−eng autoroute announce tunnel mpls traffic−eng path−option 10 dynamic end ccnp_cch
ccnp_cch Vérification Vérifiez le préfixe de route 172.16.13.13 sur le VRF aqua de PE1. Celui-ci pointe vers le prochain saut 10.11.11.11/32 (sur Tunnel 0) en utilisant la pile de labels {19 12308}. PE1# show ip cef vrf aqua 172.16.13.13 172.16.13.0/24, version 11 0 packets, 0 bytes tag information set local tag: VPN route head fast tag rewrite with Tu0, point2point, tags imposed {19 12308} via 10.11.11.11, 0 dependencies, recursive next hop 10.5.5.5, Tunnel0 via 10.11.11.11/32 valid adjacency tag rewrite with Tu0, point2point, tags imposed {19 12308} PE1# Le Label 19, le Label de sortie, est utilisé pour joindre le prochain saut 10.11.11.11/32 comme cela est montré ci-dessous: PE1# show ip cef 10.11.11.11 10.11.11.11/32, version 37 local tag: 21 fast tag rewrite with Tu0, point2point, tags imposed {19} via 10.5.5.5, Tunnel0, 1 dependency next hop 10.5.5.5, Tunnel0 tag rewrite with Tu0, point2point, tags imposed {19} PE1# show mpls traffic−eng tunnels tunnel 0 Name: PE1_t0 (Tunnel0) Destination: 10.5.5.5 Status: Admin: up Oper: up Path: valid Signalling: connected path option 10, type dynamic (Basis for Setup, path weight 20) Config Parameters: Bandwidth: 0 kbps (Global) Priority: 7 7 Affinity: 0x0/0xFFFF Metric Type: TE (default) AutoRoute: enabled LockDown: disabled Loadshare: 0 bw−based auto−bw: disabled InLabel : − OutLabel : Ethernet2/0/2, 19 RSVP Signalling Info: Src 10.2.2.2, Dst 10.5.5.5, Tun_Id 0, Tun_Instance 33 RSVP Path Info: My Address: 10.7.7.2 Explicit Route: 10.7.7.7 10.8.8.7 10.8.8.5 10.5.5.5 Record Route: NONE Tspec: ave rate=0 kbits, burst=1000 bytes, peak rate=0 kbits ccnp_cch
ccnp_cch RSVP Resv Info: Record Route: NONE Fspec: ave rate=0 kbits, burst=1000 bytes, peak rate=Inf Shortest Unconstrained Path Info: Path Weight: 20 (TE) Explicit Route: 10.7.7.2 10.7.7.7 10.8.8.7 10.8.8.5 10.5.5.5 History: Tunnel: Time since created: 17 hours, 31 minutes Time since path change: 8 minutes, 49 seconds Current LSP: Uptime: 8 minutes, 49 seconds Selection: reoptimation Prior LSP: ID: path option 10 [31] Removal Trigger: path verification failed PE1# PE1# show mpls traffic−eng tunnels tunnel 0 | i Label InLabel : − OutLabel : Ethernet2/0/2, 19 Le paquet issu de PE1 est transmis sur le Tunnel TE avec la pile de Labels {19 12308}. Dès que P1 reçoit le paquet, il retire le label 19 (PHP) et transmet le paquet avec la pile de Labels {12308}. La commande show le confirme. P1# show tag for tag 19 Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface 19 Pop tag 10.2.2.2 0 [33] 2130 Et2/0 10.8.8.5 P1# P1# show tag for tag 19 detail 19 Pop tag 10.2.2.2 0 [33] 2257 Et2/0 10.8.8.5 MAC/Encaps=14/14, MTU=1504, Tag Stack{} 006009E08B0300603E2B02408847 No output feature configured Quand P2 reçoit le paquet avec la pile de Labels {12308}, il vérifie sa LFIB et élimine le paquet car il n'a aucune correspondance. Cela est montré par la sortie de la commande show sur P2. ccnp_cch
Explication ccnp_cch P2# show tag forwarding−table tags 12308 detail Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface P2# 7w4d: TAG: Et0/3: recvd: CoS=0, TTL=253, Tag(s)=12308 Explication La solution à ce problème est de valider TDP/LDP sur le Tunnel TE et de faire une in- terface mpls (tag-switched) de celui-ci. Dans l'exemple montré dans la solution, TDP est validé sur le Tunnel 0 de PE1. P2 est configuré pour accepter les hellos dirigés et former des voisins TDP. Ainsi PE1 reçoit le Label pour 10.11.11.11 de P2 via TDP. Maintenant que ce Tunnel 0 est devenu une interface mpls et que TDP a été validé pour le trafic vers 10.11.11.11, PE1 utilise les deux Labels. Il utilise le Label RSVP pour joindre la fin du Tunnel et le Label TDP pour joindre 10.11.11.11. Dans ce scénario PE1 utilise la pile de Labels {L2 L3 L1} pour acheminer les données vers CE2 si ces items sont vrais: ● L1 est le Label VPN ● L2 est le Label RSVP utilisé pour joindre la fin du Tunnel TE. ● L3 est le Label TDP pour joindre 10.11.11.11 (reçu de P2) Solution La solution est de valider TDP à travers le Tunnel TE. Configuration Ici est montrée la configuration du Tunnel TE sur PE1 avec TDP validé. Les ajouts sont en caractères gras. PE1 PE1# show run interface tunnel 0 ! interface Tunnel0 ip unnumbered Loopback0 no ip directed−broadcast no ip route−cache distributed tag−switching ip !−−− Ceci valide TDP. tunnel destination 10.5.5.5 tunnel mode mpls traffic−eng tunnel mpls traffic−eng autoroute announce tunnel mpls traffic−eng path−option 10 dynamic end ccnp_cch
Ceci est la configuration additionnelle à la fin du Tunnel TE pour accepter les Hellos TDP dirigés. P2# show run | i directed−hello tag−switching tdp discovery directed−hello accept !−−− Ceci configure P2 pour qu'il accepte les hellos TDP dirigés. P2# Vérification PE1# show tag tdp neighbor | i Peer Peer TDP Ident: 10.7.7.7:0; Local TDP Ident 10.2.2.2:0 Peer TDP Ident: 10.5.5.5:0; Local TDP Ident 10.2.2.2:0 PE1# PE1# show ip cef vrf aqua 172.16.13.13 172.16.13.0/24, version 11 0 packets, 0 bytes tag information set local tag: VPN route head fast tag rewrite with Tu0, point2point, tags imposed {19 18 12308} via 10.11.11.11, 0 dependencies, recursive next hop 10.5.5.5, Tunnel0 via 10.11.11.11/32 valid adjacency tag rewrite with Tu0, point2point, tags imposed {19 18 12308} PE1# show mpls traffic−eng tunnels tunnel 0 | i Label InLabel : − OutLabel : Ethernet2/0/2, 19 !−−− C'est le Label TE appris via RSVP. PE1# show tag tdp bind 10.11.11.11 32 tib entry: 10.11.11.11/32, rev 20 local binding: tag: 21 remote binding: tsr: 10.7.7.7:0, tag: 17 remote binding: tsr: 10.5.5.5:0, tag: 18 !−−− C'est le Label TDP appris de P2. Quand P1 reçoit le paquet avec la pile de Labels {19 10 12308}, il retire le Label 19 et transmet le paquet avec la pile de Labels {18 12308} vers P2. P2 vérifie sa LFIB pour le Label 18 puis retire le Label et transmet le paquet sur l'interface de sortie PO2/0/0 vers PE1. PE1 reçoit le paquet avec le Label 12308 et le commute avec succès vers CE2. P2# show tag for tag 18 Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface 18 Pop tag 10.11.11.11/32 117496 POS2/0/0 point2point ccnp_cch
ccnp_cch P2# show tag tdp discovery Local TDP Identifier: 10.5.5.5:0 Discovery Sources: Interfaces: Ethernet0/3 (tdp): xmit/recv TDP Id: 10.7.7.7:0 POS2/0/0 (tdp): xmit/recv TDP Id: 10.11.11.11:0 Directed Hellos: 10.5.5.5 −> 10.2.2.2 (tdp): passive, xmit/recv TDP Id: 10.2.2.2:0 P2# show tag tdp neighbor 10.2.2.2 Peer TDP Ident: 10.2.2.2:0; Local TDP Ident 10.5.5.5:0 TCP connection: 10.2.2.2.711 − 10.5.5.5.11690 State: Oper; PIEs sent/rcvd: 469/465; Downstream Up time: 01:41:08 TDP discovery sources: Directed Hello 10.5.5.5 −> 10.2.2.2, passive Addresses bound to peer TDP Ident: 10.7.7.2 172.16.47.166 10.2.2.2 PE1# show tag tdp neighbor 10.5.5.5 Peer TDP Ident: 10.5.5.5:0; Local TDP Ident 10.2.2.2:0 TCP connection: 10.5.5.5.11690 − 10.2.2.2.711 State: Oper; PIEs sent/rcvd: 438/441; Downstream Up time: 01:35:08 Directed Hello 10.2.2.2 −> 10.5.5.5, active !−−− Ceci indique le voisin. 10.5.5.5 10.12.12.5 10.8.8.5 PE1# show ip route 10.11.11.11 Routing entry for 10.11.11.11/32 Known via "isis", distance 115, metric 40, type level−1 Redistributing via isis Last update from 10.5.5.5 on Tunnel0, 01:52:21 ago Routing Descriptor Blocks: * 10.5.5.5, from 10.11.11.11, via Tunnel0 Route metric is 40, traffic share count is 1 Une commande ping de CE1 vers un host de CE2 confirme la solution. CE1# ping 172.16.13.13 Type escape sequence to abort. Sending 5, 100−byte ICMP Echos to 172.16.13.13, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round−trip min/avg/max = 4/4/4 ms CE1# ccnp_cch
Cas 3: VPN entre CE1 et CE2 sur un Tunnel TE qui va de P1 à P2 quand TDP/LDP n'est pas validé Topologie CE1 CE2 PE1 PE2 P1 P2 172.16.13.0 Lo: 10.2.2.2 172.16.1.0 Lo: 10.7.7.7 Lo: 10.11.11.11 Lo: 10.5.5.5 .13 Tunnel TE Configuration La configuration du tunnel sur PE1 est la suivante: PE1 P1# show run interface tunnel 0 Building configuration... Current configuration : 255 bytes ! interface Tunnel0 ip unnumbered Loopback0 no ip directed−broadcast ip route−cache distributed tunnel destination 10.5.5.5 tunnel mode mpls traffic−eng tunnel mpls traffic−eng autoroute announce tunnel mpls traffic−eng path−option 10 dynamic end ccnp_cch
ccnp_cch Vérification Vérifiez comment les paquets destinés à CE2 172.16.13.13 sont commutés. La sortie de la commande show ip cef montre que les paquets vers la destination 172.16.13.13 sont commutés avec la pile de Labels {17 12308}. PE1# show ip cef vrf aqua 172.16.13.13 172.16.13.0/24, version 18, cached adjacency 10.7.7.7 0 packets, 0 bytes tag information set local tag: VPN route head fast tag rewrite with Et2/0/2, 10.7.7.7, tags imposed {17 12308} via 10.11.11.11, 0 dependencies, recursive next hop 10.7.7.7, Ethernet2/0/2 via 10.11.11.11/32 valid cached adjacency tag rewrite with Et2/0/2, 10.7.7.7, tags imposed {17 12308} Quand P1 reçoit ce paquet, il retire le Label de sortie 17 et commute le paquet, après avoir recherché dans la table de routage IP vers Tunnel0. Notez le champ implicit−null OutLabel dans cette sortie; il signifie que l'interface de sortie n'utilise pas de commuta- tion de Labels. P1# show ip cef 10.11.11.11 detail 10.11.11.11/32, version 52 local tag: 17 fast tag rewrite with Tu0, point2point, tags imposed {} via 10.5.5.5, Tunnel0, 0 dependencies next hop 10.5.5.5, Tunnel0 valid adjacency tag rewrite with Tu0, point2point, tags imposed {} P1# show mpls traffic−eng tunnel tunnel 0 | i Label InLabel : − OutLabel : Ethernet2/0, implicit−null P1# show tag for 10.11.11.11 detail Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface 17 Untagged 10.11.11.11/32 882 Tu0 point2point MAC/Encaps=14/14, MTU=1500, Tag Stack{}, via Et2/0 006009E08B0300603E2B02408847 No output feature configured Per−packet load−sharing, slots: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 P1# ccnp_cch
Cas 4: VPN sur un Tunnel TE entre P1 et P2 quand TDP est validé P1# show ip route 10.11.11.11 Routing entry for 10.11.11.11/32 Known via "isis", distance 115, metric 30, type level−1 Redistributing via isis Last update from 10.5.5.5 on Tunnel0, 00:03:20 ago Routing Descriptor Blocks: * 10.5.5.5, from 10.11.11.11, via Tunnel0 Route metric is 30, traffic share count is 1 Dès que P2 reçoit le paquet avec le Label 12308 il regarde sa table d'acheminement. Comme il n'y a aucun moyen pour que P2 connaisse le Label VPN 12308 de CE2, il élimine le paquet. P2# show tag for tag 12308 detail Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface Cela interrompt le chemin des paquets VPN destinés à CE2. Ceci est confirmé par la commande ping vers CE2 172.16.13.13/32. CE1# ping 172.16.13.13 Type escape sequence to abort. Sending 5, 100−byte ICMP Echos to 172.16.13.13, timeout is 2 seconds: ..... Success rate is 0 percent (0/5) CE1# Solution La solution est de valider LDP/TDP sur le tunnel. Cas 4: VPN sur un Tunnel TE entre P1 et P2 quand TDP est validé Topologie CE1 CE2 PE1 PE2 P1 P2 172.16.13.0 Lo: 10.2.2.2 172.16.1.0 Lo: 10.7.7.7 Lo: 10.11.11.11 Lo: 10.5.5.5 .13 Tunnel TE ccnp_cch
ccnp_cch Configuration Quand TDP est validé sur le tunnel, les configurations sur P1 sont celles-ci. Les ajouts sont en caractères gras. PE1 P1# show run interface tunnel 0 Building configuration... Current configuration : 273 bytes ! interface Tunnel0 ip unnumbered Loopback0 no ip directed−broadcast ip route−cache distributed tag−switching ip tunnel destination 10.5.5.5 tunnel mode mpls traffic−eng tunnel mpls traffic−eng autoroute announce tunnel mpls traffic−eng path−option 10 dynamic end Vérification PE1 transmet des paquets vers le préfixe 172.16.13.13/32 avec la pile de labels {17 12308} . PE1# PE1# show tag for 10.11.11.11 detail Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface 21 17 10.11.11.11/32 0 Et2/0/2 10.7.7.7 MAC/Encaps=14/18, MTU=1500, Tag Stack{17} 00603E2B02410060835887428847 00011000 No output feature configured Per−packet load−sharing, slots: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ccnp_cch
ccnp_cch PE1# show ip cef 10.11.11.11 detail 10.11.11.11/32, version 60, cached adjacency 10.7.7.7 0 packets, 0 bytes tag information set local tag: 21 fast tag rewrite with Et2/0/2, 10.7.7.7, tags imposed {17} via 10.7.7.7, Ethernet2/0/2, 1 dependency next hop 10.7.7.7, Ethernet2/0/2 valid cached adjacency tag rewrite with Et2/0/2, 10.7.7.7, tags imposed {17} PE1# show ip cef vrf aqua 172.16.13.13 172.16.13.0/24, version 18, cached adjacency 10.7.7.7 local tag: VPN route head fast tag rewrite with Et2/0/2, 10.7.7.7, tags imposed {17 12308} via 10.11.11.11, 0 dependencies, recursive next hop 10.7.7.7, Ethernet2/0/2 via 10.11.11.11/32 tag rewrite with Et2/0/2, 10.7.7.7, tags imposed {17 12308} P1 reçoit le paquet avec la pile de Labels {17 12308} et regarde sa LFIB pour le Label 17. P1# show tag for tag 17 detail Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface 17 18 10.11.11.11/32 1158 Tu0 point2point MAC/Encaps=14/18, MTU=1496, Tag Stack{18}, via Et2/0 006009E08B0300603E2B02408847 00012000 No output feature configured Per−packet load−sharing, slots: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 P1# P1# show ip cef 10.11.11.11 detail 10.11.11.11/32, version 52 local tag: 17 fast tag rewrite with Tu0, point2point, tags imposed {18} via 10.5.5.5, Tunnel0, 0 dependencies next hop 10.5.5.5, Tunnel0 valid adjacency tag rewrite with Tu0, point2point, tags imposed {18} Cela montre que le Label 17 doit être échangé avec le Label 18. Par conséquent le pa- quet est commuté sur l'interface tunnel avec la pile de Labels {18 12308}. ccnp_cch
Cas 5: VPN MPLS sur un sur un Tunnel TE entre P1 et PE2 P2 reçoit le paquet sur l'interface tunnel avec la pile de Labels {18 12308}. Il retire le Label 18 (car c'est l'avant dernier routeur) et commute le paquet vers PE2 avec le Label 12308. P2# show tag for tag 18 detail Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface 18 Pop tag 10.11.11.11/32 127645 PO2/0/0 point2point MAC/Encaps=4/4, MTU=4474, Tag Stack{} 0F008847 No output feature configured Per−packet load−sharing, slots: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 P2# PE2 reçoit le paquet avec le Label 12308 et le commute vers CE2 avec succès. PE2# show tag forwarding tags 12308 detail Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface 12308 Aggregate 172.16.13.0/24[V] 12256 MAC/Encaps=0/0, MTU=0, Tag Stack{} VPN route: aqua PE2# CE1# ping 172.16.13.13 Type escape sequence to abort. Sending 5, 100−byte ICMP Echos to 172.16.13.13, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round−trip min/avg/max = 1/2/4 ms CE1# Cas 5: VPN MPLS sur un sur un Tunnel TE entre P1 et PE2 Topologie CE1 CE2 PE1 PE2 P1 P2 172.16.13.0 Lo: 10.2.2.2 172.16.1.0 Lo: 10.7.7.7 Lo: 10.11.11.11 Lo: 10.5.5.5 .13 Tunnel TE ccnp_cch
Configuration Vérification ccnp_cch PE1 PE1# show run interface tunnel 0 Building configuration... Current configuration : 258 bytes ! interface Tunnel0 ip unnumbered Loopback0 no ip directed−broadcast ip route−cache distributed tunnel destination 10.11.11.11 tunnel mode mpls traffic−eng tunnel mpls traffic−eng autoroute announce tunnel mpls traffic−eng path−option 10 dynamic end Vérification PE1 transmet un paquet destiné à 172.16.13.13 vers son prochain saut 10.11.11.11 avec la pile de Labels {17 12308}. PE1# show ip cef vrf aqua 172.16.13.13 172.16.13.0/24, version 18, cached adjacency 10.7.7.7 0 packets, 0 bytes tag information set local tag: VPN route head fast tag rewrite with Et2/0/2, 10.7.7.7, tags imposed {17 12308} via 10.11.11.11, 0 dependencies, recursive next hop 10.7.7.7, Ethernet2/0/2 via 10.11.11.11/32 valid cached adjacency tag rewrite with Et2/0/2, 10.7.7.7, tags imposed {17 12308} P1 reçoit le paquet avec la pile de Labels {17 12308}. P1 regarde sa table LFIB et vérifie le Label 17 puis commute le paquet avec le Label 17 vers P2. P1# show tag for 10.11.11.11 detail Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface 17 Untagged 10.11.11.11/32 411 Tu0 point2point MAC/Encaps=14/18, MTU=1500, Tag Stack{17}, via Et2/0 006009E08B0300603E2B02408847 00011000 No output feature configured Per−packet load−sharing, slots: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 P1# ccnp_cch
ccnp_cch P1# show tag for tag 17 detail Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface 17 Untagged 10.11.11.11/32 685 Tu0 point2point MAC/Encaps=14/18, MTU=1500, Tag Stack{17}, via Et2/0 006009E08B0300603E2B02408847 00011000 No output feature configured Per−packet load−sharing, slots: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 P1# P1# show ip cef 10.11.11.11 10.11.11.11/32, version 67 0 packets, 0 bytes tag information set local tag: 17 fast tag rewrite with Tu0, point2point, tags imposed {17} via 10.11.11.11, Tunnel0, 0 dependencies next hop 10.11.11.11, Tunnel0 valid adjacency tag rewrite with Tu0, point2point, tags imposed {17} P2 reçoit le paquet avec la pile de Labels {17 12308}. P2, étant l'avant dernier routeur, , retire le Label 17. P2# show tag for tag 17 detail Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface 17 Pop tag 10.7.7.7 0 [5] 535 PO2/0/0 point2point MAC/Encaps=4/4, MTU=4474, Tag Stack{} 0F008847 P2# PE2 reçoit ensuite le paquet avec le Label 12308. P2 sait que la destination pour le Label 12308 est directement connectée. Par conséquent la commande ping de CE1 vers CE2 réussie. PE2# show tag for tag 12308 detail Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface 12308 Aggregate 172.16.13.0/24[V] 12776 MAC/Encaps=0/0, MTU=0, Tag Stack{} VPN route: aqua PE2# Note: Aucune "Outgoing interface" est affichée car le Label de sortie est "Aggregate". C'est parce que le préfixe associé au Label est la route directement connectée. CE1# ping 172.16.13.13 Type escape sequence to abort. Sending 5, 100−byte ICMP Echos to 172.16.13.13, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round−trip min/avg/max = 4/4/4 ms CE1# ccnp_cch
Conclusion ccnp_cch CE1# ping 172.16.13.13 Type escape sequence to abort. Sending 5, 100−byte ICMP Echos to 172.16.13.13, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round−trip min/avg/max = 4/4/4 ms CE1# Conclusion Quand le Tunnel TE est terminé sue le PE de sortie, le VPN MPLS et le Tunnel TE fonc- tionnent ensemble sans configuration additionnelle. Quand le Tunnel TE est terminé sur un routeur P (avant le routeur PE dans le cœur de réseau), l'acheminement du tra- fic VPN MPLS échoue car les paquets arrivent avec des Labels VPN comme Labels de sortie qui ne sont pas dans les tables LFIB de ces équipements. Par conséquent ces routeurs intermédiaires ne sont pas capables d'acheminer les paquets vers la destina- tion finale qui est le réseau VPN du client. Dans de tels cas, LDP/TDP doit être validé sur le Tunnel TE pour résoudre ce problème. ccnp_cch