拙宅のネットワークはBL1000HW(auひかりのレンタルルーター)をゲートウェイ(HGW)として、その下に10GbEスイッチがあり、さらにその下に自宅鯖やらクライアントがある。
IPv4/v6デュアルスタックなので、サーバももちろんv4/v6両方のDHCP / DNSが立ててあり、特にウェブ・メールサーバはbindでviewを外向き・内向きで立てることで名前を解決している。外から正引きするとグローバルIPアドレスが、内から、つまり192.168.1.0/24から正引きすると192.168.1.0/24のいずれかのIPアドレスが返ってくると。
外からdig
$ dig rio.st
; <<>> DiG 9.11.5-P4-5.1+deb10u2-Debian <<>> rio.st
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60903
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1224
;; QUESTION SECTION:
;rio.st. IN A
;; ANSWER SECTION:
rio.st. 600 IN A 59.138.207.68
;; Query time: 251 msec
;; SERVER: 168.63.129.16#53(168.63.129.16)
;; WHEN: Fri Oct 29 07:01:07 UTC 2021
;; MSG SIZE rcvd: 51
内からdig
% dig rio.st
; <<>> DiG 9.10.6 <<>> rio.st
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4194
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 3
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;rio.st. IN A
;; ANSWER SECTION:
rio.st. 3600 IN A 192.168.1.2
;; AUTHORITY SECTION:
rio.st. 3600 IN NS www.rio.st.
;; ADDITIONAL SECTION:
www.rio.st. 3600 IN AAAA 240f:10a:da06:1:c206:c3ff:fea1:256c
www.rio.st. 3600 IN A 192.168.1.2
;; Query time: 0 msec
;; SERVER: 240f:10a:da06:1:c206:c3ff:fea1:256c#53(240f:10a:da06:1:c206:c3ff:fea1:256c)
;; WHEN: Fri Oct 29 16:01:42 JST 2021
;; MSG SIZE rcvd: 113
% dig @240f:10a:da06:1:c206:c3ff:fea1:256c rio.st AAAA
; <<>> DiG 9.10.6 <<>> @240f:10a:da06:1:c206:c3ff:fea1:256c rio.st AAAA
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20715
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 3
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;rio.st. IN AAAA
;; ANSWER SECTION:
rio.st. 3600 IN AAAA 240f:10a:da06:1:c206:c3ff:fea1:256c
;; AUTHORITY SECTION:
rio.st. 3600 IN NS www.rio.st.
;; ADDITIONAL SECTION:
www.rio.st. 3600 IN AAAA 240f:10a:da06:1:c206:c3ff:fea1:256c
www.rio.st. 3600 IN A 192.168.1.2
;; Query time: 0 msec
;; SERVER: 240f:10a:da06:1:c206:c3ff:fea1:256c#53(240f:10a:da06:1:c206:c3ff:fea1:256c)
;; WHEN: Fri Oct 29 16:07:47 JST 2021
;; MSG SIZE rcvd: 125
さてここで困ったことがあって、たまーに、クライアントから内向きの名前解決が出来なくなる。どういうことかというと、HGWはDHCPv4はオフに出来る一方で、DHCPv6機能はオフに出来ない。厳密には、RA/DHCPv6の両方をオフに出来ない。
すると、DHCPクライアントがリースを更新するタイミングによっては、
- IPv4アドレスとDNSv4:自作鯖のDHCPv4から提供され、自宅鯖がネームサーバになる
- IPv6アドレスとDNSv6:HGWのDHCPv6(RA)から提供、HGWがネームサーバになる
ので、クライアントがIPv6で喋ると「内向きのview」が解決されず、ウェブ・メールサーバに到達出来ない、という現象が起こる、と。
HGWにv6アドレスをdig、当然「知らんがな」が返ってくる。
% dig @240f:10a:da06:1:6ee4:daff:fe60:7535 rio.st AAAA
; <<>> DiG 9.10.6 <<>> @240f:10a:da06:1:6ee4:daff:fe60:7535 rio.st AAAA
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6469
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;rio.st. IN AAAA
;; AUTHORITY SECTION:
rio.st. 550 IN SOA www.rio.st. rio.rio.st. 2021102101 1200 7200 1209600 3600
;; Query time: 6 msec
;; SERVER: 240f:10a:da06:1:6ee4:daff:fe60:7535#53(240f:10a:da06:1:6ee4:daff:fe60:7535)
;; WHEN: Fri Oct 29 16:05:51 JST 2021
;; MSG SIZE rcvd: 79
おそらく、HGWを作っているNECかルータの提供元であるauは、
自宅にDHCPv6とかDNSv6なんて立ててるやつおらんだろ、DHCPv6/RAをオフにする機能も要らないやろ。
といった感じなのかもしれないけれど、いるんですよ、世の中にはそういう奇特なことをしている人がw
頼むから、完全にRA/DHCPv6をオフに出来る機能を入れて下さい。