
DHCP/DNS ソリューションの設定、具体的には、クライアントがルーターによって提供される DNS サービスを使用するようにするのに問題があります。
私はスイッチ(インターフェース)として設定した「EdgeRouter」とswitch0
、DHCPサーバー、およびDHCPホスト名の解決を提供するDnsmasqサービスを持っています。このガイド
# 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
私には 2 つのクライアントがあります。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
dig に対する同様の応答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 サーバー アドレスとの間で転送しているかどうかを確認する方法がわかりません。
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 側は機能していません。
これを理解するための最善の次のステップは何でしょうか?