MPLS. Enrutamiento en base a etiquetas. Cont.

     El principio de una red MPLS es el enrutamiento en base a etiquetas (más adelante veremos que en concreto se  trata de la etiqueta exterior). Esta etiqueta es añadida entre la información de nivel 2 y nivel 3 en el interfaz de entrada a la red por el PE al que se encuentra conectado el cliente.

(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”)

MPLS. LDP. Cisco. sh tag switching tdp neighbour

MPLS. LDP. Cisco. sh tag switching tdp neighbour


     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


MPLS. LDP. sh 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.