26/11/2024

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).

author avatar
Philippe PIERRE
A exercé de nombreuses années en tant qu'administrateur de base de données et comme administrateur Système Unix/Linux. Il a enseigné les réseaux au CNAM (Paris). Aujourd'hui, employé en tant qu'ingénieur infrastructure, au sein d'un laboratoire pharmaceutique et administrant un cluster de calculs HPC, il connaît parfaitement les environnements GNU/Linux dans le cadre d'une entreprise et des systèmes de haute disponibilité. Il aime partager son expérience.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail