为什么 dig 没有使用正确的 IPv6 DNS 服务器?

为什么 dig 没有使用正确的 IPv6 DNS 服务器?

我的 DNS 配置如下:

$ systemd-resolve --status
Global
         DNS Servers: 192.168.1.1
          DNS Domain: house.lan
...
Link 2 (enp11s0)
      Current Scopes: DNS LLMNR/IPv4 LLMNR/IPv6
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
         DNS Servers: 192.168.1.1
                      2001:xxxx:xxxx:xxxx::1
          DNS Domain: house.lan

enp11s0由 NetworkManager 管理。DNS 服务器 IP 都是正确的,并且是路由器的 LAN IP。我不确定为什么只有 v4 IP 是全局的。

当我专门使用 v6 IP 挖一个主机时,它的工作原理是:

$ dig -6 @2001:xxxx:xxxx:xxxx::1 google.com AAAA

; <<>> DiG 9.10.3-P4-Ubuntu <<>> -6 @2001:xxxx:xxxx:xxxx::1 google.com AAAA
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19546
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;google.com.            IN  AAAA

;; ANSWER SECTION:
google.com.     99  IN  AAAA    2607:f8b0:4009:810::200e

;; Query time: 18 msec
;; SERVER: 2001:xxxx:xxxx:xxxx::1#53(2001:xxxx:xxxx:xxxx::1)
;; WHEN: Mon Aug 21 19:05:03 EDT 2017
;; MSG SIZE  rcvd: 67

但是,尝试使用默认值会导致超时:

$ dig -6 google.com AAAA

; <<>> DiG 9.10.3-P4-Ubuntu <<>> -6 google.com AAAA
;; global options: +cmd
;; connection timed out; no servers could be reached

发生了什么?v6 服务器是否需要以某种方式标记为全局?

答案1

这不起作用,因为 /etc/resolv.conf 中没有定义 IPv6 名称服务器。对于 Ubuntu 16.04.3,此文件中的唯一条目是

nameserver 127.0.1.1

也许还有一个搜索域。

由于“dig -6”仅使用 IPv6,因此根本没有名称服务器可以询问。一个简单的解决方法是让在本地主机 IPv4 上监听端口 53 的 dnsmasqd 也监听 IPv6 本地主机地址“::1/128”,并将 IPv6 本地主机地址也添加到 /etc/resolv.conf。

相关内容