Maximización del uso de IPv4 con Data Centers IPv6 only y SIIT DC

26/04/2022

Por Tore Anderson*

Pocos entornos de red se adaptan mejor a la operación de una sola pila que los centros de datos. La operación de doble pila con IPv4 e IPv6 ejecutándose en paralelo solo genera mayor complejidad y sobrecarga administrativa. No hay muchas razones para querer mantener dos conjuntos de ACL, dos planes de direccionamiento, dos procedimientos para la resolución de problemas, etc. cuando uno es suficiente.

Entonces, al diseñar la red de un centro de datos, la pregunta es: ¿IPv4 o IPv6?

Ambas opciones tienen ventajas. En el caso de IPv4, la ventaja más importante es que prácticamente todas las aplicaciones son compatibles con esta versión del protocolo, incluso las heredadas o sin mantenimiento. Por otro lado, las direcciones IPv4 únicas son escasas y caras en todo el mundo. La solución natural sería utilizar direcciones privadas (RFC 1918). Sin embargo, esto tiene sus propias desventajas, en especial porque requiere introducir en la red dispositivos NAT con estado para traducir entre la Internet IPv4 global en el exterior y las direcciones privadas que se utilizan en el interior.

Otra desventaja es que esta solución obviamente no está particularmente preparada para el futuro, dado que, si bien de forma lenta, la Internet global está migrando a IPv6.

Entonces, ¿qué tal si construimos la red de un centro de datos solo IPv6? Si no hay aplicaciones heredadas solo IPv4 de las que preocuparse, IPv6 es una buena opción. Las direcciones IPv6 son abundantes y fáciles de conseguir; además, la mayoría de las aplicaciones y los sistemas operativos modernos las soportan. Si empezamos con IPv6, en el futuro no será necesario preocuparnos por complejos proyectos de migración de versión de IP.

Lo único que falta considerar es cómo permitir que los usuarios finales de Internet que solo utilizan IPv4 accedan a los servicios y aplicaciones alojados en el data center solo IPv6. Una forma particularmente ingeniosa de hacerlo es usar SIIT-DC – SIIT-DC: traducción de IP/ICMP sin estado para entornos de centros de datos IPv6 (RFC 7755). SIIT-DC realiza una conversión sin estado paquete por paquete de IPv4 a IPv6 y viceversa, dejando intacta la carga útil (normalmente TCP). SIIT-DC proporciona el «pegamento» que hace posible que un usuario final solo IPv4 se comunique con un servidor solo IPv6.

Un traductor SIIT-DC contiene una tabla con pares de direcciones IPv4 e IPv6, por ejemplo:

IPv4IPv6
198.51.100.02001:db8::1234
198.51.100.12001:db8:abcd::42

…y así sucesivamente.

Cuando el traductor SIIT-DC recibe un paquete IPv4 destinado a una de las direcciones IPv4 de la tabla, este eliminará el encabezado IPv4 y lo reemplazará por un encabezado IPv6 donde la dirección de destino se intercambia según la tabla. La dirección de origen del encabezado IPv6 será la dirección IPv4 original del usuario final, con un prefijo IPv6 especial de 96 bits antepuesto (prepend).

Este prefijo especial se podría tomar del conjunto de direcciones del propio operador del centro de datos o bien se podría utilizar uno de los prefijos de uso especial reservados en la RFC 6052 y la RFC 8215, por ejemplo, 64:ff9b:1::/96.

Ejemplo: el usuario final IPv4 203.0.113.123 quiere abrir www.example.org, que tiene un registro DNS IN A de 198.51.100.1. El paquete TCP SYN resultante se enruta a un traductor SIIT-DC, que lo traduce en un paquete IPv6 con la dirección de origen 64:ff9b:1::203.0.113.123 (64:ff9b:1::cb00:717b) y la dirección de destino 2001:db8:abcd::42.

El paquete traducido se reenvía a la red IPv6, el servidor web responde normalmente y se enruta nuevamente a un traductor SIIT-DC, que realiza la traducción inversa. ¡Conexión establecida!

(Pero ¿qué pasa con los usuarios finales que soportan IPv6? Obviamente, se conectarán directamente a 2001:db8:abcd::42 de acuerdo con el registro IN AAAA de DNS de www.example.org, omitiendo completamente el sistema de traducción SIIT-DC).

Dado que SIIT-DC no tiene estado, no es necesario que la traducción IPv4→IPv6 sea manejada por el mismo dispositivo que la traducción inversa IPv6→IPv4. Siempre que todos estén configurados con la misma tabla de traducción IPv4/IPv6 y prefijo de 96 bits, puede haber cualquier número de dispositivos involucrados. Ni siquiera es necesario que estén ubicados en el mismo centro de datos o red —no hay ninguna razón por la cual no podríamos ofrecer SIIT-DC como un servicio a otras organizaciones a través de la Internet pública—.

Por último, SIIT-DC maximiza la utilización de las direcciones IPv4 disponibles. Quizás el lector haya notado que la tabla de traducción del ejemplo empieza con una dirección «.0» —esto no fue un error—. SIIT-DC puede usar todas y cada una de las direcciones que le son asignadas, las direcciones de red y broadcast no generan sobrecargas administrativas, etc. Dada la escasez actual de las direcciones IPv4 públicas, es importante aprovechar al máximo las direcciones a las que tenemos acceso.

Si está pensando construir un centro de datos, espero que sea un centro de datos solo IPv6 y que SIIT-DC le ayude a lograrlo.

Si desea experimentar con SIIT-DC, un buen punto de partida sería descargar Jool, una implementación de código abierto para Linux desarrollada por NIC México y el Tecnológico de Monterrey.

*Tore Anderson es arquitecto de redes sénior para el proveedor de servicios de nube noruego Redpill Linpro. Desde hace mucho tiempo, tiene un interés especial en IPv6 y las redes para centros de datos, temas sobre los que ha escrito varias RFC.

Suscríbete para recibir mensualmente las últimas novedades en tu mail Click here to subscribe and monthly receive the latest news in your inbox. Inscreva-se aqui para receber mensalmente as últimas novidades no seu e-mail