Lo primero que debe mencionarse sobre las subredes IPv6 es que se requiere un modo de pensamiento diferente . En IPv4, generalmente piensa en cuántas direcciones tiene disponibles y cómo puede asignar suficientes de ellas a cada usuario final. En IPv6, generalmente piensa en cuántas (/ 64) subredes tiene disponibles y cómo puede asignarlas a los usuarios finales. Casi nunca se preocupa por cuántas direcciones IP se utilizarán en una subred determinada. Excepto en algunos casos especiales, como enlaces punto a punto, cada subred simplemente tiene muchas más direcciones disponibles de las que necesitará, por lo que, en cambio, solo se preocupa por asignar subredes, no hosts dentro de ellas.
Las subredes IPv6 suelen ser / 64 porque eso es necesario para que SLAAC (configuración automática de direcciones sin estado) funcione. Incluso cuando SLAAC no está en uso, puede haber otras razones para usar / 64. Por ejemplo, puede haber algunos dispositivos de usuario final que solo asuman / 64, o bien el enrutamiento de subredes más largo que / 64 podría ser ineficiente en algunos enrutadores porque el implementador del enrutador ha optimizado el caso de / 64 o rutas más cortas para guardar tabla de enrutamiento de memoria.
¿Por qué se recomienda usar / 127 para enlaces punto a punto?
Para el caso específico de enlaces punto a punto, se recomienda / 127 en lugar de / 64 para evitar una vulnerabilidad en la que las direcciones de paquetes a cualquiera de los miles de millones de direcciones no utilizadas en la subred provocan solicitudes de solución de vecinos y entradas de tabla no deseadas que podría ahogar un enrutador. Dichos paquetes de direcciones incorrectas pueden ser maliciosos o accidentales. Pero incluso si realmente configura un enlace punto a punto como / 127, algunas personas abogan por asignar un / 64 completo de todos modos solo para ser coherente.
¿Por qué se aprovisionarían las máquinas virtuales con subredes más pequeñas que / 64?
No sé específicamente por qué las máquinas virtuales se aprovisionarían con subredes más pequeñas que / 64. ¿Quizás porque un proveedor de hosting supuso que un servidor era como un usuario final y requería solo una subred (/ 64), sin anticipar que el servidor sería en realidad una colección de máquinas virtuales que requieren una topología de enrutamiento interno? También se podría hacer simplemente para hacer que el plan de direccionamiento sea más fácil de memorizar: el host obtiene PREFIX::/64
, luego cada VM llega a PREFIX:0:NNNN::/96
donde NNNN es único para la VM y la VM puede asignar PREFIX:0:NNNN:XXXX:YYYY
lo que quiera.
¿Puedo asignar directamente desde subredes IPv4 a subredes IPv6? Por ejemplo, ¿un IPv4 / 24 corresponde directamente a un IPv6 / 56 o / 120?
Desde una perspectiva de bajo nivel de cómo funciona el direccionamiento y el enrutamiento, la longitud del prefijo tiene el mismo significado en IPv6 e IPv4. En ese nivel, puede hacer una analogía como "un IPv4 / 16 usa la mitad de los bits para la dirección de red y la mitad de los bits para la dirección del host, que es como un / 64 en IPv6". Pero esta comparación no es realmente adecuada. Han surgido convenciones fuertes en IPv6 que hacen que las divisiones de tamaños de red se parezcan más al viejo mundo de las redes con clase en IPv4. Sin duda, IPv6 no reintrodujo el direccionamiento con clase en el que los pocos bits más significativos de la dirección fuerzan una máscara de red particular, pero lo que sí tiene IPv6 es ciertos tamaños de red estándar [de facto / convencionalmente]:
- / 64 : el tamaño básico de una única subred: LAN, WAN, bloque de direcciones para hosts virtuales web, etc. Nunca se espera que las subredes "normales" sean más pequeñas (prefijo más largo) que / 64. Nunca se espera que las subredes sean más grandes (prefijo más corto) que / 64 ya que el valor de / 64 de las direcciones de host es mucho más de lo que podemos imaginar que necesitamos.
- / 56 : un bloque de 256 subredes básicas. A pesar de que las políticas actuales permiten a los ISP entregar bloques tan grandes como / 48 a cada usuario final y todavía consideran que su utilización de direcciones está bien justificada, algunos ISP pueden (y ya lo hacen) elegir asignar un / 56 a clientes de grado de consumo como un compromiso entre asignaciones de muchas subredes para ellos y abordar la economía.
- / 48 : un bloque de subredes básicas 65536 y el tamaño de bloque recomendado que debe recibir cada sitio final del cliente ISP.
- / 32 : el tamaño de bloque predeterminado que recibirán la mayoría de los ISP cada vez que soliciten más direcciones de un registro de direcciones regional.
Dentro de las redes de proveedores de servicios y empresas, se pueden ver muchas más longitudes de prefijos que estas 4. Al observar las tablas de enrutamiento de los enrutadores dentro de estas redes, IPv4 e IPv6 tienen mucho en común, incluida la mayor parte del enrutamiento: las rutas para prefijos más largos anulan las rutas de cobertura para prefijos más cortos, por lo que es posible agregar (acortar) y perforar hacia abajo (hacer más largas) rutas. Al igual que en IPv4, las rutas se pueden agregar o resumir en bloques más grandes con prefijos más cortos para minimizar el tamaño de las tablas de enrutamiento.
Una cuestión diferente de mapeo entre IPv4 e IPv6 sería cómo armonizar las asignaciones de IPv4 e IPv6 en máquinas de doble pila para que los planes de direccionamiento puedan entenderse fácilmente. Además, existen convenciones de uso común para hacer esto: incrustar el "número de subred" IPv4 en una parte del prefijo IPv6, ya sea con BCD (por ejemplo, se 10.0.234.0/24
convierte 2001:db8:abcd:234::/64
) o binario (se 10.0.234.0/24
convierte 2001:db8:abcd:ea::/64
).
Mis interfaces tienen varias direcciones IPv6. ¿La subred debe ser la misma para todos?
¡Absolutamente no! Se espera que los hosts IPv6 puedan tener múltiples hosts al tener varias direcciones IP simultáneamente que provienen de diferentes subredes, al igual que IPv4. Si se configuran automáticamente con SLAAC, entonces las diferentes subredes podrían provenir de anuncios de enrutadores de diferentes enrutadores.
¿Por qué a veces veo un% en lugar de un / en una dirección IPv6 y qué significa?
No verías uno en lugar del otro. Tienen diferentes significados. Una barra oblicua indica un prefijo (subred), lo que significa un bloque de direcciones que comienzan con los mismos n
bits. Una dirección sin barra es una dirección de host. Puede pensar que dicha dirección tiene un "/ 128" implícito al final, lo que significa que todos los 128 bits están especificados.
El signo de porcentaje acompaña a una dirección de enlace local. En IPv6, cada interfaz tiene una dirección de enlace local además de cualquier otra dirección IP que pueda tener. Pero la cuestión es que las direcciones locales de enlace siempre están, sin excepción, en el fe80::/10
bloque. Pero si intentamos hablar con un compañero usando una dirección local de enlace y el host local tiene múltiples interfaces, ¿cómo vamos a saber qué interfaz usar para hablar con este compañero? Normalmente, la tabla de enrutamiento nos dice qué interfaz usar para un prefijo particular, pero aquí nos dirá qué fe80::/10
se puede acceder a través de cada interfaz.
La respuesta es que debemos decirle qué interfaz usar usando la sintaxis address%interface
. Por ejemplo, fe80::1234:5678:8765:4321%eth0
.
¿Estoy desperdiciando demasiadas subredes? ¿No vamos a salir corriendo de nuevo?
Nadie lo sabe. ¿Quién puede decir el futuro?
Pero considera esto. En IPv6, el número de subredes disponibles es el cuadrado del número de direcciones individuales disponibles en IPv4. Eso es realmente bastante. ¡No, quiero decir realmente mucho!
Pero aún así: estamos entregando automáticamente un / 32 a cualquier ISP que lo solicite, estamos entregando un / 48 a cada cliente de ISP. Quizás estamos exagerando y, después de todo, desperdiciaremos IPv6. Sin embargo, hay una disposición para esto: Sólo una octava parte del espacio de IPv6 ha sido puesto a disposición para su uso hasta el momento: 2000::/3
. La idea es que si hacemos un desastre horrible del primer octavo y tenemos que revisar drásticamente las políticas liberales de asignación, podremos intentarlo 7 veces más antes de tener problemas.
Y finalmente: IPv6 no tiene que durar para siempre. Quizás tenga una vida útil más larga que IPv4 (una vida útil impresionante y ya no ha terminado), pero como todas las tecnologías, algún día dejará de importar. Solo necesitamos hacerlo hasta entonces.