Forum Linux.debian/ubuntu Multiples nameserver et search option dans /etc/resolv.conf

Posté par  (site web personnel) .
Étiquettes : aucune
0
2
oct.
2009
Bonsoir à tous,

Ça fait un moment que ça déconne, et cette fois ci j'aimerais comprendre.

Mon '/etc/resolv.conf' :

# Generated by NetworkManager
domain domain1.dom
search domain1.dom domain2.dom
nameserver 192.168.1.1
nameserver 192.168.28.1

Donc on est bien d'accord que pour tout nom d'hôte non complètement qualifié, par exemple 'hote' avec mon 'resolv.conf' tel que configuré ci-dessus, on tente de résoudre :


- 'hote.domain1.dom' et si rien n'est résolu alors on tente de résoudre
- 'hote.domain2.dom' et ce sur les 2 serveurs déclarés par les options 'nameserver', donc sur '192.168.1.1' & '192.168.28.1'

Et bien a priori non !!!

Quelqu'un peut m'expliquer la subtilité :

bigbob@bigbob-laptop:~$ host hote1
hote1.domain1.dom is an alias for dns1.domain1.dom.
dns1.domain1.dom has address 192.168.1.1

Ici ça marche, résolu via '192.168.1.1', le 1er serveur de la liste dans le 'resolv.conf'.

Maintenant :

bigbob@bigbob-laptop:~$ host hote2
Host hote2 not found: 3(NXDOMAIN)

Ici, ça ne marche pas, pas de réponse de '192.168.1.1' et on ne passe pas automatiquement au 2eme serveur de la liste dans le 'resolv.conf'.

Et si je force la résolution manuellement sur le 2eme serveur de la liste, alors, miracle :

bigbob@bigbob-laptop:~$ host hote2 192.168.28.1
Using domain server:
Name: 192.168.28.1
Address: 192.168.28.1#53
Aliases:

hote2.domain2.dom is an alias for dns1.domain2.dom.
dns1.domain2.dom has address 192.168.28.1

Pourquoi donc, lorsque la résolution ne fonctionne pas sur le 1er serveur de la liste, le 2eme serveur déclaré dans le 'resolv.conf' n'est pas utilisé ???

Par contre on peut s'appercevoir que l'option 'search' du 'resolv.conf' fonctionne ...

Si quelqu'un peut m'expliquer ça m'arrangerais bien.


A++
  • # man resolv.conf

    Posté par  . Évalué à 3.

    nameserver Name server IP address
    Internet address (in dot notation) of a name server that the resolver should query. Up to MAXNS (currently 3, see <resolv.h>) name servers may be listed, one per keyword.
    If there are multiple servers, the resolver library queries them in the order listed.

    If no nameserver entries are present, the default is to use the name server on the local machine. (The algorithm used is to try a name server, and if the query times out, try the next, until out of name servers, then repeat trying all the name servers until a maximum number of retries are made.)


    ton probleme c'est que host hote2 ne fait qu'une seule tentative de resolution (qui echoue) et rend la main

    si tu essaie en faisant un ping, ca peut forcer à tester le 2e dns
    • [^] # Re: man resolv.conf

      Posté par  (site web personnel) . Évalué à 1.

      Justement, ça non plus :

      bigbob@bigbob-laptop:~$ ping hote2
      ping: unknown host hote2

      :-(
      • [^] # Re: man resolv.conf

        Posté par  . Évalué à 3.

        hihi,
        me suis trompé
        en fait il faut que le premier ne soit pas joignable pour que ca passe sur le deuxieme

        hors dans ton cas, le premier DNS repond (negativement, mais il repond)
        donc le 2e n'est pas testé
      • [^] # Re: man resolv.conf

        Posté par  . Évalué à 3.

        Le comportement observé est tout à fait normal.

        Tant que le premier serveur DNS répond, le second n'est pas utilisé.

        Dans le cas que tu cites: $ host hote2
        Le premier serveur répond que hote2 n'existe pas, il n'y a donc pas besoin d'interroger le second.
        Pour que le second soit interrogé, il faut que le premier ne réponde pas.

        Je ne comprends pas ce que tu cherches à faire.
        Le second serveur n'est qu'un serveur de secours, il n 'y a aucune raison pour qu'il connaisse des hôtes inconnus du serveur primaire.
        • [^] # Re: man resolv.conf

          Posté par  (site web personnel) . Évalué à 1.

          C'est bien vrais ça, pourquoi je me prend la tête ...

          Le comportement est effectivement correct.

          J'ai perdu une occasion de la fermer ...

          Pour aller plus loin dans la démarche, est il possible que si je demande par exemple :

          host hote2.domaine2.dom

          Le serveur en 192.168.28.1 soit utilisé et pour tout ce qui se trouve dans xxx.domain1.dom ce soit donc 192.168.1.1 qui soit utilisé ?

          A++
          • [^] # Re: man resolv.conf

            Posté par  . Évalué à 3.

            Pour aller plus loin dans la démarche, est il possible que si je demande par exemple :

            host hote2.domaine2.dom

            Le serveur en 192.168.28.1 soit utilisé et pour tout ce qui se trouve dans xxx.domain1.dom ce soit donc 192.168.1.1 qui soit utilisé ?


            probablement que non

            car ce n'est pas le but du resolv.conf

            par contre tu peux faire que ton 192.168.1.1 renvoie sur 192.168.28.1 pour le(s) domaine(s) qu'il ne connait pas ou l'inverse
          • [^] # Re: man resolv.conf

            Posté par  (site web personnel) . Évalué à 2.

            oui c'est possible:

            tu met un bind en local (ou ailleurs remarque), avec un fichier de configuration du genre:

            zone "domaine2.dom" { type forward; forwarders { 192.168.28.1;}; };
            zone "domaine1.dom" { type forward; forwarders { 192.168.1.1;}; };

            puis "nameserver 127.0.0.1" dans ton resolv.conf

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.