Utilisation d’un « resolver » local
Pour interroger un serveur de noms, il n’est pas obligatoire d’avoir un serveur DNS local (ni primaire, ni secondaire). Pour n’importe quelle requête, on peut le faire en passant par une bibliothèque, appelée "resolver". Il s’agit d’un ensemble de fonctions, écrites en C, permettant de résoudre les requêtes des utilisateurs (par exemple, gethostbyname(), gethostbyaddress()…).
Cette bibliothèque est totalement indépendante d’un quelconque serveur DNS et il est donc possible d’interroger des serveurs de noms extérieurs, sans pour autant en avoir un localement (même s’il est tout de même plus prudent d’en avoir un).
Cela se traduit par l’utilisation et la configuration du fichier /etc/resolv.conf permettant de fixer les modalités des résolutions à effectuer. On va pouvoir notamment préciser le ou les domaine(s) à gérer, ainsi que l’ordre dans lequel les interrogations doivent s’effectuer :
domain mydmn.org mydmn.net search mydmn.org,mydmn.net
Pour finir, on peut aussi (et c’est presque le plus important) spécifier le ou les serveurs de noms permettant d’effectuer la résolution des requêtes clientes :
nameserver 192.168.1.172 nameserver 192.168.1.173
REMARQUE : il ne faut pas perdre de vue qu’un serveur de noms n’est rien d’autre qu’une base de données contenant des noms et des adresses IP. Il est donc possible de fixer la priorité de résolution, en ce qui concerne l’ordre dans lequel les outils (le fichier /etc/hosts et/ou le ou les serveurs de noms), seront interrogés. Pour cela, il suffit de configurer le fichier /etc/nsswitch.conf et à la ligne "hosts :", de mettre l’ordre souhaité :
hosts: files dns
Dans cet exemple, on commencer par parcourir le fichier /etc/hosts afin de trouver l’adresse IP correspondante à un nom et ensuite seulement, on parcourt la base d’annuaire DNS. Il est à noter que si l’on dispose d’un annuaire d’informations NIS, on pourrait aussi bénéficier de ce réceptacle afin de l’interroger et trouver des correspondances aux requêtes d’utilisateurs.
Nous avons évoqué le cas simple. Mais, il est vrai que la plupart des entreprises aujourd’hui ne peuvent plus se passer des serveurs de noms DNS. Du coup, leur fichier /etc/resolv.conf reflète ce choix, en interrogeant non plus des serveurs externes, mais leurs propres serveurs DNS.
Nous allons maintenant voir qu’avec ou sans serveurs DNS locaux, on peut toujours interroger d’autres sources, en utilisant des résolveurs sous forme, non plus de bibliothèques, fournies par le système d’exploitation, mais sous forme d’utilitaire : une sorte de "sqlplus" des DNS (nos amis DBA comprendront).