
Ich habe einige Probleme beim Einrichten einer DHCP/DNS-Lösung, insbesondere damit, die Clients dazu zu bringen, den vom Router bereitgestellten DNS-Dienst zu verwenden.
Ich habe einen "EdgeRouter", den ich als Switch (Schnittstelle) eingerichtet habe switch0
, mit einem DHCP-Server sowie einem Dnsmasq-Dienst zur Auflösung von DHCP-Hostnamen gemäßdieser Leitfaden
# show service dhcp-server
disabled false
hostfile-update disable
shared-network-name my-dhcp {
authoritative disable
subnet 192.168.7.0/24 {
default-router 192.168.7.1
dns-server 192.168.7.1
domain-name local
lease 86400
start 192.168.7.100 {
stop 192.168.7.240
}
}
}
static-arp disable
use-dnsmasq enable
Ich habe zwei Clients – einen Ubuntu 18.04 Linux-Laptop (nennen Sie ihn ubuntu
) und einen Windows 10-Laptop (nennen Sie ihn windows
), die beide mit dem Switch verbunden sind und eine IP-Adresse über DHCP erhalten. Ich kann zwischen jedem Client und der Switch-Verwaltungsschnittstelle sowie untereinander einen vollständigen Ping durchführen. Ich habe auch die von jedem Client empfangenen DHCP-Einträge untersucht und überprüft, dass sie eine DNS-Serveradresse von 192.168.7.1 erhalten, was korrekt ist.
Auf dem Switch kann ich diese Leases bestätigen mit:
$ cat /var/run/dnsmasq-dhcp.leases
1420222142 ec:8e:b5:94:bd:8f 192.168.7.175 ubuntu *
1420219707 c8:d3:ff:6f:42:15 192.168.7.100 windows 01:c8:d3:ff:6f:42:15
Außerdem ubuntu
kann ich überprüfen, ob der DNS-Server auf dem Switch ordnungsgemäß funktioniert:
$ dig @192.168.7.1 ubuntu
; <<>> DiG 9.11.3-1ubuntu1.13-Ubuntu <<>> @192.168.7.1 ubuntu
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15747
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;ubuntu. IN A
;; ANSWER SECTION:
ubuntu. 43200 IN A 192.168.7.175
;; Query time: 0 msec
;; SERVER: 192.168.7.1#53(192.168.7.1)
;; WHEN: Tue Nov 03 12:21:15 NZDT 2020
;; MSG SIZE rcvd: 53
Ähnliche Antwort für eine Grabung mit windows
.
Wenn ich mich per SSH beim Router anmelde, ist dies möglich ping ubuntu
bzw. ping windows
funktioniert problemlos – der Name wird aufgelöst.
Das Problem scheint sich weder beim Linux- noch beim Windows-Laptop zu lösen, wenn ich von Windows aus pinge:
> ping ubuntu
Ping request could not find host ubuntu. Please check the name and try again.
Oder unter Linux:
$ ping windows
ping: windows: Name or service not known
Auch vom Linux-Client:
$ nslookup windows
Server: 127.0.0.53
Address: 127.0.0.53#53
** server can't find windows: SERVFAIL
So wie ich das verstehe, läuft auf meinem Linux-Laptop sein eigenes DNSMASQ und /etc/resolv.conf
sieht folgendermaßen aus:
nameserver 127.0.0.53
options edns0
search local
Ich bin nicht sicher, wie ich den DNSMASQ-Status überprüfen kann, um festzustellen, ob eine Weiterleitung zu/von der von DHCP erhaltenen DNS-Serveradresse erfolgt.
Auf der Windows-Seite habe ich keine Ahnung, wie ich das debuggen kann.
Und seltsamerweise funktionierte die Linux-Seite plötzlich, kurz nachdem ich dies geschrieben hatte:
$ nslookup windows
Server: 127.0.0.53
Address: 127.0.0.53#53
Non-authoritative answer:
Name: windows.local
Address: 192.168.7.100
Ich habe nichts geändert! Vielleicht hat sich nach 10-20 Minuten etwas von selbst ergeben. Aber die Windows-Seite funktioniert nicht.
Was wäre der beste nächste Schritt, um dies herauszufinden?