DNS Dynamic ( DHCP + BIND9 via DEBIAN ) [Résolu/Fermé]

Signaler
Messages postés
9
Date d'inscription
samedi 29 décembre 2012
Statut
Membre
Dernière intervention
12 janvier 2013
-
Messages postés
29984
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
26 juillet 2021
-
Bonjour,

Il m'est impossible d'enregistrer des postes clients LINUX au DNS Dynamic alors que des postes clients WINDOWS s'enregistrent correctement.

Est-ce normal ?

Comment enregistrer des postes LINUX et WINDOWS au DNS Dynamic ?

Merci d'avance de vos réponses.

Cordialement

9 réponses

Messages postés
29984
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
26 juillet 2021
7 139
Il faudrait nous en dire un peu plus sur quels serveurs dhcp et dns tu utilises. Si j'ai bien compris tu as une machine debian sur laquelle tourne dhcp-server et bind9, tout marche correctement pour les clients windows mais pas les clients linux ?

Si oui as-tu regardé l'exemple donné ici ?
http://doc.ubuntu-fr.org/dhcp3-server#configuration_complete_a_plusieurs_interfaces
http://web.archive.org/web/*/https://debian-administration.org/article/343/Configuring_Dynamic_DNS__DHCP_on_Debian_Stable

Bonne chance
Messages postés
9
Date d'inscription
samedi 29 décembre 2012
Statut
Membre
Dernière intervention
12 janvier 2013

Bonjour mamiemando,

Oui, le serveur DEBIAN est à la fois DHCP ( service ISC-DHCP-SERVER ) et DNS ( service BIND9 ).

J'ai lu tes liens et je les ai comparé avec d'autres sites. On retrouve à peu près les mêmes configurations standards.

Pour ma part, je suis parti d'un exemple simple via le site IDUM.fr ( http://www.idum.fr/spip.php?article196 ).

Cela enregistre bien les postes clients WINDOWS et pas les postes clients LINUX.

Dois-je ajouter une option qui n'apparait pas sur le site IDUM ?

Comment faire ?

Merci d'avance de vos réponses.

Cordialement
Messages postés
29984
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
26 juillet 2021
7 139
Qu'entends-tu par ça n'enregistre pas les postes linux ? Tu ne parviens pas à récupérer une IP par DHCP ?

Que donne (sur un poste client utilisant l'interface eth0 pour se connecter) la commande suivante :

sudo dhclient -v eth0


Bonne chance
Messages postés
9
Date d'inscription
samedi 29 décembre 2012
Statut
Membre
Dernière intervention
12 janvier 2013

Informations complémentaires :

Tous les postes clients WINDOWS et LINUX reçoivent bien une IP via le serveur DHCP.

Dès l'adresse IP attribué au client, le BIND9 récupère cette information pour l'enregistrer dans ses zones "directes" et "inverses".

Pour les postes clients LINUX, BIND9 récupère bien les info mais pas pour les postes clients WINDOWS.

Si l'adresse IP est enregistré dans les zones, je peux faire des pings à partir du nom de machine par exemple.

exemple 1 : ping (nom_machine_sous_windows).(nom_domaine) => ici ça marche car les postes clients WINDOWS sont renseignées dans les zones directes.

exemple 2 : ping (nom_machine_sous_linux).(nom_domaine) => message "hote inconnue". ce qui est normal car c'est pas enregistré dans le fichier de zones directes.

Comment enregistrer tout type de machine client au DNS Dynamic ?

Merci d'avance de vos réponses.
Messages postés
29984
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
26 juillet 2021
7 139
Pour les postes clients LINUX, BIND9 récupère bien les info mais pas pour les postes clients WINDOWS.

J'imagine que c'est le contraire ?

Comment enregistrer tout type de machine client au DNS Dynamic ?

En fait c'est une bonne question, car si ma compréhension de ton tutoriel et de http://web.archive.org/web/*/https://debian-administration.org/article/343/Configuring_Dynamic_DNS__DHCP_on_Debian_Stable est correcte, la configuration est faite uniquement côté serveur. Dis moi si je me trompe, mais supposons que ton nom de domaine soit toto.com et que le nom de la machine linux soit tata, alors on devrait avoir tata.toto.com référencé dans bind, c'est bien ça ?

De deux choses l'une,
- soit tata est un nom attribué par DHCP (par exemple en se basant sur l'adresse MAC du client), auquel cas il faut configurer ton serveur DHCP en tant que tel,
- soit le client est sensé donné lui-même son hostname.

Dans ce second cas, je me demande ce qu'il se passe si deux machines donnent le même hostname et c'est pourquoi je doute qu'elle ait du sens, mais je peux me tromper. Si toutefois elle est correcte je suppose que c'est le nom stocké dans /etc/hostname qui est utilisé. Il est configurable et affichable ia la commande "hostname".

Bonne chance
Messages postés
9
Date d'inscription
samedi 29 décembre 2012
Statut
Membre
Dernière intervention
12 janvier 2013

Avant toutes choses : meilleurs voeux 2013.

Désolé, je me suis trompé dans mon dernier message . Les machines windows s'enregistrent bien dans le DNS Dynamic mais pas les machines linux.

Pour info complémentaire : c'est moi qui impose manuellement le HOSTNAME.

Suite à une bonne remarque, j'ai fait des tests sur les hostname :

* cas 1 : machinelinux a pour hostname CLIENT1 et machinewindows a pour hostname CLIENT3. Le BIND9 recupere dynamiquement la machinewindows

* cas 2 ( inversion des hostnames ) : machinelinux a pour hostname CLIENT3 et machinewindows a pour hostname CLIENT1. Le BIND9 recupere toujours la machinewindows

* cas 3 ( doublon hostname ) : la machinelinux et la machinewindows portent le même hostname CLIENT1 mais possède chacune une adresse IP attribuée par le DHCP ( machinelinux x.x.x.100 ) ( machinewindows x.x.x.101 ). Le BIND9 recupere toujours l'adresse IP ( 101) de machinewindows avec son hostname CLIENT1.

Ce qui est sûr c'est une modif à faire sur le serveur mais où ? soit le BIND9 ou soit sur le DHCP ?

Merci d'avance de vos réponses.
Messages postés
29984
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
26 juillet 2021
7 139
Bonne année à toi également et meilleurs voeux pour 2013 :-)

Première question que je me pose, est-ce que les hostnames CLIENT1 et CLIENT3 sont renseignés côté serveur et si oui comment ? A priori je dirais par dhcp-server en fonction de l'adresse MAC, est-ce correct ?

Car si j'en crois le rôle de la directive ignore client-updates (cf configuration du serveur DHCP) un client pourrait indiquer au serveur DHCP son FQDN et donc son hostname, c'est donc la partie qui n'est pas claire pour moi (à quelle niveau le hostname d'un client est sensé être configuré dans ce que tu cherches à faire).

Deuxième question, si le serveur dhcp attribue le hostname, c'est bien entendu côté serveur qu'il faut agir et plus précisément au niveau du serveur DHCP. C'est également le serveur DHCP qui interagira avec le serveur DNS pour lui annoncer l'arrivée ou le départ d'une machine.

Si ma compréhension est correcte, cette interaction entre le serveur DNS et DHCP est rendue possible car le serveur DNS est configuré pour être pilotable par un serveur DHCP authentifié par une clé RNDC, qui garantit que c'est bien un serveur DHCP de confiance qui peuple le DNS (sinon ce serait la porte ouverte à du phishing).
http://web.archive.org/web/*/https://debian-administration.org/article/343/Configuring_Dynamic_DNS__DHCP_on_Debian_Stable

J'imagine que cette interaction est correctement configurée si l'identification des machines windows se fait correctement.

Maintenant si on regarde ici :
http://www.realmtech.net/2004-01/dynamic-dns-updates-in-debian

On s'aperçoit que le nom de domaine (par exemple toto.com dans titi.toto.com) est bien renseignée au niveau de la configuration du serveur DHCP (/etc/dhcp3/dhcpd.conf). Dans l'exemple ci-dessous, toto.com est remplacé par foobar

server-identifier saturn; 
authoritative; 
# How to connect to the DNS server and update it. 
ddns-update-style interim; 
key FOO { 
  algorithm HMAC-MD5.SIG-ALG.REG.INT; 
  secret blah; 
}; 

# Use what key in what zone 
zone foobar. { 
  primary 127.0.0.1; 
  key FOO; 
} 

[...]


De même le bloc host semble renseigner (comme mentionné plus haut) le hostname d'une machine en fonction de l'adresse MAC de l'interface réseau qui effectue la requête DHCP (static1 dans l''exemple ci-dessous).

[....] 

## Static Host Mappings ## 
host static1 { 
  hardware ethernet 00:00:00:00:00:00; 
  fixed-address 10.1.1.7; 
}


Tu peux retrouver l'adresse MAC d'une interface avec la commande :

/sbin/ifconfig -a


Pour que toutes ces corrections soient prises en compte, pense à relancer ton serveur dhcp, typiquement avec une commande du genre :

service isc-dhcp-server restart


Bonne chance
Messages postés
9
Date d'inscription
samedi 29 décembre 2012
Statut
Membre
Dernière intervention
12 janvier 2013

Bonjour

Pour répondre à tes questions :
- le hostname est configuré localement sur chaque poste. J'impose le nom de la machine via /etc/hostname pour les postes linux.
- La commande "ignore client-updates" manque encore de précisions pour moi. En ce qui me concerne, je ne n'ai pas mis dans mon DHCPD.CONF car cette commande agit apparemment sur les postes windows.
- Oui, le DHCP informe le BIND9 des machines sur le réseau. Le BIND9 les enregistrent dans les zones directes et inverses. Pour une communication sécurisée entre DHCP et BIBD9 , j'utilise bien une clé.

Après plusieurs heures de recherche, je pense avoir la solution. J'ai testé cette solution et ça marche. Les postes clients LINUX et WINDOWS s'enregistrent bien dans le DNS dynamic.

Lire le site ci-dessous et plus particulièrement la partie 3 :
https://isrdoc.files.wordpress.com/2010/11/update-ddns-on-linux-and-dhcp.pdf

Cette commande je l'ai exécuté sur chaque poste client de type LINUX.

Maintenant ça marche. Existe-t-il une autre solution : je ne sais pas ?

Encore merci de ton aide.

Cordialement
Messages postés
29984
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
26 juillet 2021
7 139
Une différence essentielle existe entre les clients DHCP Linux et Windows. Les postes clients Microsoft configurés en clients DHCP, envoient leur nom d'hôte lors des requêtes

DHCP DISCOVER, alors que les client Linux (DHCPCD) ne le font pas ! Cela pose un problème, les clients Linux qui reçoivent une IP renseignent le DNS dynamique sans donner leur nom !

Pour y remédier, il faut créer un fichier /etc/dhclient.conf contenant la ligne :

send host-name "non_d'hote_du_pc" ;


Ah oui clairement, je confirme, c'est bien ça.

Note que ça rejoint la question que je te posais depuis le début, à savoir si le hostname d'un client était défini au niveau du client ou au niveau du serveur. Et aussi l'histoire ou le client DHCP windows annonce le FQDN et pas seulement le hostname.

Merci pour ces précisions en tout cas, ça m'a appris des choses :-)

Bonne continuation !