
El subnetting IPv6 es el proceso de dividir una red IPv6 en subredes más pequeñas. Esto se hace para aumentar la seguridad, el rendimiento y la escalabilidad de la red. El subnetting IPv6 se realiza utilizando una máscara de subred. La máscara de subred es un número binario de 128 bits que se utiliza para identificar los bits de red y los bits de host en una dirección IPv6. Para subnetear una dirección IPv6, primero debe convertir la dirección y la máscara de subred a decimal. Luego, puede utilizar la máscara de subred para calcular el número de bits de red y el número de bits de host. Una vez que conozca el número de bits de red y el número de bits de host, puede determinar el número de hosts que puede alojar cada subred. Al entender cómo funciona el subnetting, los administradores de redes pueden diseñar y administrar redes IPv6 seguras, eficientes y escalables. Ref
En el post anterior he establecido un túnel entre el Ubuntu "Router" y Wireguard que opera sobre IPv4. Sin embargo, las IPs asignadas a la interfaz WireGuard son IPv6. Nuestro router tiene la dirección ::2 y Route64 tiene la dirección ::1. Con esta configuración, la conectividad IPv6 es completamente funcional. Nuestro enrutador posee una dirección unicass global que lo hace accesible desde cualquier lugar de Internet. Echemos un vistazo a nuestro esquema de red.
En la siguiente captura veremos que Route64 nos ha asignado una subred /56 dedicada, lo que nos proporciona 256 redes individuales, cada una con un tamaño de /64.
Esto se puede asignar y utilizar libremente según sea necesario. El mecanismo de enrutamiento de Route64 garantiza que cualquier tráfico dirigido hacia nuestra subred 56 se reenvíe correctamente a nuestro enrutador en ::2. En pocas palabras, nuestro enrutador inicialmente solo tiene conectividad IPv4, mientras que la Route64 admite tanto IPv4 como IPv6. Route64 garantiza que el tráfico destinado a esta subred se enrute a través de nuestro Ubuntu Server, lo que permite una comunicación IPv6 perfecta.
Es hora de configurar la interfaz interna del Server para habilitar el acceso IPv6 dentro de la red local. Primero, revisemos nuestras interfaces de red.
Vemos que la interfaz ens256 no está configurada. A diferencia de IPv4, IPv6 no requiere NAT. En su lugar, se nos ha asignado una subred /56, lo que nos permite dividirla en varias subredes de 64 bits. Cada subred de 64 bits puede asignarse a una interfaz o VLAN diferente dentro de la red. Para seleccionar una subred /64 de nuestro rango de 56 bits, usaré sipcalc para mostrar información detallada.
Analicemos la asignación de IPv6. Los primeros 56 bits forman el prefijo de red, que permanece fijo según lo asignado por la ruta 64.
Los siguientes ocho bits nos permiten crear 256 subredes, que van de 00 a FF en hexadecimal.
Los últimos 64 bits se utilizan para direcciones de host individuales dentro de cada subred de 64 bits.
Para esta configuración, elegiré la última subred disponible, FF, y la asignaré a ens256. Para asegurarnos de que ens256 tenga asignada correctamente una dirección IPv6, creemos un archivo de configuración de red en la ruta /etc/systemd/network/ens256.network.
En el apartado [Match] ponemos el nombre de la interfaz ens256 para coincida con la tarjeta de red. A continuación, en la sección [Network], asignemos la dirección IPv6. Dado que nuestro router será la puerta de enlace predeterminada para los hosts internos, haremos que la dirección sea predecible y fácil de recordar. Asignaré ::1 al router. Para aplicar la configuración, reiniciaré systemd-networkd.
Ahora verifiquemos los cambios.👌. La interfaz interna ya tiene una dirección IPv6 asignada. A continuación, necesitamos asignar direcciones IP, la ruta predeterminada y el DNS a nuestros dispositivos cliente. Para IPv4, normalmente configuramos un servidor DHCP para asignar direcciones IP, la ruta predeterminada y la configuración DNS a los clientes. Sin embargo, en redes IPv6, el método más popular para asignar direcciones IPv6 a dispositivos cliente es Slaac, que significa configuración automática de direcciones sin estado. En este método, los dispositivos generan sus propias direcciones IPv6 utilizando el prefijo proporcionado por el router y su propio identificador de interfaz, a menudo basado en la dirección MAC o generado aleatoriamente. Es importante destacar que Slaac solo funciona con 64 subredes. Por eso, /64 es el tamaño estándar para las redes de usuarios finales, lo que garantiza una configuración automática sin problemas. En este método, no se necesita un servidor DHCP. El enrutador envía periódicamente mensajes de anuncio de enrutador a un grupo multicast especial al que se unen todos los nodos. Dentro de estos mensajes de anuncio de enrutador, hay una puerta de enlace predeterminada de prefijo, así como DNS. Los clientes también pueden solicitar configuración enviando un mensaje de solicitud de enrutador a un grupo multicast especial al que se unen todos los enrutadores. El enrutador responderá con un mensaje de anuncio de enrutador.
Para habilitar el mensaje de anuncio de enrutador, necesitamos instalar la herramienta radvd, que es un servicio de demonio de anuncio de enrutador. Ahora, crearé un archivo de configuración para el demonio de anuncio de enrutador en la ruta /etc/radvd.conf.
Primero, definimos la interfaz ens256 que es donde opera nuestro demonio y que apunta a nuestra red interna. Luego, habilitamos "on" el mensaje de anuncio de enrutador para que los clientes puedan configurar automáticamente las direcciones IPv6 y el enrutamiento. A continuación, definimos el intervalo entre los mensajes de anuncio de enrutador que se envían. Frecuencia de los mensajes de anuncio de enrutador "600" y "200". Después, especificamos el prefijo IPv6 que debe usar el cliente "/64". Informamos a los dispositivos que esta subred es directamente accesible "on". Ahora, habilitemos la configuración automática de direcciones sin estado para que los clientes puedan asignar automáticamente sus propias direcciones IP dentro del rango /64 "on". Finalmente, configuremos un anuncio de servidor DNS recursivo. Elijamos Cloudflare "1111"como DNS. Especificamos que los clientes deben usar este DNS durante 20 minutos antes de actualizar "1200". Listo, nuestra configuración está lista. Reiniciemos el demonio de anuncios del enrutador y verifiquemos su estado.
Todo se ve bien, excepto que vemos una advertencia de que el reenvío de IPv6 está deshabilitado. Para que nuestros dispositivos cliente accedan a Internet, debemos habilitar el reenvío de IP. Esto permite que nuestro enrutador Linux enrute el tráfico de red entre diferentes interfaces. Lo configuraremos a través de systemd-networkd. Accedamos a la ruta /etc/systemd/network/ del archivo de configuración de las interfaces habilitadas en el Server ens160.network - ens256.network - wg0.network. Establecemos el parámetro de reenvío de IP en verdadero.
Reiniciemos systemd-networkd para aplicar la nueva configuración de reenvío en todo el sistema. Reiniciemos el demonio de anuncio del enrutador. Si verificamos su estado, vemos que la advertencia anterior sobre la falta de reenvío de IP ha desaparecido.
Finalmente, verifiquemos que el reenvío de IP esté correctamente habilitado mirando los parámetros del kernel.
Como podemos ver, el reenvío de IPv4 e IPv6 está activo, lo que garantiza un enrutamiento adecuado para todos los dispositivos. Con el reenvío habilitado, nuestro enrutador ahora es completamente capaz de pasar tráfico IPv6 entre dispositivos internos e Internet. Probemos la conectividad del cliente.
Pasemos a un dispositivo cliente conectado a la red interna. Conectaré la interfaz y comprobaré qué sucede. El dispositivo ha configurado automáticamente su dirección IPv6 según el prefijo anunciado por el enrutador.
Ahora veamos la tabla de enrutamiento.
Nuestro sistema ha aprendido una ruta IPv6 mediante anuncios de enrutador y puede comunicarse dentro de la subred. También hemos recibido una puerta de enlace predeterminada mediante anuncios de enrutador. A diferencia de IPv4, donde la puerta de enlace predeterminada suele ser una IP privada o pública, los enrutadores IPv6 suelen anunciar su puerta de enlace mediante una dirección local que comienza fe80 y solo es válida dentro de un único segmento de red. No se puede enrutar más allá de ese segmento. El enrutamiento IPv6 asume un entorno dinámico y el uso de una dirección local de enlace garantiza la estabilidad incluso si la dirección IPv6 global del enrutador cambia. Probemos la accesibilidad de nuestro enrutador a través de su dirección local de enlace. Tenga en cuenta que al apuntar a una dirección local de enlace, debe especificar la interfaz.
¡Éxito! Podemos acceder a nuestra puerta de enlace predeterminada. Ahora tenemos una dirección unicas global IPv6, una puerta de enlace predeterminada y un servidor DNS. Todo esto se configuró automáticamente mediante anuncios de enrutador. Para ver este proceso en acción, enviemos un mensaje de solicitud de enrutador a la interfaz enp0s3.
Hemos recibido un anuncio de enrutador que configura la red IPv6 de nuestro cliente. Ahora, hagamos una prueba final haciendo ping a Google usando su dirección IPv6.
Funciona. Para analizar más a fondo la ruta de enrutamiento, realicemos un seguimiento de ruta. Veremos que el tráfico se dirige a través de una infraestructura solo IPv6.
Recuerde también que nuestro equipo cliente ahora tiene una dirección uniccast global. Debería ser accesible desde internet. Rastreamos la ruta a nuestro cliente desde un host IPv6 nativo fuera de nuestra red.
¡Genial! Tenemos total accesibilidad IPv6 y los demás hosts habilitados para IPv6 también pueden comunicarse con nosotros.
Ahora, intentemos llegar a la red de Amazon.
Es inaccesible. ¿Qué sucede? Si comprobamos su resolución IP, vemos que amazon.com solo tiene una dirección IPv4. Como nuestro cliente solo admite IPv6, no puede comunicarse con destinos que solo admiten IPv4. 😉👍
























