Desarrollo de Un Entorno Mpls Basado en Gns3 Agenda Del Trabajo
Desarrollo de Un Entorno Mpls Basado en Gns3 Agenda Del Trabajo
Desarrollo de Un Entorno Mpls Basado en Gns3 Agenda Del Trabajo
OBJETIVO ALCANZADO:
• Entender y organizar de una mejor manera las diferentes redes con sus protocolos de red
• Crear usuarios controlados por un servidor mediante túneles con transición de ipv6 a ipv4
ACTIVIDADES DESARROLLADAS
El objetivo principal de este trabajo es el desarrollo de redes MPLS en un entorno simulado. El trabajo se
dividirá en tres prácticas orientadas a la parte del protocolo MPLS de la asignatura “Redes Públicas de
Transporte”.
Estas prácticas serán realizadas con el simulador GNS3, para que los alumnos puedan desarrollar las redes de
una forma más avanzada, detallada y visual, aprovechando las herramientas que proporciona dicho simulador,
y afianzar los conceptos impartidos en las clases teóricas.
Los objetivos específicos que se detallan en el trabajo son:
• Configurar y comprender el funcionamiento del simulador GNS3, Wireshark y de la máquina virtual
VMware.
• Diseñar y configurar redes básicas MPLS en GNS3.
• Estudiar la arquitectura y comprobar el funcionamiento de MPLS.
• Establecer y estudiar el protocolo LDP con diversas pruebas.
• Implementarla Ingeniería de Tráfico en una red MPLS en GNS3.
• Establecer y estudiar el protocolo RSVP.
• Diseñar y configurar redes MPLS VPN de nivel 3 en GNS3.
• Establecer y estudiar el protocolo BGP.
Softwares necesarios
Introducción
En estas prácticas se manejarán varios softwares de uso ampliamente extendidos en los entornos de
virtualización, diseño y simulación de redes, como son GNS3, Wireshark y VMware.
GNS3 es un simulador gráfico de red libre y de código abierto, bajo licencia GPLv3, el cual permite diseñar
topologías de red complejas de alta calidad y realizar simulaciones sobre las mismas.
Para la ejecución de simulaciones, GNS3 está compuesto por diferentes módulos de entre los que destacan:
• Dynamips: emulador de IOS que permite a los usuarios ejecutar imágenes binarias de IOS de Cisco
Systems, como routers o switches.
• Dynagen: front-end basado en texto para Dynamips.
• Qemu y VirtualBox/VMWare: uso de máquinas virtuales.
• VPCS: emuladores de PC con funciones básicas de networking.
La principal ventaja de GNS3 frente a otros softwares de simulación, como puede ser el Packet Tracer de
Cisco, es que los equipos de red simulados disponen de todas las funcionalidades de un equipo real, ya que
ejecuta el mismo firmware que utilizaríamos en un equipo físico. Lo que nos permitirá diseñar una topología de
red simulada lo más parecida posible a una situación real sin tener la necesidad de tener acceso a ningún equipo
físico.
Su principal inconveniente es que consume bastantes recursos y puede verse afectado por las limitaciones del
ordenador en el que se ejecuta, por lo que no es aconsejable ejecutarlo en PCs con menos de 8 GB de RAM.
Wireshark es un sniffer o analizador de protocolos con interfaz gráfica que captura el tráfico de una red.
Utilizado para analizar y solucionar problemas en redes de comunicaciones, para desarrollo de software y
protocolos, y como herramienta didáctica. Al igual que GNS3, Wireshark es un software libre con licencia
GPL.
Algunas de sus características más importantesson:
• Captura datos de red y lee datos almacenados en un archivo (una captura previa). • Interfaz con
gran flexibilidad.
• Alta capacidad de filtrado.
• Compatibilidad con más de 480 protocolos.
VMware WorkStation Player es un software libre de virtualización que permite crear y ejecutar de una forma
sencilla máquinas virtuales con distintossistemas operativos en un mismo PC.
Es una opción mejor frente a otros softwares de máquinas virtuales, como VirtualBox, debido a su mayor
velocidad y al soporte de virtualización anidada.
2.2 GNS3
2.2.1 Descarga e instalación
Al ser GNS3 un software libre, se puede descargar únicamente desde su página web oficial
(https://www.gns3.com/.) Para poder realizar la descarga se tendrá que registrar previamente de manera
gratuita, si no se había hecho anteriormente.
Figura 1.
Seleccione la versión para su sistema operativo, en este caso se trabajará sobre Windows 10 con la versión de
GNS3 2.1.21.
Presionando sobre Download, comenzará la descarga de un fichero denominado GNS3-2.1.21- all-in-one-
regular. Una vez completada la descarga del fichero, ejecútelo haciendo doble click sobre el mismo y accederá
a la siguiente pantalla de Setup.
Figura 3. Setup
Presione el botón de Next y acepte la licencia. Vuelva a presionar Next y aparecerá la pantalla de selección de
componentes.
Figura 4. Componentes del Setup
Seleccione todos los componentes a excepción de Solar-PuTTY. Este componente emula al terminal de
un equipo. En este caso es mejor usar el termina por defecto de GNS3.
Vuelva a hacer click sobre Next, seleccione el directorio donde desee instalar el programa y presione
Install.
Una vez se haya completado la instalación haga click en Next. En la siguiente pantalla, seleccione
que no desea instalar el Solarwinds Standard, una colección de herramientas avanzadas de red que no
serán necesarias para realizar nuestras redes.
Se tendrá que escoger el servidor sobre el que se ejecutará la simulación de la red. Al ser la primera vez que
ejecutamos el programa, escogeremos la segunda opción, ya que el resto de las opciones requiere la instalación
de una máquina virtual, la cual se instalará posteriormente. Se podrá cambiar esta opción.
En la pantalla de Local server configuration, seleccione en el desplegable Host binding la dirección IP del
equipo donde se ha instalado el software.
Figura 7.
Figura 8. Plantillas
Figura 9.
Barra de herramientas
Se abrirá la ventana del nuevo proyecto, asígnele un nombre y seleccione el directorio para guardarlo.
Seguidamente aparecerá la ventana de GNS3 con su área de trabajo.
Figura 10.
Ventana principal
Se tiene disponible desde los pequeños routers Cisco de la serie 1700 hasta los routers más avanzados para
montaje en rack de la serie 7200. Esrecomendable usar los modelos c3640, c3660, c3725, c3745y c7200.
Para insertar el primer elemento de la red, acceda a la barra de elementos y haga click sobre el primer icono,
Routers. Para este caso seleccionaremos el modelo Cisco 7200, el cual nos permitirá un mayor número de
accesos FastEthernet para la red que crearemos posteriormente y es el único que admite ciertos protocolos que
usaremos. Pinche sobre él y arrástrelo a la zona de trabajo.
Si es la primera vez que utiliza este dispositivo, aparecerá la pantalla de configuración.
Pulse sobre Next y seguidamente seleccione el servidor donde se simulará el dispositivo. Al no estar todavía
instalada la máquina virtual, únicamente aparecerá la opción de que el elemento corra sobre el servidor local.
Figura 13. Servidor del dispositivo
En la siguiente pantalla se le solicita el fichero de la ROM de IOS que ejecutará el router. Por defecto aparece
seleccionada la versión con la que la comunidad ha desarrollado su emulación. Si no dispone de dicha versión,
o quiere utilizar una versión diferente, para ello debería de hacer click sobre Create a new version, asignarle un
nombre y cargar la versión de IOS para el router, que desee utilizar.
Para cargar la ROM, haga click sobre el nombre del fichero, presione Import y seleccione el fichero IOS con el
que desea trabajar.
Figura 15.
Fallo de versión
La versión que disponemos no es exactamente igual al que tiene predeterminado el dispositivo, no coinciden
los hashs. Por lo que crearemos una nueva versión, en Create new version, con el nombre del fichero de la
imagen, “c7200-a3jk9s-mz.124-25g” e importando nuevamente la ROM.
Figura 16.
Nueva versión del dispositivo
Máquina Virtual
Configuración
En GNS3 se puede utilizar el propio equipo donde está instalado el programa como servidor, pero es necesario
utilizar una máquina virtual para poder añadir equipos preconfigurados a través de appliances (ficheros con
extensión gns3a) de un forma rápida y sencilla.
Para activar la VM vaya al menú Edit – Preferences.
En el panel izquierdo, pinche en el apartado GNS3 VM. Haciendo click sobre el recuadro Enable the GNS3 VM
y seleccione del desplegable el software de virtualización que tiene instalado en su equipo, en este caso
VMware Workstation Player.
Figura 18. Preferencias VM
La imagen de la máquina virtual se podrá descargar desde la web oficial de GNS3 (https://www.gns3.com/). La
versión debe coincidir con la versión del GNS3. Descomprímala y haga doble click sobre la misma para
importarla a VMware.
Figura 19. VMware
Una vez realizados los pasos anteriores reinicie el GNS3 para activar la VM. Cuando arranque de nuevo le
aparecerá una pantalla similar a la siguiente. Es la VM donde se ejecuta el servidor de GNS3.
Figura 20. Pantalla principañ VM
Observe que en la ventana Server Summary de GNS3 aparece la instancia del servidor VM.
Cada vez que inicie el simulador, tendrá que esperar a que también lo haga la máquina virtual para abrir o crear
un proyecto.
Introducción
En la década de los 90, según incrementaban los tamaños de las redes y aparecían nuevas aplicaciones de audio
y video streaming, los proveedores de servicios exigían mejores prestaciones y recursos, por lo que era
necesario buscar una alternativa al encapsulado único en IP.
Se introdujo ATM (Asyncronous Transfer Model) en la capa 2 (capa de enlace) de las redes. Este modelo de IP
sobre ATM utilizaba el encaminamiento de nivel 3 de los routers, con conmutadores de nivel 2 funcionando
con etiquetas y ofrecía un incremento del ancho de banda y del rendimiento, pero era difícil de integrar al
basarse en dos tecnologías distintas y de escalar por el aumento de adyacencias según aumentaban las redes.
Posteriormente, aparecieron otras soluciones que intentaban integrar ATM con encaminamiento IP en un único
router, utilizando protocolos IP (de enrutamiento y reenvío) para distribuir etiquetas. Estos protocolos no eran
compatibles entre sí y necesitaban de infraestructuras ATM.
En 1997, un grupo de investigadores de CISCO establecieron un sistema basado en la conmutación de etiquetas
llamado MPLS. De esta forma, los routers examinarían las etiquetas para realizar el proceso de enrutamiento y
evitarían mirar continuamente lastablas de routing IP, proporcionando una mayor velocidad y efectividad al
proceso. [RFC 3031]
MPLS (Multiprotocol Label Switching) es una tecnología de conmutación de tráfico por etiquetas cuyo
encapsulado se sitúa entre las capas 2 y 3, siendo independiente del protocolo de la capa de red (L3) usado.
Separa completamente la parte de encaminamiento, la cual es lenta y compleja, de la parte de conmutación en
el reenvío de paquetes, que es más rápida y simple.
Los routers calculan todas las rutas mediante protocolos de enrutamiento (en estas prácticas utilizaremos OSPF
y BGP), a partir de los cuales construyen las tablas de encaminamiento. Usando esas tablas de routing y
protocolos de distribución de etiquetas, establecen etiquetas MPLS y caminos virtuales o LSP por donde irán
los paquetes. Estos caminos discurren por dos tipos de nodos por los que está compuestaslas redes MPLS: LER
y LSR.
Sus principales aplicaciones son funciones de Ingeniería de Tráfico (TE), servicios de VPNs, técnicas de QoS y
Policy Routing.
Etiqueta MPLS
La cabecera MPLS de 32 bits es introducida entre las cabeceras de capa 3 y 2, en los paquetes entrantes de la
red MPLS. Las etiquetas van encapsuladas dentro de dichas cabeceras, tienen valor local al router MPLS y
cambian tras cada salto (swap) siendo eliminada al llegar al router frontera (Pop).
La etiqueta es examinada y comparada con las tablas de enrutamiento, para saber a dónde reenviar el paquete,
por lo que no se examina la dirección de destino. De esta forma se consigue una mayor velocidad en el
enrutamiento y se disminuye los tiempos de retardo y jitter.
Distribución de etiquetas
En MPLS es necesario un mecanismo o protocolo que distribuya etiquetas entre los nodos de la red y que
establezca un LSP para un FEC específico por donde el LER de entrada reenviará los paquetes entrantes hacia
ese FEC.
Para la asociación de etiquetas un LSR puede usar dos técnicas:
• Bajo demanda: un LSR solicita explícitamente una asociación de etiquetas a su siguiente salto o vecino
downstream.
• No solicitado: no existe ninguna petición. Un LSR anuncia a todos los vecinos independientemente de
sus posiciones para un particular FEC.
Existen varios mecanismos para la distribución:
• LDP (Label Distribution Protocol): protocolo de distribución de etiquetas basado en el enrutamiento IP.
• CD-LDP: protocolo derivado de LDP basado en restricciones de QoS. • RSVP-TE (RSVP Traffic
Engineering): protocolo de señalización y reserva de recursos que soporta Ingeniería de Tráfico.
• MP-BGP.
En el caso de la primera práctica, utilizaremos LDP.
LDP es un protocolo que establece y mantiene asociaciones de etiquetas para un LSP asociado a un FEC.
Mediante este protocolo los LSRs intercambian información para alcanzar otros nodos y las etiquetas usadas
para ello.
Las sesiones LDP se establecen entre parejas de LSRs (LDP Peers). Para ello, el LDP trata de descubrir peers
mediante el envío de un mensaje “Hello” (multicast 224.0.0.2) utilizando el puerto UDP 646.
Una vez hayan sido descubiertos dos LSRs vecinos, realizarán un proceso de negociación para el
establecimiento de la sesión LDP entre ellos. Usando el puerto TCP 646 y aportando fiabilidad a la red.
Ambos routersintercambian mensajes de inicialización y mapas de etiquetas tras recibir el primer “KeepAlive”.
Estos mensajes son temporizadores enviados para monitorizar la sesión LDP y mantener la conexión activa.
Cuando las sesiones LDP han sido establecidas, comienza la distribución de etiquetas y se crean los caminos
(LSP) escogidos por el protocolo de encaminamiento (OSPF en nuestro caso).
Los LSRs anuncian las direcciones de sus interfaces con mensajes “Address”, o retiran las ya anunciadas con
“Address Withdraw”. Tras estos mensajes,se envían entre ellos “Label Request
para solicitar el mapeado de un FEC (un FEC puede ser una IP de un LSR) y responden con “Label Mapping”,
anunciando el mapeado de una etiqueta al FEC.
Al distribuir las etiquetas junto a los prefijos o direcciones IP, los routers construyen las tablas LIB y FIB.
Los mensajes LDP se pueden clasificar en cuatro tipos:
• Descubrimiento: son enviados periódicamente para indicar la presencia de LSRs mediante mensajes
UDP de “Hello”.
• Sesión: establecen y mantienen la sesión LDP entre peers. En este tipo se encuentran los mensajes de
establecimiento TCP, Inicialización y KeepAlive.
• Anuncio: informan a su vecino sobre la distribución de etiquetas a los FEC. A este grupo pertenecen los
mensajes Address y Label Mapping
• Notificación: informan a un LDP peer de su estado o de un error.
En la siguiente figura se observa cómo se establece la sesión LDP y se clasifican sus mensajes explicado
anteriormente.
Elementos necesarios
Para realizar la práctica crearemos una red L3 MPLS formada por 6 routers c7200 y 2 PCs virtuales en GNS3.
Los routers de la serie Cisco 7200, ya instalados previamente, nos aportarán flexibilidad con un mayor número
de interfaces y permitirán aplicar MPLS.
Desplazaremos los routers y los VPCS desde sus correspondientes grupos en la barra de elementos al área de
trabajo. Haciendo doble click encima de cada nodo o botón derecho y Configure, se abrirá la ventana de
configuración de sus propiedades.
En la pestaña General escribiremos el nombre de cada nodo, evitando usar el comando hostname en la ventana
de comandos. En Memories and Disks se puede cambiar el tamaño de la memoria RAM y NVRAM, en nuestro
caso la dejaremos como está, y deshabilitaremos la opción del borrado automático de la memoria y los archivos
de disco.
En Slots elegiremos los tipos y la cantidad de puertos que llevará el router. Elslot 0 es el adaptador principal,
pudiendo elegir entre 1 o puertos FastEthernet. El resto de slots es equivalente a añadir una tarjeta de expansión
con puertos a un router.
16
Una vez configurado, haremos click en Apply y OK. Cuando todos los routers estén configurados,
procederemos a enlazarlos con el botón “Add a link” de la barra de elementos. Clickando en cada nodo
seleccionamos los puertos a unir.
Además, la barra de herramientas de GNS3 permite mostrar en el área de trabajo los identificadores de los
interfaces, escribir las direcciones red o cualquier dato necesario, dibujar figuras geométricas, hacer capturas de
pantalla, etc.
Topología de red
La red a diseñar es la siguiente:
Figura
A continuación se muestran las direcciones IP y máscaras de red pertenecientes a cada interfaz de los distintos
equipos de la red.17
Configuración de la red
Vamos a realizar la configuración de los distintos equipos que conforman la red.
Una vez esté la red inicializada (todas las luces de color verde), haga doble click en cada uno de los equipos
para abrir el terminal donde se introducirán los comandos de la configuración. Aparecerá directamente en
modo privilegiado (#), si no fuese así ejecute el comando enable.
Como el proyecto es nuevo y los equipos acaban de ser instalados en la red, no es necesario borrar sus
configuraciones. En el caso de que la red se diese ya creada, se tendría que borrar cualquier configuración
existente en los routers con el comando delete nvram:startup-config, para poder
asegurarnos de que no haya interferencias con la configuración a realizar. Y posteriormente reiniciar la red con
el botón reload.
Antes de comenzar con la asignación de las direcciones de los routers, introduciremos unos comandos para
evitar que aparezcan mensajes inesperados en pantalla desplazando los comandos que estamos escribiendo o
revisando.
LSR1#configure terminal
LSR1(config)#line console 0
LSR1(config-line)#logging synchronous
LER0#enable
LER0#configure terminal
LER0(config)#line console 0
LER0(config-line)#logging synchronous
LSR1#enable
LSR1#configure terminal
LSR1(config)#line console 0
LSR1(config-line)#logging synchronous
LSR2#enable
LSR2#configure terminal
LSR2(config)#line console 0
LSR2(config-line)#logging synchronous
LSR3#enable
LSR3#configure terminal
LSR3(config)#line console 0
LSR3(config-line)#logging synchronous
LSR4#enable
LSR4#configure terminal
LSR4(config)#line console 0
LSR4(config-line)#logging synchronous
LER5#enable
LER5#configure terminal
LER5(config)#line console 0
LER5(config-line)#logging synchronous
Asignación de direcciones
Procederemos con la propia configuración de los equipos. En primer lugar, asignaremos las direcciones ip y
sus máscaras de cada uno de los interfaces junto con las direcciones de loopback de los routers. Los loopback
son interfaces de red virtual usados para identificar a cada nodo ante cualquier protocolo, como OSPF, LDP o
BGP.
Para el LSR3 los comandos son los siguientes:
LSR3#configure terminal
LSR3(config)#interface loopback0
LSR3(config-if)#ip address 192.170.0.4 255.255.255.255
LSR3(config)#interface fa0/0
LSR3(config-if)#ip add 40.0.0.2 255.255.255.252
LSR3(config-if)#no shutdown
LSR3(config-if)#int fa1/0
LSR3(config-if)#ip add 50.0.0.1 255.255.255.252
LSR3(config-if)#no shutdown
LSR3(config-if)#int fa0/1
LSR3(config-if)#ip add 30.0.0.2 255.255.255.252
LSR3(config-if)#no shutdown
LSR3(config-if)#exit
Repita estos pasos en todos los routers con sus respectivas direcciones.
Para los dos PCs virtuales habrá que introducir la dirección ip, su máscara y puerta de enlace o Gateway.
Posteriormente guardaremossu configuración.
LER0(config)#interface loopback 0
LER0(config-if)#ip address 192.170.0.1 255.255.255.255
LER0(config)#interface fastEthernet 0/0
LER0(config-if)#ip address 192.168.1.1 255.255.255.0
LER0(config-if)#no shutdown
LER0(config)#interface fastEthernet 1/0
LER0(config-if)#ip address 10.0.0.1 255.255.255.252
LER0(config-if)#no shutdown
LER0(config)#interface fastEthernet 0/1
LER0(config-if)#ip address 40.0.0.1 255.255.255.252
LER0(config-if)#no shutdown
LSR1(config)#interface loopback 0
LSR1(config-if)#ip address 192.170.0.2 255.255.255.255
LSR1(config)#interface fastEthernet 1/0
LSR1(config-if)#ip address 10.0.0.2 255.255.255.252
LSR1(config-if)#no shutdown
LSR1(config)#interface fastEthernet 0/1
LSR1(config-if)#ip address 20.0.0.1 255.255.255.252
LSR1(config-if)#no shutdown
LSR1(config)#interface fastEthernet 0/0
LSR1(config-if)#ip address 30.0.0.2 255.255.255.252
LSR1(config-if)#no shutdown
LSR2(config)#interface loopback 0
LSR2(config-if)#ip address 192.170.0.3 255.255.255.255
LSR2(config)#interface fastEthernet 0/1
LSR2(config-if)#ip address 20.0.0.2 255.255.255.252
LSR2(config-if)#no shutdown
LSR2(config)#interface fastEthernet 0/0
LSR2(config-if)#ip address 60.0.0.1 255.255.255.252
LSR2(config-if)#no shutdown
LSR3(config)#interface loopback 0
LSR3(config-if)#ip address 192.170.0.4 255.255.255.255
LSR3(config)#interface fastEthernet 1/0
LSR3(config-if)#ip address 40.0.0.2 255.255.255.252
LSR3(config-if)#no shutdown
LSR3(config)#interface fastEthernet 0/0
LSR3(config-if)#ip address 30.0.0.1 255.255.255.252
LSR3(config-if)#no shutdown
LSR3(config)#interface fastEthernet 0/1
LSR3(config-if)#ip address 50.0.0.1 255.255.255.252
LSR3(config-if)#no shutdown
LSR4(config)#interface loopback 0
LSR4(config-if)#ip address 192.170.0.5 255.255.255.255
LSR4(config)#interface fastEthernet 0/1
LSR4(config-if)#ip address 50.0.0.2 255.255.255.252
LSR4(config-if)#no shutdown
LSR4(config)#interface fastEthernet 0/0
LSR4(config-if)#ip address 60.0.0.2 255.255.255.252
LSR4(config-if)#no shutdown
LSR4(config)#interface fastEthernet 1/0
LSR4(config-if)#ip address 70.0.0.1 255.255.255.252
LSR4(config-if)#no shutdown
LER5(config)#interface loopback 0
LER5(config-if)#ip address 192.170.0.6 255.255.255.255
LER5(config)#interface fastEthernet 0/1
LER5(config-if)#ip address 70.0.0.2 255.255.255.252
LER5(config-if)#no shutdown
LER5(config)#interface fastEthernet 0/0
LER5(config-if)#ip address 192.168.2.1 255.255.255.0
LER5(config-if)#no shutdown
Protocolo OSPF
Una vez estén todas las direcciones asignadas, configuraremos el protocolo de routing OSPF, siendo uno de los
protocolos más extendidos y sencillos de aplicar por su escalabilidad.
Para activar el protocolo OSPF de manera global, se usará el comando “router ospf id_proceso”. La id del
proceso es una variable que identifica al proceso en ejecución dentro del CISCO IOS. Aunque no es necesario
que la variable sea idéntica en todos los routers de la red, utilizaremosla misma para que sea más simple.
Con el comando “Network dir_ip wildcard area num_area” habilitaremos el protocolo en todos los interfaces
del router, añadiendo las redes a las que pertenecen. La máscara Wildcard es la inversa de una máscara de red.
Los bits que están a cero son los bits de la dirección de red que se tomarán en cuenta y los bits puestos a uno
(255) no. El argumento “area num_area” indica el área OSPF a la que van a pertenecer los interfaces. Es
recomendable utilizar como número de área el
0 y que sea el mismo para todos.
LER0(config)#router ospf 1
LER0(config-router)#network 10.0.0.0 0.0.0.3 area 0
LER0(config-router)#network 40.0.0.0 0.0.0.3 area 0
LER0(config-router)#network 192.170.0.1 0.0.0.0 area 0
LER0(config-router)#network 192.168.1.0 0.0.0.255 area 0
LER0(config)#router ospf 1
LER0(config-router)#network 10.0.0.0 0.0.0.3 area 0
LER0(config-router)#network 40.0.0.0 0.0.0.3 area 0
LER0(config-router)#network 192.170.0.1 0.0.0.0 area 0
LER0(config-router)#network 192.168.1.0 0.0.0.255 area 0
LSR1(config)#router ospf 1
LSR1(config-router)#network 10.0.0.0 0.0.0.3 area 0
LSR1(config-router)#network 20.0.0.0 0.0.0.3 area 0
LSR1(config-router)#network 30.0.0.0 0.0.0.3 area 0
LSR1(config-router)#network 192.170.0.2 0.0.0.0 area 0
LSR2(config)#router ospf 1
LSR2(config-router)#network 20.0.0.0 0.0.0.3 area 0
LSR2(config-router)#network 60.0.0.0 0.0.0.3 area 0
LSR2(config-router)#network 192.170.0.3 0.0.0.0 area 0
LSR3(config)#router ospf 1
LSR3(config-router)#network 40.0.0.0 0.0.0.3 area 0
LSR3(config-router)#network 30.0.0.0 0.0.0.3 area 0
LSR3(config-router)#network 50.0.0.0 0.0.0.3 area 0
LSR3(config-router)#network 192.170.0.4 0.0.0.0 area 0
LSR4(config)#router ospf 1
LSR4(config-router)#network 50.0.0.0 0.0.0.3 area 0
LSR4(config-router)#network 60.0.0.0 0.0.0.3 area 0
LSR4(config-router)#network 70.0.0.0 0.0.0.3 area 0
LSR4(config-router)#network 192.170.0.5 0.0.0.0 area 0
LER5(config)#router ospf 1
LER5(config-router)#network 70.0.0.0 0.0.0.3 area 0
LER5(config-router)#network 192.170.0.6 0.0.0.0 area 0
LER5(config-router)#network 192.168.2.0 0.0.0.255 area 0
Cuando todos los equipos de la red tengan configurado el protocolo OSPF, deberíamos poder acceder a todos
los equipos conectados a la red desde cualquier otro dispositivo de ésta. Para comprobarlo haga ping o
traceroute desde los diferentes equipos y compruebe que tiene acceso a los interfaces y servidores de la red.
Configuración MPLS
Seguidamente comenzaremos con la configuración MPLS. En los dispositivos CISCO es necesario habilitarla
función CEF (Cisco Express Forwarding) con la que el router construye las tablas FIB y LFIB. Se activa con
“ip cef” en configuración global.
FIB es una tabla organizada de modo diferente que la tabla de enrutamiento, y es la que se utiliza para definir a
qué interfaz se debe reenviar el paquete.
Habrá que habilitar el proceso MPLS a nivel global, indicar el protocolo de distribución de etiquetas (LDP) y
establecer el rango de etiquetas en cada router con el comando “mpls label range rango”. En la siguiente tabla
podemos ver los rangos de etiquetas que asignará cada router a los paquetes:
LER0(config)#ip cef
LER0(config)#mpls ip
LER0(config)#mpls label protocol ldp
LER0(config)#mpls label range 400 499
LER0(config)#interface fastEthernet 0/0
LER0(config-if)#mpls ip
LER0(config)#interface fastEthernet 1/0
LER0(config-if)#mpls ip
LER0(config)#interface fastEthernet 0/1
LER0(config-if)#mpls ip
LSR1(config)#ip cef
LSR1(config)#mpls ip
LSR1(config)#mpls label protocol ldp
LSR1(config)#mpls label range 400 499
LSR1(config)#interface fastEthernet 1/0
LSR1(config-if)#mpls ip
LSR1(config-if)#exit
LSR1(config)#interface fastEthernet 0/1
LSR1(config-if)#mpls ip
LSR1(config)#interface fastEthernet 0/0
LSR1(config-if)#mpls ip
LSR2(config)#ip cef
LSR2(config)#mpls ip
LSR2(config)#mpls label protocol ldp
LSR2(config)#mpls label range 400 499
LSR2(config)#interface fastEthernet 0/1
LSR2(config-if)#mpls ip
LSR2(config)#interface fastEthernet 0/0
LSR2(config-if)#mpls ip
LSR3(config)#ip cef
LSR3(config)#mpls ip
LSR3(config)#mpls label protocol ldp
LSR3(config)#mpls label range 400 499
LSR3(config)#interface fastEthernet 1/0
LSR3(config-if)#mpls ip
LSR3(config)#interface fastEthernet 0/0
LSR3(config-if)#mpls ip
LSR3(config)#interface fastEthernet 0/1
LSR3(config-if)#mpls ip
LSR4(config)#ip cef
LSR4(config)#mpls ip
LSR4(config)#mpls label protocol ldp
LSR4(config)#mpls label range 400 499
LSR4(config)#interface fastEthernet 0/1
LSR4(config-if)#mpls ip
LSR4(config)#interface fastEthernet 0/0
LSR4(config-if)#mpls ip
LSR4(config)#interface fastEthernet 1/0
LSR4(config-if)#mpls ip
LER5(config)#ip cef
LER5(config)#mpls ip
LER5(config)#mpls label protocol ldp
LER5(config)#mpls label range 400 499
LER5(config)#interface fastEthernet 0/1
LER5(config-if)#mpls ip
LER5(config)#interface fastEthernet 0/0
LER5(config-if)#mpls ip
Las características y parámetros de la sesión LDP se consultan con “show mpls ldp parameters”.
Verificación final
Para verificar si la red está correctamente configurada utilizaremos diversos comandos:
“Show mpls ldp discovery” muestra en pantalla la información del LDP y del descubrimiento de los vecinos,
como el identificativo del router (direcciones de loopback) y los interfaces.
“Show mpls ldp neighbor” proporciona información sobre el estado de las conexiones LDP establecidas con
los peer vecinos.
Figura 30.
Figura 31.
Traceroute a PC-2
1) LER0 envía tramas con la etiqueta MPLS 309 para alcanzar LSR3.
2) LSR3 reemplaza la etiqueta 309 por la 409 y envía paquetes con dicha etiqueta. 3) LSR4 retira la
etiqueta 409 por ser el PHP (Penultime Hop Popping). El siguiente LSR (LER5) tiene el destino
directamente conectado, por lo que no se utiliza etiqueta. Se usa para evitar consultas innecesarias en la
tabla LIB.
2. Mediante los comandos “show mpls forwanding table” y “show mpls ldp bindings” y la topología de la
red, construya las distintas tablas de MPLS (RIB, FIB, LIB y LFIB) del router LER0 de manera similar
a las actividades realizadas en las clases teóricas.
* Las etiquetas pueden variar cada vez que se inicializa el router.
La tabla RIB se realiza fácilmente siguiendo la topología y la tabla de direccionamiento de la red, añadiendo
las distintasredes a las que no está directamente conectado el LER0 y el siguiente salto por dónde reenviará los
paquetes dirigidos a dichas redes.
“Show mpls ldp bindings” es usado para visualizar los datos de la tabla LIB. (No se tendrán en cuentan las
direcciones loopback)23
Figura32.Tabla LIB
Implicit-Null aparece en los nodos conectados directamente e indica que el paquete es reenviado con prefijo IP
y no con etiqueta MPLS.
Local binding se refiere a cómo el router (en este caso el LER0) quiere que se etiqueten los paquetes que van
hacia una red en particular cuando pasan por él.
Remote binding se refiere a cómo el próximo salto quiere que sean etiquetados los paquetes que van hacia una
red en particular cuando vayan a pasar por él.
La tabla FIB es la tabla de rutas basándose en la función CEF.
Figura
25
3. Utilizando Wireshark y las funcionalidades que nos permite GNS3, monitorizaremos el tráfico que circula
por nuestra red. En este caso en el enlace que une LER0 con LSR3. Haga click derecho sobre el enlace y
seleccione Start Capture. Aparecerá un icono de una lupa sobre este enlace y se abrirá Wireshark
automáticamente. (Si no aparece, vuelva a hacer click derecho en el enlace y seleccione Start Wireshark)
Ejecute un ping desde PC-1 a PC-2. ¿Qué paquetes ICMP salen encapsulados en MPLS? Observe los
distintos campos MPLS.
Fi
26
4. Monitorice esta vez el enlace LSR3-LSR4. ¿Qué diferencias observa en los paquetes enviados por el
LSR3 respecto a los enviados por el LER0?
5. Para ver cómo trabaja el protocolo de distribución de etiquetas, eliminaremos primero las sesiones
establecidas anteriormente con el comando “Clear mpls ldp neighbor *” en el LSR3. Tras introducir el
comando, el LSR3 reestablecerá las sesiones LDP con sus vecinos.
Mientras, capture el tráfico con el Wireshark en el enlace LER0-LSR3 e identifique los mensajes de la
negociación.
Figur
Una vez se haya establecido la conexión TCP, los routers negocian los distintos parámetros de la sesión LDP
usando mensajes de inicialización. Algunos parámetros son: el identificador del LSR, la versión del protocolo o
la distribución de etiquetas. En este caso la distribución es no solicitada.
Figura
Cuando una nueva sesión LDP es establecida, los LSR anuncian las direcciones de sus interfaces usando los
mensajes Address.
Figura 42. Address Message
Dentro del mensaje Address, aparecen las secciones Label Mapping, en las que se muestran las asignaciones
de etiquetas a los distintos FECs.
30
La etiqueta asignada por el LSR3 para alcanzar la red 60.0.0.0/30 es 305 (131 en hexadecimal). Si observamos
la tabla LFIB comprobaremos que coincide:
Figura 44.
En las asignaciones en las que aparecen como valor de etiqueta un 3 (valor incluido en el rango reservado),
indica que es una etiqueta Implicit Null y que la red destino está conectada directamente.
Figura 45. Label Mapping 40.0.0.0
Se comprueba que el valor Implicit Null es el mismo que aparece en la tabla LIB del LER0 en la entrada de la
red 40.0.0.0/30. Esta red está conectada directamente al LER0 y LSR3.
Introducción
Uno de los grandes problemas de las redes IP es la congestión, ocurre cuando, durante un periodo de tiempo, la
tasa de llegada de los paquetes excede la capacidad de salida y produce un aumento de los retardos de tránsito,
los jitters y las pérdidas de paquetes.
Este problema es causado principalmente por la escasez de recursos en la red y el uso ineficiente de los
recursos debido a los protocolos de enrutamiento, ya que éstos utilizan el algoritmo de camino más corto,sin
tomar en cuenta la disponibilidad de recursos en los enlaces, produciéndose una saturación de algunos enlaces
por estar sobreutilizados (cuello de botella).
El primer caso se soluciona incorporando nuevos recursos y aplicando técnicas de control de congestión como
añadir más capacidad a los enlaces.
La mala gestión de los recursos se puede resolver con el uso de la Ingeniería de Tráfico (TE).
Las técnicas de TE tratan de adaptar los flujos de tráfico a los recursos de red disponibles, para así minimizar
la congestión e incrementar la eficiencia del uso de recursos.
Independientemente de la técnica utilizada, el fin de la ingeniería de tráfico es desarrollar las estructuras para
optimizar el rendimiento de las redes y así, proporcionar calidad en el servicio de red a los usuarios. Por lo
tanto, está orientada tanto a tráfico como a recursos.
• A tráfico: mejorar los aspectos relacionados al transporte de datos: minimizar retardos, pérdidas de
paquetes, etc.
• A recursos: optimización del uso de recursos de red, principalmente el ancho de banda. Los beneficios
que otorga el uso de TE:
• Disminuye costos
• Retrasar o evitar el aumento de la capacidad de la red
• Maximizar el ancho de banda
• Mejorar el control en caso de fallos
MPLS-TE
La ingeniería de tráfico puede ser implementada en cualquier tipo de red, pero sólo MPLS ofrece ciertas
ventajas:
• Lidiar con congestiones en los enlaces.
• Re-enrutamiento automático de paquetes ante fallos en la red.
• Balanceo de carga y elección de rutas sin cambiar las métricas del protocolo de enrutamiento.
[RFC 2702] MPLS se convierte en el medio perfecto para implementar TE en redes IP gracias a una serie de
capacidades:
• Agregación y desagregación de tráfico para redireccionar flujos desde partes de la red sobreutilizadas a
otras infrautilizadas.
• Creación sencilla de LSPs explícitos de manera manual o dinámica (automatizada por protocolos
subyacentes) y su eficiente mantenimiento.
• Creación de “Traffic Trunks”, agregación unidireccional de flujos de tráfico perteneciente a un mismo
FEC y enviados a través de un LSP común.
• Asociación de atributos a Traffic Trunks para modelar su comportamiento. • Routing con
restricciones y protección de trunks.
• Optimiza la función de routing para maniobrar tráfico por la red.
MPLS dentro de TE realiza varias tareas secuenciales:
1. Mapea paquetes a FECs según distintos criterios de clasificación.
2. Mapea FECs a Traffic Trunks
3. Mapea trunks a la topología física de la red. Esta tarea es realizada por los protocolos de routing
basados en restricciones.
RSVP-TE
MPLS utiliza un protocolo de señalización y reserva de recursos para crear el LSP del túnel. Mantiene una base
de datos que asocia las etiquetas a los caminos y son actualizados por medio de un protocolo de routing.
Los túnelesimplementan un interfaz de salida asociado con un camino definido internamente a la red, no
necesariamente el camino calculado por IGP. Son unidireccionales, y una vez configurados se les asigna una
etiqueta. Un túnel consta de tres partes:
• Headend: router origen. Donde se configura el túnel.
• Tailend: router destino.
• Midpoint: todos los routersintermedios del camino.
Sus mensajes son:
• PATH: inicia el proceso. Lleva el ER y las características de ancho de banda requerido. Path Tear para
eliminar el túnel. Si un enlace se cae o se desaloja un túnel de un enlace, los routers envían PATHErr a los
extremos del túnel, los cuáles buscan un nuevo camino.
• RESV: asigna y transporta la etiqueta del túnel. Confirma la reserva de ancho de banda realizada por el
mensaje PATH.
Figura 47. Mensajes RSVP
Cada uno de los mensajes contiene campos que lo caracterizan, algunos de los más importantes son:
• Session: identifica la dirección del flujo del tráfico junto al nodo de origen y destino. • Sender_Template
y Sender_Tspec: usados por los LSRs intermedios para calificar el nodo origen y especificar el tráfico
dentro del mensaje PATH.
• Filter-spec, FlowSpec y Style: utilizados por el mensaje RESV para definir la reserva del tráfico,
especificar los requerimientos de recursos y diseñar el estilo de reserva.
Fast Reroute
Como se ha explicado anteriormente una de las ventajas del uso de MPLS con TE es el re enrutamiento
automático de los paquetes ante cualquier fallo en la red.
En las redes IP, cuando se produce un fallo en un nodo o enlace, los protocolos de encaminamiento vuelven a
calcular la ruta óptima para dirigir el tráfico. Durante ese proceso, se pueden producir retrasos y pérdidas de
paquetes. MPLS-TE ofrece un mecanismo para restaurar caminos y minimizar pérdidas llamado conmutación
de protección o Fast Reroute, definido en [RFC 4090] y [RFC 6894].
Para usar Fast Reroute es necesario que exista una ruta de recuperación o backup calculada y establecida
previamente a que ocurra cualquier fallo en el LSP principal. Cuando se detecta un fallo, este mecanismo dirige
el tráfico hacia la ruta de backup que, al estar ya configurada, no se pierde tiempo en recalcular la ruta y se
minimiza la pérdida de paquetes.
No podremos comprobar este proceso en nuestra red, ya que esta función no está disponible en las familias de
routers Cisco permitidas en GNS3.
Objetivos
En esta práctica se va a realizar una configuración básica de una red MPLS con Ingeniería de Tráfico en el
entorno simulado de GNS3. Entre los distintos objetivos se encuentran:
• Diseño y configuración de una red MPLS-TE.
• Entender el protocolo RSVP-TE y observar su funcionamiento mediante una serie de actividades.
Topología de red
En esta segunda práctica utilizaremos la red creada en la anterior práctica con algunos pequeños cambios en la
topología.
Para realizar funciones de envío de tráfico de gran tamaño, los PCs virtuales en GNS3 suelen dar fallos y
desconectarse del servidor, por lo que los cambiaremos por routers que hagan la función de PC.
Figura
Configuración
Añadir direcciones y OSPF
Una vez cambiados los VPCS por routers en la red creada anteriormente, les asignaremos sus direcciones IP y
máscara, y el protocolo OSPF.
R2#configure terminal
R2(config)#interface fa0/0
R2(config.if)#ip address 192.168.3.100 255.255.255.0
R2(config.if)#no shutdown
R2(config)#router ospf 1
R2(config-router)#network 192.168.3.0 0.0.0.255 area 0
En el router LSR4 tendremos que asignar una dirección al puerto FastEthernet1/1 y añadir una nueva red en el
protocolo OSPF.
Configuración de TE
La función de Ingeniería de Tráfico en MPLS solo se puede habilitar tras haber activado MPLS en la red.
Procederemos a habilitarla, primero a nivel global y después en cada uno de los interfaces con el comando
“mpls traffic-eng tunnels”.
También habilitaremos el protocolo RSVP en cada interfaz, reservando un ancho de banda máximo para crear
los túneles. En nuestro caso reservaremos 64 kbps (32 kbps por túnel).
Para comprobar que se ha realizado correctamente la reserva podemos usar el comando “show ip rsvp
interface”:
En el apartado allocated se indica que se ha realizado una reserva de ancho de banda de 32 kbps en el interfaz.
Tendremos que activar también TE en el proceso OSPF para conocer los estados de los interfaces y las rutas
de la red.
LSR3#conf t
LSR3(config)#router ospf 1
LSR3(config-router)#mplstraffic-eng router-id Loopback 0
LSR3(config-router)#mplstraffic-eng area 0
LER0(config)#router ospf 1
LER0(config-router)#mpls traffic-eng router-id loopback 0
LER0(config-router)#mpls traffic-eng area 0
LSR1(config)#router ospf 1
LSR1(config-router)#mpls traffic-eng router-id loopback 0
LSR1(config-router)#mpls traffic-eng area 0
LSR2(config)#router ospf 1
LSR2(config-router)#mpls traffic-eng router-id loopback 0
LSR2(config-router)#mpls traffic-eng area 0
LSR3(config)#router ospf 1
LSR3(config-router)#mpls traffic-eng router-id loopback 0
LSR3(config-router)#mpls traffic-eng area 0
LSR4(config)#router ospf 1
LSR4(config-router)#mpls traffic-eng router-id loopback 0
LSR4(config-router)#mpls traffic-eng area 0
LER5(config)#router ospf 1
LER5(config-router)#mpls traffic-eng router-id loopback 0
LER5(config-router)#mpls traffic-eng area 0
Figu
ra 50. Sesiones RSVP
En LSR3 aparecen ambas sesiones RSVP establecidas, una por túnel, indicando el ancho de banda reservado.
Establecimiento túneles
Tras habilitar la Ingeniería de Tráfico en toda la red, pasaremos a la creación de los túneles.
El túnelse puede crear de forma dinámica o explícita según el comando “tunnel mpls traffic- eng path-option
número {dynamic/explicit {name nombre-tunel}}”. Path-option indica el orden con el que se establece el
túnel.
Como los túnelesson unidireccionales, se creará un túnel en cada sentido. Uno de LER0 a LER5 y otro en
sentido contrario.
Primero estableceremos el túnel dinámico entre los dos LER. Lo identificaremos como tunnel 1 y se tendrá que
establecer desde su router de inicio. Para el direccionamiento usaremos su dirección de loopback (“ip
unnumbered loopback 0”) y usando el comando de ruta automática, indicaremos al IGP que utilice el túnel
como próximo salto para alcanzar el destino final (“tunnel mpls traffic-eng autoroute announce”).
En la configuración de los túnelesse determina las restricciones que usarán los equipos al ejecutar el algoritmo
CSPF para calcular el LSP. Algunas de las restricciones son la prioridad, el ancho de banda o la métrica.
Asignaremos un ancho de banda (bandwidth) de 32kbps y una prioridad con respecto al otro túnel a través del
comando “tunnel mpls traffic-eng priority setup-priority hold-priority”. Siendo 7 la más alta y 0 la más baja.
Los comandos se muestran a continuación:
LER0(config)#int tunnel 1
LER0(config-if)#ip unnumbered loopback 0
LER0(config-if)#tunnel destination 192.170.0.6
LER0(config-if)#tunnel mode mpls traffic-eng
LER0(config-if)#tunnel mpls traffic-eng autoroute announce
LER0(config-if)#tunnel mpls traffic-eng path-option 2 dynamic
LER0(config-if)#tunnel mpls traffic-eng bandwidth 32
LER0(config-if)#tunnel mpls traffic-eng priority 7 7
Una vez establecido el túnel dinámico, configuraremos el túnel explícito entre ambos LER. La única diferencia
en la configuración es la especificación de los saltos por los que transita el túnel mediante “ip explicit-path
name nombre_tunel” y “next address dir_IP”.
LER5(config)#int tunnel 2
LER5(config-if)#ip unnumbered loopback 0
LER5(config-if)#tunnel destination 192.170.0.1
LER5(config-if)#tunnel mode mpls traffic-eng
LER5(config-if)#tunnel mpls traffic-eng autoroute announce
LER5(config-if)#tunnel mpls traffic-eng path-option 1 explicit name tunel2
LER5(config-if)#tunnel mpls traffic-eng bandwidth 32
LER5(config-if)#tunnel mpls traffic-eng priority 6 6
LER0(config)#interface tunnel 1
LER0(config-if)#ip unnumbered loopback 0
LER0(config-if)#tunnel destination 192.170.0.6
LER0(config-if)#tunnel mode mpls traffic-eng
LER0(config-if)#tunnel mpls traffic-eng autoroute announce
LER0(config-if)#tunnel mpls traffic-eng path-option 2 dynamic
LER0(config-if)#tunnel mpls traffic-eng bandwidth 32
LER0(config-if)#tunnel mpls traffic-eng priority 7 7
LER5(config)#interface tunnel 2
LER5(config-if)#ip unnumbered loopback 0
LER5(config-if)#tunnel destination 192.170.0.1
LER5(config-if)#tunnel mode mpls traffic-eng
LER5(config-if)#tunnel mpls traffic-eng autoroute announce
LER5(config-if)#tunnel mpls traffic-eng path-option 1 explicit name tunel2
LER5(config-if)#tunnel mpls traffic-eng bandwidth 32
LER5(config-if)#tunnel mpls traffic-eng priority 6 6
LER5(config)#ip explicit-path name tunel2
LER5(cfg-ip-expl-path)#next-address 192.170.0.5
LER5(cfg-ip-expl-path)#next-address 192.170.0.3
LER5(cfg-ip-expl-path)#next-address 192.170.0.2
LER5(cfg-ip-expl-path)#next-address 192.170.0.4
LER5(cfg-ip-expl-path)#next-address 192.170.0.1
Con el comando “show mpls traffic-eng tunnels brief” podemos comprobar si los túneles han sido
correctamente creados.
Figur
Por el LSR2, únicamente pasa el túnel 2 (LER5_t2) que está correctamente establecido.
En el caso del LSR3, podemos observar que ambostúneles discurren por él como hemos definido
anteriormente (LER0_t1 y LER5_t2).
Figur
Verificación final
En los LER también se puede comprobar el correcto establecimiento de los túneles con el comando “show
mpls traffic-eng tunnels tunnel interface”.
Se muestran parámetros como el ancho de banda establecido, la prioridad, la etiqueta asignada o las
direcciones de los nodos por los que transcurre.
Para el LER0 veremos el Túnel 1 (figura 53) y para el LER5 el 2 (figura 54).
Figu
Parámetros túnel 2
Actividades propuestas
1. Ejecute el comando “show mpls forwarding-table 192.168.2.100 detail” en LER0 para visualizar la tabla
LFIB y observe la cabecera MPLS de un paquete. ¿Qué diferencias observa en el etiquetado respecto a la
práctica anterior?
* Los valores de las etiquetas pueden variar con cada reinicio de sesión.
En la pila de etiquetas o tag stack se observa que el LER0 utiliza la 311 para alcanzar R1 (en la práctica
anterior la etiqueta era 309). Esta etiqueta es la exterior en la pila y es usada para indicar qué túnel TE
reenviará los paquetes, en este caso el túnel 1.
Figura 56. Cabecera MPLS
Si observamos la cabecera MPLS de un paquete enviado, el bit del campo S está puesto a 1 al tratarse de la
etiqueta del túnel TE, como se ha explicado en las actividades de la práctica 1.
Práctica 3 “Simulación Básica de una red MPLS VPN”
Introducción
Una VPN (Virtual Private Network) es una tecnología que permite crear redes privadas en la infraestructura de
internet pública proporcionando confidencialidad y seguridad. Existen dos modelos según su implementación:
• Overlay VPN: incluye tecnologías como Frame Relay, ATM, IPsec, etc. • Peer to peer VPN: con red de
proveedores común e implementada con routers compartidos y ACLs, routersindependientes para cada
cliente o mediante MPLS (MPLS VPN).
Cuando VPN se utiliza con MPLS, permite que varios clientes se interconecten de modo transparente a través
de una red de proveedor de servicios (backbone MPLS), pudiéndose enviar paquetes IP entre ellos. La red
proveedora puede ofrecer conectividad a varias VPN IP distintas, apareciendo cada una de ellas como una red
privada, separada del resto de redes.
MPLS VPN puede implementarse tanto a nivel 2 como a nivel 3 de la capa OSI.
En las VPNs de capa 3 (L3VPN) la responsabilidad de crear y administrar túneles de tráfico privado entre los
clientes recae en el proveedor usando MPLS.
Provider (P)
Router MPLS en el backbone de la red. Nunca está conectado a la red cliente.
45
No lleva rutas VPN, ya que solo posee información de la red del proveedor en sus tablas de routing.
Figura
67. Mensaje de actualización MP-BGP
3. Los PE reciben actualizaciones de MP-BGP e importan rutas VPN de entrada en sus VRF
correspondientessegún los valores de Import RT asociados a esas rutas y tablas VRF. 4. Las rutas son
añadidas en las VRF y redistribuidas mediante eBGP o el protocolo de routing que se está ejecutando entre
los routers PE y CE para ser propagadas a la red del cliente.
Una vez las rutas IP y VPNv4 han sido propagadas, se habrá establecido comunicación IP entre CE y se
procederá al envío de paquetes.
Los paquetes se reenvían basándose en etiquetas entre los routers PE peers. El tráfico entre VPNs tiene una pila
de 2 etiquetas en la red del proveedor añadidas por el PE de ingreso y eliminadas por el PE de salida. La
externa es la etiqueta IGP, asociada a un prefijo o dirección IP en la tabla de encaminamiento global de la red P
y es distribuida mediante un protocolo de distribución de etiquetas(LDP o RSVP) entre los routers P y PE. Es
utilizada por P para reenviar los paquetes al PE.
La segunda etiqueta es la perteneciente a la VPN, anunciada por MP-BGP entre ambos PE y es utilizada para
reenviar los paquetes al CE correcto. Posee un valor de 1 en el bit S.
Objetivos
En esta práctica se va a realizar una configuración básica de una red VPN sobre MPLS en el simulador GNS3.
Los distintos objetivosson:
• Diseño y configuración de una red VPN-MPLS.
• Entender el protocolo BGP y observar su funcionamiento mediante una serie de actividades.
Topología de red
Vamos a crear una red L3 VPN-MPLS formada por 5 routers c7200 con las mismas propiedades que en las
prácticas anteriores. En ella estableceremos una VPN con dos routers cliente CE, los cuales queremos
comunicar.
Utilizaremos los protocolos OSPF y BGP y la creación de tablas VRF para intercambiar información de
direccionamiento entre proveedores y clientes.
Figura
Configuración
Asignación de direcciones
Al igual que en las anteriores prácticas, primero asignaremos cada una de las direcciones de los interfaces y
loopbacks de cada router.
PE1#configure terminal
PE1(config)#line console 0
PE1(config-line)#logging synchronous
PE1(config-line)#int loopback0
PE1(config-if)#ip address 192.170.1.2 255.255.255.255
PE1(config-if)#int fa0/0
PE1(config-if)#ip add 20.0.0.1 255.255.255.252
PE1(config-if)#no shutdown
PE1(config-if)#int fa0/1
PE1(config-if)#ip add 10.0.0.2 255.255.255.252
PE1(config-if)#no shutdown
CE1-A(config)#line console 0
CE1-A(config-line)#logging synchronous
CE1-A(config)#interface loopback 0
CE1-A(config-if)#ip address 192.170.1.1 255.255.255.255
CE1-A(config)#interface fastEthernet 0/1
CE1-A(config-if)#ip address 10.0.0.1 255.255.255.252
PE1(config)#line console 0
PE1(config-line)#logging synchronous
PE1(config)#interface loopback 0
PE1(config-if)#ip address 192.170.1.2 255.255.255.255
PE1(config)#interface fastEthernet 0/1
PE1(config-if)#ip address 10.0.0.2 255.255.255.252
PE1(config-if)#no shutdown
PE1(config)#interface fastEthernet 0/0
PE1(config-if)#ip address 20.0.0.1 255.255.255.252
PE1(config-if)#no shutdown
P(config)#line console 0
P(config-line)#logging synchronous
P(config)#interface loopback 0
P(config-if)#ip address 192.170.1.3 255.255.255.255
P(config)#interface fastEthernet 0/0
P(config-if)#ip address 20.0.0.2 255.255.255.252
P(config-if)#no shutdown
P(config)#interface fastEthernet 0/1
P(config-if)#ip address 30.0.0.1 255.255.255.252
P(config-if)#no shutdown
PE2(config)#line console 0
PE2(config-line)#logging synchronous
PE2(config)#interface loopback
PE2(config-if)#ip address 192.170.1.4 255.255.255.255
PE2(config)#interface fastEthernet 0/0
PE2(config-if)#ip address 30.0.0.2 255.255.255.252
PE2(config-if)#no shutdown
PE2(config)#interface fastEthernet 0/1
PE2(config-if)#ip address 40.0.0.1 255.255.255.252
PE2(config-if)#no shutdown
CE2-A(config)#line console 0
CE2-A(config-line)#logging synchronous
CE2-A(config)#interface loopback 0
CE2-A(config-if)#ip address 192.170.1.5 255.255.255.255
CE2-A(config)#interface fastEthernet 0/1
CE2-A(config-if)#ip address 40.0.0.2 255.255.255.252
CE2-A(config-if)#no shutdown
Usaremos OSPF como IGP entre todos los routers proveedores, únicamente en los interfaces pertenecientes al
backbone MPLS (Router PE1, PE2 y P).
PE1(config)#router ospf 1
PE1(config-router)#network 20.0.0.0 0.0.0.3 area 0
PE1(config-router)#network 192.170.1.2 0.0.0.0 area 0
PE1(config)#router ospf 1
PE1(config-router)#network 20.0.0.0 0.0.0.3 area 0
PE1(config-router)#network 192.170.1.2 0.0.0.0 area 0
P(config)#router ospf 1
P(config-router)#network 20.0.0.0 0.0.0.3 area 0
P(config-router)#network 30.0.0.0 0.0.0.3 area 0
P(config-router)#network 192.170.1.3 0.0.0.0 area 0
PE2(config)#router ospf 1
PE2(config-router)#network 30.0.0.0 0.0.0.3 area 0
PE2(config-router)#network 192.170.1.4 0.0.0.0 area 0
MPLS
Habilitaremos ip cef, mpls ip y el protocolo de distribución de etiquetas(LDP) a nivel global en los nodos P,
PE1 y PE2.
También se asignará mpls ip únicamente en los interfaces pertenecientes al backbone MPLS.
PE2(config)#ip cef
PE2(config)#mpls ip
PE2(config)#mpls label protocol ldp
PE2(config)#int fa0/0
PE2(config-if)#mpls ip
PE1(config)#ip cef
PE1(config)#mpls ip
PE1(config)#mpls label protocol ldp
PE1(config)#interface fastEthernet 0/0
PE1(config-if)#mpls ip
P(config)#ip cef
P(config)#mpls ip
P(config)#mpls label protocol ldp
P(config)#interface fastEthernet 0/0
P(config-if)#mpls ip
P(config)#interface fastEthernet 0/1
P(config-if)#mpls ip
PE2(config)#ip cef
PE2(config)#mpls ip
PE2(config)#mpls label protocol ldp
PE2(config)#interface fastEthernet 0/0
PE2(config-if)#mpls ip
Comprobaremos si el descubrimiento de vecinosse ha realizado de forma correcta con el comando “show mpls
ldp neighbor”. Solo deben aparecer las direcciones de las redes y routers pertenecientes a la red del proveedor.
PE1(config-router)#address-family vpnv4
PE1(config-router-af)#neighbor 192.170.1.4 activate
PE1(config-router-af)#neighbor 192.170.1.4 send-community extended
PE1(config-router-af)#exit-address-family
Fig
VRF
El cliente se situará en una tabla VRF configurada con un RD y RT de importación y exportación.
Primero se define el RD, el cual identifica la ruta VPN y es representado como ASN:nn (Número del Sistema
Autónomo). Debe ser único y diferente para cada cliente, para poder identificarlos.
Después definimos los Route Targets, que indican qué rutas se distribuirán al peer PE según la VPN que
identifique.
En este caso se ha elegido el mismo valor para RD y RT por simpleza, pero no es necesario.
PE2(config)#ip vrf ClienteA
PE2(config-vrf)#rd 65000:100
PE2(config-vrf)#route-target import 65000:100
PE2(config-vrf)#route-target export 65000:100
También se puede escribir el comando “route-target both valor_RT” para definir los RTs de importación y
exportación juntos.
A continuación, se asignará a la VRF creada los interfaces de cada PE con los que comunica, en este caso los
fastEthernet0/1:
PE2(config-vrf)#int fa0/1
PE2(config-if)#ip vrf forwarding ClienteA
PE2(config-if)#ip add 40.0.0.1 255.255.255.252
La IP del interfaz se ha tenido que volver a introducir debido a que es eliminada al aplicar el forwarding de
VRF.
Realice los pasos anteriores en el router PE1.
Comprobaremos que dicha tabla VRF ha sido correctamente creada con su correspondiente RD y asignada a
los interfaces:
Figura
71. Tabla VRF
Routing CE-PE
Para establecer la comunicación entre los routers PE y CE configuraremos un proceso adicional de OSPF.
También se puede realizar mediante rutas estáticas o con el protocolo EBGP, configurando un número de AS
diferente al del backbone MPLS.
En el caso de los routers CE, bastaría con permitir todas las direcciones IP.
CE1(config)#router ospf 1
CE1(config-router)#passive-interface Loopback0
CE1(config-router)#network 0.0.0.0 255.255.255.255 area 0
CE1-A(config)#router ospf 1
CE1-A(config-router)#passive-interface loopback 0
CE1-A(config-router)#network 0.0.0.0 255.255.255.255 area 0
CE2-A(config)#router ospf 1
CE2-A(config-router)#passive-interface loopback 0
CE2-A(config-router)#network 0.0.0.0 255.255.255.255 area 0
Redistribución rutas
Redistribuiremos en ambos routers PE las rutas aprendidas mediante BGP a la VRF y viceversa. Este proceso
se realiza bajo la familia de direcciones IPv4.
El comando “show ip route vrf name_vrf” nos mostrará la tabla de routing de nuestra VRF. Las direcciones
del peer cliente y servidor aparecen con una letra B indicando que han sido aprendidas mediante BG y no
mediante otro protocolo de routing.
Fi
gura 72. Tabla de ruta de la VRF ClienteA
También podemos comprobar la configuración con “show ip bgp vpnv4 vrf ClienteA”
Figur
a 73. Información direcciones VPN de la tabla BGP
Muestra únicamente las direcciones de red y loopback de los routers cliente. La i que se encuentra delante de
las rutasindica que han sido aprendidas mediante internalBGP (iBGP). Al haber usado OSPF como protocolo
de routing entre CE y PE, y no external BGP, aparece el símbolo “?” en Path.
Verificación final
Para verificar la correcta conectividad de los routers del cliente realizaremos un ping entre CE1 y CE2:
Actividades propuestas
1. Realice un ping desde el router CE1 a CE2 y capture el tráfico en el enlace PE1-P con el Wireshark.
¿Qué diferencias observa en los paquetes respecto a la práctica 1?
Figura 75.
Paquete MPLS
Observamos que el paquete contiene los mismos campos que un paquete MPLS, pero en este caso aparecen
dos etiquetas anidadas: 17 y 20.
La etiqueta 20, lleva el bit S o stack a 1, lo que indica que se trata de la última etiqueta, utilizada para la ruta
encaminada mediante OSPF en el backbone MPLS.
La etiqueta 17 pertenece a la VPN y la identifica para que el PE sepa a dónde reenviar el paquete.
2. Observe el establecimiento de la sesión BGP reiniciando el router P con el botón reload. ¿Qué tipo de
paquetes BGP aparecen?
Se identifican cuatro tipos de paquetes: KeepAlive Message, Open Message, Update Message y Notification
Message.
Los mensajes KeepAlive son enviados periódicamente para mantener la conexión y confirmar que ambos
extremos siguen activos en la sesión BGP.
El mensaje de Notificación es enviado cuando se produce un error y se tiene que cerrar la sesión.
Los OPEN Message (figura 77) transmiten parámetros para establecer la sesión BGP. Algunos de los
parámetros son:
• Número de versión de BGP usada. Es importante que las versiones de ambos peer coincidan.
• Identificador BGP el cual corresponde con la IP del vecino (192.170.1.4) • Número del AS local, en este
caso 65000.
Figura 77. Paquete OPEN Message BGP
Los UPDATE Messages o mensajes de actualización (figura 78) son enviados al peer PE cada vez que hay una
modificación en una ruta o es creada una nueva. Contienen información de las rutas y sus atributos, algunos de
ellos son:
• Origin: Indica mediante qué proceso ha sido aprendida la ruta. En este caso es Incomplete al haber
sido aprendida por redistribución. Una i indicaría IBGP y e EBGP.
• Community: Los destinos son agrupados en comunidades. Contiene la información de los RTs y AS.
En este caso la hemos definido como extendida.
• Mp_reach_nlri: Información de la familia ipv4 y del RD.
Figur
3. Una de las técnicas que permite el protocolo BGP es el uso de reflectores de rutas. Añada un nuevo router
en la backbone MPLS conectado únicamente al router P (figura 79). Asigne las direcciones y protocolos
necesarios para la comunicación y rehaga las sesiones BGP de los PEs con el nuevo router de la misma
forma hecha anteriormente y añadiendo el comando “neighbor IP_loopback route-reflector-client” en la
familia vpnv4.
¿Qué ventajas presenta añadir un Reflector de Rutas en la red?
Figura
56
Los comandos que se introducirán en el Reflector de Rutasson los siguientes:
RR(config-router)#address-family vpnv4
RR (config-router-af)#neighbor 192.170.1.4 activate
RR(config-router-af)#neighbor 192.170.1.2 activate
RR(config-router-af)#neighbor 192.170.1.2 send-community both
RR(config-router-af)#neighbor 192.170.1.4 send-community both
RR(config-router-af)#neighbor 192.170.1.4 route-reflector-client
RR(config-router-af)#neighbor 192.170.1.2 route-reflector-client
Una vez establecidas todas las sesiones BGP observamos como tiene conexión con los routers PE.
Figur
Los reflectores de rutas son vecinos iBGP utilizados para informar de rutas a otros routers iBGP. Cuando
reciben una ruta de sus clientesla anuncia al resto y si la recibe de otro equipo no cliente suyo únicamente
la anuncia a sus clientes.
Al igual que el router P, no tiene ninguna información de las VRFs configuradas ni del
direccionamiento de los clientes.
Es muy útil para grandes topologías de redes en las que hay que conectar múltiples sitios remotos de uno o
varios clientes. Solo se realizaría la sesión BGP entre el router PE del sitio y el reflector, evitando que se
realicen sesiones con cada uno de los peer PE y reduciendo la cantidad de sesiones iBGP.
4. Si se quisiera añadir un nuevo cliente a la red, ¿qué cambios habría que realizar en la
configuración y topología de la red?
En la red deberíamos añadir dos nuevos routers CE conectados cada uno a su respectivo PE.
Figura
Habría que crear una VRF nueva y definir su RD y RTs de importación y exportación, siendo diferentes a los
del otro cliente para evitar solapamiento. Asignar la VRF creada a los interfaces de PE conectados a los
routers cliente.
Figura 82.
Tablas VRF creadas
Posteriormente, añadir mediante el protocolo de routing OSPF la nueva red que conecta el router CE al
router PE, con un id de proceso diferente al del otro cliente.
Por último, modificar la familia ipv4 y redistribuir las nuevasrutas creadas. También se puede realizar
mediante E-BGP con un identificador AS distinto.
Figu
[1] Pepelnjak, I., and Guichard, J., “Arquitecturas MPLS y VPN”, Cisco Press, 2002.
[2] Ernesto Ariganello, Enrique Barrientos Sevilla, “Redes CISCO. CCNP a fondo. Guía de estudio para
profesionales”, Ra-Ma S.A Ed., 2010.
[3] Documentation GNS3 http://docs.gns3.com/ [Online]
[4] Cisco “Configuración básica de MPLS usando OSPF”
https://www.cisco.com/c/es_mx/support/docs/multiprotocol-label-switching-mpls/mpls/13736-
mplsospf.html[Online]
[5] “Cisco IOS Multiprotocol Label Switching Configuration Guide”, Release 12.2 SR, Cisco Systems Inc.,
2010
59
CONCLUSIONES
En el siguiente proyecto hemos determinado que el uso de plataforma de Wordpress
conjuntamente con Woocommerce es de mucha utilidad por lo que muchas empresas
han optado por adquirir conocimientos y realizar sus propias páginas de venta online, por
su simplicidad en el manejo de las diferentes opciones al igual que de sus plugin.
Firma de estudiante: