¿Puedo redireccionar a un servidor de búsqueda DNS alternativo dependiendo de la solicitud de dominio?

2

Background

Tuve un problema al cargar imágenes de un sitio web en particular. (más detalles sobre eso aquí )

Alguien en el trabajo me sugirió cambiar mis servidores DNS a openDNS y ver si eso resuelve el problema.

Como pensaron, podría ser que el servidor DNS de mi proveedor fuera lo que estaba ralentizando las cargas de página / imagen debido a las llamadas de dominio cruzado con su javascript.

Resulta que este fue realmente el caso. Las imágenes cargadas como se espera con los nuevos servidores DNS (google 8.8.8.8 y 8.8.4.4) Volver a cambiar el problema vuelve a ocurrir.

Pero realmente no quiero cambiar mis servidores DNS. Especialmente para un solo sitio.

Question

¿Hay alguna forma en que pueda usar mis direcciones de servidor DNS normales? Pero tenga un proxy (archivo PAC) que redirige a un servidor DNS alternativo cuando se usa este dominio web (cultofma.com).

    
pregunta markhunte 14.10.2013 - 19:27

1 respuesta

3

Puede especificar los servidores DNS que se usarán para dominios específicos, pero AFAIK requiere que ejecute BIND ( named ) en su máquina. En esta situación, su computadora ejecutaría un proceso named y tendrá su configuración de archivo de configuración para reenviar las solicitudes de DNS para la mayoría de las consultas a su ISP (es decir, los servidores DNS que estaba usando antes del Open DNS de Google). Esto también le permite especificar los dominios en los que le gustaría consultar el servidor DNS "alternativo". Una vez que tenga named en funcionamiento, puede configurar las Preferencias del sistema para usar su dirección de loopback (127.0.0.1) para las búsquedas de DNS. El archivo /etc/named.conf para esta configuración (basado en el named.conf predeterminado de Apple) se vería como:

//
// Include keys file
//
include "/etc/rndc.key";

// Declares control channels to be used by the rndc utility.
//
// It is recommended that 127.0.0.1 be the only address used.
// This also allows non-privileged users on the local host to manage
// your name server.

//
// Default controls
//
controls {
    inet 127.0.0.1 port 953 allow {any;}
    keys { "rndc-key"; };
};

options {
    directory "/var/named";
    /*
     * If there is a firewall between you and nameservers you want
     * to talk to, you might need to uncomment the query-source
     * directive below.  Previous versions of BIND always asked
     * questions using port 53, but BIND 8.1 uses an unprivileged
     * port by default.
     */
    // query-source address * port 53;

    // *** forward all DNS lookups to these servers
    forwarders { 8.8.8.8; 8.8.4.4; };
};
// 
// a caching only nameserver config
// 

zone "." IN {
    type hint;
    file "named.ca";
};

zone "localhost" IN {
    type master;
    file "localhost.zone";
    allow-update { none; };
};

zone "0.0.127.in-addr.arpa" IN {
    type master;
    file "named.local";
    allow-update { none; };
};

// *** requests for records in this zone will be forwarded to 10.0.0.5
zone "test.example.com" IN {
    type forward;
    forwarders { 10.0.0.5; 10.0.0.6; };
    forward only;
};

logging {
        category default {
                _default_log;
        };

        channel _default_log  {
                file "/Library/Logs/named.log";
                severity info;
                print-time yes;
        };
};

Configurando named

Antes de comenzar named , puede ser necesario generar la clave rndc que se está utilizando para el control rndc:

sudo rndc-confgen -a

Nota: la única parte del archivo /etc/named.conf predeterminado que se modificó anteriormente es la línea en "opciones" que especifica los servidores DNS del reenviador (los que responderán a la mayoría de sus consultas), así como una entrada de zona para la zona "especial" para la que desea realizar búsquedas de horizonte dividido.

En este ejemplo, todas las consultas se reenvían a los servidores DNS 8.8.8.8 y 8.8.4.4 (Google Open DNS) con la excepción de las consultas de registros en el dominio "test.example.com" (que se reenvían a 10.0). .0.5 y 10.0.0.6).

Opciones de reenviador

// *** forward all DNS lookups to these servers
forwarders { 8.8.8.8; 8.8.4.4; };

Zona a reenviar

// *** requests for records in this zone will be forwarded to 10.0.0.5 and 10.0.0.6
zone "test.example.com" IN {
    type forward;
    forwarders { 10.0.0.5; 10.0.0.6; };
    forward only;
};

Pruebe su configuración local de named

A continuación, puede probar su instalación named ejecutándola en primer plano (antes de comprometerse con la configuración):

sudo /usr/sbin/named -g

En otra ventana de Terminal, consulte a su servidor DNS local para confirmar que está funcionando:

nslookup  apple.com 127.0.0.1

Asegúrese de que se esté utilizando su zona de reenvío "especial":

nslookup test.example.com 127.0.0.1

El proceso de instalación con nombre se inicia al inicio

Una vez que vea que las búsquedas funcionan como se esperaba, puede eliminar el proceso named que se está ejecutando en el primer plano de la primera ventana de Terminal al emitir una interrupción utilizando el comando de tecla "Control" + "C" ( ^C ).

Es posible iniciar el servidor DNS cada vez que la máquina se inicia al habilitar el trabajo del daemon de inicio para ese proceso:

sudo launchctl load -w /System/Library/LaunchDaemons/org.isc.named.plist

Por último, debe configurar que la dirección de bucle de retorno de la máquina local se utilice como servidor DNS en Preferencias del sistema - > Red.

Cómo eliminar la configuración y la configuración

Esta configuración podría causar problemas de red (si no se configura correctamente). Aquí hay algunas instrucciones sobre cómo deshacer esta configuración:

1.) Elimine el servidor DNS (127.0.0.1) de la interfaz de red que configuró en Preferencias del sistema.

2.) Deshabilite el trabajo launchd que hace que named se inicie en el arranque:

sudo launchctl unload /System/Library/LaunchDaemons/org.isc.named.plist
    
respondido por el Eddie Kelley 15.10.2013 - 00:53

Lea otras preguntas en las etiquetas