我が家ではDNSベースの広告ブロックシステムとして、Pi-holeが稼働しています。その名の通り、Raspberry Pi上でも動作する軽量なDNS adblockツールです。
ネットワーク構成やPi-holeの話は以前このブログでも触れたのですが、RDNSSを利用してPi-holeのIPv6アドレスを、DNSサーバーとしてクライアントに通知するのに、Pi-holeが内部で利用するdnsmasqの機能を使っていました。
なお、同じRaspberry Pi上にPi-holeのバックエンドとしてsambaとbind9を利用したドメインコントローラーが構築されており、Pi-holeはこのドメインコントローラーに名前解決の問い合わせをする構成になっています。
というのも、本来はルーターとして使っているYAMAHAのNVR510からPi-holeのIPv6アドレスをDNSサーバーのアドレスとして通知できれば良いのですが、それができない(指定する任意のIPV6アドレスをクライアントに通知することができない)のも一因でした。
設定が悪いのか、クライアントがIPv6アドレスを3つ取得するようになってしまっていたりもしたので、できればルーターから任意のIPv6 DNSサーバーアドレスをRDNSSで降らせられたらいいなと思っていました。(DHCPv6はAndroidが非対応のため、SLAAC/RDNSSで)
ファームウェアアップデートで任意のDNSサーバー IPv6アドレスを指定可能に
が、この状況が大きく一変します。
2022年4月18日に公開されたRev.15.01.23(その後すぐ21日に公開停止されたことから、実際には同5月17日に公開されたRev.15.01.24)から、ルーター広告で配布するRDNSSオプションで、任意のDNSサーバーのアドレスの指定が可能になったのです。
[7] 以下のコマンドで、ルーター広告で配布するRDNSSオプションに任意のDNSサーバー
アドレスを指定できるようにした。
- ipv6 nd ra-rdnssコマンド
- ipv6 rtadv sendコマンド
○ルーター広告で配布するRDNSSオプション の定義
[書式]
ipv6 nd ra-rdnss RDNSS_ID DNS_IPV6_ADDRESS [DNS_IPV6_ADDRESS...][OPTION=VALUE]
no ipv6 nd ra-rdnss RDNSS_ID [...]
[設定値及び初期値]
・RDNSS_ID
[設定値] : RDNSSオプション番号(1..21474836)
[初期値] : -
・DNS_IPV6_ADDRESS
[設定値] :
-----------------------------------------------------------------
設定値 説明
-----------------------------------------------------------------
dhcpv6 DHCPv6で通知されたDNSサーバーのIPv6アドレス
ipv6_address 任意のDNSサーバーのIPv6アドレス
-----------------------------------------------------------------
[初期値] : -
・OPTION=VALUE : NAME=VALUE の列
[設定値] :
-----------------------------------------------------------------
NAME VALUE 説明
-----------------------------------------------------------------
lifetime 秒数、infinity DNSサーバーの有効時間 (0..4294967294 秒)
infinity はDNSサーバーを無期限で使用で
きることを示す。
-----------------------------------------------------------------
○[初期値] :
・lifetime = ipv6 rtadv sendコマンドのルーター広告を送信する
最大間隔(max-rtr-adv-interval)の3倍
[説明]
ルーター広告で配布するRDNSSオプションを定義する。実際に広告するためには、
ipv6 rtadv send コマンドの RDNSSオプションの設定が必要である。
DNS_IPV6_ADDRESS は最大3つまで指定可能。
○ルーター広告の送信の制御
[書式]
ipv6 INTERFACE rtadv send PREFIX_ID [PREFIX_ID...] [OPTION=VALUE...]
ipv6 pp rtadv send PREFIX_ID [PREFIX_ID...] [OPTION=VALUE...]
no ipv6 INTERFACE rtadv send [...]
no ipv6 pp rtadv send [...]
[設定値及び初期値]
・INTERFACE
[設定値] : LANインターフェース名
[初期値] : -
・PREFIX_ID
[設定値] : プレフィックス番号
[初期値] : -
・OPTION=VALUE : NAME=VALUEの列
[設定値] :
--------------------------------------------------------------------
NAME VALUE 説明
--------------------------------------------------------------------
m_flag on、off managed address
configuration フラグ。
ルーター広告による自動設定
とは別に、DHCP6 に代表され
るルーター広告以外の手段に
よるアドレス自動設定をホス
トに許可させるか否かの設定。
o_flag on、off other stateful
configuration フラグ。
ルーター広告以外の手段によ
り IPv6 アドレス以外のオプ
ション情報をホストに自動的
に取得させるか否かの設定。
max-rtr-adv-interval 秒数 ルーター広告を送信する最大
間隔 (4-1,800 秒 )
min-rtr-adv-interval 秒数 ルーター広告を送信する最小
間隔 (3-1,350 秒 )
adv-default-lifetime 秒数 ルーター広告によって設定さ
れる端末のデフォルト経路の
有効時間 (0-9,000 秒 )
adv-reachable-time ミリ秒数 ルーター広告を受信した端末
が、ノード間で確認した到達
性の有効時間(0-3,600,000
ミリ秒 )
adv-retrans-time ミリ秒数 ルーター広告を再送する間隔
(0-4,294,967,295 ミリ秒 )
adv-cur-hop-limit ホップ数 ルーター広告の限界ホップ数
(0-255)
mtu auto、off、バイト数 ルーター広告に MTU オプショ
ンを含めるか否かと、含める
場合の値の設定。
auto の場合はインタフェー
スの MTU を採用する。
rdnss rdnss、off、dhcpv6、 ルーター広告に RDNSS オプ
RDNSSオプション番号★ ションを含めるか否かと、
含める場合の値の設定。
rdnss の場合はRAのRDNSSオ
プションで割り当てられたサー
バー群を通知する。
--------------------------------------------------------------------
[初期値] :
・m_flag = off
・o_flag = off
・max-rtr-adv-interval = 600
・min-rtr-adv-interval = 200
・adv-default-lifetime = 1800
・adv-reachable-time = 0
・adv-retrans-time = 0
・adv-cur-hop-limit = 64
・mtu = auto
・rdnss = rdnss
[説明]
インタフェースごとにルーター広告の送信を制御する。送信されるプレフィック
スとして、ipv6 prefix コマンドで設定されたものが用いられる。
また、オプションとして m_flag および o_flag を利用して、管理するホストが
ルーター広告以外の自動設定情報をどのように解釈するかを設定することができ
る。
オプションでは、送信するルーター広告の送信間隔や、ルーター広告に含まれる
情報の設定を行うこともできる。
具体的には、以下のように設定します。
ipv6 nd ra-rdnss 1 [DNSサーバーのIPv6アドレス]
ipv6 lan1 rtadv send 1 rdnss=1
YAMAHAルーターを利用していると、IPv6について内部DNSサーバーのアドレスをクライアントに配れなくて頭を悩ませていたネットワーク管理者の方もこれで救われそうです。自宅内でActive Directoryを利用している場合も、IPv6 DNSサーバーとしてドメインコントローラーを指定することができるようになります。
ただ2022年6月7日現在、手元の環境だとなぜかYAMAHAのルーターのRDNSSからはWindows 11がIPv6 DNSサーバーを取得してくれません。
Pi-holeを使ったIPv6 SLAAC/RDNSSだとWindows 11でも受け取れていたので、この辺りは悩ましいところです。
ただ、Windows 11の問題さえ解決できれば、YAMAHAルーターでRDNSSによる任意のIPv6アドレス通知に対応したことは、Android含めて収容するSMBのネットワーク管理者にとっては大きな福音ですね。