Configuré un servidor DNS de almacenamiento en caché con bind9 usando un método de sugerencias de raíz (comoeste). Funciona como lo deseo, pero nuestro tráfico IPv6 pasa por una puerta de enlace fuera de mi país, lo que hace que Netflix piense que estamos de visita desde ese otro país y esto impide que mis hijos vean sus programas favoritos. Entonces estoy pensando que si puedo evitar que bind9 devuelva registros AAAA para netflix.com, los clientes solo intentarán conexiones IPv4 a Netflix.
Es decir: ¿cómo configuro bind9 para que las búsquedas de registros AAAA para netflix.com se supriman mientras se devuelven resultados de registros A válidos para netflix.com?
Me doy cuenta de que puedo crear un archivo de zona solo con el dominio de Netflix y hacer que contenga todos los registros A para netflix.com que pueda encontrar y ningún registro AAAA. Pero me pregunto si tal vez lo anterior sea posible para no tener que mantener actualizados los registros A en el archivo de zona.
Respuesta1
Sé que esta es una publicación antigua, pero (al menos) en mi versión de bind (9.11 en Ubuntu 18.04) descubrí que puedes usar filter-aaaa-on-v4 combinado con destinos de coincidencia en una vista.
Todavía requiere que tengas escucha vinculante en 2 direcciones IP, pero al menos no necesitas varias instancias.
192.168.1.1 es el servidor DNS normal. 192.168.1.2 es el que bloquea ipv6.
Mi configuración se parece a esto (parcial):
options {
listen-on port 53 { 192.168.1.1; };
listen-on port 5353 { 192.168.1.2; };
};
view "ipv4only" {
match-destinations { 192.168.1.2/24; };
filter-aaaa-on-v4 yes;
};
view "normal" {
match-clients { 192.168.1.1/24; };
zone "netflix.com" {
type forward;
forward only;
forwarders { 192.168.1.2 port 5353; };
};
};
Eso hace que Bind realice una búsqueda directa de sí mismo en otra IP, cuando el dominio coincide con netflix.com.
Esto elimina la necesidad de dos instancias, pero lamentablemente requiere 2 direcciones IP internas. Sería bueno si también pudiéramos especificar un número de puerto en "destinos de coincidencia".
Respuesta2
Como lo indican los comentarios, es posible que bind no sea capaz de hacer esto. Sin embargo, logré resolver el problema con una solución alternativa:
En primer lugar, agregué un segundo servicio de enlace que escucha en el puerto 5353 con solo el siguiente archivo de configuración:
acl mynetworks {
localhost;
(And a list with my various LAN networks such as 192.168.0.0/24;)
};
acl everyone {
any;
};
options {
directory "/var/cache/bind-ipv4limited";
filter-aaaa-on-v4 yes;
#dnssec-validation auto;
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
dnssec-lookaside . trust-anchor dlv.isc.org.;
recursion yes;
allow-query { mynetworks; };
forwarders {
8.8.8.8;
8.8.4.4;
};
forward only;
auth-nxdomain no; # conform to RFC1035
listen-on port 5353 { any; };
};
La clave aquí es utilizar "filter-aaaa-on-v4 sí;" por lo que ignora las solicitudes AAAA.
Luego, en el servicio de enlace original, agregué una zona para netflix.com que usa el servicio DNS anterior:
zone "netflix.com" {
type forward;
forward only;
forwarders {
127.0.0.1 port 5353;
};
};
Es un truco feo, pero parece funcionar.