Hola que tal
Continuando con NSX es tiempo de hablar ahora sobre el "Distributed Logical Router", palabras que abreviaré como DLR. En el pasado Post se vio cómo crear un Logical Switch. Se concluyó que un switch lógico es prácticamente un grupo de puertos distribuido en un switch distribuido. NSX no trabaja con el switch estándar de VMware. También se pudo observar que un switch lógico es básicamente una VXLAN. También se detalló cómo migrar las máquinas virtuales a los switches lógicos y finalmente se pudo concluir que las VMs en una misma VXLAN podían alcanzarse pero entre distintas VXLANs no. Porqué no? Porque la comunicación de VXLAN a VXLAN es en esencia una comunicación de una red a otra y para esto se necesita entonces de un dispositivo de capa 3, como un router o en el caso de VMware NSX, un Distributed Logical Router.
En este post se verá la función que desempeña el Distributed Logical Router de VMware en el enrutamiento de Este-Oeste.
VMware NSX - Distributed Logical RouterEl DLR de VMware NSX es un router lógico (100% por software) que permite enrutar el tráfico de Este-Oeste de la infraestructura virtual. Por tráfico de Este-Oeste se puede definir como aquel tráfico que cursa entre las máquinas virtuales sin pasar por la interfaz virtual de un NSX Edge o la interfaz física de capa tres de algún dispositivo físico.
A un paréntesis, VMware desde hace mucho tiempo ha permitido configuar VLANs bajo el estándar 802.1q. A continuación suponer que se tiene la siguiente infraestructura:
- Un clúster llamado A.
- En el clúster A hay dos ESXi (ESXi01 y ESXi02).
- VM1 y VM2 están en el ESXi01.
- VM3 y VM4 están en el ESXi02.
- VM1 y VM3 pertenecen a la VLAN 10.
- VM2 y VM4 pertenecen a la VLAN 20.
Si VM1 se desea comunicar con VM2, notar que son máquinas virtuales en diferentes VLANs pero ubicadas en el mismo ESXi. Es evidente que la comunicación entre éstas precisa de un dispositivo de capa 3, como un router. El punto de este ejemplo es que cuando VM1 quiera comunicarse con VM2, aunque están el mismo host el tráfico deberá salir del ESXi, dado a que comúnmente el router es físico. A esto se le conoce como Hairpinning. Habrá una solución capaz de evitar esta situación?. Que tal si cuando VM1 se comunique con VM3 el tráfico no salga del ESXi y sea enrutado internamente por el mismo host; esto es posible y lo hace el DLR de VMware. DLR es un router que se distribuye entre todos los ESXi y su punto de control centralizado se encuentra en la capa de control de los planos del NSX, llamado el "Logical Router Control Virtual Machine" ó LR Control VM.
Del anterior ejemplo se puede concluir dos cosas importantes:
- DLR o Distributed Logical Router es un Router Distribuido y corre en los ESXi. No es una máquina virtual. NSX Manager lo instala en cada Hypervisor en un proceso conocido como "Host Preparation". Durante la preparación de un Host, NSX Manager instala tres módulo o VIBs en el ESXi, tales como la vib para VXLAN, otra vib para el Distributed Logical Router y otra más para el Distributed Firewall. Por lo tanto el plano de datos es distribuido en el Hypervisor.
- En cuento a capa tres, en el plano de control se ubica el "Logical Router Control Virtual Machine", el cual no es distribuido y no corre cómo módulo en los ESXi; en vez de eso, es una máquina virtual.
La relación que existe entre DLR y LR Control VM es la siguiente:
- Cada vez que se crea un DLR se desplegará una máquina virtual (LR Control VM). Esta máquina virtual se encargará de formar adyacencias y la tabla de enrutamiento con otros dispositivos físicos o virtuales de capa 3 e informarle al NSX Controller. NSX Controller deberá pesarle la tabla de enrutamiento a cada ESXi. NSX Controller juega un papel importante en este desarrollo de VMware. Es fácil preguntarse porqué este intermediario. Recordar que NSX Controller alberga cuatro tablas: MAC, ARP, VTEP y enrutamiento. NSX Controller también será el encargado de distribuir y redistribuir las cargas. Si por ejemplo hay tres NSX Controller en clúster y se han creado 9 DLRs, es probable que cada NSX Controller administre tres LDRs. De forma similar, si hay también 18 Logical Switches, cada NSX Controller probablemente administrará 6. Por último, DLR es quien realiza el enrutamiento, no LR Control VM.
En cuanto a la escalabilidad, DLR cuenta con las siguientes características:
- Se pueden crear hasta 1000 interfaces virtuales por DLR.
- Se pueden crear hasta 1200 DLRs por instancia de NSX Manager.
- No más de 100 DLRs por ESXi.
Hairpinning es la comunicación que debe salir de un ESXi de manera indeseada pero necesaria para la comunicación entre máquinas vituales en un mismo Hypervisor pero en distintas redes. Para comprender este concepto suponer que se tiene la siguiente red virtual:
1. Win-Server 1 envía tráfico a Linux-Server1. Estas dos máquinas virtuales se encuentran en el mismo ESXi pero en distintas redes. Win-Server1 deberá enviar la trama a su default gateway (172.26.28.1), el cual es un interfaz virtual de un NSX Edge Gateway ubicado en otro Host.
2. ESXi01 encapsula el tráfico en una trama VXLAN, la cual viaja por la red de transporte hasta alcanzar a ESXi02.
3. ESXi02 recibe la trama encapsulada, la desencapsula y entrega al NSX Edge.
4. NSX Edge revisa su tabla de enrutamiento y nota que la red de destino (172.16.30.0) la tiene directamente conectada a su interfaz virtual.
5. vShield Edge envía la trama por la VXLAN 5000, ESXi02 la encapsula y envía por la red de transporte.
6. ESXi01 recibe la trama, la desencapsula y entrega a la máquina virtual Linux-Server1.
Como se pudo observar, el tráfico tuvo que salir de ESXi01 aunque la máquina de origen y destino estuvieran asentadas en el mismo host. Esto conlleva también a la necesidad de encapsular y desencapular las tramas ethernet originales en paquetes UDP (VXLAN), lo cual tiene efecto tanto en la CPU de los ESXi como en el consumo de ancho de banda de la red de transporte.
El Logical Distributed Router de VMware NSX evita el Hairpanning.
Enrutamiento del tráficoDLR puede enrutar tráfico:
- De redes Lógicas a Físicas (o viceversa). Ejemplo: De la XLAN 50001 a la red física 10.10.10.0/24.
- De Redes Lógicas a Lógicas. Ejemplo: De la VXLAN 50001 a la VXLAN 50001. O de la VLAN 100 a la VLAN 2000. O de la VXLAN 5000 a la VLAN 200.
Armando el rompecabezas de NSX, a continuación se mostrará la gráfica que representa los planos:
La red que se ha venido implementando a lo largo de todos estos Posts acerca de NSX es la siguiente:
Nota: En la figura 3 se detalla la ubicación de cada Plano del NSX. Por lo general, las máquinas virtuales como NSX Manager, vCenter Server, NSX Controller, Logical Router Control VM y otros productos de VMware como Site Recovery Manager, vCloud Director, entre muchos otros, son ubicados en un clúster destinado únicamente a la administración, evitando que la infraestructura que administra y controla el entorno virtual compita por los recursos del entorno de producción.
Utilizando la figura 3 como ejemplo, suponer que Win-Server1 envía tráfico a Linux-Server1. Ambas VMs se encuentran en redes distintas. LDR podrá en este caso enrutar el tráfico e incluso evita el Hairpanning. Esto significa que el tráfico no saldrá (no se emplearán los VTEPs ni se encapsulará/desencapsulará la trama ethernet de las VMs) de ESXi01.
De la figura 3 también se puede decir que:
- Hay un DLR.
- Hay un Logical Router Control VM.
- El DLR tiene hasta ahora dos interfaces virtuales, también conocidas como LIFs "Logical Interfaces".
- Si por ejemplo se creara una nueva interfaz lógica través de NSX Manager, NSX Controller deberá replicar esta información a cada LDR, los cuales se ubican directamente en los hosts.
Nota: Recordar que NSX Controller es deplegado manualmente desde el NSX Manager. Recordar también que el Logical Router Control VM es despegado también por NSX Manager en el momento que un LDR es creado.
El Logical Router Control VM ó LRCVM administra las adyacencias y la tabla de enrutamiento. Esta máquina virtual permite configurar tanto enrutamiento estático como dinámico, soportando:
Cuando LRCVM hace una adyacencia y aprende una ruta, se las informará a NSX Controller, quién después se las enviará a cada ESXi.
Logical Interface (LIF)En el mundo físico un router tiene interfaces físicas. Cada interfaz representa una red o lo que es lo mismo, un dominio de broadcast. En las interfaces físicas de los routers se debe configurar una dirección IP. Un router sin IP prácticamnete no hace nada.
En NSX el DLR también tiene interfaces, pero son lógicas, conocidas como LIFs. Hasta 1000 LIFs podrán ser creada por LDR. Cada LIF podría tener su propia dirección IP, representará una red o dominio de broadcast y podrá ser conectada a un Logical Switch o Distributed Port group. Nuevamente al observar la figura 3, un LIF del DLR fue conectada al Logical Switch "Win-Servers" que representa la VXLAN 5000 y la otra interfaz al Logical Switch "Linux-Server", representado por la VXLAN 5001.
Por cada red que se conecte a un DLR éste tendrá su propia tabla ARP. En la figura 3 hay dos LIFs (redes), por tanto este DLR maneja dos tablas ARP.
Un DLR posee dos tipos de dirección MAC:
- vMAC: LIF conectada a un Logical Switch (VXLAN).
- pMAC: LIF Conectada a un Distributed Port Group (VLAN).
vMAC o Virtual MAC es la dirección MAC de una LIF conectada a un Logical Switch. Esta dirección será la misma en todos los ESXi, al igual que la dirección IP. Esta es la razón por la cual se le conoce como Distributed Logical Router, ya que ciertas características del router son distribuidas y las mismas en los ESXi. Para que una MAC sea catalogada como vMAC es necesario que la LIF sea conectada a un Logical Switch.
La figura 4 muestra dos LIFs (LIF1 y LIF2). LIF1 tiene dirección IP 172.16.28.1 y vMAC 00:01:02:03:04:05. LIF2 tiene la dirección IP 172.16.30.1 y vMAC 00:01:02:03:04:06.
Cuando Win-Server1 envíe tráfico a Linux-Server1 o Linux-Server2 se utilizará el default gateway, en este caso, LIF1. La máquina virtual utilizará la vMAC como dirección MAC de destino. vMAC es una dirección que solo puede ser vista en el dominio de las VXLAN. Los switches físicos no pueden ver esta dirección ni mucho menos inroducirla en sus tablas de direcciones MAC. Porqué? Es muy sencillo. Cuando Win-Server1 envía tráfico a Linux-Server1, la información de la trama ethernet que enviará será la siguiente:
Destination MAC Address: 00:01:02:03:04:05. Dado a que la dirección IP de destino se encuentra en otra red, se empleará el default gateway. Sin no conoce la MAC del default gateway, Win-Server1 hará un ARP request.
Source MAC Address: La dirección MAC de Win-Server1
La trama es enviada por Win-Server1, recibida por el Logical Switch Win-Servers. El Logical Switch revisa su tabla de direcciones MAC y envía la trama al puerto que se conecta a la LIF1. LDR recibe la trama, mira la dirección MAC de destino, se da cuenta que esa trama es para él, revisa la dirección IP de destino y preparará (cambiará) la trama para ser enviada a Linux-Server1. La trama ethernet cambiará de la siguiente forma:
Destination MAC Address: La MAC Address de Linux-Server1. Si no la conoce, hará un ARP Request.
Source MAC Address: La dirección MAC de la interfaz LIF que se conecta a un enlace uplink para salir al mundo físico. (En este caso sería la pMAC si la LIF se conecta de forma directa al mundo físico o una vMAC si la LIF se conecta a un NSX Edge). La pMAC si puede ser vista por el mundo físico.Como conclusión la vMAC no es vista en el mundo físico.
pMAC o Physical MAC es la dirección MAC de una LIF conectada a un Distributed Port Group configurado con una o varias VLAN. Esta dirección MAC será distinta en cada ESXi.
En un DLR hay dos tipos de LIFs:
VXLAN LIFSi una LIF se conecta a un Logical Switch (Un switch lógico es una única VXLAN), se le considera una VXLAN LIF y la dirección MAC es la vMAC, la cual no será vista por los switches físicos. A un Switch Lógico solo se le podrá conectar una VXLAN LIF. Lo que se observa en la Figura 4 son 2 VXLAN LIFs.
VLAN LIFSi una LIF se conecta a un Distribued Port Group respaldado por una o más VLANs, se le conoce como VLAN LIF y la dirección MAC es la pMAC, la cual si podrá ser vista por los switches físicos. Este tipo de LIF es la que le da al LDR conectividad directa con el mundo físico.
Dado a que un Distributed Port Group solo puede pertenecer a un solo Distributed Switch, una VLAN LIF solo podrá existir en un solo switch distribuido. En contaste, un Logical Switch, aunque en esencia también es un Distributed Port Group, es un "Logical Switch" y este si puede ser configurado en distintos switches distribuidos.
Dado también a que la pMAC es distinta en cada Host pero en esencia son direcciones MAC del mismo DLR, un swtich físico podría entrar en confusión. Para remediarlo, NSX Controller elegirá una VLAN LIF en nombre de todos los ESXi. A esta LIF se le conoce como "Designated Instance" y es la encargada de:
- Responder ARPs en nombre de todos los LIFs enviados por el mundo físico.
- Enviar ARPs en nombre de todos los LIFs al mundo físico.
Así que si por ejemplo se hay dos ESXi entonces habrán dos VLAN LIF. Una de estas será elegida como la instancia designada. Cuando el tráfico fluye del mundo físico a la VLAN LIF, la instancia designada recibirá el tráfico. Cuando el tráfico fluye de un ESXi hacia el mundo físico, éste no pasará por la instancia designada.
VLAN LIF no es el único método que permite a un DLR salir al mundo físico. Hay dos formas para dotar a un LDR de una salida a la infraesturcura física:
- Conectando un LIF a un Distributed Port group configurado con una o más VLANs. Básicamente el VLAN LIF. Se recomienda emplear este método solo si se requiere salir directamente al mundo físico. Recordar que VLAN LIF requiere de una intancia designada.
- Conectando un LIF a un Logical Switch. A este Logical Switch se le conecta también una interfaz del NSX Edge. Se recomienda emplear este método si se instalará un NSX Edge entre el mundo físico y el DLR. Esta opción es la más recomendado por VMware y no requiere de una instancia designada.
De la figura 5 se puede concluir que:
- El DLR tiene 5 LIFs.
- LIF1 es una VXLAN LIF conecta al Logical Switch 1 (VXLAN 5000).
- LIF2 es una VXLAN LIF conecta al Logical Switch 2 (VXLAN 5001).
- LIF3 es una VXLAN LIF conecta al Logical Switch 3 (VXLAN 5002).
- LIF4 es una VXLAN LIF conecta al Logical Switch 4 (VXLAN 5003).
- LIF5 es una VLAN LIF conectada directamente a un grupo de puertos distribuido configurado con la VLAN 10.
- Este DLR está enrutando el tráfico de Este-Oeste (De forma horizontal).
- El enrutamiento de Norte-Sur lo estaría realizando el mundo físico.
- LIF1,2,3 y 4 usan la misma vMAC y no será vista en el mundo físico.
- LIF5 (VLAN LIF) emplea una pMAC que será vista por el mundo físico.
- Como la VXLAN 5000, 50001, 50002 y 5003 están directamente conectadas al DLR, no es necesario configurar ningún protocolo de enrutamiento estático ni dinámico para enrutar el tráfico entre éstas.
- Si de la VXLAN 5000 a la 5003 requieren alcanzar una red del mundo físico, en este caso el DLR no tiene esas redes directamente conectadas, por tanto se necesita de un rutas estáticas o un protocolo de enrutamiento dinámico para tal propósito.
De la figura 6 se puede concluir que:
- El DLR tiene 4 LIFs.
- LIF1 es una VXLAN LIF conectada a Web Logical Switch.
- LIF2 es una VXLAN LIF conectada a App Logical Switch.
- LIF3 es una VXLAN LIF conectada a DB Logical Switch.
- LIF4 es una VXLAN LIF conectada a Transit Logical Switch.
- NSX Edge tiene una interfaz conectada a Transit Logical Switch.
- Este DLR está enrutando el tráfico de Este-Oeste (De forma horizontal).
- El enrutamiento de Norte-Sur lo estaría realizando el NSX Edge (De forma vertical).
- LIF 1,2,3 y 4 usan la misma vMAC y no será vista por el mundo físico.
- En este ejemplo no existe la pMAC.
- Como las redes 172.16.10.0, 172.16.20.0 y 172.16.30.0 están directamente conectadas al DLR, no es necesario configurar ningún protocolo de enrutamiento estático ni dinámico para enrutar el tráfico entre éstas.
- Si por ejemploo la red 172.16.10.0 requiere alcanzar a la red 192.168.100.0, se neceista en este caso configurar enrutamiento estático o dinámico.
Para crear un DLR se pueden seguir los siguientes pasos:
Paso 1: Abrir una conexión a vCenter Server empleando el vSphere Web Client.
Paso 2: Ir a Home, Inventories, Networking and Security.
Paso 3: En el panel izquierdo seleccionar "NSX Edges". En el panel de navegación dar clic en el símbolo más (+) de color verde:
Paso 4: Name and description.
- Install Type: Permite definir si se creará un NSX Edge (Edge Services Gateway) o un Distributed Logical Router (Logical (Distributed) Router). Como lo que se busca es crear un Distributed Logical Router se selecicona esa opción.
- Enable High Availability: Tanto el NSX Edge como el DLR permiten manejar múltiples instancias para dotarlos de alta disponibilidad. En un futuro post se hablará más acerca de esto.
- Name: Nombre que se dará al Logical Router Control VM. Con este nombre se visualizará en el inventareio de vCenter Server.
- Hotname: Nombre de máquina que se dará al Logical Router Control VM.
- Description: Una descripción de este DLR.
- Tenant: A qué Tenant será destinado este DLR.
Clic en Next para continuar.
Paso 5: CLI credentials.
Aunque el Distributed Logical Router se encuentra en el plano de datos (es un módulo dentro de los ESXis), en el plano de control se necesita desplegar el Logical Router Control VM. Command Line Interface credentials permite definir el usuario y clave para ingresar por SSH o de forma local a esta máquina virtual y así poder ingresar comandos de solo lectura.
- Username: Por defecto es admin
- Password: Clave del usuario. La password deberá ser de mínimo 12 y máximo 255 caracteres. Deberá tener al menos una mayúscula, una minúscula y un carácter especial.
- Enable SSH: Activar esta opción si se tiene planeado gestionar por SSH el Logical Router Control VM.
Clic en Next para continuar.
Paso 6: Configure deployment
- Datacenter: Especificar en qué datacenter lógico será desplegado el Logical Router Control VM.
- NSX Edge Appliances: Dar clic en el símbolo "más" (+).
- Clúster/Resource Pool: En qué clúster o pool de recursos será ubicado el Logical Router Control VM.
- Datastore: En qué Datastore se albergará el Logical Router Control VM.
- Host: El ESXi que tendrá el Logical Router Control VM.
- Folder: En qué folder de la vista VMs and Templates se ubicará el Logical Router Control VM.
Clic en Next para continuar.
Managment Interface Configuration- Connected to: Clic en Select para seleccionar en qué grupos de puertos distribuido o logical swtich se conectará el Logical Router Control VM. Es importante que el grupo de puertos distribuido especificado pueda alcanzar a NSX Manager y NSX Controller. En la siguiente gráfica se ha seleccionado el grupo de puertos distribuido "Managment", el cual es la red de administración en donde se encuentra vCenter Server, NSX Manager y NSX Controller:
- (+): Dar clic en el "más" de color verde para adicionar una dirección IP a esta interfaz:
Paso 7: Configure interfaces.
1. Dar clic en el "+" apara adicionar una dirección IP a la interfaz de admnistración del Logical Router Control VM.
2. IP Address: Especifcar la dirección IP.
3. OK: Es importante que se de clic en OK o de lo contrario la dirección IP no será tenida en cuenta en la configuración.
Configure interfaces of this NSX Edge4. Subnet prefix length: Introducir la máscara de red.
- Name: Introducir un nombre a la LIF.
- Type: Hay dos tipos de LIF. Internal se emplea para conectarse a un Logical Switch. Uplink se emplea como VLAN LIF o VXLAN LIF si éste ultimo cuenta con un NSX Edge entre el DLR y el mundo físico. Ver figuras 5 y 6.
- Connected to: Seleccionar el Logical Switch o Distributed Port Gorup al cual se conectará esta interfaz.
- Connectivity Status: Modo de la interfaz (Activa o Desactiva).
- Configure Subnets: Clic en "+" para adicionar la dirección IP. Es similar al procedimiento realizado en la figura 15.
- MTU: Definir la unidad máxima de transferencia de la interfaz virtual. 1500 Bytes es el valor por defecto. No confundir este valor con la MTU de 1600 bytes de los VTEPs. Las LIFs no encapsulan ni desencapsulan las tramas de las máquinas virtuales en paquetes UDP.
En la figura 16 dar clic en el "+" para adicionar las interfaces (LIFs) del Distributed Logical Router:
En la figura 18 se puede ver que se han creados dos LIFs. La LIF con IP 172.16.30.1 se conecta al Logical Switch Win-Servers. La LIF con IP 172.16.30.1 se conectó al Logical Switch Linux-Servers. Observar también la figura 4 para un mejor entendimiento.
Clic en Next para continuar.
Paso 8: Configure HA.
Tanto NSX Edge como el DLR pueden ser protegidos en alta disponibilidad. En un futuro Post se estará hablando más acerca de esto.
Paso 9: Ready to complete
VerificaciónClic en Finish.
Una vez finalizado el despliegue, el Logical Router Control VM podrá ser visto en la lista de NSX Edges:
También puede ser verificado revisando directamente la máquina virtual:
- El ping desde Win-Server1 a Linux-Server1 funcionó. En este caso la trama ethernet de Win-Server1 nunca se encapsuló en un paquete UDP por el VTEP de ESXi01.
- El ping desde Win-Server1 a Linux-Server2 funcionó. En este caso el VTEP del ESXi01 su encapsulo la trama.
Pruebas:
En el próximo Post se verá cómo funcionan los VTEPs.
Un saludo!!!
Parte 1: Introducción a VMware NSX. Conceptos iniciales
Parte 2: VMware NSX: Planos
Parte 3: Instalación y configuración de NSX Manager 6.X
Parte 4: VMware NSX Controller
Parte 5: VMware NSX - Introducción a la VXLAN
Parte 6: VMware NSX - Modos de Replicación
Parte 7: VMware NSX - Logical Switches
Parte 8: VMware NSX - Distributed Logical Router
Soy Andrés Felipe Araque D. Ingeniero dse Telecomunicaciones y apasionado por la Virtualización y VMware.
Tags: VMware NSX