
我在設定 DHCP/DNS 解決方案時遇到一些問題 - 具體來說,讓客戶端使用路由器提供的 DNS 服務。
我有一個“EdgeRouter”,我已將其設定為交換器(介面switch0
),帶有 DHCP 伺服器以及 Dnsmasq 服務,以根據以下內容提供 DHCP 主機名稱解析本指南
# 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
我有兩個客戶端 - 一台 Ubuntu 18.04 Linux 筆記型電腦(稱為ubuntu
)和一台 Windows 10 筆記型電腦(稱為windows
),兩者都連接到交換器並透過 DHCP 取得 IP 位址。我可以在每個客戶端和交換器管理介面之間以及彼此之間完全執行 ping 操作。我還檢查了每個用戶端收到的 DHCP 記錄,並驗證它們收到的 DNS 伺服器位址為 192.168.7.1,這是正確的。
在交換器上,我可以透過以下方式確認這些租約:
$ 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
我ubuntu
還可以驗證交換器上的 DNS 伺服器是否正常運作:
$ 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
與 的挖掘類似的響應windows
。
如果我 ssh 進入路由器,我可以ping ubuntu
或ping windows
沒有問題 - 名稱解析。
問題是當我從 Windows ping 時,Linux 和 Windows 筆記型電腦似乎都無法解決:
> ping ubuntu
Ping request could not find host ubuntu. Please check the name and try again.
或從Linux:
$ ping windows
ping: windows: Name or service not known
同樣來自 Linux 用戶端:
$ nslookup windows
Server: 127.0.0.53
Address: 127.0.0.53#53
** server can't find windows: SERVFAIL
據我了解,我的 Linux 筆記型電腦正在運行自己的 dnsmasq,/etc/resolv.conf
如下所示:
nameserver 127.0.0.53
options edns0
search local
我不知道如何檢查 dnsmasq 狀態以查看它是否轉送到 DHCP 取得的 DNS 伺服器位址/從 DHCP 取得的 DNS 伺服器位址轉送。
在 Windows 端我不知道如何調試這個。
另外,奇怪的是,就在寫完這篇文章後,Linux 方面的事情突然開始運作:
$ nslookup windows
Server: 127.0.0.53
Address: 127.0.0.53#53
Non-authoritative answer:
Name: windows.local
Address: 192.168.7.100
我什麼都沒改變!也許 10 到 20 分鐘內就能解決一些問題。但Windows端無法運作。
解決這個問題的最佳下一步是什麼?