Configuración de IPv6 con el Mismo Rango de IP v4: Una Guía Detallada

Las direcciones IP son fundamentales para la identificación y comunicación dentro de las redes, actuando como identificadores únicos para redes y hosts. Existen dos tipos principales de direcciones IP: IPv4 e IPv6. Estas direcciones deben ser únicas para permitir que el tráfico en la red identifique la fuente y el destino para el intercambio de paquetes. La adopción de IPv6 se ha vuelto cada vez más crucial debido al agotamiento del espacio de direcciones IPv4 y a las capacidades mejoradas que ofrece la nueva versión del protocolo.

Diagrama comparativo de IPv4 e IPv6

La Evolución del Protocolo de Internet: De IPv4 a IPv6

En los años 80, con la creación del servicio de Internet, nadie imaginaba la magnitud de la demanda que tendría en la actualidad. El protocolo de Internet actual, conocido como Versión IP 4 o IPv4, no ha cambiado sustancialmente desde que RFC 791 se publicó en 1981. IPv4 ha demostrado ser sólido, fácil de implementar e interoperable, y ha mantenido la prueba de escalar una red entre redes a una utilidad global del tamaño de Internet de hoy en día.

Una dirección IPv4 se representa con números decimales y tiene una longitud de 32 bits, ofreciendo un total de 2 elevado a 32 combinaciones posibles. Con el paso de los años y el auge de las tecnologías, se empezó a detectar un agotamiento en las direcciones públicas IPv4. Las direcciones IPv4 se han vuelto relativamente escasas. Como resultado, algunas organizaciones se ven obligadas a usar un traductor de direcciones de red (NAT) para asignar varias direcciones privadas a una única dirección IP pública. Aunque los NAT promueven la reutilización del espacio de direcciones privadas, no admiten la seguridad de la capa de red basada en estándares ni la asignación correcta de todos los protocolos de capa superior.

Debido a la forma en que se han asignado identificadores de red (ID) IPv4 y actualmente, hay más de 70.000 rutas en las tablas de enrutamiento de enrutadores troncales de Internet. La mayoría de las implementaciones de IPv4 actuales deben configurarse manualmente o a través de un protocolo de configuración de direcciones con estado, como el Protocolo de configuración dinámica de host (DHCP).

Para solucionar este problema y mejorar lo existente, la IETF comenzó a estudiar un nuevo esquema de direccionamiento. Una dirección IPv6 se representa con 8 grupos de 4 dígitos hexadecimales separados, en este caso, por dos puntos (:). Este protocolo ofrece un total de combinaciones posibles de 2 elevado a 128, lo que permite un número prácticamente ilimitado de direcciones IP únicas.

Representación de una dirección IPv6

Ventajas y Características Clave de IPv6

IPv6 permite que todos los dispositivos puedan conectarse a Internet sin hacer distinción entre IP privadas y IP públicas, ya que en este caso todas las IP pasan a ser de tipo global. En IPv6 existirán únicamente Multicast, Unicast y Anycast. En IPv4, el Broadcast era un tráfico muy poco optimizado. Si teníamos una red muy grande con muchos dispositivos, cada vez que queríamos enviar un paquete, este iba a todos. De esta forma, empleaba recursos de la red, tráfico y ancho de banda para procesar datos que nunca llegaban a ningún host, pero que a pesar de ello eran transmitidos por la red.

En IPv4 es necesaria la utilización del servicio de NAT, pero en IPv6 no, porque a partir de su utilización cada dispositivo tendrá una dirección propia global, acabando así con lo que se conoce en IPv4 como IP pública y privada. El NAT en IPv6 existirá con otros propósitos, pero no para que los dispositivos salgan a Internet.

Existen una serie de direcciones especiales tanto en IPv4 como en IPv6. Por ejemplo, en IPv6 tenemos:

  • 2000::/3: Aquí empiezan las direcciones globales.
  • FE80::/10: Estas direcciones son privadas, no son enrutables en Internet, pero sí en una organización.
  • Direcciones experimentales: Estas direcciones actualmente solo se podrían utilizar para investigar o experimentar.

El encabezado de IPv6, al estar dividido en bloques de 64 bits, es ideal para todos los procesadores de 64 bits. Pasar de IPv4 a IPv6 supone un gran cambio tanto en la estructura como en el funcionamiento de las redes. Pero, aunque se trata de un proceso largo, complejo y costoso, es necesario. Además, garantizará la disponibilidad de suficientes direcciones IP para soportar el crecimiento de los dispositivos conectados en los próximos años.

La comunicación privada a través de un medio público como Internet requiere servicios de cifrado que protejan los datos que se envían de ser vistos o modificados en tránsito. Aunque existen estándares para QoS para IPv4, la compatibilidad con el tráfico en tiempo real se basa en el campo Tipo de Servicio IPv4 (TOS) y la identificación de la carga, normalmente mediante un puerto de Protocolo de Datagramas de Usuario (UDP) o Protocolo de Control de Transmisión (TCP). Desafortunadamente, el campo IPv4 TOS tiene una funcionalidad limitada y tiene diferentes interpretaciones. Además, la identificación de la carga mediante un puerto TCP y UDP no es posible cuando se cifra la carga del paquete IPv4. Para abordar estos problemas, el Grupo de Tareas de Ingeniería de Internet (IETF) ha desarrollado un conjunto de protocolos y estándares conocidos como IP Versión 6 (IPv6). Esta nueva versión, anteriormente denominada IP-The Next Generation (IPng), incorpora los conceptos de muchos métodos propuestos para actualizar el protocolo IPv4.

Introduccion a IPV6 FACIL BIEN EXPLICADO👍

Configuración Práctica de IPv6 en Google Cloud

La expansión de Internet ha hecho que la transición de IPv4 a IPv6 sea una tarea inevitable y crucial para preparar las redes para el futuro. IPv4, con su espacio de direcciones limitado, ya no puede soportar el número creciente de dispositivos. IPv6, con su vasto espacio de direcciones y características avanzadas, es el futuro. Sin embargo, hacer esta transición de manera fluida requiere una planificación y ejecución cuidadosas.

Para comenzar, es esencial entender los conceptos básicos de IPv6 y cómo configurar un entorno que admita ambos protocolos simultáneamente. En el contexto de Google Cloud, esto implica la creación y configuración de Redes de Nube Privada Virtual (VPC) personalizadas, habilitando y configurando tipos de direcciones IPv4 e IPv6 (internas y externas).

Creación de un Proyecto y Configuración Inicial

  1. Accede a Google Cloud Console: Crea un proyecto nuevo o reutiliza uno existente. El Nombre del proyecto es el nombre visible de los participantes de este proyecto. Es una cadena de caracteres que no se utiliza en las APIs de Google. El ID del proyecto es único en todos los proyectos de Google Cloud y es inmutable (no se puede cambiar después de configurarlo). La consola de Cloud genera automáticamente una cadena única. Por lo general, no importa cuál sea. En la mayoría de los codelabs, deberás hacer referencia al ID de tu proyecto (suele identificarse como PROJECT_ID). Si no te gusta el ID que se generó, podrías generar otro aleatorio. También puedes probar uno propio y ver si está disponible. Recuerda que hay un tercer valor, un número de proyecto, que usan algunas APIs.
  2. Habilitar Facturación: A continuación, deberás habilitar la facturación en la consola de Cloud para usar las APIs o los recursos de Cloud. Ejecutar este codelab no costará mucho, tal vez nada. Para cerrar recursos y evitar que se generen cobros más allá de este instructivo, puedes borrar los recursos que creaste o borrar el proyecto.
  3. Entorno de Trabajo: El aprovisionamiento y la conexión al entorno deberían tomar solo unos minutos. Se recomienda utilizar una máquina virtual preconfigurada con todas las herramientas de desarrollo necesarias. Esta máquina virtual ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud, lo que permite mejorar considerablemente el rendimiento de la red y la autenticación. Todo tu trabajo en este codelab se puede hacer en un navegador.

Configuración de Redes VPC con Soporte IPv6

En este lab, agregaremos algunas reglas de firewall, incluidas las del tráfico IPv6, y sería conveniente separarlas de la red predeterminada. Además, habilitaremos IPv6 en una subred. Uno de los requisitos es que esté habilitado en una red de modo personalizado.

  1. Crear Redes VPC Personalizadas:
    • Crea dos VPC personalizadas. Por ejemplo, ipv4-ipv6-network y external-ipv6-network.
    • En la sección Modo de enrutamiento dinámico, selecciona Global para la red de VPC. Para obtener más información, consulta Modo de enrutamiento dinámico.
  2. Agregar Subredes y Habilitar IPv6:
    • Agrega una subred a ipv4-ipv6-network. Ingresa un rango IPv4. Habilita IPv6 para esta subred.
    • Agrega otra subred a external-ipv6-network. Ingresa un rango IPv4. Habilita IPv6 para esta subred.
  3. Configurar Reglas de Firewall:
    • En la pestaña Reglas de firewall de IPv6, selecciona todas las opciones disponibles: allow-ipv6-custom (para la comunicación interna), allow-ipv6-icmp, allow-ipv6-rdp, allow-ipv6-ssh.
    • Asegúrate de ver las reglas de firewall para las redes nuevas que creaste (ipv4-ipv6-network y external-ipv6-network).

Creación y Verificación de Instancias de Máquina Virtual (VM)

  1. Crear VMs:
    • Crea una VM en la subred solo para IPv4, sin una dirección IP externa asignada.
    • Crea otra VM en la subred ipv4-ipv6-network (que tiene soporte IPv6). Esta VM debe tener acceso a direcciones IPv6 internas y externas.
    • Crea una tercera VM en la subred external-ipv6-network (con acceso a direcciones IPv6 externas).
  2. Verificar Direcciones IP:
    • Selecciona instancias de VM. Desplázate por la columna IP interna y, debajo de ella, deberías ver las direcciones IPv4 e IPv6.
    • En tu sesión SSH a la VM en la subred IPv4_IPv6 (con acceso a direcciones IPv6 externas), escribe curl localhost. A continuación, escribe ip addr para mostrar la información de la dirección.
    • Puedes establecer una conexión SSH a la segunda VM (solo IPv4) y realizar la misma prueba.
  3. Pruebas de Conectividad:
    • Ejecuta ping -c 4 X.X.X.X en las direcciones IPv4 privadas de cualquiera de las VMs creadas anteriormente que comiencen con el nombre ipv6-server-igp. Deberías poder hacer ping correctamente a las direcciones IPv4 internas de estas VMs.
    • En tu sesión SSH de la VM external-ipv4-ipv6, escribe curl X.X.X.X, donde X.X.X.X es la dirección IPv4 del balanceador de cargas ipv4-ipv6-lb-demo.
    • En tu tipo de sesión SSH de VM external-ipv4-ipv6 escribe curl [X:X:X:X]:80, donde X:X:X:X es la dirección IPv6 del balanceador de cargas ipv4-ipv6-lb-demo.

Configuración de Balanceadores de Carga

Los balanceadores de carga permiten distribuir el tráfico entre varias instancias de tu aplicación. En la documentación sobre el balanceo de cargas, se enumeran varios tipos de balanceadores de carga de Google Cloud. Esto permite que tus subredes privadas se comuniquen con Internet. Esto funciona traduciendo tu dirección IP interna a una dirección IP pública para establecer una conexión con el host externo. Luego, el tráfico de retorno de la fuente externa se traduce de forma inversa en la puerta de enlace NAT para usar el direccionamiento privado y devolver el tráfico al cliente.

  1. Crear Balanceador de Carga: Crea un balanceador de carga que soporte tanto IPv4 como IPv6.
  2. Registrar Direcciones IP: Haz clic en el nombre del LB nuevo y, en el frontend, anota las direcciones IPv4 e IPv6.

Diagrama de arquitectura de balanceador de carga con IPv4 e IPv6

Comandos y Parámetros para la Gestión de IPv6

La gestión de redes IPv6 implica el uso de comandos específicos para configurar interfaces, rutas y realizar diagnósticos. A continuación, se detallan algunos parámetros y comandos relevantes:

Configuración de Interfaces IPv6:

  • add address /? [[forwarding =] enabled | disabled]: especifica si los paquetes que llegan a esta interfaz se pueden reenviar a otras interfaces.
  • [[anunciar =]enabled|disabled]: especifica si los anuncios de enrutador se envían en esta interfaz.
  • [[mtu =] integer]: especifica la unidad de transmisión máxima (MTU) de esta interfaz.
  • [[siteid =] integer]: especifica el identificador de zona de ámbito de sitio.
  • [[store =] active | persistent]: si especifica activo, el cambio solo dura hasta que se reinicie el equipo. Si especifica persistente, el cambio es permanente.

Configuración de Rutas IPv6:

  • [prefix =] integer ipv6address /: este parámetro es obligatorio.
  • [[publish =] { no | age | yes }]: especifica si las rutas se anuncian en anuncios de ruta con duraciones inalterables (sí), anunciadas con duraciones decrecientes (edad) o no anunciadas (no) en anuncios de ruta.
  • [[validlifetime =] { integer | infinite }]: Especifica la duración durante la cual la ruta es válida.
  • [[preferredlifetime =] { integer | infinite }]: Especifica la duración a la que se prefiere la ruta.
  • [[store =] { active | persistent }]: Especifica si el cambio dura solo hasta el siguiente inicio (activo) o si es persistente (persistente). Este parámetro agrega una ruta para un prefijo específico. Cuando la publicación se establece en ninguna o edad, la ruta se elimina después del final de la vigencia válida. Cuando la publicación se establece en edad, el anuncio de ruta contiene la duración válida restante hasta la eliminación.

Comandos de Diagnóstico:

  • Ping:
    • Para hacer ping a la dirección local de vínculo de otro nodo del vínculo (también conocido como subred), escribe ping address % zone_id, donde address es la dirección local de vínculo del otro nodo y zone_id es el índice de interfaz de la interfaz desde la que deseas enviar paquetes ping.
    • Para hacer ping a la dirección local de sitio de otro nodo, escribe ping address % zone_id, donde address es la dirección local del sitio del otro nodo y zone_id es el identificador de sitio que estaba en la salida del comando netsh interface ipv6 show interface.
    • Para hacer ping a otro nodo por nombre, escribe ping -6 name, donde name es un nombre que se puede resolver en una dirección IPv6 a través de entradas en el archivo de hosts locales o a través de registros de recursos AAAA que están presentes en la infraestructura DNS.
  • Traceroute:
    • El comando tracert -6 realiza un seguimiento de la ruta de acceso que toman los paquetes IPv6 de este equipo a otro equipo remoto.
    • zone_id es el identificador de zona de la dirección de destino. El identificador de zona para las direcciones de destino local de vínculo es el índice de interfaz de la interfaz desde la que deseas enviar paquetes tracert -6. El identificador de zona para las direcciones de destino local del sitio es el identificador de sitio que aparece en la salida del comando netsh interface ipv6 show interface.

Estrategias de Transición a IPv6

La transición de IPv4 a IPv6 es un proceso gradual que requiere una planificación y ejecución cuidadosas. Siguiendo estos pasos, puedes asegurar una transición fluida que mantenga tu red preparada para el futuro y lista para las demandas del mundo digital de mañana.

  1. Evaluación de la Infraestructura Actual: Comienza evaluando tu infraestructura de red actual. Identifica los dispositivos y servicios que soportan IPv6. Herramientas como SolarWinds Network Performance Monitor (NPM), PRTG Network Monitor o ManageEngine OpManager pueden automatizar esta evaluación.
  2. Selección de Prefijos IPv6: Elige entre prefijos IPv6 agregables por el proveedor (PA) y prefijos IPv6 independientes del proveedor (PI). Los prefijos PA son proporcionados por los ISP y son más fáciles de gestionar, mientras que los prefijos PI ofrecen mayor autonomía.
  3. Estrategia de Transición: Selecciona una estrategia de transición que se adapte a tu red. La Doble Pila (Dual Stack) es una opción común, que consiste en ejecutar IPv4 e IPv6 simultáneamente.

La transición de IPv4 a IPv6 supone un gran cambio, pero es necesaria para garantizar la escalabilidad y la disponibilidad de Internet en el futuro. La planificación cuidadosa y la implementación paso a paso son clave para un proceso exitoso.

tags: #configurar #ipv6 #con #el #mismo #rango