dnsmasqを実行している私のDNSサーバーに問題があります。
これは次のとおりです/etc/dnsmasq.conf
(コメントアウトされていない行のみ)。
# If you don't want dnsmasq to read /etc/resolv.conf or any other
# file, getting its servers from this file instead (see below), then
# uncomment this.
no-resolv
# Add other name servers here, with domain specs if they are for
# non-public domains.
#server=/localnet/192.168.0.1
server=151.100.4.2
server=151.100.4.13
サーバーでクエリを解決しようとすると、すべてが正常です。
$ nslookup google.com
Server: 127.0.0.1
Address: 127.0.0.1#53
Non-authorative answer:
Name: google.com
Address: 142.250.184.78
Name: google.com
Address: 2a00:1450:4002:405::200e
ただし、ping google.com
ネットワーク上の他のホストで試してみると、DNSはクエリを受信しても応答しません。以下はtcpdump
DNS サーバーの出力です。
$ sudo tcpdump -n host 100.100.2.100
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
11:35:43.517755 IP 100.100.2.100.54996 > 100.100.1.2.53: 12795+ A? google.com. (28)
11:35:43.517844 IP 100.100.2.100.54996 > 100.100.1.2.53: 51213+ AAAA? google.com. (28)
11:35:48.522750 IP 100.100.2.100.54996 > 100.100.1.2.53: 12795+ A? google.com. (28)
11:35:48.522818 IP 100.100.2.100.54996 > 100.100.1.2.53: 51213+ AAAA? google.com. (28)
^C
4 packets captured
4 packets received by filter
0 packets dropped by kernel
他のホストはネットワークにアクセスできます。もちろん、8.8.8.8または他のIPにpingを送信します。問題は名前解決のみです。
同じ問題を抱えている人をオンラインで見つけましたが、何も見つかりませんでした。 DNSが機能しているように見え、クエリを受け取りますが応答しないため、この問題をどのように解決するのかわかりません。
答え1
dnsmasq
クエリは、アドレス127.0.0.1(同じコンピュータでのみ)からのみ応答できるためです。
読み取り: -i, --interface=
netstat -4panu
dnsmasqがリッスンしているポート/ iインターフェイスを見つけるには、rootとして確認してください。