13 votes

Comment mon serveur DHCP connaît-il le nom d'hôte de ma machine alors que je n'en ai pas défini dans dhclient.conf ?

J'essaie de résoudre certains problèmes DNS bizarres liés au DHCP sur notre réseau (je soupçonne que nous avons plus d'un serveur DHCP en fonctionnement en ce moment), et en essayant de résoudre ce problème, j'ai remarqué quelque chose d'étrange avec un nouveau serveur que je viens de mettre en place.

Le serveur en question est une machine virtuelle Xen exécutant Ubuntu 9.10 Server. Le serveur Xen physique se trouve également sur notre réseau, et lorsque j'ai démarré la VM pour la première fois dans Xen (je l'ai importée d'une VM Virtualbox locale fonctionnant sur ma machine, où elle fonctionnait sur un réseau différent), elle a obtenu un bail DHCP du réseau de notre bureau et tout allait bien.

J'ai vérifié le dhclient.eth0.leases pour voir ce qui a été configuré, et j'ai vu que l'ancien bail DHCP du réseau précédent sur lequel se trouvait la machine était toujours là, ainsi que le nouveau bail DHCP pour le réseau du bureau auquel elle est actuellement connectée. J'ai tout de suite remarqué deux choses :

  1. L'ancienne information de bail DHCP du réseau précédent n'a pas d'adresse. options host-name ce qui signifie que la version originale de VirtualBox de la VM n'envoyait pas cette option au serveur DHCP. Ou cela signifie-t-il que l'ancien serveur DHCP ne supportait pas l'option de nom d'hôte DHCP ? Il utilisait le serveur DHCP interne de VirualBox à l'époque...

  2. Les nouvelles informations du bail DHCP fait ont un options host-name qui contient le nom d'hôte correct et actuel du serveur ("fozzie"). Si je comprends bien, cela signifie que le serveur a envoyé son nom d'hôte au serveur DHCP de notre réseau.

Il y a un certain nombre de choses que je ne comprends pas dans tout ça.

Premier Je n'ai pas changé. dhclient.conf pour le serveur à aucun moment ; il utilise la configuration par défaut. En fait, il contient la ligne suivante textuellement :

send host-name "<hostname>"

Ma première question est donc la suivante : comment a-t-il pu savoir qu'il fallait envoyer le vrai nom d'hôte du serveur si la configuration n'était pas prévue pour l'envoyer en premier lieu ?

Deuxièmement pourquoi le premier bail DHCP (pour l'ancien réseau) n'incluait pas option host-name Mais le deuxième bail DHCP (sur le nouveau réseau) l'a inclus, si je n'ai touché à aucun des fichiers de configuration ?

Tout ce que j'ai fait, c'est exporter la machine VirtualBox originale sous forme d'OVF, puis l'importer dans XenServer. Comment a-t-il pu configurer mon nom d'hôte par DHCP, alors qu'il n'est même pas configuré avec le nom d'hôte réel dans la base de données de XenServer ? dhclient.conf ?

Troisièmement : Quand je cours hostname le serveur renvoie fozzie.our.domain mais dhclient.eth0.leases dit que l'option hostname a été définie à fozzie (sans domaine). Comment a-t-il su qu'il fallait supprimer le domaine ?

12voto

maaartinus Points 687

OK, après un long moment à parcourir l'Internet et à essayer de lire à travers man pages, j'ai presque compris ce qui se passe :

[Comment diable a-t-il su qu'il fallait envoyer le vrai nom d'hôte du serveur si la configuration n'est pas paramétrée pour l'envoyer en premier lieu ?

Apparemment, send host-name "<hostname>" et plus particulièrement, <hostname> a une signification particulière sur Ubuntu. Il indique dhclient pour envoyer le nom d'hôte actuel de votre machine au serveur DHCP. Notez que cette option est sensible à la casse (c'est-à-dire que si vous tapez <HOSTNAME> dhclient enverra le texte littéral suivant <HOSTNAME> au serveur DHCP). Comme indiqué ici y ici Cette version fonctionne sur Ubuntu Feisty et les versions ultérieures, car elle fait partie d'un correctif (ironique) qui corrige un problème avec le système d'exploitation. dhclient ne pas envoyer le nom d'hôte de la machine par défaut.

[Pourquoi la première location DHCP (pour le réseau ancien réseau) n'incluait pas l'option host-name, mais le deuxième bail DHCP (sur le nouveau réseau) l'incluait, si je n'ai touché à aucun des fichiers de configuration ?

Cela semble être dû au fait que tous les serveurs DHCP ne renvoient pas le nom d'hôte au client. Hier, nous utilisions encore un routeur ClarkConnect basé sur Linux comme serveur DHCP, qui renvoyait le nom d'hôte à chaque client. Aujourd'hui, nous avons désactivé le DHCP sur ce serveur, et nous sommes passés à l'utilisation du serveur DHCP intégré sur notre contrôleur de domaine primaire. Nos baux DHCP à partir du PDC n'incluent pas option host-name non plus, mais ça ne semble pas affecter quoi que ce soit. Les machines sont mises à jour dans le DNS, et elles peuvent toutes se retrouver par leur nom d'hôte.

Quand je cours hostname le serveur retourne fozzie.our.domain mais dhclient.eth0.leases dit le nom d'hôte a été définie à fozzie (sans domaine). Comment a-t-il su qu'il fallait enlever le domaine ?

C'est moi qui ne comprends pas bien les subtilités du DHCP. Notre serveur DHCP était configuré pour configurer tous nos clients avec notre domaine. Je suppose que le serveur DHCP était assez intelligent pour supprimer la partie nom de domaine du nom d'hôte envoyé par le client.

Quelqu'un a-t-il des corrections ou des précisions à apporter à cette réponse ? Elle me semble encore un peu "bancale", je ne l'accepte donc pas telle quelle.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X