Mettre les DNS par défaut en DNS secondaires sous linux

Avoir ses propres extensions, résoudre des noms de domaines plus rapidement ou même pouvoir naviguer sur des sites dont l’extension est .42 (la classe hein). Nombreuses sont les motivations pour changer de serveur DNS. 208.67.222.222, 8.8.8.8 ces ip sont de plus en plus connues. Ce sont celles de serveurs qui vous résolvent vos noms de domaines. Les serveurs DNS vous donnent l’ip correspondant à un nom de domaine. Pour plus d’informations sur le fonctionnement du DNS je vous ai mis quelques sites dans Mes p’ti liens.

Logo 42

Je viens de changer mon serveur DNS principal pour résoudre le TLD .42 et avoir une résolution des domaines plus rapide. Le problème est que je me déplace souvent entre mon école, chez moi et à mon autre chez moi. Je change ainsi plusieurs fois de réseaux par jour. Quand je suis chez moi, mon DHCP me donne mon ip et les serveurs DNS de mon FAI. Mais quand je suis à mon école, en plus de me donner une ip, le serveur DHCP me donne des DNS locaux qui résolvent des sites internes à l’école.

Un problème se pose alors, si je change mon serveur DNS principal et que je met ceux de Google en secondaires par exemple, quand je serais à mon école, je n’accéderais pas aux domaines internes. Je pourrais alors me faire un profil spécifique à l’école où j’utiliserais les serveurs DNS donnés par le DHCP. Mais à ce moment là je ne pourrais pas utiliser les domaines .42.

L’idée est donc d’utiliser le serveur DNS de mon choix en principal et en secondaires ceux fournis par le serveur DHCP du réseau où je suis connecté.

Pour ce faire nous allons modifier une petite ligne du fichier de configuration du client DHCP. Nous allons définir notre serveur en priorité sur les DNS récupérés. Ici le serveur sera appliqué à toutes les connexions, mais il est possible de spécifier la règle à une interface spéciale. Ce n’est pas compliqué, pour plus d’informations je vous invite à regarder le man de dhclient.conf ou de regarder les exemples à fin du fichier que nous allons modifier.

Sous Ubuntu 10.10, ouvrez le fichier /etc/dhcp3/dhclient.conf en root et dé-commentez la ligne prepend domain-name-servers. Remplacez ensuite 127.0.0.1 par les ip des serveurs DNS à mettre en priorité de sorte à avoir une ligne comme ceci (exemple avec l’ip du serveur DNS de Kegtux) :

prepend domain-name-servers 176.31.252.47;

Edit : Dans Ubuntu 11.10 le fichier se trouve dans /etc/dhcp/

Vous pouvez remarquer que dans la suite du fichier on demande au serveur DHCP les serveurs DNS (request). La commande prepend défini donc les valeurs à utiliser en priorité sur les valeurs données par le DHCP.
Vous pouvez enregistrer le fichier et redémarrer votre interface réseau. Pour vérifier que tout marche il suffit d’essayer d’accéder à un site en .42 comme par exemple www.nic.42. Vous remarquerez que l’ip défini est en priorité sur les serveurs DNS donnés par le DHCP:

romain@Romainlp:~$ cat /etc/resolv.conf # Generated by NetworkManager nameserver 176.31.252.47 nameserver 212.27.40.240 nameserver 212.27.40.241

J’ai ici le serveur DNS de Kegtux en principal, puis ceux de Free fournis par ma Freebox.


  1. Vincent
    05 janvier 2011
    02 h 36

    J’ai également ajouté le DNS de Geeknode, qui résous également les .42 comme ca si je perds un accès sur un .42 je peux vérifier si cela vient de Legtux ou si le site n’est vraiment pas accessible.

    Ca me permet aussi d’avoir accès aux .42 si Legtux est down.

    Geeknode : 81.93.248.69

    Avec ta méthode, on peut donc ajouter (pour mon cas) les DNS primaires et secondaires de notre FAI en DNS « de secours ». Ca me permettra aussi de résoudre les domaines internes =)

  2. sebastien
    05 janvier 2011
    09 h 49

    ~50ms au lieu de ~2ms, les serveurs de legtux et geeknode sont honnêtes (là où les DNS de google dépassent les 100ms de réponse de là où je suis) mais bon, l’utilisation, en général, des serveurs DNS locaux me parrait plus intéressante.

    J’aimerais bien pouvoir résoudre les .42, pour cela il me faudrait installer un serveur DNS en local qui spécifierait « pour la zone .42 tu interroge tel serveur, sinon, tel serveur. »
    Bind sait faire, faut que je regarde si dnsmasq en est capable.

  3. Valère
    07 janvier 2011
    07 h 18

    C’est d’ailleurs ce que je fais, serveur dns en local + serveur LegTux, puis les deux serveurs dns de mon fai

  4. mart-e.42 et DNS (pa...
    17 janvier 2011
    11 h 25

    [...] Le problème de la technique du NetworkManager est que c’est associé à la connexion. Si vous ne changez jamais pas de soucis, mais avec mon portable quand je passe d’un réseau à l’autre et du wifi à ethernet, je préfère cette solution : Mettre les DNS par défaut en DNS secondaires sous linux [...]

  5. Vincent
    18 septembre 2011
    11 h 46

    Je viens encore d’avoir des problèmes avec les DNS hérités du réseau local (Free) et je vais remettre ta configuration pour placer Legtux en premier.

    Les DNS hérités du routeur sont toujours utiles comme tu l’as dit, mais le problème c’est que quand Free me lache, même leur secondaire lache -_-

    L’IP de Legtux a changé, maintenant ce sera 88.190.27.51

    OpenDNS est trop lent et puis c’est une entreprise commerciale. Je vois ce que Google ou Orange ont fait du mot « open », je préfère encore aller me loger chez des associations ou des bénévoles.

    Je cherchais dans Google « DNS Libre », et finalement j’ai eu bien plus de résultats sur « résoudre dns 42″, c’est là que je t’ai trouvé

Laisser un commentaire



Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Notifiez-moi des commentaires à venir via email. Vous pouvez aussi vous abonner sans commenter.