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

12

J'essaie de résoudre certains problèmes DNS géniaux liés à DHCP sur notre réseau (je soupçonne que nous avons plus d'un serveur DHCP en cours d'exécution pour le moment), et en essayant de comprendre cela, j'ai remarqué quelque chose d'étrange avec un nouveau serveur que je viens de installer.

Le serveur en question est une machine virtuelle Xen exécutant le serveur Ubuntu 9.10. Le serveur Xen physique est également sur notre réseau, et lorsque j'ai démarré la machine virtuelle pour la première fois dans Xen (je l'ai importée à partir d'une machine virtuelle Virtualbox locale exécutée sur ma machine, où elle s'exécutait sur un réseau différent), elle a obtenu un Bail DHCP de notre réseau de bureaux et tout était bien.

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

  1. Les anciennes informations de location DHCP du réseau précédent n'ont pas de options host-nameligne, ce que je suppose que la version originale de VirtualBox de la machine virtuelle n'envoyait pas cette option au serveur DHCP. Ou cela signifie-t-il que l'ancien serveur DHCP ne prend pas en charge l'option de nom d'hôte DHCP? Il utilisait le serveur DHCP interne de VirualBox à l'époque ...

  2. Les nouvelles informations de bail DHCP n'avoir une ligne, ce qui comprend le bon, le nom d' hôte en cours pour le 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.options host-name

Il y a un certain nombre de choses que je ne comprends pas à propos de tout cela.

Tout d'abord , je n'ai changé dhclient.confpour le serveur à aucun moment; il utilise la configuration par défaut. En fait, il contient textuellement la ligne suivante:

send host-name "<hostname>"

Donc ma première question est, comment diable a-t-il su envoyer le vrai nom d'hôte du serveur si la configuration n'est pas configurée pour l'envoyer en premier lieu?

Deuxièmement , pourquoi le premier bail DHCP (pour l'ancien réseau) ne l'a-t-il pas inclus 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 était d'exporter la machine VirtualBox d'origine en tant qu'OVF, puis de l'importer dans XenServer, alors comment a-t-il configuré comme par magie mon nom d'hôte via DHCP s'il n'est même pas configuré avec le nom d'hôte réel dans dhclient.conf?

Troisièmement : lorsque je cours hostname, le serveur revient fozzie.our.domain, mais dhclient.eth0.leasesdit que l'option de nom d'hôte a été définie sur fozzie(pas de domaine). Comment a-t-il su retirer le domaine?

Mike Spross
la source

Réponses:

11

OK, après avoir longtemps parcouru Internet et essayé de lire les manpages, j'ai surtout compris ce qui se passait:

[H] ui diable savait-il envoyer le vrai nom d'hôte du serveur si la configuration n'était pas configurée pour l'envoyer en premier lieu?

Apparemment, send host-name "<hostname>"et plus spécifiquement <hostname>, a une signification particulière sur Ubuntu. Il indique dhclientd'envoyer le nom d'hôte actuel de votre machine au serveur DHCP. Notez que cela est sensible à la casse (c'est-à-dire que si vous tapez <HOSTNAME>, dhclient enverra le texte littéral <HOSTNAME>au serveur DHCP). Comme indiqué ici et ici , cela fonctionne sur Ubuntu Feisty et au-dessus, faisant partie d'un correctif pour (ironiquement) résoudre un problème de dhclientnon-envoi du nom d'hôte de la machine par défaut.

[Pourquoi] le premier bail DHCP (pour l'ancien réseau) n'incluait-il pas l'option nom d'hôte, mais le deuxième bail DHCP (sur le nouveau réseau) l'a inclus, si je n'ai touché aucun des fichiers de configuration?

Cela semble simplement être dû au fait que tous les serveurs DHCP ne répèteront pas le nom d'hôte au client. Hier, nous utilisions toujours un routeur ClarkConnect basé sur Linux comme serveur DHCP, qui renvoyait le nom d'hôte à chaque client. Aujourd'hui, nous avons désactivé DHCP sur ce serveur et sommes passés à l'utilisation du serveur DHCP intégré sur notre contrôleur de domaine principal. Nos baux DHCP du PDC ne comprennent pas non option host-nameplus, mais cela ne semble rien affecter. Les machines sont mises à jour dans DNS et elles peuvent toutes se retrouver par nom d'hôte.

Lorsque je cours hostname, le serveur revient fozzie.our.domain, mais dhclient.eth0.leasesdit que l'option de nom d'hôte a été définie sur fozzie(pas de domaine). Comment a-t-il su retirer le domaine?

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

Quelqu'un a-t-il des corrections ou des clarifications à ajouter à cette réponse? Cela semble toujours un peu "ondulé", donc je ne l'accepterai pas tel quel.

Mike Spross
la source