El mejor método es a través de la zona de política de respuesta en Bind 9.8.1 o posterior. Le permite anular registros únicos en zonas arbitrarias (y no es necesario crear un subdominio completo para eso, solo el registro único que desea cambiar), le permite anular CNAME, etc. Otras soluciones como Unbound no pueden anular CNAME .
https://www.redpill-linpro.com/sysadvent/2015/12/08/dns-rpz.html
EDITAR: Hagamos esto correctamente entonces. Documentaré lo que he hecho en base al tutorial vinculado anteriormente.
Mi sistema operativo es Raspbian 4.4 para Raspberry Pi, pero la técnica debería funcionar sin cambios en Debian y Ubuntu, o con cambios mínimos en otras plataformas.
Vaya a donde se guardan sus archivos de configuración de Bind en su sistema, aquí está /etc/bind
. Cree allí un archivo llamado db.rpz
con los siguientes contenidos:
$TTL 60
@ IN SOA localhost. root.localhost. (
2015112501 ; serial
1h ; refresh
30m ; retry
1w ; expiry
30m) ; minimum
IN NS localhost.
localhost A 127.0.0.1
www.some-website.com A 127.0.0.1
www.other-website.com CNAME fake-hostname.com.
¿Qué hace?
- anula la dirección IP
www.some-website.com
con la dirección falsa 127.0.0.1
, enviando efectivamente todo el tráfico de ese sitio a la dirección de bucle invertido
- envía tráfico
www.other-website.com
a otro sitio llamadofake-hostname.com
Cualquier cosa que pueda ir en un archivo de zona Bind puede usar aquí.
Para activar estos cambios, hay algunos pasos más:
Edite named.conf.local
y agregue esta sección:
zone "rpz" {
type master;
file "/etc/bind/db.rpz";
};
El tutorial vinculado anteriormente le dice que agregue más cosas, zone "rpz" { }
pero eso no es necesario en configuraciones simples: lo que he mostrado aquí es lo mínimo para que funcione en su resolutor local.
Edite named.conf.options
y en algún lugar de la options { }
sección agregue la response-policy
opción:
options {
// bunch
// of
// stuff
// please
// ignore
response-policy { zone "rpz"; };
}
Ahora reinicie Bind:
service bind9 restart
Eso es. El servidor de nombres debería comenzar a anular esos registros ahora.
Si necesita hacer cambios, simplemente edite db.rpz
, luego reinicie Bind nuevamente.
Bonificación: si desea registrar consultas DNS en syslog, para que pueda vigilar los procedimientos, editar named.conf.local
y asegurarse de que haya una logging
sección que incluya estas declaraciones:
logging {
// stuff
// already
// there
channel my_syslog {
syslog daemon;
severity info;
};
category queries { my_syslog; };
};
Reinicie Bind nuevamente y listo.
Pruébelo en la máquina que ejecuta Bind:
dig @127.0.0.1 www.other-website.com. any
Si ejecuta dig en una máquina diferente, simplemente use @ the-ip-address-of-Bind-server en lugar de @ 127.0.0.1
Utilicé esta técnica con gran éxito para anular el CNAME de un sitio web en el que estaba trabajando, enviándolo a un nuevo equilibrador de carga de AWS que estaba probando. Se utilizó una Raspberry Pi para ejecutar Bind, y el RPi también se configuró para funcionar como un enrutador WiFi, por lo que al conectar dispositivos al SSID que se ejecuta en el RPi obtendría las anulaciones de DNS que necesitaba para las pruebas.