Resolution DNS

Bonjour,

J’ai un serveur DNS sous windows. Quand je fais depuis ma machine debian un

J’ai une réponse:

Par contre quand je fais un

j’ai une réponse:

Vous allez sans doute me dire que c’est normal mais comment pourrais-je faire pour que cela marche dans les deux cas ?

Merci d’avance

SERVFAIL, c’est une erreur du serveur DNS, et non ce n’est pas normal, sauf si on considère une erreur comme normale.

En préambule, il est bon de rappeler que la résolution de nom et le DNS sont deux choses différentes. DNS sert à la résolution de nom mais pas seulement, et la résolution de nom se sert de DNS mais pas seulement. Du point de vue de la résolution de nom, “server” (nom d’hôte) et “server.domain.local” (nom pleinement qualifié) peuvent être équivalents si on a défini le domaine ou un préfixe de recherche “domain.local”. En DNS, ils ne sont jamais équivalents car la notion de préfixe de recherche n’existe pas, les noms de domaine doivent toujours être pleinement qualifiés.

En pratique, cela signifie par exemple que [mono]ping[/mono], qui utilise la résolution de nom, et [mono]host[/mono], qui utilise le DNS, n’auront pas forcément les mêmes résultats.

La commande [mono]host[/mono] est censée interroger un serveur DNS, pas faire de la résolution de nom. Cependant elle peut tenir compte de la directive [mono]domain[/mono] ou [mono]prefix[/mono] présente dans /etc/resolv.conf pour qualifier le nom recherché avant d’envoyer la requête DNS au serveur. Ce n’est jamais le serveur qui va ajouter le nom de domaine, il considère que tous les noms sont absolus.

Par exemple, en simplifiant :

  • Si resolv.conf ne contient pas de directive [mono]domain[/mono] ni [mono]search[/mono], [mono]host server[/mono] envoie une requête portant sur “server”.

  • Si resolv.conf contient une directive [mono]domain domain.local[/mono] ou [mono]search domain.local[/mono], [mono]host server[/mono] envoie une requête portant sur “server.domain.local”.

Dans tous les cas, le serveur devrait renvoyer la réponse ou signaler que le nom n’existe pas, ce qui n’est pas une erreur. Mais il ne devrait pas renvoyer SERVFAIL, qui signale un fonctionnement anormal du serveur pouvant indiquer une erreur de configuration de celui-ci.

Super ! Merci pour ta réponse :023

En fait j’avais oublié de préciser une chose: entre mon client et mon serveur, il y avait un openvpn…
Le résultat que j’obtenais etait donc du au fait que j’avais oublié de rajouter dans le server.conf de mon openvpn:

push "dhcp-option DOMAIN domain.com" :12

En tout cas merci beaucoup pour ta réponse qui m’a permis de résoudre mon problème :023

Mouais. Ça n’explique pas ni ne résoud le SERVFAIL.

Oui tu as raison :confused:

Par contre cela vient donc du serveur DNS… et lui il est sous windows…c’est donc une autre paire de manches…

Une raison possible à cette erreur serait que le serveur DNS est configuré pour accepter les requêtes récursives (pour lesquelles il ne fait pas autorité et doit demander à d’autres serveurs) mais ne peut pas communiquer avec les serveurs DNS faisant autorité (DNS racine, TLD…) ou les serveurs DNS récursifs définis comme redirecteurs (forwarders).

Peux-tu résoudre des noms de domaine d’internet lorsque tu interroges ce serveur ou seulement les noms du domaine local ou obtiens-tu la même erreur ?

Quand je fais un:

j’obtiens:

www.google.fr has address 173.194.67.94 www.google.fr has IPv6 address 2a00:1450:400c:c05::5e

donc il a l’air de fonctionner correctement ? les redirecteurs pointent vers les adresses d’opendns

PS: ces tests sont fait sur une machine debian qui se trouve, elle, sur le réseau local du serveur dns, je ne passe pas à travers le vpn…

Le traitement des requêtes récursives peut être différent selon l’adresse source. Que donne la même requête que celle qui provoque l’erreur, mais depuis le réseau local du serveur (avec un “.” à la fin du nom pour ne pas ajouter le domaine) ?

En tout cas, le SERVFAIL ne vient pas des serveurs d’OpenDNS qui répondent NXDOMAIN comme prévu pour un nom de domaine inexistant.

Quand je fais depuis le réseau local du serveur dns un:

J’obtiens la même erreur.

Quand je fais un:

host 192.168.0.154 (IP non utilisée et non attribuée)

j’obtiens une vraie erreur:

Je t’avoue que je ne suis pas du tout expert en DNS et je ne comprend pas du tout pourquoi ce serveur déconne comme cela. En tout cas merci beaucoup pour ton aide

Si cela ne se produit qu’avec ce nom, ma première idée serait que le serveur a une zone locale “server” mal configurée. Est-ce que cela se produit aussi avec des noms simples (sans “.” au milieu) ne correspondant pas à des TLD (domaines de premier niveau) existants (ex : “toto.”, “machin.”…) ?