BL1000HWのdhcp6が邪魔

ネットワーク

拙宅のネットワークは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をオフに出来る機能を入れて下さい。