Si queremos que nuestro servidor DNS actúe a modo de proxy DNS y reenviar todas las peticiones que reciba a otros servidores DNS debemos configurarlo como «Forward Only«. Esto tiene todos los beneficios que puede darte un proxy y otros como por ejemplo, si tenemos Bind configurado con vistas, especificar el forwarding para la vista externa pero mantener las consultas a las zonas locales en el propio DNS.
Únicamente hay que prestar atención a dos directivas en la sección de opciones (options), marcadas en negrita:
options { listen-on port 53 { 127.0.0.1; 10.0.0.100; }; listen-on-v6 port 53 { ::1; }; directory "/var/named"; allow-query { redes_privadas; }; forward only; forwarders { 8.8.8.8; }; };
La directiva «forward» permite los valores «only» y «first». Si especificamos «only» todas las consultas serán reenviadas a los nameserver especificados después. Si ponemos «first» se realizará un primer intento contra los NS forward, si estos no responden la consulta se intentará resolver en local.
Después, en forwarders podemos especificar los servidores DNS contra los que vamos a enrutar las peticiones DNS. En este caso he configurado el de google, 8.8.8.8.
Tras reiniciar named, podemos verificar (con un tcpdump por ejemplo) que las consultas efectivamente se están enrutando a esos DNS:
# dig @localhost www.rm-rf.es ... ...
Y efectivamente vemos el tráfico en el tcpdump contra el NS de google:
# tcpdump -n -s 1500 -i eth0 udp port 53 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 1500 bytes 23:19:21.230065 IP 192.168.1.101.22581 > 8.8.8.8.domain: 31993+ [1au] A? www.rm-rf.es. (41) 23:19:21.371260 IP 8.8.8.8.domain > 192.168.1.101.22581: 31993 3/0/1 CNAME rm-rf.es., A 93.93.112.55, RRSIG (239) 23:19:38.683764 IP 192.168.1.128.57988 > 192.168.1.1.domain: 64751+ A? rm-rf.es. (26) 23:19:38.722404 IP 192.168.1.1.domain > 192.168.1.128.57988: 64751 1/0/0 A 93.93.112.55 (42)