dnsmasq, ohne die Datei / etc / hosts manuell zu ändern

11001
Sirex

Ich habe versucht, dnsmasq als kombinierten DNS- und DHCP-Server arbeiten zu lassen. Bis jetzt ist es ärgerlich ... Kurz gesagt, der DNS funktioniert gut für alles, was zu / etc / hosts hinzugefügt wird, und das dhcp funktioniert gut, aber das dhcp aktualisiert die DNS nicht mit Hostnamen-Informationen von Clients.

Das Ergebnis ist, dass ich einen Knoten nur über den Hostnamen anpingen kann, wenn seine Adresse bekannt ist. Dies bedeutet, dass eine statische Dhcp-Zuweisung gesetzt und der Hostname manuell in / etc / hosts gesetzt wird, was sehr ärgerlich ist und die Poit von Dhcp vereitelt . Es muss eine Möglichkeit geben, dass dnsmasq die hosts-Datei sicher aktualisiert

Die Clients verwenden keine fqdn's, wenn das wichtig ist, und ich denke, ich habe jede Kombination aus "expand-hosts" und "domain =" ausprobiert.

Folgendes ist der Inhalt der Dnsmasq-Konfigurationsdatei:

Domain benötigt gefälschte Priv Ausnahme-Schnittstelle = tun0  Dhcp-Bereich = 192.168.1.10.192.168.1.80.255.255.255.0,12h dhcp-leasefile = / var / lib / misc / dnsmasq.leases dhcp-autoritativ  Log-Abfragen log-dhcp 
5
Von was für Kunden sprechen Sie? Einige Clients senden keinen Namen oder zumindest nicht den Namen, den Sie erwarten würden. Zoredache vor 13 Jahren 0
Linux-Clients, jetzt kann ich das Senden eines Namens mit dhclient -H erzwingen, aber das scheint das Problem nicht zu beheben. Ich habe versucht, Hostname und Hostname.Domäne.com in -H übergeben Sirex vor 13 Jahren 0

2 Antworten auf die Frage

3
Keith

Der DHCP-Client muss einen Namen senden, damit der Name im DNS verfügbar ist. Andernfalls kann dnsmasq den Namen angeben, aber Sie müssen diesen zunächst in /etc/dnsmasq.conf oder in / etc / hosts konfigurieren.

Da es sich bei dnsmasq um einen DNS-Server handelt, benötigen Sie einen Domänennamen. Der domain-neededTeil erzwingt das. Legen Sie in Ihrer Konfiguration auch einen Domänennamen fest.

Also hier ist im Grunde was ich habe:

bogus-priv dhcp-authoritative dhcp-host=00:0c:29:1b:62:c6,host1,192.168.1.86,infinite dhcp-host=00:0c:29:f7:e6:7d,host2,192.168.1.89,infinite dhcp-host=00:1e:58:94:d2:5b,192.168.1.10,infinite dhcp-option=19,0 # option ip-forwarding off dhcp-option=27,1 dhcp-option=42,0.0.0.0 dhcp-option=44,192.168.1.10 # set netbios-over-TCP/IP nameserver(s) aka WINS server(s) dhcp-option=45,0.0.0.0 # netbios datagram distribution server dhcp-option=46,8 # netbios node type dhcp-option=6,0.0.0.0 dhcp-option-force=210,/ dhcp-option-force=211,30i dhcp-option=option:domain-search,example.com dhcp-option=option:router,192.168.1.1 dhcp-range=192.168.1.50,192.168.1.150,255.255.255.0,30d domain=example.com domain-needed enable-tftp expand-hosts interface=eth0 local=/dartworks.biz/ local=/localnet/ no-poll no-resolv server=<ISP DNS 1> server=<ISP DNS 2> 
2
Zoredache

Versuchen Sie, eine Domäne mit festzulegen domain example.org.

dnsmasq hat auch einen Haken, um ein Skript aufzurufen dhcp-script=foo.sh. Die an das Skript gesendeten Argumente lauten "add" oder "del", dann die MAC-Adresse, die IP-Adresse und schließlich der Hostname.

Es sollte relativ einfach sein, schnell ein Skript zu erstellen, das die Hosts-Datei aktualisiert.

Akzeptiere dies als Antwort. Es stellt sich heraus, dass a) ich den fqdn im Hostnamen angeben musste, der an den dhcp-Server übergeben wurde, und b) meine Test 2-Clients für virtuelle Maschinen mit MAC-Adressen kollidierten, was zu einigen unklaren Symptomen führte. Es ist unnötig zu erwähnen, dass es kein idealer Zeitpunkt für einen Mac-Zusammenstoß war, wenn auch dynamische DNS bekämpft wurden. Sirex vor 13 Jahren 0