X
    Categories: 未分類

YAMAHAルーターで任意のIPv6 DNSサーバーアドレスをRDNSSで通知できるようになった!

我が家では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のネットワーク管理者にとっては大きな福音ですね。

ださっち: