[lacnog] Fwd: [IPv6]Android now supports DHCPv6 PD

Fernando Gont fgont en si6networks.com
Mar Sep 16 16:06:20 -03 2025


On 15/09/2025 20:42, Carlos Martinez-Cagnazzo wrote:
> Tan solo 10-15 años de discusiones :-) Pero bienvenido sea, más vale 
> tarde que nunca.

De acuerdo en eso.

Hay que decir tambien que lo que implementaron es DHCPv6-PD, y no 
simplemente DHCPV6. Por lo cual, esto no sirve para solucionar el 
problema en ambintes enterprise que utilizan DHCPv6.

Por otro lado, algo me dice que SLAAC-sized (*) prefixes implica que 
piden prefijos de al menos /64... lo cual es una tontera. Porque si 
pidieron inclusive prefijos mas largos (bloques mas chicos), entonces 
inclusive este soporte podria servir para apalear los problemas de 
deployment en ambientes enterprise donde se desea utilizar IPv6.


(*) Eso de "SLAAC-sized" tambien es incorrecto. SLAAC en si no requiere 
prefijos de ningun largo en particular. Simplemente, en el momento en 
que los IIDs se generaban mediante las direcciones MAC, era ese formato 
(y *no* algo intrinsico a SLAAC) el que te exigia IIDs de 64-bits.

Desde RFC7217/RFC8064, ese constraint no existe -- de hecho, el lenguaje 
utilizado en RFC7217 es cuidadoso en este aspecto: el documento dice 
cosas como "agarra tantos bits como sea necesario", en vez de "agarra 64 
bits".  Y hay implementaciones de SLAAC como la de openbsd que funcionan 
con IIDs mas cortos/prefijos mas largos.



El debate sobre SLAAC vs. DHCPv6 es tal vez de los mas ridiculos que han 
habido en torno a IPv6:

* En lo que respecta a SLAAC en particular, es un "artefacto de la 
historia" -- mas que el "state of the art" en materia de autoconfiguracion.

* Hay cosas muy basicas del protocolo que no fueron consideradas. 
Ejemplo, esto: 
https://www.ietf.org/archive/id/draft-gont-v6ops-multi-ipv6-02.html

* Uno de los argumentos en contra de DHCPv6 es que es "menos responsive" 
que SLAAC. Pero la misma gente que argumenta eso, es la misma gente que 
luego dice que hay que enviar los RAs con menor frecuencia, para que no 
se drene la bateria de los moviles. -- lease: entonces tenes 
requrimientos incompatibles entre si.

* Creo tambien que hay cierta expectativa poco realista respecto a los 
casos de uso de las direcciones IPv6. -- si, hay miles de cosas que uno 
podria hacer....  pero que nadie hace, ni planea hacer. Ejemplo, eso de 
esperar que un host corra muchas VMs y que gracias a PD ahora obtenga un 
prefijo, y asigne todas las direcciones de ese prefijo. En el mejor de 
los casos es tan nicho que es irrelevante.

* Inclusive en el caso de los contenedores (e.g. kubernetes clusters), 
la industria ha ido por otro lado. Datapoint: Los clusters de Kubernetes 
del propio GCP utilizan IPv6 NAT.

* Claramente uno no puede volver el tiempo atras, y rediseñar desde cero 
un monton de cosas. Pero lo que *si* podria hacer es:

   + Guiar sobre la forma recomendada para desplegar ipv6 (hecho)
   + proveer las herramientas (*) para que la gente implemente IPv6 como
     le de la gana. -- y en este punto digo lo que digo: NAT IPv6, SLAAC,
     DHCPv6, DHCPv6-PD o lo que quieran. Al final del dia, desde el punto
     de vista de despliegue (adopcion), cualquiera de estas variantes es
     mejor que la no adopcion.


(*): alguien diria "darle mas libertad" a quien despliega o diseña una 
red. -- pero dado que se vienen haciendo cosas muy raras y locas en 
nombre de la libertad :-), prefiero limitarme a decir "opciones" :-)


* En este sentido, IETF ha ido en el sentido contrario:
   + se ha empeorado DHCPv6 (se le ha quitado el soporte de direcciones 
temporales)
   + Estandarizar cosas como "registro de direcciones SLAAC en DHCPv6" 
(si queres tal cosa, deberias estar utilizando DHCPv6".



>     FYI, we announced DHCPv6 PD support on Android today:
> 
>     https://android-developers.googleblog.com/2025/09/simplifying-
>     advanced-networking-with.html <https://android-
>     developers.googleblog.com/2025/09/simplifying-advanced-networking-
>     with.html>
> 
>     This change should already be live on most Android devices running
>     Android 11 and above. Specifically:
> 
>       * RFC 9762: if the P flag is set, the device will ask for a SLAAC-
>         sized prefix, and if it gets it, use it to form addresses. Some
>         devices will also disable SLAAC as per the SHOULD in the RFC.
>         Not all devices will support this because it requires a kernel
>         change which will be rolling out over the coming months. In
>         future releases, we expect that the prefix will be shared with
>         downstream devices, wearable devices, VMs, etc.

Por lo que leo, alguien planea ponerle direcciones publicas a "wereable 
devices".  -- espero que no se refieran a health devices, porque la cosa 
va a terminar muy mal :-). ("disable ipv6... if you want to live" :-) )




>       * Heuristic: if the device obtains a default route but not PIO, it
>         will ask for a prefix, and if it gets it, use it to form
>         addresses. This allows DHCPv6-only networks to support Android
>         devices today without having to upgrade their routers to set the
>         P flag.

Heuristic en este caso se traduce a que tenemos un toooodo un grupo de 
protocolos que claramente no funcionan bien en su conjunto. Entonces nos 
salimos de la especificacion e implementamos "heuristicas" para intentar 
ver si de alguna forma las cosas funcionan -- aunque de forma no 
deterministica.

Por otro lado, todo esto se solucionaba incorporando soporte para DHCPv6 
(IA_NA) y listo.

Por si hace falta la aclaracion: hacer de "dhcpv6 vs slaac" un debate 
"religioso" me parece una tontera. De hecho, a esta altura del partido, 
es ridiculo el planteo "dhcpv6 vs. slaac".


-- 
Fernando Gont
SI6 Networks
e-mail: fgont en si6networks.com
PGP Fingerprint: F242 FF0E A804 AF81 EB10 2F07 7CA1 321D 663B B494



Más información sobre la lista de distribución LACNOG