Posso reindirizzare a un server DNS Lookup alternativo in base alla richiesta del dominio

2

Sfondo

Ho avuto un problema nel caricare le immagini da un determinato sito web. (maggiori dettagli su qui )

Qualcuno al lavoro Ho suggerito di cambiare i miei server DNS per aprireDNS e vedere se questo risolve il problema.

Come pensavano potesse essere che il server DNS del mio provider fosse ciò che stava rallentando il caricamento della pagina / dell'immagine a causa delle chiamate interdominio con il suo javascript.

Si scopre che questo era davvero il caso. Le immagini caricate come previsto con i nuovi server DNS (google 8.8.8.8 e 8.8.4.4) Torna il problema si ripresenta.

Ma in realtà non voglio cambiare i miei server DNS. Soprattutto per un solo sito.

Domanda

C'è un modo in cui posso usare i miei normali indirizzi dei server DNS. Ma hai un proxy (file PAC) che reindirizza a un server DNS alternativo quando viene utilizzato questo dominio web (cultofma.com).

    
posta markhunte 14.10.2013 - 19:27
fonte

1 risposta

3

Puoi specificare i server DNS che verranno utilizzati per domini specifici, ma AFAIK richiede che tu esegua BIND ( named ) sul tuo computer. In questo caso, il tuo computer eseguirà un processo named e avrà l'installazione del suo file di configurazione per inoltrare le richieste DNS per la maggior parte delle query al tuo ISP (ad esempio, i server DNS che stavi utilizzando prima di Open DNS di Google). Ciò consente anche di specificare domini in cui si desidera interrogare il server DNS "alternativo". Dopo aver ottenuto named attivo e funzionante, puoi configurare le Preferenze di Sistema per utilizzare l'indirizzo di loopback (127.0.0.1) per le ricerche DNS. Il file /etc/named.conf per questa configurazione (basato su named.conf di Apple predefinito) sarà simile al seguente:

//
// 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;
        };
};

Configurazione named

Prima di iniziare named , potrebbe essere necessario generare la chiave rndc che viene utilizzata per il controllo rndc:

sudo rndc-confgen -a

Nota: l'unica parte del file /etc/named.conf di default che è stato modificato sopra è la linea in "opzioni" che specifica i server DNS di inoltro (quelli che risponderanno alla maggior parte delle tue query), oltre a una voce di zona per la zona "speciale" per cui desideri eseguire le visualizzazioni split horizon.

In questo esempio, tutte le query vengono inoltrate ai server DNS 8.8.8.8 e 8.8.4.4 (Google Open DNS) con l'eccezione delle query per i record nel dominio "test.example.com" (che vengono inoltrati a 10.0 .0.5 e 10.0.0.6).

Opzioni di inoltro

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

Zona da inoltrare

// *** 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;
};

Verifica la configurazione named locale

Successivamente, puoi testare l'installazione di named eseguendola in primo piano (prima di eseguire il commit alla configurazione):

sudo /usr/sbin/named -g

In un'altra finestra di Terminale, interrogare il server DNS locale per confermare che funzioni:

nslookup  apple.com 127.0.0.1

Assicurati che la tua zona di inoltro "speciale" sia utilizzata:

nslookup test.example.com 127.0.0.1

Il processo denominato installazione inizia all'avvio

Una volta che le ricerche stanno funzionando come previsto, puoi uccidere il processo named che è in esecuzione in primo piano nella prima finestra di Terminale emettendo un interrupt usando il comando "Control" + "C" ( ^C ).

È possibile avviare il server DNS ogni volta che si avvia la macchina abilitando il processo di avvio del daemon per quel processo:

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

Infine, devi configurare l'indirizzo di loopback della macchina locale come server DNS in Preferenze di Sistema - > Rete.

Come rimuovere la configurazione e l'impostazione

Questa configurazione potrebbe causare problemi di rete (se non configurata correttamente). Ecco alcune istruzioni su come annullare questa configurazione:

1.) Rimuovi il server DNS (127.0.0.1) dall'interfaccia di rete che hai configurato in Preferenze di Sistema.

2.) Disabilita il lavoro launchd che causa named all'avvio all'avvio:

sudo launchctl unload /System/Library/LaunchDaemons/org.isc.named.plist
    
risposta data 15.10.2013 - 00:53
fonte

Leggi altre domande sui tag