Jump to content

Debian DNS dynamique ping impossible sur les hostname


Recommended Posts

Bonjour,

Suite à la mise en place d'une config DHCP + DNS dynamique (ou ddns) sous Debian j'ai eu la mauvaise surprise de ne pas pouvoir effectuer de ping sur les clients enregistrés dans le DNS par le serveur DHCP. Le principe du DNS dynamique est d'enregistrer le nom d’hôte du client dans le DNS lorsque celui-ci demande une IP, mais aussi de le retirer quand le bail a expiré.

Cette partie de l'enregistrement fonctionne très bien. Sauf qu'il y a un truc que je ne comprend pas. Pourquoi, une fois qu'un client est enregistré dans le DNS, le ping ne fonctionne pas sur le nom d'hote ?! C'est à dire que je peux "pinger" l'ip, le nom d’hôte avec le FQDN complet mais pas le nom d’hôte tout seul. En gros ça donne ça :

ping 192.168.0.x = OK

ping toto.tata.tld = OK

ping toto = timeout

Une demande normal d'IP d'ip avec enregistrement dans le DNS donne ca :

Nov  1 14:39:40 DDNS dhcpd: DHCPDISCOVER from 00:18:8b:xx:xx:xx via eth0Nov  1 14:39:41 DDNS dhcpd: DHCPOFFER on 192.168.0.70 to 00:18:8b:xx:xx:xx (PC-01) via eth0Nov  1 14:39:41 DDNS named[2273]: client 127.0.0.1#37390: updating zone 'domaine.loc/IN': update unsuccessful: PC-01.domaine.loc: 'name not in use' prerequisite not satisfied (YXDOMAIN)Nov  1 14:39:41 DDNS dhcpd: DHCPREQUEST for 192.168.0.70 (192.168.0.10) from 00:18:8b:xx:xx:xx (PC-01) via eth0Nov  1 14:39:41 DDNS dhcpd: DHCPACK on 192.168.0.70 to 00:18:8b:xx:xx:xx (PC-01) via eth0Nov  1 14:39:41 DDNS named[2273]: client 127.0.0.1#37390: signer "ddns_update" approvedNov  1 14:39:41 DDNS named[2273]: client 127.0.0.1#37390: updating zone 'domaine.loc/IN': deleting rrset at 'PC-01.domaine.loc' ANov  1 14:39:41 DDNS named[2273]: client 127.0.0.1#37390: updating zone 'domaine.loc/IN': adding an RR at 'PC-01.domaine.loc' ANov  1 14:39:41 DDNS dhcpd: Added new forward map from PC-01.domaine.loc to 192.168.0.70Nov  1 14:39:41 DDNS named[2273]: client 127.0.0.1#37390: signer "ddns_update" approvedNov  1 14:39:41 DDNS named[2273]: client 127.0.0.1#37390: updating zone '0.168.192.in-addr.arpa/IN': deleting rrset at '70.0.168.192.in-addr.arpa' PTRNov  1 14:39:41 DDNS named[2273]: client 127.0.0.1#37390: updating zone '0.168.192.in-addr.arpa/IN': adding an RR at '70.0.168.192.in-addr.arpa' PTRNov  1 14:39:41 DDNS dhcpd: Added reverse map from 70.0.168.192.in-addr.arpa. to PC-01.domaine.locNov  1 14:39:45 DDNS dhcpd: DHCPINFORM from 192.168.0.70 via eth0
Les serveurs DNS sont enregistré correctement dans le resolv.conf et l'ordre de résolution dans nsswitch.conf est le suivant :
passwd:         compatgroup:          compatshadow:         compathosts:          dns filesnetworks:       filesprotocols:      db filesservices:       db filesethers:         db filesrpc:            db filesnetgroup:       nis
Depuis les clients (Windows) je peux effectuer un ping sur le nom d'hote seulement sans aucune difficulté. En sachant que le DHCP+DNS est sur 192.168.0.10:

Un nslookup sous Windows avec seulement le hostname donne ca :

C:\Windows\system32>nslookup pc-01Serveur :   UnKnownAddress:  192.168.0.10Nom :    pc-01.domaine.locAddress:  192.168.0.70
et avec le FQDN :
C:\Windows\system32>nslookup pc-01.domaine.locServeur :   UnKnownAddress:  192.168.0.10Nom :    pc-01.domaine.locAddress:  192.168.0.70
La même commande sous debian qui est le serveur DHCP+DNS :
root@DDNS:~# nslookup pc-01Server:         127.0.0.1Address:        127.0.0.1#53** server can't find pc-01: NXDOMAINroot@DDNS:~# nslookup pc-01Server:         127.0.0.1Address:        127.0.0.1#53** server can't find pc-01: NXDOMAIN
Résultat il ne trouve pas l'entrée !

avec le FQDN :

root@DDNS:~# nslookup pc-01.domaine.locServer:         127.0.0.1Address:        127.0.0.1#53Name:   pc-01.domaine.locAddress: 192.168.0.70
Résultat, la c'est bon.

Je n'arrive pas à trouver d'où vient le soucis. Pourquoi sous une machine linux je ne peux pas simplement prendre le nom d'hote pour effectuer un ping ? Chose étrange, un ping sur google.com par exemple répond bien. Mais avec le hostname d'une des machines présentes sur le réseau local et enregistrés dans le DNS ça ne fonctionne pas.

Où est-ce que j'ai merdé ? vous avez une idée ?

Merci de votre aide :chinois:

Link to comment
Share on other sites

Yep merci à toi, j'ai trouvé effectivement dans le resolv.conf.

Avant c'était ca :

nameserver 192.168.0.10



Et maintenant c'est ca :

search domaine.locnameserver 192.168.0.10

Et ça fonctionne au poil ! Autant depuis Windows que Linux.

Il me reste 2 questions :

un message que je ne saurai interpréter, mais qui ne semble pas avoir d'incidence sur le bon fonctionnement du serveur :

client 127.0.0.1#44518: updating zone 'domaine.loc/IN': update unsuccessful: PC-01.domaine.loc: 'name not in use' prerequisite not satisfied (YXDOMAIN)

L'autre question concerne les périphériques qui n'envoient pas de hostname (ou qui en envoient mais ne crées pas d’enregistrements dans le DNS). Y a t'il une solution pour générer de façon automatique un nom d’hôte lorsqu'il y en a pas ? Même chose pour les hostname identiques, ajouter un suffixe ou un préfixe pour que l'enregistrement s'effectue correctement.

Link to comment
Share on other sites

Ah oui pas bête ca. En plus c'est un fonctionnalité qui existe depuis longtemps. Cela dit, comment je fait pour les périphériques inconnus ? Genre une variable reprenant la fin de l'adresse mac que je pourrai inclure dans le hostname. Bah pour le coup je ne sais pas si c'est possible ou même par ou commencer.

Je vais regarder en tout cas. Merci ;)

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...