¿Cómo sabe mi servidor DHCP el nombre de host de mi máquina cuando no definí uno en dhclient.conf?

12

Estoy tratando de resolver algunos problemas de DNS funky relacionados con DHCP en nuestra red (sospecho que tenemos más de un servidor DHCP ejecutándose en este momento), y mientras intentaba resolverlo, noté algo extraño con un nuevo servidor. preparar.

El servidor en cuestión es una máquina virtual Xen que ejecuta Ubuntu 9.10 Server. El servidor físico Xen también está en nuestra red, y cuando inicié la VM por primera vez en Xen (lo importé de una VM Virtualbox local que se ejecutaba en mi máquina, donde se ejecutaba en una red diferente), obtuvo un Arrendamiento de DHCP de nuestra red de oficinas y todo estuvo bien.

Revisé el dhclient.eth0.leasesarchivo para ver qué se configuró y vi que el antiguo contrato de DHCP de la red anterior en la que estaba la máquina todavía estaba allí, así como el nuevo contrato de DHCP para la red de la oficina a la que está conectado actualmente. Hay dos cosas que noté de inmediato:

  1. La información anterior de arrendamiento de DHCP de la red anterior no tiene una options host-namelínea, lo que supongo que la versión original de VirtualBox de la VM no estaba enviando esta opción al servidor DHCP. ¿O significa esto que el antiguo servidor DHCP no admitía la opción de nombre de host DHCP? Estaba usando el servidor DHCP interno de VirualBox en ese momento ...

  2. La nueva información de concesión DHCP hace tener una options host-namelínea, que incluye el nombre de host correcta, actual para el servidor ( "Fozzie"). Si entiendo correctamente, esto significa que el servidor envió su nombre de host al servidor DHCP en nuestra red.

Hay varias cosas que no entiendo sobre todo esto.

Primero , no cambié dhclient.confel servidor en ningún momento; está usando la configuración predeterminada. De hecho, contiene la siguiente línea literalmente:

send host-name "<hostname>"

Entonces, mi primera pregunta es, ¿cómo demonios sabía enviar el nombre de host real del servidor si la configuración no está configurada para enviarlo en primer lugar?

En segundo lugar , ¿por qué no se incluyó el primer contrato de arrendamiento de DHCP (para la red anterior) option host-name, pero el segundo contrato de arrendamiento de DHCP (en la nueva red) sí lo incluyó, si no he tocado ninguno de los archivos de configuración?

Todo lo que hice fue exportar la máquina VirtualBox original como un OVF y luego importarla a XenServer, entonces, ¿cómo configuró mágicamente mi nombre de host a través de DHCP si ni siquiera está configurado con el nombre de host real dhclient.conf?

Tercero : cuando ejecuto hostname, el servidor regresa fozzie.our.domain, pero dhclient.eth0.leasesdice que la opción de nombre de host se configuró en fozzie(sin dominio). ¿Cómo supo quitar el dominio?

Mike Spross
fuente

Respuestas:

11

OK, después de mucho tiempo buscando en Internet y tratando de leer manpáginas, descubrí lo que está sucediendo:

¿Qué demonios sabía enviar el nombre de host real del servidor si la configuración no está configurada para enviarlo en primer lugar?

Aparentemente, send host-name "<hostname>"y más específicamente <hostname>, tiene un significado especial en Ubuntu. Le indica dhclientque envíe el nombre de host actual de su máquina al servidor DHCP. Tenga en cuenta que esto distingue entre mayúsculas y minúsculas (es decir, si escribe <HOSTNAME>, dhclient enviará el texto literal <HOSTNAME>al servidor DHCP). Como se informó aquí y aquí , esto funciona en Ubuntu Feisty y superior, siendo parte de un parche para (irónicamente) solucionar un problema con el dhclientno enviar el nombre de host de la máquina de forma predeterminada.

¿Por qué la primera concesión de DHCP (para la red anterior) no incluyó el nombre de host de la opción, pero la segunda concesión de DHCP (en la nueva red) sí la incluyó, si no he tocado ninguno de los archivos de configuración?

Esto parece ser porque no todos los servidores DHCP harán eco del nombre de host al cliente. Ayer seguimos usando un enrutador ClarkConnect basado en Linux como nuestro servidor DHCP, que devolvió el nombre de host a cada cliente. Hoy deshabilitamos DHCP en ese servidor y pasamos a usar el servidor DHCP incorporado en nuestro controlador de dominio principal. Nuestros arrendamientos DHCP del PDC tampoco incluyen option host-name, pero no parece afectar nada. Las máquinas se actualizan en DNS, y todas pueden encontrarse entre sí por nombre de host.

Cuando ejecuto hostname, el servidor regresa fozzie.our.domain, pero dhclient.eth0.leasesdice que la opción de nombre de host se configuró en fozzie(sin dominio). ¿Cómo supo quitar el dominio?

Este no soy yo entendiendo completamente las complejidades de DHCP. Nuestro servidor DHCP se configuró para configurar a todos nuestros clientes con nuestro dominio. Supongo que el servidor DHCP fue lo suficientemente inteligente como para eliminar la parte del nombre de dominio del nombre de host enviado por el cliente.

¿Alguien tiene alguna corrección o aclaración para agregar a esta respuesta? Todavía parece un poco "ondulado a mano", por lo que no lo aceptaré tal como está.

Mike Spross
fuente