Problema y objetivo
No obtenemos IPv6 de nuestro ISP, por lo tanto, tengo un túnel IPv6 que funciona bien pero, por supuesto, no es muy rápido. Y no es realmente confiable. Me gusta tener IPv6 disponible "por si acaso", pero quiero que ciertos hosts (dominios) se conecten solo con IPv4.
Protocolo predeterminado
Me parece que todas las aplicaciones prueban primero IPv6; Esta es probablemente una configuración glibc. Estaría bien si este valor predeterminado se revierte (para todas las aplicaciones).
Netfilter
Sería posible bloquear las direcciones / redes IPv6 con Netfilter, pero hay dos problemas:
- ¿Causaría esto una demora mientras la aplicación espera un tiempo de espera de IPv6 antes de probar IPv4?
- Algunos dominios parecen estar mezclados y parece un caos. Separar google.com y youtube.com parece algo que no quieres hacer si puedes evitarlo.
Solo noto que la página del manual ip route
dice para el tipo de enrutamiento unreachable
:
Los remitentes locales obtienen un error EHOSTUNREACH.
¿Sucede lo mismo con los DROP o RECHAZOS de Netfilter? Tal error no debería causar un retraso relevante.
Filtrado de DNS
Otra solución (bastante fácil si es posible) sería filtrar los registros AAAA para ciertos dominios. Si eso no es posible (fácilmente): ¿es posible conectar el servidor DNS y Netfilter para que yo sepa "la dirección IP X pertenece al dominio Y" para poder agregarla a Netfilter? ¿Algo más elegante que registrar todo y agarrar el registro?
¿El camino a seguir?
¿Qué (otras) posibilidades hay y cuál es la más fácil?