Моя конфигурация 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. IP-адреса DNS-сервера оба правильны и являются IP-адресами LAN маршрутизатора. Я не уверен, почему только IP-адрес v4 является глобальным.
Когда я специально копаю хост, используя IP-адрес v6, он работает:
$ 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 быть каким-то образом обозначен глобальным?
Это не работает, потому что нет серверов имен IPv6, определенных в файле /etc/resolv.conf. В случае Ubuntu 16.04.3 единственной записью в этом файле является
nameserver 127.0.1.1
и, возможно, поисковый домен.
Поскольку «dig -6» использует только IPv6, просто нет сервера имен. Простое исправление будет состоять в том, чтобы позволить dnsmasqd, который прослушивает порт 53 на localhost IPv4, также прослушивать адрес localhost IPv6 «:: 1/128» и добавить адрес localhost IPv6 также в /etc/resolv.conf.
Это не работает, потому что нет серверов имен IPv6, определенных в файле /etc/resolv.conf. В случае Ubuntu 16.04.3 единственной записью в этом файле является
nameserver 127.0.1.1
и, возможно, поисковый домен.
Поскольку «dig -6» использует только IPv6, просто нет сервера имен. Простое исправление будет состоять в том, чтобы позволить dnsmasqd, который прослушивает порт 53 на localhost IPv4, также прослушивать адрес localhost IPv6 «:: 1/128» и добавить адрес localhost IPv6 также в /etc/resolv.conf.