Ich habe ein kleines internes Netzwerk von physischen Maschinen, auf denen Hypervisoren ausgeführt werden, auf denen wiederum mehrere virtuelle KVM-Ubuntu-Maschinen ausgeführt werden. Wie würde ich einen internen dynamischen DNS-Server einrichten, damit sich die VM beim Ausführen eines Skripts zum Erstellen einer neuen virtuellen Maschine automatisch auf dem DNS-Server registrieren kann?
Bind scheint der Standard-DNS-Server für Linux zu sein, scheint jedoch für ein viel "statischeres" DNS-Modell ausgelegt zu sein. Eine dynamische Aktualisierung würde ein kompliziertes Skript erfordern, das SSH in den DNS-Server einbinden, Konfigurationsdateien bearbeiten und dann den Server neu starten müsste. Dies scheint keine sehr elegante Lösung zu sein. Gibt es bessere Möglichkeiten?
Ich habe eine ähnliche Frage gesehen , obwohl sie nach einer Lösung für eine öffentliche Umgebung bei Amazon fragen. Meine Server sind vollständig privat und ich möchte mich nicht auf einen externen VM-Host oder einen dynamischen DNS-Anbieter verlassen.
Antworten:
Tatsächlich ist Bind in der Lage, dynamische DNS-Aktualisierungen über RFC 2136-Standardnachrichten durchzuführen. Verwendung des nsupdate-Tools und der richtigen Konfiguration (nicht besonders schwierig, aber auch nicht ganz trivial).
Sie haben die Möglichkeit, diese Aktualisierungsnachrichten zu authentifizieren: 1) Nur bestimmte IPs dürfen Aktualisierungsnachrichten senden. 2a) TSIG-symmetrische Verschlüsselung 2b) SIG (0) -basierte Kryptografie mit öffentlichem Schlüssel oder eine Kombination aus 1 und 2 *. Anweisungen finden Sie unter anderem hier
Bei der persönlichen Implementierung stellte ich fest, dass das größte Problem darin bestand, benannten ausreichend Schreibrechte in / var / named zu erteilen. Es muss in der Lage sein, Dateien im Verzeichnis zu erstellen und über Schreibberechtigungen für die Dateien für die dynamischen Zonen zu verfügen.
Sig (0) -Schlüssel werden mit dem Dienstprogramm dnssec-keygen mit dem Namenstyp HOST und dem Schlüsseltyp KEY generiert. Zum Beispiel (möglicherweise nicht genau) (RSAMD5 deckt fast jedes Bindungspaket ab):
dnssec-keygen -a RSAMD5 -b 1024 -n HOST -f Schlüssel host.domain.tld
Die resultierende .key-Datei wird Ihrer Zonendatei hinzugefügt, die .private-Datei wird in der Befehlszeile mit nsupdate angegeben.
quelle
Ich habe die Bindung mit dynamischen Updates über nsupdate eingerichtet (wie von CarbonLifeForm beschrieben) und dies mit einem einfachen Perl-Skript kombiniert, das über eine verschlüsselte HTTPS-REST-Anfrage aufgerufen wird, die Kombination aus Subdomain und Passwort überprüft und dann nsupdate mit der IP der Anfrage aufruft.
Beispiel Update-Call von einem beliebigen Client (der automatisch die entsprechende Subdomain auf die öffentliche IP dieses Clients setzt)
Besuchen Sie einfach einen beliebigen Browser (in diesem Beispiel wurde https über Port 12345 verfügbar gemacht):
oder über die Kommandozeile (zB für Updates alle 15 Minuten per Cronjob):
Hier ist das Perl-Skript update-my-ip.pl:
quelle
Da Ihre Server alle privat sind, gehe ich davon aus, dass Sie die IP-Adressen nicht im größeren Internet veröffentlichen möchten. Dies vereinfacht die Dinge tatsächlich.
Ich weiß, dass ich für meine kleinen Netzwerke Erfolg mit dnsmasq hatte , einem absolut einfachen DNS- und DHCP-Server. Es sollte Clients ermöglichen, sich dem DNS-Server hinzuzufügen, wenn sie eine DHCP-Lease erhalten.
Lesen Sie weiter: /superuser/312515/dnsmasq-without-altering-etc-hosts-file-manually
quelle
Wie werden Ihren VMs IP-Adressen zugewiesen? Unter der Annahme von DHCP können Sie es so konfigurieren, dass BIND dynamisch aktualisiert wird. Hier ist die Ubuntu-Dokumentation zum Setup von dhcpd.conf.
http://manpages.ubuntu.com/manpages/lucid/man5/dhcpd.conf.5.html#contenttoc14
Auf der BIND-Seite gibt named.conf die lokale Zone an, die dynamisch aktualisiert werden soll. Sie würden Schlüssel verwenden, wie von user115014 beschrieben.
quelle
Generisch (und Windows-zentriert):
Installieren Sie einen DNS-Server, der Dynamic DNS unterstützt
Konfigurieren Sie die entsprechende DNS-Zone auf dem Server
Konfigurieren Sie den DNS-Server so, dass sichere und unsichere DNS-Updates für die Zone zulässig sind
Konfigurieren Sie die DNS-Clients mit einem DNS-Suffix, das der DNS-Zone entspricht
Konfigurieren Sie die DNS-Clients so, dass sie den DNS-Server für die Namensauflösung verwenden
Konfigurieren Sie die DNS-Clients für die Registrierung in DNS
quelle