2 votes

Puis-je rediriger vers un serveur de recherche DNS alternatif en fonction de la demande de domaine

Contexte

J'avais un problème pour charger des images à partir d'un site web particulier. (plus de détails sur cela ici)

Quelqu'un au travail m'a suggéré de changer mes serveurs DNS pour utiliser openDNS et voir si cela résout le problème.

Car ils pensaient que le serveur DNS de mon fournisseur était ce qui ralentissait le chargement des pages/des images en raison des appels de domaine croisé avec son javascript.

Il s'est avéré que c'était effectivement le cas. Les images se sont chargées comme prévu avec les nouveaux serveurs DNS (google 8.8.8.8 et 8.8.4.4) En revenant aux anciens serveurs le problème réapparaît.

Mais je ne veux vraiment pas changer mes serveurs DNS. Surtout pour un seul site.


Question

Existe-t-il un moyen d'utiliser mes adresses serveurs DNS normales mais d'avoir un proxy (fichier PAC) qui redirige vers un serveur DNS alternatif lorsque ce domaine web (cultofma.com) est utilisé.

3voto

Jonathan Sampson Points 121800

Vous pouvez spécifier les serveurs DNS qui seront utilisés pour des domaines spécifiques, mais à ma connaissance, cela nécessite que vous exécutiez BIND (named) sur votre machine. Dans cette situation, votre ordinateur exécuterait un processus named et aurait son fichier de configuration configuré pour transférer les requêtes DNS pour la plupart des requêtes à votre fournisseur d'accès Internet (c'est-à-dire les serveurs DNS que vous utilisiez avant d'utiliser Open DNS de Google). Cela vous permet également de spécifier les domaines dans lesquels vous aimeriez que le serveur DNS 'alternatif' soit interrogé. Une fois que vous avez configuré named, vous pourriez alors configurer les Préférences Système pour utiliser votre adresse de bouclage (127.0.0.1) pour les recherches DNS. Le fichier /etc/named.conf pour cette configuration (basée sur le named.conf par défaut d'Apple) ressemblerait à ceci :

//
// Inclure le fichier de clés
//
include "/etc/rndc.key";

// Déclare les canaux de contrôle à utiliser par l'utilitaire rndc.
//
// Il est recommandé que 127.0.0.1 soit la seule adresse utilisée.
// Cela permet également aux utilisateurs non privilégiés sur l'hôte local de gérer
// votre serveur de noms.

//
// Contrôles par défaut
//
controls {
    inet 127.0.0.1 port 953 allow {any;}
    keys { "rndc-key"; };
};

options {
    directory "/var/named";
    /*
     * S'il y a un pare-feu entre vous et les serveurs de noms que vous souhaitez
     * contacter, vous devrez peut-être décommenter le
     * la directive query-source ci-dessous. Les versions précédentes de BIND ont toujours posé
     * des questions en utilisant le port 53, mais BIND 8.1 utilise un port non privilégié
     * par défaut.
     */
    // query-source address * port 53;

    // *** transférer toutes les recherches DNS à ces serveurs
    forwarders { 8.8.8.8; 8.8.4.4; };
};

Configuration de named

Avant de démarrer named, il peut être nécessaire de générer la clé rndc qui est utilisée pour le contrôle rndc :

sudo rndc-confgen -a

Remarque : la seule partie du fichier /etc/named.conf par défaut qui a été modifiée ci-dessus est la ligne dans "options" qui spécifie les serveurs DNS forwarder (ceux qui répondront à la plupart de vos requêtes), ainsi qu'une entrée de zone pour la zone "spéciale" pour laquelle vous souhaitez effectuer des recherches de type horizon partagé.

Dans cet exemple, toutes les requêtes sont transférées aux serveurs DNS 8.8.8.8 et 8.8.4.4 (Google Open DNS) à l'exception des requêtes pour les enregistrements dans le domaine "test.example.com" (qui sont transférées à 10.0.0.5 et 10.0.0.6).

Options de transfert

// *** transférer toutes les recherches DNS à ces serveurs
forwarders { 8.8.8.8; 8.8.4.4; };

Zone à transférer

// *** les demandes d'enregistrements dans cette zone seront transférées à 10.0.0.5 et 10.0.0.6
zone "test.example.com" IN {
    type forward;
    forwarders { 10.0.0.5; 10.0.0.6; };
    forward only;
};

Tester la configuration locale de named

Ensuite, vous pouvez tester votre installation de named en l'exécutant en premier plan (avant de vous engager dans la configuration) :

sudo /usr/sbin/named -g

Dans une autre fenêtre Terminal, interrogez votre serveur DNS local pour confirmer qu'il fonctionne :

nslookup  apple.com 127.0.0.1

Assurez-vous que votre zone de transfert "spéciale" est utilisée :

nslookup test.example.com 127.0.0.1

Configurer le processus named pour démarrer au démarrage

Une fois que vous voyez que les recherches fonctionnent comme prévu, vous pouvez arrêter le processus named qui s'exécute en premier plan de la première fenêtre Terminal en envoyant une interruption en utilisant la commande clavier "Control" + "C" (^C).

Il est possible de démarrer le serveur DNS à chaque démarrage de la machine en activant le travail de daemon de lancement pour ce processus :

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

Enfin, vous configurerez l'adresse de bouclage de la machine locale comme serveur DNS dans Préférences Système -> Réseau.

Comment supprimer la configuration et la mise en place

Cette configuration pourrait potentiellement causer des problèmes réseau (si elle n'est pas configurée correctement). Voici quelques instructions sur la manière d'annuler cette configuration :

1.) Supprimez le serveur DNS (127.0.0.1) de l'interface réseau que vous avez configurée dans Préférences Système.

2.) Désactivez le travail launchd qui fait démarrer named au démarrage :

sudo launchctl unload /System/Library/LaunchDaemons/org.isc.named.plist

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X