Comment surmonter la limitation du résolveur libc de maximum 3 servers de noms?

Supposons que je travaille dans l'environnement avec un nombre de changements de domaines et une propagation lente.
Je veux tester la configuration du domaine immédiatement après la modification mais la propagation est lente. Je veux donc append plus de servers de noms au file /etc/resolv.conf dans mon ordinateur portable Debian 6.0.3. Surtout les servers de noms de domaine de mon bureau d'logging de noms de domaine. Je le fais en ajoutant:

 append domain-name-servers 85.128.130.10, 194.204.152.34; 

à mon file /etc/dhcp/dhclient.conf . Après la reconnection au réseau, mon /etc/resolv.conf est mis à jour correctement, mais avec le message suivant:

 # NOTE: the libc resolver may not support more than 3 nameservers. # The nameservers listd below may not be recognized. 

Alors y a-t-il un moyen d'utiliser plus de 3 servers de noms à l'époque?

Mettez uniquement 127.0.0.1 tant que server de /etc/resolv.conf dans /etc/resolv.conf et exécutez un cache DNS localement. Je recommand Dnsmasq , c'est léger et facile à installer. Sur les dissortingbutions telles que Debian et Ubuntu, je recommand également d'installer le package resolvconf , qui s'occupe de maintenir /etc/resolv.conf lorsque vous /etc/resolv.conf pas de cache DNS local ou de maintenir la configuration du programme de cache DNS quand vous le faites.

C'est ainsi que j'ai fait que Debian utilise plus de 3 servers de noms à la fois.

  1. Installer le package dnsmasq

  2. Configurez mon client DHCP local pour qu'il n'utilise pas les adresses de server DNS fournies par le server DHCP, mais uniquement le server local. Pour ce faire, j'ajoute dans mon file /etc/dhcp/dhclient.conf la ligne suivante

    supersede domain-name-servers 127.0.0.1;

  3. Configurez dnsmasq pour ne pas utiliser le file /etc/resolv.conf par défaut, mais sa propre alternative. Dans /etc/dnsmasq.conf ajoutez la ligne suivante

    resolv-file=/etc/resolv.dmasq

  4. Créez /etc/resolv.dmasq avec autant de servers de noms que vous le souhaitez.

  5. Redémarrez le service dnsmasq .

Je l'ai testé avec 9 nameservers définis ne contenant pas mon domaine. Le système n'a pas pu résoudre son nom. Quand j'ai ajouté le 10ème server de noms, le système a résolu son nom correctement.

De resolv.conf:

Jusqu'à MAXNS (actuellement 3) servers de noms peuvent être répertoriés, un par ligne. S'il y a plusieurs servers, la bibliothèque resolver les interroge dans l'ordre indiqué. Si aucune input de server de noms n'est présente, la valeur par défaut est d'utiliser le server de noms sur la machine locale. (L'algorithm utilisé est d'essayer un server de noms et, si la requête expire, essayez le suivant, jusqu'à ce que les servers de noms soient exclus, puis répétez l'essai de tous les servers de noms jusqu'à ce qu'un nombre maximum de tentatives soit effectué.)

Une fois que tous les servers de noms sont essayés et que la requête échoue, la valeur par défaut est de returnner le message de l'hôte introuvable.

Pouvez-vous répéter la même ligne ci-dessous dans le file conf afin que plusieurs directives nameserver soient ajoutées. Chaque ligne de la directive nameserver prend en charge jusqu'à 3 adresses DNS (par ligne).

Veuillez noter qu'un seul hôte a déjà été essayé, et qu'il figure en tête de list dans resolv.conf; si l'adresse n'est pas trouvée sur le premier server ou si le server n'est pas accessible, le second est essayé puis continue pour le troisième server si la requête sur le second server échoue. Il n'y a pas de sélection random ou random de servers de noms à partir de resolv.conf pendant la résolution de l'hôte, de sorte que le coût d'essayer tous les servers de noms imposera directement sur la performance des systèmes / applications sous-jacents.

Cependant, je pense qu'il vaut mieux implémenter un server de noms de cache local, l'augmentation des performances DNS pour les applications utilisant / en fonction de la résolution de l'hôte augmenterait si le nombre d'appels DNS diminuait / dépend également de la latence.

Une autre approche serait d'utiliser les servers openDNS, ils ont peut-être les servers DNS les plus mis à jour et les plus rapides sur Internet.

Une autre réponse. Je ne sais pas si cela serait pertinent sur Debian, mais il s'agit plus récemment d'une approche conventionnelle (et à la mode) que l'on retrouve sur presque toutes les dernières versions de dissortingbution.

Utilisez des profils de réseau. L'idée est de passer aux parameters réseau dans des environnements réseau différents de manière dynamic ou d'utiliser des inputs user, tout en conservant les copys des files de configuration et des parameters pour tous les autres réseaux qui peuvent ne pas être actifs à ce moment-là.

http://www.linuxhowtos.org/Tips%20and%20Tricks/switchingnetwork.htm http://www.linuxhomenetworking.com/forums/showthread.php/15822-Configure-multiple-network-profiles http: // wiki. debian.org/NetworkManager

Editez /etc/resolvconf/update.d/libc la ligne suivante

 [ "$N" = 3 ] && return 0 

À

 [ "$N" = 4 ] && return 0 

Vous pouvez maintenant insert 4 servers de noms dans /etc/network/interfaces , insert la ligne dans votre interface

 dns-nameservers xxxx yyyy aaaa bbbb