Este documento proporciona configuraciones de ejemplo para implementar una VPN MPLS (Multiprotocol Label Switching) sobre los túneles de ingeniería de tráfico (TE) en una red MPLS. Para obtener las ventajas de una VPN MPLS sobre túneles TE, ambos deben coexistir en la red. Este documento ilustra varios escenarios que explican por qué el reenvío de paquetes dentro de una VPN MPLS sobre túneles TE podría fallar. También proporciona una solución posible.
Quienes lean este documento deben tener conocimiento de los siguientes temas:
Este documento no tiene restricciones específicas en cuanto a versiones de software y de hardware.
Como se muestra en esta topología, en una configuración de VPN MPLS simple, Provider Edge 1 (PE1) aprende la etiqueta VPN (Label 1 [L1]) para el prefijo VPN 172.16.13.0/24 a través del protocolo de gateway fronterizo multiprotocolo (MPBGP) directamente desde PE2, con el siguiente salto como dirección de loopback PE2. PE1 también aprende la etiqueta (L2) para la dirección de loopback PE2 a través del protocolo de distribución de etiquetas (LDP) desde su salto siguiente P1.
Al reenviar datos al prefijo VPN 172.16.13.13, PE1 utiliza una pila de etiquetas {L2 L1} con L2 como etiqueta externa. L2 es intercambiada por el router de switch de etiqueta (LSR) de tránsito, P1. P2 hace sonar el L2 externo y reenvía el paquete a PE2 con sólo un L1. Para entender mejor por qué P2 pops L2, consulte la sección 3.16 sobre el penúltimo salto (PHP) en RFC 3031 . Por lo tanto, los paquetes al prefijo 172.16.13.0/24 de la versión 4 (IPv4) de IP VPN se conmutan por etiquetas a través de una red MPLS.
La operación de reenvío VPN MPLS falla si cualquier router P recibe el paquete con L1 (etiqueta VPN) como la única etiqueta externa en lugar de la pila de etiquetas {L2 L1}. Esto ocurre porque ninguno de los routers P tiene L1 en su base de información de reenvío de etiquetas (LFIB) para conmutar el paquete.
Un TE MPLS utiliza el protocolo de reserva de recursos (RSVP) para intercambiar etiquetas. El router recibe diferentes nombres de LDP y RSVP para un prefijo dado cuando se lo configura tanto para TE como para el Protocolo de distribución de etiqueta (TDP)/LDP. Las etiquetas de LDP y RSVP no necesitan ser las mismas en todas las situaciones. El router instala una etiqueta LDP en la tabla de reenvío si el prefijo se aprende a través de una interfaz LDP, e instala la etiqueta RSVP en la tabla de reenvío si el prefijo se aprende a través de una interfaz de túnel TE.
En el caso de un túnel TE plano (sin LDP/TDP habilitado en el túnel), el LSR de ingreso (el LSR en la cabecera del túnel TE) utiliza la misma etiqueta que se utiliza para alcanzar el extremo posterior del túnel TE para todas las rutas aprendidas a través de un túnel TE.
Por ejemplo, hay un túnel TE de PE1 a P2 que está aprendiendo el prefijo 10.11.11.11/32 a través del túnel. La cola extremo del túnel del P2 es 10.5.5.5, y la etiqueta para alcanzar 10.5.5.5 en el PE1 es L3. Luego, PE1 utiliza L3 para alcanzar el destino 10.11.11.11/32, aprendido a través del túnel TE.
En el escenario anterior, cuando hay un túnel TE entre PE1 y P2, considere que PE1 reenvía los datos al borde del cliente 2 (CE2). Si L4 es la etiqueta VPN, PE1 reenvía los datos con la pila de etiquetas {L3 L4}. P1 se suma a L3 y P2 recibe el paquete con L4. PE2 es el único LSR que puede reenviar correctamente el paquete con la etiqueta externa L4. P2 no tiene una sesión MPBGP con PE2, por lo que no recibe la L4 de PE2. Por lo tanto, P2 no tiene ningún conocimiento de L2 y descarta el paquete.
Las configuraciones y mostrar los resultados que siguen demuestran esto e ilustran una posible solución a este problema.
Aquí sólo se incluyen las partes relevantes de los archivos de configuración:
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 ! 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 neighbor 10.11.11.11 activate no auto-summary no synchronization exit-address-family ! address-family ipv4 vrf aqua redistribute connected no auto-summary no synchronization exit-address-family |
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 mpls traffic-eng tunnels 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 clock source internal ! 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 auto-summary no synchronization exit-address-family ! |
PE2 aprende el prefijo IPv4 VPN PE1 172.16.1.0/24 sobre el peering MPBGP entre PE1 y PE2. Esto se muestra aquí:
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 manera similar, PE1 aprende el prefijo IPv4 VPN PE2 172.16.13.0/24 sobre el peering MPBGP entre PE1 y PE2. Esto se muestra aquí:
PE1# 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.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} !--- The label stack used to reach 172.16.13.13 is !--- {17 12308}, where 17 is the outer label to reach next hop 10.11.11.11 !--- and 12308 is the VPN IPv4 label for 172.16.13.0/24. 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} !--- Outer label 17 is used to reach next hop 10.11.11.11.
Por lo tanto, CE1 puede alcanzar 172.16.13.13 en la red CE2 a través de la instancia de routing y reenvío de VPN (VRF) "aqua", que se configura en PE1 utilizando la pila de etiquetas {17 12308}, como se muestra anteriormente.
Esta salida ping confirma la conectividad:
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
Cuando se construye el túnel TE entre los routers PE con anuncio de ruta automática utilizado, se puede alcanzar el siguiente salto BGP PE de salida a través de la interfaz de túnel TE. Por lo tanto, PE1 utiliza la etiqueta TE para alcanzar PE2.
Nota: MPLS TE es independiente del LDP, lo que significa que, si tiene una malla completa de túneles de PE a PE, puede inhabilitar efectivamente el LDP en los routers y no necesita ejecutar el LDP en las interfaces de túnel TE. Sin embargo, debe generar todos los túneles al siguiente salto BGP de las rutas VPN versión 4 (VPNv4). En el ejemplo de esta configuración, puede ver que este salto siguiente BGP es el Loopback0 en PE2, 10.11.11.11. Este mismo loopback también es el destino del túnel para el túnel de PE1 a PE2. Esto explica por qué, en este ejemplo, si también hay un túnel de PE2 a PE1 para el tráfico de retorno, puede inhabilitar el LDP en el núcleo. A continuación, el reenvío de CE a CE funciona con todo el tráfico VPNv4 que se transporta a través de los túneles TE. Si el salto siguiente BGP no es el mismo que el destino del túnel TE, el LDP debe ejecutarse en el núcleo y en el túnel TE.
Aquí se muestra la configuración adicional en PE1 para establecer un túnel PE:
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 |
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} !--- The label stack to reach 172.16.13.13 is {19 12308}. !--- BGP next hop for the VPNv4 prefix is 10.11.11.11, which is !--- the same as the TE tunnel 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 !--- The route is via Tunnel0. Route metric is 40, traffic share count is 1
Ahora, confirme la etiqueta exterior utilizada para alcanzar el siguiente salto 10.11.11.11 a través del túnel0.
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 !--- Label 19 from RSVP is used to reach 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: Record Route: NONE 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
Otra manera de ver esta información rápidamente es utilizar los modificadores de salida en los comandos show, como se muestra aquí:
PE1# show mpls traffic-eng tunnels tunnel 0 | include Label InLabel : - OutLabel : Ethernet2/0/2, 19 !--- This is the label to reach 10.11.11.11.
Observe la pila de etiquetas. Es 19, que corresponde a la etiqueta TE, utilizada para reenviar paquetes al salto siguiente 10.11.11.0 por Tunnel0.
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#
Por lo tanto, PE1 envía un paquete destinado a 172.16.13.13 con la pila de etiquetas {19 12308}. P1 intercambia la etiqueta 19. El paquete alcanza P2, que muestra esa etiqueta externa. Luego, el paquete se reenvía a PE2 con la etiqueta 12308 solamente.
En PE2, el paquete con la etiqueta 12308 se recibe y se conmuta según la información en la tabla de reenvío. Esto se muestra aquí:
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 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 PE2#
Nota: No se muestra ninguna interfaz saliente porque la etiqueta saliente es Agregada. Esto se debe a que el prefijo asociado a la etiqueta es la ruta directamente conectada.
Los ping de CE1 a un host en CE2 confirman la conectividad VPN a través del túnel 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#
La configuración TE adicional sobre la configuración básica en PE1 se muestra aquí:
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 ! |
Verifique la ruta al prefijo 172.16.13.13 en el aqua VRF PE1. Señala al salto siguiente 10.11.11.11/32 (sobre el túnel0) mediante la pila de etiquetas {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#
La etiqueta 19, la etiqueta externa, se utiliza para alcanzar el salto siguiente 10.11.11.11/32, como se muestra aquí:
PE1# show ip cef 10.11.11.11 10.11.11.11/32, version 37 0 packets, 0 bytes tag information set 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 valid adjacency 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 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 PE1#
El paquete de PE1 se envía a través del túnel TE con la pila de etiquetas {19 12308}. Una vez que P1 recibe el paquete, aparece (PHP) la etiqueta 19 y envía el paquete con la pila de etiquetas {12308}. El comando show confirma esto:
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 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] 2257 Et2/0 10.8.8.5 MAC/Encaps=14/14, MTU=1504, Tag Stack{} 006009E08B0300603E2B02408847 No output feature configured P1>
Cuando P2 recibe el paquete con la pila de etiquetas {12308}, verifica su LFIB y descarta el paquete porque no existe coincidencia. Esta es la salida del comando show en P2:
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# P2# 7w4d: TAG: Et0/3: recvd: CoS=0, TTL=253, Tag(s)=12308 7w4d: TAG: Et0/3: recvd: CoS=0, TTL=253, Tag(s)=12308 7w4d: TAG: Et0/3: recvd: CoS=0, TTL=253, Tag(s)=12308 7w4d: TAG: Et0/3: recvd: CoS=0, TTL=253, Tag(s)=12308 P2# P2#
La solución a este problema es activar el TDP/LDP en el túnel TE y transformarlo en una interfaz conmutada por etiqueta. En el ejemplo mostrado en la Solución, TDP se habilita en el Túnel0 de PE1. P2 está configurado para aceptar saludos dirigidos y formar vecinos TDP dirigidos. Por lo tanto, PE1 recibe la etiqueta 10.11.11.11 de P2 a través de LDP. Ahora que el túnel0 se ha convertido en una interfaz conmutada por etiquetas y TDP se ha habilitado para el tráfico a 10.11.11.11, PE1 utiliza ambas etiquetas; utiliza la etiqueta RSVP para alcanzar el tailend TE y la etiqueta TDP para alcanzar 10.11.11.11.
En este escenario, PE1 utiliza la pila de etiquetas {L2 L3 L1} para reenviar datos a CE2 si estos elementos son verdaderos:
L1 es la etiqueta VPN.
L2 es la etiqueta RSVP para alcanzar el tailend TE.
L3 es la etiqueta TDP para alcanzar 10.11.11.11 (recibida de P2).
La solución es habilitar TDP a través del túnel TE.
Aquí se muestra la configuración del túnel TE en PE1 con TDP habilitado en él. Las adiciones están en negrita.
PE1 |
---|
PE1# show run interface tunnel 0 ! interface Tunnel0 ip unnumbered Loopback0 no ip directed-broadcast no ip route-cache distributed tag-switching ip !--- This enables 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 ! |
Esta es la configuración adicional en la cola del túnel TE para aceptar los saludos TDP dirigidos:
P2# show run | i directed-hello tag-switching tdp discovery directed-hello accept !--- This configures P2 to accept directed TDP hellos. P2#
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# PE1# show mpls traffic-eng tunnels tunnel 0 | i Label InLabel : - OutLabel : Ethernet2/0/2, 19 !--- This is the TE label learned via RSVP. PE1# 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 !--- This is the TDP label from P2.
Cuando P1 recibe el paquete con la pila de etiquetas {19 18 12308}, muestra la etiqueta 19 y envía el paquete con la pila de etiquetas {18 12308} a P2. P2 verifica su LFIB para la etiqueta 18, luego muestra la etiqueta y la envía a través de la interfaz saliente PO2/0/0 hacia PE1. PE1 recibe el paquete con la etiqueta 12308, y lo conmuta correctamente a 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 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 TDP discovery sources: Directed Hello 10.2.2.2 -> 10.5.5.5, active !--- This indicates the directed neighbor. Addresses bound to peer TDP Ident: 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 B 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
Un comando ping de CE1 a un host en CE2 confirma la solución.
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#
La configuración del túnel en PE1 se muestra aquí:
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 |
Verifique cómo se conmutan aquí los paquetes destinados a CE2 172.16.13.13. La salida del comando show ip cef muestra que los paquetes al destino 172.16.13.13 se conmutan con la pila de etiquetas {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}
Cuando P1 recibe este paquete, elimina la etiqueta externa 17 y conmuta el paquete después de mirar en la tabla de ruteo IP a Tunnel0. Observe la etiqueta de salida implícita-nula en este resultado; significa que la interfaz saliente no es conmutada por etiquetas.
P1# show ip cef 10.11.11.11 detail 10.11.11.11/32, version 52 0 packets, 0 bytes tag information set 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# 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
Una vez que P2 recibe el paquete con la etiqueta 12308, observa su tabla de reenvío. Debido a que no hay manera de que P2 pueda estar al tanto de la etiqueta VPN 12308 de CE2, descarta el paquete.
P2# show tag for tag 12308 detail Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface
Esto rompe la trayectoria de los paquetes VPN destinados a CE2. Se confirma con el ping a CE2 172.16.13.13/32.
PE1# 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#
La solución es habilitar el LDP/TDP por el túnel. La próxima sección se refiere a esta solución.
Con LDP habilitado en el túnel, las configuraciones de P1 aparecen como se muestra aquí. Las adiciones están en negrita.
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 mpls label protocol ldp 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 ! |
PE1 envía paquetes al prefijo 172.16.13.13/32 con la pila de etiquetas {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 PE1# 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 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 recibe el paquete con la pila de etiquetas {17 12308} y busca su LFIB para la etiqueta 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 0 packets, 0 bytes tag information set 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}
Muestra que la etiqueta 17 debe cambiarse a la etiqueta 18. Por lo tanto, ese paquete se conmuta a través de la interfaz de túnel con la pila de etiquetas {18 12308}.
P2 recibe el paquete a través de su interfaz de túnel con la pila de etiquetas {18 12308}. Elimina la etiqueta 18 (porque es el penúltimo router de saltos) y cambia el paquete a PE2 con etiqueta 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 recibe el paquete con la etiqueta 12308, que conmuta el paquete a CE2 con éxito.
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 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 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#
PE1 |
---|
P1# 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 |
PE1 envía un paquete destinado a 172.16.13.13 a su salto siguiente 10.11.11.11 con la pila de etiquetas {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 recibe el paquete con la pila de etiquetas {17 12308}. P1 observa su tabla LFIB y verifica la pila de etiquetas {17} y conmuta el paquete con la etiqueta {17} hacia 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# 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 recibe el paquete con la pila de etiquetas {17 12308}. El P2, como es el penúltimo router de saltos, salta la etiqueta 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 No output feature configured P2#
Luego, PE2 recibe el paquete con la etiqueta 12308. P2 es consciente de que el destino de la etiqueta 12308 está conectado directamente. Por lo tanto, el ping de CE1 a CE2 es 10.
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 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 PE2#
Nota: No se muestra ninguna interfaz saliente porque la etiqueta saliente es Agregada. Esto se debe a que el prefijo asociado a la etiqueta es la ruta directamente conectada.
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#
Consulte Notificación: MPLS VPN con TE y MPLS InterAS Advisory en Cisco IOS® Software para obtener más detalles.
Cuando se termina el túnel TE en el PE de egreso, la VPN de MPLS y el TE funcionan juntos sin necesidad de configuración adicional. Cuando el túnel TE se termina en cualquier router P (antes del PE en el núcleo), el reenvío de tráfico VPN MPLS falla porque los paquetes llegan con etiquetas VPN como etiquetas externas, que no están en los LFIB de estos dispositivos. Por lo tanto, estos routers intermedios no pueden reenviar paquetes al destino final, la red VPN del cliente. En tal caso, el LDP/TDP debe estar habilitado en el túnel TE para resolver el problema.
Revisión | Fecha de publicación | Comentarios |
---|---|---|
1.0 |
10-Aug-2005 |
Versión inicial |