Résolution de nom de domaine
Lorsqu'un processus reçoit un nom symbolique et doit le résoudre en adresse, il appelle une sous-routine de résolution. La méthode utilisée par l'ensemble de sous-programmes de résolution pour résoudre les noms dépend de la configuration de l'hôte local.
En outre, l'organisation du réseau détermine la manière dont une sous-routine de programme de résolution communique avec les hôtes de serveur de noms distants (les hôtes qui résolvent les noms d'autres hôtes). Voir Résolution de nom TCP/IP pour plus d'informations sur la résolution de nom.
Une sous-routine de programme de résolution détermine le type de réseau qu'elle traite en déterminant si le fichier /etc/resolv.conf existe. Si le fichier existe, une sous-routine de programme de résolution suppose que le réseau local possède un serveur de noms. Sinon, il suppose qu'aucun serveur de noms n'est présent.
Pour résoudre un nom sans serveur de noms, une sous-routine de programme de résolution recherche dans le fichier /etc/hosts une entrée qui mappe le nom à une adresse.
Pour résoudre un nom dans un réseau de serveurs de noms, une sous-routine de programme de résolution interroge d'abord la base de données du serveur de noms de domaine (DNS), qui peut être un hôte local (si l'hôte est un serveur de noms de domaine) ou un hôte externe. Si la sous-routine utilise un serveur de noms distant, elle utilise le protocole de nom de domaine (DOMAIN) pour demander le mappage. Si cette requête échoue, la sous-routine recherche une entrée dans le fichier /etc/hosts local.
- initial_resd
- requête_mkquery
- recherche_nouvelle
- requête_nouvelle
- envoyer à nouveau
- dn_comp
- dn_développer
- raccourcir
- getlong
- mettre en vente
- putlong
| Membre | Table des matières |
|---|---|
| int | Indique la zone retrans. |
| int | Indique la zone de nouvelle tentative. |
| long | Indique la zone d'options. |
| int | Indique la zone nscount. |
| struct | Indique les zones sockaddr_in et nsaddr_list [ MAXNS ]. |
| ushort | Indique la zone ID. |
| char | Indique la zone defdname [ MAXDNAME ]. |
| #define | Indique la zone nsaddr nsaddr_list [ 0 ]. |
La zone d'options de la structure _res est construite en gérant logiquement les valeurs suivantes:
| Article | Descriptif |
|---|---|
| RES_INIT | Indique si le serveur de noms initial et le nom de domaine par défaut ont été initialisés (c'est-à-dire si la sous-routine res_init a été appelée). |
| DEBOGAGE | Imprime les messages de débogage. |
| RES_USEVC | Utilise Transmission Control Protocol des connexions ( Internet Protocol TCP/IP) pour les requêtes au lieu de User Datagram Protocol ( Internet Protocol UDP/IP). |
| RES_RESTER_OUVERT | Utilisé avec la valeur RES_USEVC , permet de maintenir la connexion TCP/IP ouverte entre les requêtes. Bien qu'UDP/IP soit le mode normalement utilisé, le mode TCP/IP et cette option sont utiles pour les programmes qui exécutent régulièrement de nombreuses requêtes. |
| RES_RECURSE | Définit le bit de récursivité souhaité pour les requêtes. Il s'agit de la valeur par défaut. |
| RES_DEFNAMES | Ajoute le nom de domaine par défaut aux requêtes à libellé unique. Il s'agit de la valeur par défaut. |
Trois variables d'environnement affectent les valeurs liées à la structure _res :
| Article | Descriptif |
|---|---|
| DOMAINE LOCAL | Remplace le domaine local par défaut, qui est lu à partir du fichier /etc/resolv.conf et stocké dans la zone defdname de la structure _res . |
| DÉLAI_RES_EXPIRATION | Remplace la valeur par défaut de la zone retrans de la structure _res , qui est la valeur de la constante RES_TIMEOUT définie dans le fichier /usr/include/resolv.h . Cette valeur correspond au délai d'attente de base, en secondes, entre les requêtes adressées aux serveurs de noms. Après chaque tentative ayant échoué, la période de délai d'attente est doublée. Le délai d'attente est divisé par le nombre de serveurs de noms définis. Le délai d'attente minimal est de 1 seconde. |
| RES_RETRY | Remplace la valeur par défaut de la zone de nouvelle tentative de la structure _res , qui est 4. Cette valeur correspond au nombre de fois où le programme de résolution tente d'interroger les serveurs de noms avant d'abandonner. La définition de RES_RETRY sur 0 empêche le programme de résolution d'interroger les serveurs de noms. |