Contenido

Introducción

Antecedentes

Caso de prueba I: Xconnect L2TPv3 sobre red IP con terminales en VRF

Caso de prueba II: Xconnect L2TPv3 sobre red MPLS con terminales en VRF

Introducción

Este documento describe cómo se puede utilizar Virtual Routing and Forwarding (VRF) cuando se configura Layer 2 Tunneling Protocol (L2TP)v3 Xconnect over IP y Multiprotocol Label Switching (MPLS) network.

Antecedentes

L2TP es el protocolo de tunelización utilizado por los proveedores de servicios de Internet (ISP) para proporcionar red privada virtual (VPN) en el espacio de acceso de marcado a través de Internet.

Combina lo mejor del protocolo de reenvío de capa 2 (L2F) de Cisco y el protocolo de tunelación punto a punto (PPTP) de Microsoft. Los componentes principales de L2TP son el controlador de acceso L2TP (LAC) y el servidor de red L2TP (LNS).

Controlador de acceso L2TP: LAC es un servidor de acceso conectado a la red telefónica pública conmutada (PSTN). LAC es el iniciador de las llamadas entrantes y el receptor de las llamadas salientes. Está conectado a LNS a través de LAN o WAN.

Servidor de red L2TP: LNS es el servidor de red para el protocolo L2TP donde las sesiones PPP terminan y se autentican. El LNS es el iniciador de las llamadas salientes y el receptor de las llamadas entrantes.

L2TPv2 fue diseñado para transportar tráfico PPP a través de redes IP. El equipo de acceso a la red (DSL, cablemódem o interfaces de acceso telefónico) aceptó las conexiones PPP de los suscriptores y tuneló las sesiones PPP al ISP sobre L2TP. La nueva versión L2TPv3 está diseñada para llevar cualquier carga útil de Capa 2 además de PPP, que era la única carga útil soportada por la versión 2.  Específicamente, L2TPv3 define el protocolo L2TP para tunelizar cargas útiles de Capa 2 a través de una red de núcleo IP con el uso de VPN de Capa 2. Entre las ventajas de esta función se incluyen las siguientes:

- L2TPv3 simplifica la implementación de VPN

- L2TPv3 no requiere MPLS

- L2TPv3 soporta tunelización de Capa 2 sobre IP para cualquier carga útil

Esta es la configuración de ejemplo del pseudowire L2TPv3:

1.enable

2.configureterminal

3.interface type slot/port

4.xconnectpeer-ip-address vcidencapsulation l2tpv3 pw-classpw-class-name

Ahora, observe cómo se comporta L2TPv3 Xconnect cuando se utiliza VRF. Esta es la topología que se utiliza para la demostración en la que se configura Xconnect entre CPE y ASR1002 (IP) y ASR1004 (MPLS) con terminales en ASR1000 en VRF (la plataforma ASR1000 no admite L2TPv3 que reconoce VRF).

Caso de prueba I: Xconnect L2TPv3 sobre red IP con terminales en VRF

PE-1 y PE-2 hacen la red MPLS para ISP. CPE está conectado a PE-1 sobre VRF y ASR1002 está conectado a PE-2 sobre VRF. ASR1002 también tiene VRF en la interfaz conectada a PE-2. El alcance del loopback CPE desde ASR1002 se realiza a través de VRF sobre la interfaz IP.

Configuración en CPE para Xconnect hacia ASR1002:

interface FastEthernet4.2381

encapsulation dot1Q 2381

xconnect 3.3.3.3 2381 encapsulation l2tpv3 pw-class PSEUDO_CLASS >>>>>>>>>>> Xconnect with ASR1002

pseudowire-class PSEUDO_CLASS

encapsulation l2tpv3

interworking vlan

protocol l2tpv3 L2TP_CLASS

ip local interface Loopback0

ip tos reflect

l2tp-class L2TP_CLASS

authentication

password cisco

interface Gigabit0/1

ip address 192.168.8.190 255.255.255.0

end

Interface Loopback0

ip address 1.1.1.1 255.255.255.255

end

ip route 0.0.0.0 0.0.0.0 192.168.8.1 >>>>>>>>>>>>>> Default route towards PE-1

Configuración en funcionamiento en ASR1002:

interface GigabitEthernet0/0/0.906 —————————————————> Interface connected to PE-2 is in VRF

encapsulation dot1Q 906

ip vrf forwarding L2TP_VRF

ip address 10.1.1.1 255.255.255.252

interface GigabitEthernet0/0/1.2381

encapsulation dot1Q 2381

xconnect 1.1.1.1 2381 encapsulation l2tpv3 pw-class PSEUDO_CLASS

pseudowire-class PSEUDO_CLASS

encapsulation l2tpv3

interworking vlan

protocol l2tpv3 L2TP_CLASS

ip local interface Loopback11

l2tp-class L2TP_CLASS

authentication

password cisco

interface Loopback11

ip vrf forwarding L2TP_VRF ————————————————————————————> Source is in VRF

ip address 3.3.3.3 255.255.255.255

router bgp 1

address-family ipv4 vrf L2TP_VRF

redistribute connected

neighbor 10.1.1.2 remote-as 2 ———————————————> eBGP with PE-2 in VRF

neighbor 10.1.1.2 activate

neighbor 10.1.1.2 soft-reconfiguration inbound

exit-address-family

VRF L2TP_VRF:

B       1.1.1.1/32 [20/0] via 10.1.1.2, 1d ——————————> Xconnect end point learned via eBGP in VRF

Veamos ahora el estado de Xconnect en CPE:

CPE #sh xconnect all de

Legend:    XC ST=Xconnect State  S1=Segment1 State  S2=Segment2 State

UP=Up       DN=Down            AD=Admin Down      IA=Inactive

SB=Standby  HS=Hot Standby     RV=Recovering      NH=No Hardware

XC ST  Segment 1                         S1 Segment 2                         S2

------+---------------------------------+--+---------------------------------+--

UP pri   ac Fa4.2381:2381(Eth VLAN)      UP l2tp 3.3.3.3:2381              DOWN

Interworking: vlan                   Session ID: 1906980494

Tunnel ID: 2886222725

Protocol State: DOWN

Remote Circuit State: DOWN

pw-class: PSEUDO_CLASS_VLAN

Dice que el segmento 2 está inactivo, lo que significa que la ruta de CPE a ASR1002 está teniendo problemas. Sin embargo, podemos hacer ping al terminal. Las depuraciones en CPE muestran que el túnel al terminal ha fallado o que no hay ruta al terminal.

*Feb 15 08:12:47.225: L2TP _____:18136:8DF92CB9/uid:0[1.1.1.1/2381]: I CDN, flg TLS, ver 3, len 80

*Feb 15 08:12:47.225: L2TP _____:18136:8DF92CB9/uid:0[1.1.1.1/2381]:IETF v2:

*Feb 15 08:12:47.225: L2TP _____:18136:8DF92CB9/uid:0[1.1.1.1/2381]:Result Code

*Feb 15 08:12:47.225: L2TP _____:18136:8DF92CB9/uid:0[1.1.1.1/2381]:   Call disconnected for administrative reasons(3)

*Feb 15 08:12:47.225: L2TP _____:18136:8DF92CB9/uid:0[1.1.1.1/2381]:   Error code

*Feb 15 08:12:47.225: L2TP _____:18136:8DF92CB9/uid:0[1.1.1.1/2381]:     No error(0)

*Feb 15 08:12:47.225: L2TP _____:18136:8DF92CB9/uid:0[1.1.1.1/2381]:   Optional msg

*Feb 15 08:12:47.225: L2TP _____:18136:8DF92CB9/uid:0[1.1.1.1/2381]:       "Tunnel failed to 3.3.3.3" >>>>>>>>>>>>>>>>>

*Feb 15 08:12:47.225: L2TP _____:18136:8DF92CB9/uid:0[1.1.1.1/2381]:Cisco v3:

El problema principal aquí es que el terminal es accesible a través de VRF en ASR1002. El terminal Xconnect debe estar en la tabla de ruteo global para que aparezca. Ahora configuremos una ruta para el Loopback 1.1.1.1/32 de CPE en el señalamiento global a la interfaz GigabitEthernet0/0/0.906 que se encuentra en el VRF.

ip route 1.1.1.1 255.255.255.255 GigabitEthernet0/0/0.906 10.1.1.2

S        1.1.1.1/32 [1/0] via 10.1.1.2, GigabitEthernet0/0/0.906

Una vez configurada la ruta estática ficticia, Xconnect se activa. También puede señalarlo a Null0. Esta es una solución alternativa para permitir que el router crea que el terminal es accesible a través de Global y no de VRF y se utiliza simplemente para el plano de control. El tráfico real del plano de datos se realizará sólo a través de VRF.

Estos son los resultados de ping con y sin VRF:

ASR1002 #ping 1.1.1.1

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds:

.....

Success rate is 0 percent (0/5)

Ping vrf L2TP_VRF 1.1.1.1

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 33/50/72 ms

Estado de Xconnect en CPE:

CPE #sh xconnect all de

Legend:    XC ST=Xconnect State  S1=Segment1 State  S2=Segment2 State

UP=Up       DN=Down            AD=Admin Down      IA=Inactive

SB=Standby  HS=Hot Standby     RV=Recovering      NH=No Hardware

XC ST  Segment 1                         S1 Segment 2                         S2

------+---------------------------------+--+---------------------------------+--

UP pri   ac Fa4.2381:2381(Eth VLAN)      UP l2tp3.3.3.3:2381             UP

Interworking: vlan                   Session ID: 1906980494

Tunnel ID: 2886222725

Protocol State: UP

Remote Circuit State: UP

pw-class: PSEUDO_CLASS_VLAN

Caso de prueba II: Xconnect L2TPv3 sobre red MPLS con terminales en VRF

PE-1, PE-2 y PE-3 hacen de la red MPLS para ISP con PE-2 actuando como Reflector de Ruta (RR). CPE está conectado a PE-1 sobre VRF y ASR1004 está conectado a PE-2 con MPLS habilitado en la interfaz. ASR1004 también tiene VRF en el cual se supone que recibe las rutas VPNv4 de PE-1 a través de RR. El alcance del looback CPE desde ASR1004 se realiza a través de VRF sobre la interfaz MPLS.

Configuración en CPE para Xconnect hacia ASR1004:

interface FastEthernet4.2380

encapsulation dot1Q 2380

xconnect 2.2.2.2 2380 encapsulation l2tpv3 pw-class PSEUDO_CLASS  >>>>>>>>>>Xconnect with ASR1004

interface FastEthernet4.2381

encapsulation dot1Q 2381

xconnect 3.3.3.3 2381 encapsulation l2tpv3 pw-class PSEUDO_CLASS >>>>>>>>>>> Xconnect with ASR1002

pseudowire-class PSEUDO_CLASS

encapsulation l2tpv3

interworking vlan

protocol l2tpv3 L2TP_CLASS

ip local interface Loopback0

ip tos reflect

l2tp-class L2TP_CLASS

authentication

password cisco

interface Gigabit0/1

ip address 192.168.8.190 255.255.255.0

end

Interface Loopback0

ip address 1.1.1.1 255.255.255.255

end

ip route 0.0.0.0 0.0.0.0 192.168.8.1 >>>>>>>>>>>>>> Default route towards PE-1

Configuración en ASR1004:

interface GigabitEthernet0/0/1

no ip address

negotiation auto

service instance 2 ethernet

encapsulation dot1q 2380

xconnect 1.1.1.1 2380 encapsulation l2tpv3 pw-class PSEUDO_CLASS_VLAN

!

end

interface Loopback11

ip vrf forwarding L2TP_VRF —————————————————> Source Loopback in in VRF

ip address 2.2.2.2 255.255.255.255

end

pseudowire-class PSEUDO_CLASS_VLAN

encapsulation l2tpv3

interworking vlan

protocol l2tpv3 L2TP_CLASS

ip local interface Loopback11

l2tp-class L2TP_CLASS

authentication

password cisco

router bgp 2

address-family ipv4 vrf L2TP_VRF

redistribute connected

redistribute static

default-information originate

exit-address-family

Entrada de ruta para Xconnect End Point:

ASR1004#sh ip rou vrf L2TP_VRF 1.1.1.1 .   ——————————————————> Xconnect End Point also learned via VRF

Routing Table: L2TP_VRF

Routing entry for 1.1.1.1/32

Known via "bgp 2", distance 200, metric 0, type internal

Last update from 11.11.11.11 6d17h ago

Routing Descriptor Blocks:

* 11.11.11.11 (default), from 22.22.22.22, 6d17h ago

Route metric is 0, traffic share count is 1

AS Hops 0

MPLS label: 18

MPLS Flags: MPLS Required

We observed that Segment 2 was continuously flapping on both ends.

ASR1004#sh xc all de

Legend:    XC ST=Xconnect State  S1=Segment1 State  S2=Segment2 State

UP=Up       DN=Down            AD=Admin Down      IA=Inactive

SB=Standby  HS=Hot Standby     RV=Recovering      NH=No Hardware

XC ST  Segment 1                         S1 Segment 2                         S2

------+---------------------------------+--+---------------------------------+--

DN pri   ac Gi0/0/1:2380(Eth VLAN)       UP l2tp 1.1.1.1:2380           DN  >>>>>>>>>>>>>>

Interworking: vlan                   Session ID: 2543426569

Tunnel ID: 3352120314

Protocol State: DOWN

Remote Circuit State: DOWN

pw-class: PSEUDO_CLASS_VLAN

ASR1004#sh xc all de

Legend:    XC ST=Xconnect State  S1=Segment1 State  S2=Segment2 State

UP=Up       DN=Down            AD=Admin Down      IA=Inactive

SB=Standby  HS=Hot Standby     RV=Recovering      NH=No Hardware

XC ST  Segment 1                         S1 Segment 2                         S2

------+---------------------------------+--+---------------------------------+--

UP pri   ac Gi0/0/1:2380(Eth VLAN)       UP l2tp 1.1.1,1:2380           UP >>>>>>>>>>>>>>>>

Interworking: vlan                   Session ID: 2543426569

Tunnel ID: 3352120314

Protocol State: UP

Remote Circuit State: UP

pw-class: PSEUDO_CLASS_VLAN

Registros de CPE:

CPE#sh xconnect all de

Legend:    XC ST=Xconnect State  S1=Segment1 State  S2=Segment2 State

UP=Up       DN=Down            AD=Admin Down      IA=Inactive

SB=Standby  HS=Hot Standby     RV=Recovering      NH=No Hardware

XC ST  Segment 1                         S1 Segment 2                         S2

------+---------------------------------+--+---------------------------------+--

DN pri   ac Fa4.2380:2380(Eth VLAN)      UP l2tp 2.2.2.2:2380            DN ---------------à Flapping with ASR1004

Interworking: vlan                   Session ID: 3434660693

Tunnel ID: 1760690853

Protocol State: DOWN

Remote Circuit State: DOWN

pw-class: PSEUDO_CLASS

UP pri   ac Fa4.2381:2381(Eth VLAN)      UP l2tp 3.3.3.3:2381              UP ---------------------à Stable with ASR1002

Interworking: vlan                   Session ID: 1906980494

Tunnel ID: 2886222725

Protocol State: UP

Remote Circuit State: UP

pw-class: PSEUDO_CLASS

CPE#sh l2tp session

L2TP Session Information Total tunnels 2 sessions 2

LocID      RemID      TunID      Username, Intf/      State  Last Chg Uniq ID

Vcid, Circuit

2714490989 3697021268 1760690853 2380, Fa4.2380:2380  est   00:00:03 0  ————————> Flapping with ASR1004

1906980494 2361475239 2886222725 2381, Fa4.2381:2381  est   15:37:06 0       ————————> Stable with ASR1002

No puede configurar una ruta estática en este caso, ya que la interfaz de salida es la interfaz habilitada para MPLS.  Como solución alternativa, hay dos interfaces con loop hacia atrás y configuradas una en VRF con otra en global. Luego se configuró una ruta estática en la dirección global hacia la interfaz VRF, con este Xconnect se volvió estable.

ASR1004#sh run int gi0/0/2

Building configuration...

Current configuration : 95 bytes

!

interface GigabitEthernet0/0/2 ——————————> Looped to Gi0/0/3

ip address 20.20.20.2 255.255.255.252

negotiation auto

end

#sh run int gi0/0/3

Building configuration...

Current configuration : 126 bytes

!

interface GigabitEthernet0/0/3

ip vrf forwarding L2TP_VRF

ip address 20.20.20.1 255.255.255.252

negotiation auto

end

ip route 10.246.131.62 255.255.255.255 20.20.20.1 ———————> Static route pointing towards an IP interface in Global

CPE#sh xconnect all de

Legend:    XC ST=Xconnect State  S1=Segment1 State  S2=Segment2 State

UP=Up       DN=Down            AD=Admin Down      IA=Inactive

SB=Standby  HS=Hot Standby     RV=Recovering      NH=No Hardware

XC ST  Segment 1                         S1 Segment 2                         S2

------+---------------------------------+--+---------------------------------+--

DN pri   ac Fa4.2380:2380(Eth VLAN)      UP l2tp 2.2.2.2:2380            UP

Interworking: vlan                   Session ID: 3434660693

Tunnel ID: 1760690853

Protocol State: DOWN

Remote Circuit State: DOWN

pw-class: PSEUDO_CLASS

UP pri   ac Fa4.2381:2381(Eth VLAN)      UP l2tp 3.3.3.3:2381              UP

Interworking: vlan                   Session ID: 1906980494

Tunnel ID: 2886222725

Protocol State: UP

Remote Circuit State: UP

pw-class: PSEUDO_CLASS

CPE#sh l2tp session

Información de Sesión L2TP Total de Túneles 2 Sesiones 2:

LocID      RemID      TunID      Username, Intf/      State  Last Chg Uniq ID

Vcid, Circuit

2714490989 3697021268 1760690853 2380, Fa4.2380:2380  est   00:20:03 0

1906980494 2361475239 2886222725 2381, Fa4.2381:2381  est   15:37:06 0

El flujo de tráfico se considera como en el caso de ASR1004:

- Cuando el tráfico proviene de CPE en ASR1004, viene en la interfaz MPLS Gi0/0/1 y se conmuta directamente al puerto de acceso Gi0/0/0.

- Cuando el tráfico proviene del puerto de acceso Gi0/0/0, toma la trayectoria de loop de Gi0/0/0 -> Gi0/0/2 -> Gi0/0/3 -> Gi0/0/1.

El problema principal con esta solución alternativa es la utilización de QFP en la plataforma ASR1000, ya que el procesamiento de paquetes se realiza dos veces:

ASR1004#  show platform packet-trace summary

Pkt   Input             Output            State  Reason

0     Gi0/0/3           Gi0/0/1           FWD

1     Gi0/0/3           Gi0/0/1           FWD

2     Gi0/0/3           Gi0/0/1           FWD

3     Gi0/0/0           Gi0/0/2           FWD

4     Gi0/0/0           Gi0/0/2           FWD

5     Gi0/0/0           Gi0/0/2           FWD

6     Gi0/0/0           Gi0/0/2           FWD

7     Gi0/0/0           Gi0/0/2           FWD

Este comportamiento se documenta en Doc Bug: CSCvi42964