IPv6 subred a / 64: ¿qué se romperá y cómo solucionarlo?

27

En IPv6, se supone que no debe subred a nada más pequeño que a / 64 (RFC 5375). Entre otras cosas, SLAAC no funciona con subredes más pequeñas, y aparentemente también algunas otras características se romperán.

¿Cuáles son las soluciones para situaciones en las que los ISP solo le darán un único / 64 pero necesita múltiples subredes internamente? El consejo común parece ser simplemente encontrar otro ISP que distribuya un / 56 o / 48. En algunas partes del mundo, eso puede funcionar, pero en nuestra área (EE. UU.), Eso no es factible debido a la falta de competencia. La mayoría de mis clientes tienen suerte si tienen un solo ISP que atiende su área. Muchas personas aquí todavía están en acceso telefónico.

Mis clientes no calificarán para su propio / 48 de ARIN.

Kevin Keane
fuente
99
No intentaría implementar IPv6 en ese escenario. Continúe presionando al ISP para proporcionar una conectividad adecuada. Haga sus errores altamente visibles y públicos, si es necesario. Cite el capítulo y el versículo de RFC 6177. Por supuesto, primero debe asegurarse de que sea su error y que su equipo solicite una subred más grande.
Michael Hampton
55
Eso también es un mal consejo. Dadas todas sus ventajas, la mayoría de las personas deberían implementar IPv6 en la primera oportunidad disponible. Desafortunadamente, muchos ISP han hecho un desayuno completo para perros de su servicio IPv6, por lo que no es prudente usarlo.
Michael Hampton
2
Podríamos discutir todo el día si son los ISP los que hacen el desayuno de un perro (¡lo que ciertamente hicieron!), O si los diseñadores de IPv6 no eran realistas en su suposición de que los ISP no harían eso. Por supuesto, no les digo a mis clientes que se mantengan alejados de IPv6 para siempre, solo hasta que el polvo se haya asentado. Estoy seguro de que dentro de cinco años, o incluso antes, habrá un SLAAC 2.0 que admita subredes más pequeñas, junto con NAT (muchos enrutadores ya lo implementan de todos modos), y todo lo demás necesario para que IPv6 funcione ante la adversidad. Sin embargo, estaba buscando más soluciones en este momento.
Kevin Keane
44
No cuente con el desorden IPv4 como NAT para funcionar correctamente con IPv6. NAT fue un truco, no una característica ...
Sander Steffann
3
@KevinKeane NAT siempre fue un truco y siempre lo será. Cada problema que la gente ha intentado resolver usando NAT tiene una solución real que no involucra NAT, pero probablemente sí IPv6. La gran mayoría de las roturas de las que habla puede atribuirse a NAT o implementaciones incompletas de IPv6.
Kasperd

Respuestas:

28

Si el ISP no le dará más de un / 64, entonces ese ISP apesta. Si es un alivio, puedo decirle que tengo que lidiar con los ISP que apestan aún más que eso. Por aquí, es perfectamente normal quitar las direcciones IPv4 públicas de los clientes y ponerlas detrás de un CGN. Y si les pide direcciones IPv6, le dirán que no están ofreciendo IPv6 porque todavía no hay escasez de direcciones IPv4, y mientras haya servidores sin soporte de IPv6, no ofrecerán IPv6 porque es imposible para un cliente de doble pila para conectarse a un servidor solo IPv4.

Si algún ISP me diera lo que tienes, lo tomaría porque apesta menos de lo que he podido llegar hasta ahora.

En el futuro hay dos enfoques que recomiendo que sigan en paralelo.

Presiona al ISP

Ejerza tanta presión sobre el ISP como pueda. Eso incluye contactar a otros ISP y posiblemente cambiar si algún otro ISP puede ofrecerle un mejor trato.

Asegúrese de probar lo que sucede si su enrutador solicita un delegado / 48, / 52, / 56 o / 60 a través de DHCPv6 en la WAN. Probaría las cuatro longitudes de prefijo en caso de que el servidor DHCPv6 por alguna razón solo distribuya una longitud de prefijo específica e ignore las solicitudes de otras longitudes de prefijo.

Sacar lo mejor de lo que usted tiene

Dado que probablemente tendrá que vivir con algunos hacks en el futuro, debe preguntarse qué apesta menos IPv4 con hacks o IPv6 con hacks.

Hay algunos hacks que puedes usar para extender un solo / 64 a muchos hosts.

Convertir un prefijo de enlace en un prefijo enrutado

Si tiene un único / 64 en el enlace WAN pero ningún prefijo enrutado a su LAN, puede convertir ese / 64 en un prefijo enrutado con unos pocos pasos. Configure la interfaz WAN en su enrutador como un / 126 en lugar de un / 64. Instale un demonio publicitario vecino (como ndppd) en el enrutador para anunciar su propia dirección MAC para cada dirección en / 64, excepto de las 4 direcciones en / 126. Con esos dos pasos tendrá un / 64 enrutado que puede usar en su LAN con la excepción de las 4 direcciones utilizadas para el enlace WAN.

Una versión modificada de este truco puede compartir el enlace / 64 entre múltiples enrutadores. El prefijo de enlace tendrá que ser un poco más corto que / 126 para acomodar una dirección IP a cada enrutador, un / 120 sería lo suficientemente corto como para permitir hasta 254 enrutadores.

Obviamente, cada enrutador solo obtendrá un prefijo que será más largo que / 64. Le recomiendo que haga el prefijo para cada enrutador siempre que pueda mientras tenga suficientes direcciones IP para la LAN en ese enrutador. A / 112 o / 120 para cada enrutador probablemente sería adecuado. Cada enrutador responde con su propia dirección MAC para el descubrimiento vecino de cualquier cosa dentro del prefijo de ese enrutador.

En esta variante, cada enrutador tendrá prefijos idénticos configurados en su lado WAN y responderá a las solicitudes de descubrimiento vecinas para el prefijo asignado a su lado LAN. Obviamente, ninguno de los prefijos LAN puede superponerse entre sí y ninguno de ellos puede superponerse al prefijo que configuró en el lado WAN.

Entonces, si el enrutador ISP que actúa como su puerta de enlace está en la dirección 2001: db8 :: 1/64, puede usar 2001: db8 :: / 120 como su WAN y puede asignar 2001: db8 :: 1: 0/112 a el primer enrutador, 2001: db8 :: 2: 0/112 al segundo enrutador, etc.

En la LAN, puede extender un / 64 a una gran cantidad de hosts, ya sea dividiendo subredes o puenteando. Tendrá que determinar cuál de los dos funciona mejor para usted.

Subredes

Si hace la subred / 64, también puede ir a los prefijos más largos que todavía tienen suficientes direcciones para los hosts que necesita. No subredes en prefijos / 80, mejor ve con / 116, / 120 o / 124 por subred. Es improbable que las cosas que se rompen si no usa / 64 no le importen, y si usa / 116 o más, reducirá el impacto de ciertos ataques DoS de descubrimiento de vecinos (si está presente en cualquiera de sus sistemas).

En una configuración de subredes de este tipo, se romperá SLAAC, por lo que necesita un servidor DHCPv6 para responder en cada segmento y las direcciones IPv6 estáticas configuradas en todos los dispositivos sin soporte DHCPv6.

Puente

El puente es la otra alternativa. Básicamente, significa que no tiene una subred, sino que ejecuta toda su LAN como un solo segmento IPv6 con un prefijo / 64. (Si lo necesita, ese / 64 puede abarcar tanto LAN como WAN).

IPv6 está diseñado para permitir que los puentes reconozcan a cuál de las redes puenteadas se debe reenviar cada dirección de difusión ilimitada. De esta forma, evita tener que transmitir paquetes a través de cada enlace físico en su LAN.

Los puentes también pueden aplicar firewalls y protección contra la suplantación de identidad de vecinos en la LAN.

Con suficiente inteligencia en los puentes, en principio no hay límite para la cantidad de conmutadores que puede conectar un solo / 64.

kasperd
fuente
¡Gracias! ¡Ese era exactamente el tipo de respuesta que estaba buscando! Particularmente me gusta su idea de convertir el / 64 en un prefijo enrutado. ¿Puedes explicar un poco sobre eso, por favor? Primero, no entiendo por qué sugiere un / 126, en lugar de un / 127. ¿Qué direcciones IP se usan y dónde? En segundo lugar, en uno de mis clientes, en realidad tengo tres enrutadores internos separados. En IPv4, tienen tres IP públicas diferentes en el / 29 proporcionado por el ISP. ¿Su esquema aún funcionaría con estos enrutadores?
Kevin Keane
Además, no estoy seguro de cómo instalar un Daemon de publicidad vecina en ninguno de los enrutadores. Un enrutador es Fortigate, uno es Belkin y creo que el tercero es Linksys.
Kevin Keane
@KevinKeane La razón por la que sugiero un / 126 es que a menudo necesitará al menos tres direcciones dentro del prefijo. En el lado del ISP, el enrutador puede tener el prefijo configurado como 2001: db8 :: 1/64, lo que significa que 2001: db8 :: es especial y 2001: db8 :: 1 es utilizado por el enrutador del ISP. Por lo general, su propio enrutador se configuraría con 2001: db8 :: 2, lo que significa que ha utilizado tres direcciones y un / 127 no será suficiente. A / 127 podría haber funcionado si no hubiera utilizado un truco con una longitud de prefijo diferente configurada en los dos extremos del enlace.
Kasperd
gracias por explicar eso! Entonces, cuando tengo tres enrutadores que sirven a tres redes internas diferentes, ¿debo usar un / 125, y cada enrutador anunciaría, a través de publicidad vecina, su propio MAC solo para esas IP en la subred correspondiente?
Kevin Keane
1
Hay un RFC informativo, RFC 7421, Análisis del límite de 64 bits en el direccionamiento IPv6 , que tiene una discusión completa de la /64subred, y lo que puede salir mal cuando no lo uso.
Ron Maupin
10

Sí, presionar a su ISP para que no succione es la opción preferida. Las políticas de asignación de RIR suponen que el ISP le está dando a cada cliente un / 48; no hay absolutamente ninguna razón para que el ISP no haga eso.

IPv6 no es fanático de las subredes más pequeñas, sin embargo, lo único que se supone que se rompe, que yo sepa, es SLAAC. Tendrá problemas con errores y suposiciones en algunas pilas de IPv6, que simplemente asumen ciegamente "/ 64 == subred", pero eso es un error, no una característica, y puede vencer al proveedor para que lo arregle. Si se arregla antes de que su ISP le dé un / 48, por otro lado ...

womble
fuente
Creo que también se supone que algunas partes del protocolo de descubrimiento vecino se rompen. El RFC 5375 tiene una lista completa de otras cosas, pero realmente no sé las implicaciones prácticas. Solo obtener un / 64 a veces puede ser simplemente una cuestión de dinero. Su ISP puede otorgar a los usuarios domésticos solo un / 64, y / 48s solo a cuentas comerciales. ¿Solo porque desea separar su oficina en el hogar o su WiFi del resto de la casa, o porque desea que se use una subred separada para las máquinas virtuales? Perdón por la queja: estoy tratando de resolver un problema aquí, no tratando de cambiar cosas que no puedo controlar.
Kevin Keane
2
Si su ISP quisiera ser un total perdedor al respecto, entregaría un / 128 a cada suscriptor residencial. Supongo que puedes enviar RFC 5375 al ISP y decirles que te den IPv6, en lugar de IPv5.5 ...
womble
De hecho, al menos un ISP que conozco hace eso (Verizon Wireless). Es una de las razones por las que sostengo que todavía se necesita NAT en IPv6. Pero eso está separado de mi pregunta, por supuesto.
Kevin Keane
1
La recomendación / 48 de RFC 3177 ya no es válida, la mayoría de los RIR ahora recomiendan un / 56 para sitios finales como se describe en RFC 6177: tools.ietf.org/html/rfc6177
skrause
@skrause No es que haga la diferencia de todos modos. Hay suficientes / 48s que no se van a agotar. Incluso con una proporción de HD del 80%, tomaría 2 ^ 36 asignados / 48s antes de que IANA hubiera consumido todo 2000 :: / 3. Y a menos que su sitio final sea un centro de datos importante, entonces / 56 tiene suficientes subredes para su sitio final.
kasperd