
我正在嘗試在 SUSE 15 環境上啟用 IPv4 和 IPv6 堆疊。我已使用 /opt/vmware/share/vami/vami_set_network 將 IPv4 和 IPv6 位址指派給相同介面。 IPv4 和 IPv6 位址均可 ping 通。
現在我需要使用 dnsmasq 為 IPv4 和 IPv6 啟用 dns 解析。但是當我使用 dig 檢查 dns 伺服器狀態時,dig IPv4 位址成功,而 dig IPv6 位址失敗並被拒絕。
使用dnsmasq設定IPv6 dns伺服器有什麼要注意的嗎?
# dig 2001:db8:3333:4444:5555:6666:7777:200
; <<>> DiG 9.16.6 <<>> 2001:db8:3333:4444:5555:6666:7777:200
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 64764 <<<<<<<<<<<<<<<<<<<<<<
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;2001:db8:3333:4444:5555:6666:7777:200. IN A
;; Query time: 0 msec
;; SERVER: ::1#53(::1)
;; WHEN: Mon Sep 27 16:42:04 UTC 2021
;; MSG SIZE rcvd: 55
# dig 172.20.10.25
; <<>> DiG 9.16.6 <<>> 172.20.10.25
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60743
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;172.20.10.25. IN A
;; ANSWER SECTION:
172.20.10.25. 0 IN A 172.20.10.25
;; Query time: 0 msec
;; SERVER: ::1#53(::1)
;; WHEN: Mon Sep 27 16:45:54 UTC 2021
;; MSG SIZE rcvd: 57
另一個問題是,當我在/etc/hosts中新增ipv4和ipv6記錄時,只有ipv4記錄可以正確解析。
# cat /etc/hosts
192.168.10.10 ipv4-hostname.com
2001:db8:3333:4444:5555:6666:7777:200 ipv6-hostname.com
# dig @127.0.0.1 ipv4-hostname.com +short +time=15 +tries=3
192.168.10.10
# dig @127.0.0.1 ipv6-hostname.com +short +time=15 +tries=3
<<<<< empty result
dnsmasq 伺服器配置是預設的:
# cat /etc/dnsmasq.conf | grep -v '^#' | grep -v '^$'
conf-dir=/etc/dnsmasq.d/,*.conf
這是主機名稱挖掘結果,也被拒絕:
# dig ipv6-hostname.com
; <<>> DiG 9.16.6 <<>> ipv6-hostname.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 4887
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;ipv6-hostname.com. IN A
;; Query time: 0 msec
;; SERVER: ::1#53(::1)
;; WHEN: Tue Sep 28 08:24:45 UTC 2021
;; MSG SIZE rcvd: 30
連接埠狀態:
# netstat -lnp | grep dnsmasq
tcp 0 0 0.0.0.0:53 0.0.0.0:* LISTEN 19455/dnsmasq
tcp6 0 0 :::53 :::* LISTEN 19455/dnsmasq
udp 0 0 0.0.0.0:53 0.0.0.0:* 19455/dnsmasq
udp6 0 0 :::53 :::* 19455/dnsmasq
似乎 ipv4 和 ipv6 通配符都在環境中偵聽。不知道為什麼 ipv6 dig 一直被拒絕。
答案1
對於 IPv6 主機名稱解析,請記得在命令列參數中新增 AAAA:
dig @<server> <hostname> AAAA