¿Cómo funciona el servicio de NAT en VMware NSX?
Continuando con los servicios que ofrece VMware NSX, hoy toca hablar de un servicio básico pero muy necesario todavía, hoy hablaremos de NAT (Network Address Translation).
NAT ha sido una de las estrategias propuestas por la IETF y el IANA para que las direcciones IPv4 duraran hasta hace tres años. De no haber sido por esta estrategia las direcciones IPv4 se hubieran agotado muchos años antes. Sin embargo, y a pesar de ahora contamos con direccionamiento de IPv6 el servicio de NAT seguirá siendo utilizado durante muchos años más, probablemente hasta que dejen de utilizarse todas las direcciones IPv4 públicas, si es que eso ocurre alguna vez.
NSX ofrece un servicio sencillo de nateo. En mi larga carrera como instructor nunca había visto una definición tan sencilla para ofrecer los dos mecanismos de NAT principales tal como los plantea NSX. Es cierto que esta simplicidad es enemiga de escenarios complejos donde fuera necesario aplicar políticas de NAT basadas en otros parámetros como la IP o el puerto TCP o UDP de destino para el tráfico saliente. Supongo que estas alternativas serán agregadas en futuras versiones de NSX.
El servicio de NAT que ofrece NSX nos permite resolver la conectividad entre redes que utilizan una misma dirección de red o subredes. A pesar de la inmensa variedad que nos ofrecen las redes privadas definidas en la RFC 1918 *(única RFC que reconozco por su número) muchos administradores han elegido las primeras subredes disponibles como la 10.0.0.0/24. Ahora que muchas empresas se fusionan nos encontramos con el escenario de que es necesario conectar dos redes que tienen el mismo direccionamiento. Cambiar el direccionamiento de una red es una tarea dificultosa y que no está exenta de muchos riesgos, tales como que ciertas aplicaciones dejen de funcionar por haberle cambiado la IP, o necesiten reiniciarse o cosas aún peores.
Es entonces cuando NAT nos puede ayudar, cambiando las direcciones IP de origen entre ambas para que sean vistas como si se tratara de distintas subredes, resolviendo así el problema de superposición (overlap).
Es importante indicar que el servicio de NAT no está disponible como muchos otros servicios por el Distributed Router, sino solo por el Edge Router.
NSX permite dos clases de políticas de NAT:
- Source NAT (SNAT)
- Destination NAT (DNAT)
Source NAT
Source NAT es la regla que permite cambiar la dirección IP de origen y típicamente se aplica para el tráfico saliente a Internet.
Las direcciones IPs definidas en la RFC 1918 no son ruteables, lo que significa que si el tráfico llega al destino este jamás podrá responder.
Por lo tanto es necesario cambiarlas al pasar por nuestro Edge Router, si es este el que está conectado directamente a Internet.
Destination NAT
Las reglas de destination NAT en cambio, se aplican al tráfico que llega a nuestra interfaz externa, a una dirección IP pública asociada a dicha interfaz y que tiene que ser redirigido a alguna de nuestras VMs que tiene una dirección IP local privada.
Las reglas de DNAT son más sofisticadas que las de SNAT y permiten no solo cambiar la IP de destino sino también el puerto TCP o UDP de destino para lograr una redirección en aquellos casos en los que la aplicación servidor escuchara por un puerto distinto al que usan los usuarios.
En la siguiente figura vemos una regla de DNAT
Como se puede apreciar podemos seleccionar en que interfaz se espera recibir el tráfico (típicamente nuestra interfaz externa), cual es la dirección ip original (la pública), que protocolo (si elegimos IP se aplicará para todo tipo de tráfico), el puerto de destino original (por ejemplo 80), el puerto o el rango de puertos traducidos (por ejemplo 8080). El checkbox de enable nos permite habilitar o deshabilitar la regla, y el de logging dejar un registro que luego podemos ver como un evento en nuestro syslog server, muy útil para cuando lo habilitamos por primera vez.
La regla de SNAT en cambio es mucho más sencilla. Solo necesitamos definir la dirección IP local y la pública.
El servicio soporta Port Address Translation (PAT), también conocido como Overload por los administradores de router cisco. Esto permite que con una sola dirección IP pública asociada a la interfaz externa, podamos soportar hasta 65000 IPs locales.
Una cosa que me resulta curiosa es que el primer paso en la configuración de SNAT es asociar la IP a la interfaz externa, un proceso que hay que realizar manualmente. En otros fabricantes con solamente definir la IP en la regla de NAT automáticamente el router asume dicha IP y comienza a contestar a los request de ARP.
Espero que la nota les haya parecido interesante. Nos vemos el próximo jueves para tratar otro servicio de NSX.
* Para los que no estén familiarizados con la RFC 1918 es la que define las direcciones IP para uso privado desde la 10.0.0.0 a la 10.255.255.255, 172.16.0.0 a la 172.31.255.255 y 192.168.0.0 a la 192.168.255.255.
Gracias por leer nuestro blog, participar y compartir.