IPv6まわりはいまだによくわかっていない筆者です。
RouterOSもIPv6には対応しているのですが、相変わらずNGNなIPv6に対応していないので、ひかり電話なしの環境では、RAは受け取れるのですが確認する手段がないという状態です。また、RA Proxy機能も実装されていないので、bridgeインターフェースをゴニョゴニョするしかないはずです。
どうしても無理なら、ひかり電話ありのHGWの環境にすると、DHCPv6が払いだされることになるので、これならばRouterOSは受け取れるようになります。
問題はinternal、LAN側の話なのですが、通常ならRAだけで問題ないと思いますが、DNSv6な情報もクライアントに渡したい場合は、若干設定が必要なようです。
ノードのIPv6アドレス設定方法 | RAは必要か? | RAにプレフィックス情報が必要か? | m-flag/o-flag | 付加情報(DNSサーバアドレスなど) |
---|---|---|---|---|
手動 | 不要 | – | – | 手動設定 |
SLAAC | 必要 | 必要 | off/off | 手動設定 |
ステートフルDHCPv6 | 必要 | 不要 | on/on | DHCPで配布 |
ステートレスDHCPv6 | 必要 | 必要 | off/on | DHCPで配布 |
参照:
クライアント側はというと、
Windows10 Creators updateからRAでDNSサーバの情報が払い出された場合、受け取れるようになっていたんですね・・・
参照:
とにかくDHCPv6サーバを用意してやることで、DNSv6情報を配布できるみたいです。
しかし、RouterOS側を確認してみると、そのままではRouterOSが保持するDNSv6情報配布できない場合があるようです。問題がない場合もあるみたいですが・・・
公式フォーラムを覗いていると、この問題そのものに言及している書き込みがありました。
どうやらDHCPv6オプションのrawデータそのものを編集して対応すればよいようです。
/ipv6 dhcp-server option add code=23 name=dnsrecursivenameserver value=0x20010db800000000000000000000000220010db8000000000000000000000003 add code=24 name=domainsearchlist value=0x076578616d706c65036e657400076578616d706c6503636f6d00
がっつり16進数に書き換えてありますね・・・ Webなどには、16進数の変換してくれるサイトもあるので、それらを活用するのも手段ですが、実はWikiにはこのへんについて説明があります。
Starting from v6.8 available data types for options are:
- 0xXXXX – hex string (works also in v5)
- ‘XXXXX’ – string (works also in v5 but without ‘ ‘ around the text)
- $(XXXXX) – variable (currently there are no variables for server)
- ‘10.10.10.10’ – IP address
- s’10.10.10.10′ – IP address converted to string
- ’10’ – decimal number
- s’10’ – decimal number converted to string
’’
シングルクォーテーションで囲ってあげると、良しなに変換してくれます。つまり以下のようにします。
/ipv6 dhcp-server option add code=23 name=dnsrecursivenameserver value='2001:db8::2''2001:db8::3' add code=24 name=domainsearchlist value='example.net'
あとはipv6 ndを以下のようにして、otherフラグを設定することで、ステートレスDHCPv6な環境を構築することができると思います。
/ipv6 nd set [ find default=yes ] other-configuration=yes
ちなみに筆者はDHCPv6サーバを設定しても、DNSv6情報が払い出されない動作がよくわからなくて、最近まで別にDHCPv6サーバを構築して、そちらから払い出すようにしていました。
今回の件を確認してから、再度RouterOSに任せるようにしたので、別に構築したDHCPv6サーバはシャットダウンしました。
今回の記事については、動作させることがメインになってしまったため、どうしてそのような動作をするのか、などが不勉強です。間違えているなどありましたらご指摘など頂けますと助かります。