5 votos

¿Se puede utilizar Android en redes que sólo utilizan IPv6? ¿Qué nivel de falsificación de IPv4 es necesario?

Estoy utilizando varios dispositivos Android que tienen Android 6.0.x y 6.0.1, y que quiero utilizar en una red de isla IPv6 ("privada"). Los dispositivos Android están conectados a un puente WiFi-a-Ethernet, o algunas tabletas incluso aceptan dongles Ethernet USB 2.0 usando cables OTG. La red IPv6 tiene RAs que indican el prefijo IPv6 a utilizar, así como la dirección del servidor DNS IPv6, y opcionalmente algunas rutas IPv6 más específicas. No hay servidores DHCPv6 ni DHCPv4 disponibles. Bueno, hay servidores DHCPv6 en esta red, pero sólo responden con prefijos delegados.

Por desgracia, no puedo conectar de forma fiable mis dispositivos Android a esta red. Para comprobarlo, una Pi equipada con Linux Raspbian se conecta inmediatamente y funciona correctamente, utilizando DNS y obteniendo las direcciones adecuadas.

Incluso cuando establezco una dirección IPv4 estática, mis dispositivos Android a menudo no se conectan correctamente, ya que no utilizan el DNS IPv6, aunque se anuncie (RFC 5006). Tengo que establecer direcciones falsas de servidores DNS IPv4 para poder establecer los parámetros estáticos IPv4. Pero incluso entonces, los dispositivos Android no funcionan correctamente, o bien no utilizan correctamente el DNS o incluso se desconectan después de algunos segundos.

¿Qué tipo de conectividad IPv4 esperan los dispositivos Android?

5voto

TheDiveO Puntos 1

Así que después de algunas pruebas más, utilizando un Brouter especialmente hecho usando una Raspberry Pi Zero W, ahora sé por mis pruebas que De hecho, Android 5.x, 6.0/6.1 y 7.0 admiten redes sólo IPv6. . Sin embargo, la advertencia es que en cuanto Android no obtenga ni una dirección IPv4 ni una dirección global IPv6, el gestor de red declarará esta red inutilizable y se desconectará de ella.

La razón por la que experimentaba tales desconexiones era porque estaba conectando mis dispositivos Android a una red de prueba, donde apagaba el router link-local de vez en cuando para arreglarlo, y sólo después de algún retraso lo reiniciaba. Y durante estos lapsos sin RAs IPv6 anunciando prefijos globales y sin IPv4, Android declaraba mi red muerta y desconectada.

Más información de fondo obtenida con el tiempo:

  • Algunas versiones de Android son alérgico a las direcciones del servidor DNS de la ULA y sólo consideran apropiadas las GUA. Sin embargo, las mismas versiones de Android aceptan alegremente ULA prefijos. El síntoma entonces es que estos dispositivos Android se mantienen conectados a una red IPv6 utilizando ULAs, pero no puede resolver ningún nombre DNS al cabo de unos segundos. Usando una de las mejores aplicaciones de diagnóstico me doy cuenta de que estas versiones de Android primero aprenden la dirección del servidor DNS, y luego la eliminan después de unos 15-30 segundos. Parece como si las nuevas versiones de Android 7.x fueran menos rígidas en sus expectativas por el momento.

  • Algunas versiones de Android reaccionan alérgica a las direcciones documentales, es decir, la 2001:db8::/32 rango de direcciones . Ignoran estas direcciones, especialmente para los servidores DNS. Las versiones más recientes de Android 7.x parecen tolerar el uso del bloque de direcciones documentales en las redes.

Al final, el lado seguro es el siguiente, a menos que pueda evitar especialmente Android 5.x, pero también algunas versiones 6.x con seguridad:

  • ULAs fc00::/7 son malvados ;) Tenga en cuenta que esto incluye el fd00::/8 a menudo se enseña como "mejor práctica" en los cursos de IPv6, así que tenga cuidado.
  • direcciones IPv6 documentales 2001:db8::/32 también son malos.
  • limítese a las direcciones globales reales, aunque sean falsas.

0voto

Desde Android 5.0 IPv6-only con RFC 5006(8106) debería funcionar completamente sin ipv4. ¿Tienes dns64/NAT64 implementado? Android intenta iniciar 464xlat internamente (clat). Esto falla sin dns64/NAT64.

0 votos

Tengo NAT64 en funcionamiento, pero no 464XLAT. Estoy preparando mi DNS usando un escáner especial, ya que no tengo A RRs, por lo que DNS64 no tiene sentido.

0 votos

Desafortunadamente, esto no responde a mi pregunta original: ¿qué tipo de conectividad IPv4 espera Android y su ConnectivityManager en términos de IPv4 y DNS? ¿Seguro que 464XLAT no es obligatorio...?

0voto

Pawka Puntos 1150

MacOS ofrece un método completo para probar ipv6 con el uso compartido de internet NAT64. - https://developer.apple.com/library/archive/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/UnderstandingandPreparingfortheIPv6Transition/UnderstandingandPreparingfortheIPv6Transition.html#//apple_ref/doc/uid/TP40010220-CH213-SW16

Pero he encontrado que todos mis teléfonos Android (Nexus5 con Android 8.1.0, LG V30 con Android 9) son con éxito conectado pero no comunicar a Internet. Bueno, el iPhone funciona bien.

Se asignaron tres IPv6 a un teléfono; dos 2001:2::/48 (rango de propósito de evaluación comparativa) y uno ff0x dirección link-local.

Como ha dicho @TheDiveO, parece cierto que el propio Android bloquea ULA DNS o una red link-local.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X