Aktualisieren Sie den Hostnamen vom Debian-Computer mit DHCP auf einen Windows 2008-DNS-Server

9

Ich habe eine XenServer-Installation mit Debian (Lenny) -Maschinen, die täglich mit einem Skript erstellt wird, das die Maschine aus einer Vorlage erstellt und ihr einen neuen Hostnamen zuweist.

Unser Netzwerk verfügt über eine Fortinet 60B-Appliance, die als DHCP-Server fungiert, und einen Microsoft Windows 2008 DC, der auch als DNS-Server dient. Ich möchte die VM-Vorlage so konfigurieren, dass ihr Hostname an den DNS-Server gesendet wird, wenn er eine geleaste IP von DHCP erhält.

Derzeit weist Fortinet den DC zusammen mit der IP-Lease als DNS-Server zu. Ich habe versucht, /etc/dhcp3/dhclient.conf eine Zeile "send host-name" my-host-name "'hinzuzufügen, aber im DC wird nichts aktualisiert.

Elektrischer Mönch
quelle
2
Haben Sie Ihren Windows-DNS-Server so eingestellt, dass nicht authentifizierte Updates zulässig sind?
Zoredache

Antworten:

2

Sie möchten also, dass Ihr Client seinen Hostnamen an Ihren DNS-Server sendet?

Dies funktioniert gut mit Windows-Clients, aber für Linux-Computer würde ich umgekehrt vorgehen: Stellen Sie Ihre Clients so ein, dass sie den DHCP-Server nach einer IP und einem Hostnamen fragen . Mit der Option "Hostnamen anfordern" fordert dhclient den DHCP-Server auf, einen Hostnamen zusammen mit der IP-Adresse zu senden, und legt dann den Hostnamen der VM fest.

Natürlich müssen Sie in Ihrem DNS einen Hostnamen für jede IP-Adresse im DHCP-Bereich vorbereiten.

Auf diese Weise haben Sie kein Problem mit dem DNS-Cache / der Weitergabeverzögerung und möglicherweise einen zentralen Ort mit allen IP- und Hostnamen - Ihren DNS-Server.

Ich weiß nicht, ob der DHCP-Server Ihrer Appliance das Senden von Hostnamen unterstützt - die meisten tun dies, aber ich denke, das ist der einfachste Weg für Linux-Clients.

Hinweis: Wenn Sie Ihren DHCP-Server so konfiguriert haben, dass derselbe Computer immer dieselbe IP-Adresse erhält (z. B. unter Verwendung der Mac-Adresse), erhält er natürlich auch immer denselben Hostnamen. Auf einigen DHCP-Servern können Sie in den Konfigurationsdateien direkt den Hostnamen anstelle der IP-Adresse verwenden.

user9437
quelle
Dies reicht nicht aus, da ich den Hostnamen in einem Skript festlege, das ihn (den Hostnamen) als Argument verwendet.
Electric Monk
2

Am Ende habe ich ein Skript verwendet, das nsupdate ausführt, nachdem die VM aus der Vorlage erstellt wurde und bei jedem Start.

Elektrischer Mönch
quelle
1

Dies ist meiner eigenen Frage etwas ähnlich . Schauen Sie sich meinen letzten Kommentar zu der einzigen Antwort an, die ich erhalten habe, wo ich auf dhclient.conf verweise.

John Gardeniers
quelle
Sie haben also einfach 'send host-name' zu dhclient.conf hinzugefügt? weil das bei mir nicht funktioniert hat
Electric Monk
Das war alles was ich tun musste. Die Manpage zeigt an, dass der FQDN erforderlich ist, aber in meinem Fall funktioniert das einfache Senden des Hostnamens sowohl mit Windows- als auch mit Linux-DHCP- und DNS-Systemen. Die Computer wurden vom DHCP-Dienst zu DNS hinzugefügt, sobald die DHCP-Lease des Clients freigegeben und neu erstellt wurde.
John Gardeniers
1

Ich habe zwei Dinge festgestellt, die erforderlich waren, damit ein Computer ohne Domänenbeitritt seine DNS-Einträge auf einem Windows DC \ DNS-Server registriert und aktualisiert:

  1. Konfigurieren Sie den DC \ DNS-Server so, dass sowohl sichere als auch unsichere dynamische DNS-Updates möglich sind.

  2. Konfigurieren Sie den vollqualifizierten Domänennamen des nicht domänenverbundenen Hosts so, dass er mit Ihrem AD \ DNS-Namen übereinstimmt: wie in host.domain.com

Joeqwerty
quelle
1

Hmm. Ich habe nie genau diese Konfiguration ausprobiert - ich habe dies mit Linux-Clients auf Windows-DHCP-Servern arbeiten lassen, aber in diesem Setup führt der DHCP-Server das Update durch. Ich bin mir nicht sicher, ob die Fortinet-Box dasselbe tut.

Sie können versuchen, den Client direkt mit dem DNS-Server zu kommunizieren. etwas wie:

send fqdn.server-update off;
send fqdn.encoded on;
send fqdn.fqdn "hostname.example.com.";  

in /etc/dhcp3/dhclient.conf. Überprüfen Sie man dhclient.conffür weitere Informationen. Ich musste zumindest einstellen send fqdn.fqdn, damit es in meinem Setup funktioniert.

Sie müssen auch unsichere Updates für Ihre DNS-Zonen aktivieren.

James
quelle
1

Viele mögen dies für offensichtlich halten, aber stellen Sie sicher, dass Sie Ihre eigene Anforderungsanweisung angeben, in dhclient.confder kein Hostname oder Domänenname angefordert wird . Die Standardeinstellung in meiner Distribution war:

request subnet-mask, broadcast-address, time-offset, routers,
        domain-name, domain-name-servers, host-name,
        netbios-name-servers, netbios-scope, interface-mtu;

Beachten Sie, dass dies sowohl Host- als auch Domänennamen vom Server anfordert, wodurch eine send host-name ...Direktive ungültig wird . Meine Anfrage- und Send-Host-Direktiven sehen folgendermaßen aus:

send host-name "leaf.node.domain.com";
request subnet-mask, broadcast-address, time-offset, routers,
        domain-name-servers,
        netbios-name-servers, netbios-scope, interface-mtu;
RobM
quelle