(Esta entrada es continuación de la práctica anterior: MPLS Básico)
Dicha etiqueta inicial será utilizada por el primer router de la backbone(P) para conocer el interfaz de salida del paquete. A la hora de enviarlo por dicho interfaz la etiqueta exterior sera reemplazada por el valor adecuado hallado en la correspondiente entrada en la LFIB (Label Forwarding Information Base). Debido a este mecanismo de sustitución de etiquetas los routers de la backbone se conocen como Label Switching Routers.
La información de nivel 3 (direccionamiento IP) no será consultada por los routers de la backbone.
Una vez alcanzado el PE remoto, la etiqueta exterior será “deshechada” siendo el valor de la etiqueta interior el que determine a que red virtual (cliente) esta destinado el paquete.
Mecanismo de construcción de las LFIB
Todos los routers de la backbone deberán construir inicialmente una tabla de enrutamiento con ayuda de cualquier IGP (en nuestro caso OSPF). Dicha tabla deberá incluir las direcciones IP de la WAN y las de loopback de los P y PEs. Esta información también se utilizará para la conexión TCP del MP-BGP entre los PEs.
No deberán incluir información de ninguna de las direcciones pertenecientes a los clientes conectados a nuestra red.
Una vez construida esta tabla, y con ayuda del protocolo LDP (Label Distribution Protocol), el router asigna etiquetas locales e informa de ellas a sus “neighbour” downstream de manera que cada router sepa la etiqueta que el router,en el camino a la dirección de loopback del PE remoto, espera recibir. Dicho protocolo hace uso de una conexión TCP entre los dos LSR (Label-Switching Router). En nuestra red, por ejemplo, entre Mauricio y Tonga (en el caso de Tonga encontraríamos dos sesiones TCP, una para cada “vecino”)
El protocolo de intercambio se habilita en cada interfaz mediante mpls ip (tag-switching ip en versiones anteriores).
Además habrá que habilitar el mecanismo de CEF switching.
Para comprobar si el protocolo está activo en cada interfaz: show tag-switching tdp discovery
El intercambio de etiquetas sería el siguiente en nuestra red para la dirección de loopback de Mauricio (L0 : 10.20.10.5). Mauricio le informa a Tonga (vecino downstream) que es el PE “destino” de manera que Tonga no añada ninguna etiqueta exterior:
----------------------------------------------------------------
MAURICIO#sh tag-switching forwarding-table
Local Outgoing Prefix Bytes tag Outgoing Next Hop
tag tag or VC or Tunnel Id switched interface
26 Untagged 10.1.1.17/32 0 Se0 point2point
27 Untagged 10.1.1.42/32[V] 0 Se1 point2point
28 Aggregate 10.1.1.40/30[V] 6520
29 Untagged 192.168.1.0/24[V] 1789014 Se1 point2point (2)
30 Untagged 135.76.35.0/24 0 To0 10.10.10.2
31 Pop tag 10.1.1.4/30 0 Se0 point2point
32 28 10.1.1.20/30 0 Se0 point2point
33 Pop tag 10.20.10.1/32 0 Se0 point2point
34 29 10.20.10.3/32 0 Se0 point2point
35 30 10.20.10.6/32 0 Se0 point2point (1)
(1) Como dirección destino a VPNs en el PE remoto tomo la del L0 de dicho PE. Así que como etiqueta exterior incluyo la que me marca Tonga para esta.
(2) El valor asignado a nivel local para la LAN del CE conectado es el que se espera recibir como etiqueta interior.
----------------------------------------------------------------
TONGA#sh tag-switching forwarding-table
Local Outgoing Prefix Bytes tag Outgoing Next Hop
tag tag or VC or Tunnel Id switched interface 26 Untagged 10.1.1.6/32 0 Se0 point2point
27 Untagged 10.1.1.18/32 0 Se1 point2point
28 Pop tag 10.1.1.20/30 3846 Se0 point2point
29 Pop tag 10.20.10.3/32 5316 Se0 point2point
30 (1) 30 (2) 10.20.10.6/32 2594501 Se0 point2point
31 (4) Pop tag (4) 10.20.10.5/32 2708260 Se1 point2point
(1) A Mauricio: valor que Tonga espera recibir para paquetes con direccion a VPNs de FIYI
(2) De Tonga: valor que BoraBora espera recibir para paquetes con direccion a FIYI
(3) A BoraBora: valor que Tonga espera recibir para paquetes con direccion a Mauricio
(4) Los paquetes con dirección a Mauricio no llevan etiqueta exterior porque Tonga sabe que es L0 de
Mauricio
-------------------------------------------------------------------
BORABORA#sh tag-switching forwarding-table
Local Outgoing Prefix Bytes tag Outgoing Next Hop
tag tag or VC or Tunnel Id switched interface
26 Untagged 10.1.1.5/32 0 Se1 point2point
27 Untagged 10.1.1.22/32 0 Se0 point2point
28 Pop tag 10.1.1.16/30 203943 Se1 point2point
29 Pop tag 10.20.10.1/32 0 Se1 point2point
30 (1) Pop tag (2)10.20.10.6/32 2414415 Se0 point2point
31 (3) 31 (4)10.20.10.5/32 2913919 Se1 point2point
(1) A Tonga: valor que BoraBora espera recibir para paquetes con dirección a VPNs de FIYI
(2) Los paquetes con direccion a Fiyi no llevan etiqueta exterior porque Tonga sabe que es L0 de Fiyi
(3) A Fiyi : valor que BoraBora espera recibir para paquetes con direccion a Mauricio
(4) De Tonga: valor que Tonga espera recibir para paquetes con direccion a Mauricio
---------------------------------------------------------------------
Como comentábamos en el laboratorio anterior en el apartado 'Ingress-Egress Port'...
Una vez recibido un paquete de un CE y descubrir que el siguiente hop es la L0 del PE remoto, se consultará la tabla de rutas “convencional” para conocer como llegar a ella. En ese momento se iniciará el mecanismo de intercambio de etiquetas (egress port)
Así que si FIYI debe entregarle un paquete a BoraBora con destino 10.20.10.5 añadirá una etiqueta exterior con valor 28 - ver abajo para el valor de la etiqueta interior - . Una vez llegue el paquete a BoraBora y según la entrada en la LFIB para dicha etiqueta se cambiara por 30 y se enviará a través del interfaz Se1.
Una vez llegado a Tonga este lo transmitirá por el Se1 con un valor nulo en la etiqueta exterior que dará a entender a Mauricio que va destino a una de las VPNs conectadas a él. El valor de la etiqueta interior determinará a cual.
El valor de la etiqueta interior lo determina el PE remoto y se lo transmite a su “peer” a través de la conexión MP-BGP. Por ejemplo. Mauricio asigna localmente la etiqueta a la red 192.168.2.0
FIYI#sh tag-switching forwarding-table vrf customer_a 192.168.1.0 detail
Local Outgoing Prefix Bytes tag Outgoing Next Hop
tag tag or VC or Tunnel Id switched interface
None 28 192.168.1.0/24 0 Se1 point2point
MAC/Encaps=4/12, MTU=1496, Tag Stack{28 37}
FF030281 0001C00000021000
Per-packet load-sharing
Este valor sera añadido por Mauricio como etiqueta interior en los paquetes enviados a dicha
red.
MAURICIO#sh tag-switching forwarding-table vrf customer_a 192.168.1.0 detail
Local Outgoing Prefix Bytes tag Outgoing Next Hop
tag tag or VC or Tunnel Id switched interface
37 Untagged 192.168.1.0/24[V] 2008 Se1 point2point
MAC/Encaps=0/0, MTU=1504, Tag Stack{}
VPN route: customer_a
Per-packet load-sharing
Nota: El valor entre {} (etiqueta exterior + etiqueta interior) no aparece hasta que existe trafico entre ambas IPs. Sin embargo para conocer el valor de la etiqueta con anterioridad se puede recurrir al comando: sh ip bgp vpnv4 all tags
Al contrario:
MAURICIO#sh tag-switching forwarding-table vrf customer_a 192.168.2.0 detail
Local Outgoing Prefix Bytes tag Outgoing Next Hop
tag tag or VC or Tunnel Id switched interface
None 32 192.168.2.0/24 0 Se0 point2point
MAC/Encaps=4/12, MTU=1496, Tag Stack{32 26}
FF030281 000200000001A000
FIYI#sh tag-switching forwarding-table vrf customer_a 192.168.2.0 detail
Local Outgoing Prefix Bytes tag Outgoing Next Hop
tag tag or VC or Tunnel Id switched interface
34 Untagged 192.168.2.0/24[V] 1385347 Se0 point2point
MAC/Encaps=0/0, MTU=1504, Tag Stack{}
VPN route: customer_a
Per-packet load-sharing
(Todos los comandos de este laboratorio son comandos de routers Cisco)
No hay comentarios:
Publicar un comentario
Nota: solo los miembros de este blog pueden publicar comentarios.