Linux と Windows の両方でホスト名の検索にリモート DNS サーバーを使用しない DHCP クライアントをデバッグする方法

Linux と Windows の両方でホスト名の検索にリモート DNS サーバーを使用しない DHCP クライアントをデバッグする方法

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 側は機能していません。

これを理解するための最善の次のステップは何でしょうか?

関連情報