¿Cómo dejar que el navegador prefiera IPv6 sobre IPv4?

16

Instalé miredo y parece que tengo IPv6 funcionando. Puedo hacer ping a los hosts y descargar páginas web con wget o mi navegador web cuando especifico direcciones IPv6, sin embargo, cada vez que especifico un nombre de host que se ofrece a través de IPv4 e IPv6, el navegador elige la dirección IPv4 para la conexión.

¿Cómo puedo cambiar eso y dejar que el navegador use IPv6 en lugar de IPv4 si está disponible?

Buscando en Google encontré una pista de que los navegadores preferirán IPv4 sobre IPv6 para túneles 6to4 / teredo, pero hasta ahora no he encontrado una explicación de por qué o cómo cambiar eso.

Grumbel
fuente

Respuestas:

10

No son los navegadores los que prefieren ninguna de las opciones, es el sistema operativo. El estándar define las prioridades más o menos así:

  1. ipv6
  2. ipv4
  3. 6to4-Tráfico

Puede cambiar esto editando los bloques de etiqueta / precedencia en /etc/gai.conf(gai significa getaddrinfo, la llamada estándar del sistema para resolver nombres de host).

Puede encontrar una explicación detallada gai.confen la página del manual

Esto, por cierto, también explica la experiencia de Jonathon de que el túnel SiXXS era preferido sobre 6to4.

freddyb
fuente
7

Para Firefox y otros navegadores basados ​​en Mozilla / Gecko, la network.dns.disableIPv6configuración about:configdebe ser falsesi tiene IPv6 (está configurado de manera predeterminada en Ubuntu, porque de lo contrario muchas personas tienen problemas con los proxies DNS defectuosos en los enrutadores domésticos).

JanC
fuente
¿Supongo que esto es para Firefox?
Sí, lo siento, actualizaré mi respuesta.
JanC
2
Acabo de revisarlo. No hay necesidad de tocar el pref. En la actualidad, el valor predeterminado es trueFirefox, también para Firefox de Ubuntu.
freddyb
6

Tal como lo señaló freddyb, esto depende de la configuración de la llamada estándar del sistema para resolver los nombres de host, getaddrinfo .

Para resolver su problema, reemplace el contenido de su /etc/gai.confcon las siguientes líneas:

label ::1/128       0
label ::/0          1
label 2002::/16    2
label ::/96         3
label ::ffff:0:0/96 4
label fec0::/10     5
label fc00::/7      6
#label 2001:0::/32   7

actualizado : gracias a freddyb por señalar que mi respuesta anterior fue incorrecta: necesitamos comentar la última línea, no la tercera. ¡Ahora funciona para mí!

pklaus
fuente
6

Recientemente, Chrome, Firefox y los navegadores derivados en realidad evitan IPv6 si un sitio responde más rápido a través de IPv4. No es posible cambiar este comportamiento mediante una configuración.

La característica en sí misma es probablemente razonable para el usuario común, pero casi me vuelve loco que no pueda deshabilitarla. La conectividad IPv6 es bastante buena hoy en día y, a veces, IPv6 tiene varias ventajas sobre la conexión a través de IPv4, incluso si la latencia, debido al túnel, es mayor. He estado navegando por IPv6 durante años y, a pesar de que el enrutamiento y el rendimiento de IPv6 han mejorado mucho, esta maldita función de "pirateo" del navegador me hace retroceder una década.

MegaGuest
fuente
2
Ese comportamiento se recomienda en RFC 6555. Ha sido una práctica común desde alrededor de 2010. Y para proporcionar una experiencia de usuario decente, es absolutamente el comportamiento correcto para usar por defecto. Si los navegadores no hubieran hecho esto, la mayoría de los sitios web se habrían negado a publicar registros AAAA. Dicho esto, una configuración para ajustar tiene muchos milisegundos de ventaja para dar IPv6 sería una buena idea. Ser capaz de elegir esa ventaja por sitio sería aún mejor. La configuración por sitio podría agregarse al navegador como un posible valor de retorno de un script proxy.
kasperd
2

Bien, he estado investigando esto y es raro.

  1. Usar un proxy local
    Si configuro Firefox como proxy a través de Squid que se ejecuta en mi máquina, Firefox (o más precisamente, Squid) se conectará a través del túnel miredo. Si tengo instalado miredo pero Firefox está configurado como "sin proxy", Firefox usa primero IPV4.

  2. Instalar aiccu
    Si instalo aiccu y lo configuro con un túnel (por ejemplo, SiXXS), no importa mi configuración de proxy. Firefox utiliza primero IPV6.

Es posible que como miredo esté allí para conectarse a sitios IPV6, solo se use cuando IPV4 no esté disponible, en cuyo caso pruebe aiccu.

Jonathon
fuente
1

La respuesta es simple: alterar las etiquetas.

label 2002::/16    1
label 2001:0::/32   1

Esto los hace equivalentes a "vainilla" ipv6.

Si los deja comentados, recogerán los valores predeterminados.

Armiño
fuente