手当たり次第に書くんだ

飽きっぽいのは本能

IPv6 Router Advertisement と DHCPv6 の役割整理

IPv6 の自動設定を考えるとき、Router Advertisement、SLAAC、DHCPv6 は混同されやすいです。以前は「SLAAC と DHCPv6 のどちらを使うか」という対立として理解していましたが、今は少し違う見方をしています。

IPv6 では、RA は単なるアドレス配布機構ではありません。RA は、link 上の IPv6 ホストに「この link で使う prefix」「default router」「on-link 情報」「必要に応じた DNS 情報」を伝える、IPv6 L3 接続の土台です。

一方で DHCPv6 は、IPv6 アドレスや追加設定を管理して配布する仕組みです。ただし、DHCPv6 は default gateway を配布しません。IPv6 の経路情報、とくに default router の発見は RA の役割です。

この記事の結論

RA と DHCPv6 は、どちらか一方を選ぶだけの競合関係ではありません。役割が違います。

要素主な役割
RAdefault router、on-link prefix、SLAAC 用 prefix、M/O flag、RDNSS/DNSSL などを通知する
SLAACRA の prefix 情報を使って、ホストが自分で IPv6 アドレスを生成する
DHCPv6 StatelessDNS、NTP、その他オプションなど、アドレス以外の設定を配布する
DHCPv6 StatefulIPv6 アドレスをサーバー側で管理して配布する

したがって、IPv6 の実運用では「RA vs DHCPv6」ではなく、RA を土台にして、どこまでを SLAAC に任せ、どこから DHCPv6 で管理するかを考える方が自然です。

RA が IPv6 接続の土台になる

IPv6 ホストは、Router Advertisement によって link 上の router を知ります。これは IPv4 の DHCP で default gateway を配る感覚とは違います。

DHCPv6 は default gateway を配布しません。そのため、stateful DHCPv6 でアドレスを配る場合でも、default router を知るために RA は必要です。

RA で通知される代表的な情報意味
Router Lifetimeその router を default router として扱えるか
Prefix Information Optionon-link prefix や SLAAC 用 prefix を示す
A flagその prefix で SLAAC によるアドレス生成を許可するか
L flagその prefix を on-link と見なすか
M flagmanaged address configuration、つまり DHCPv6 によるアドレス管理を使うべきか
O flagother configuration、つまりアドレス以外の情報を DHCPv6 から取得すべきか
RDNSS / DNSSLDNS resolver や search domain を RA で配布する

このため、RA は「SLAAC のためだけのもの」ではありません。IPv6 link の基本情報を配る制御プレーンです。

SLAAC は prefix 配布ではなくアドレス生成の仕組み

SLAAC は、RA で通知された prefix をもとに、ホスト自身が IPv6 アドレスを作る仕組みです。

重要なのは、SLAAC が prefix delegation ではないことです。RA は「この link ではこの prefix を使う」と通知しますが、配下の複数 L3 セグメントへ prefix を再分配する仕組みではありません。

この点は、IPv6 における NAT66 再考 で書いた prefix 設計主権の問題ともつながります。RA/SLAAC は link 単位の自動設定としては強力ですが、複数 L3 セグメント全体の prefix 設計問題を解決するものではありません。

インターフェース ID の考え方

IPv6 アドレスの下位 64bit は、一般にインターフェース ID として扱われます。SLAAC では、prefix とインターフェース ID を組み合わせて IPv6 アドレスを生成します。

古典的には、MAC アドレスから EUI-64 形式のインターフェース ID を作る説明がよく使われました。例えば、MAC アドレスを分割して ff:fe を挿入し、universal/local bit を反転する、という説明です。

ただし、現在の実運用では、EUI-64 だけを前提に考えるのは古くなっています。MAC アドレス由来のアドレスは端末識別につながりやすいため、privacy extension や stable privacy address のように、環境に応じて異なる生成方式が使われます。

方式特徴
EUI-64MAC アドレスから生成する。説明しやすいが、端末識別につながりやすい
Privacy Extension一時的なアドレスを使い、追跡されにくくする
Stable Privacy Addressprefix ごとに安定するが、MAC アドレスを直接露出しにくい
手動固定アドレスサーバーやネットワーク機器で管理しやすい

サーバー、ネットワーク機器、監視対象では固定性が重要です。一方、クライアント端末ではプライバシーが重要です。IPv6 では、この違いを意識してアドレス生成方式を選ぶ必要があります。

DHCPv6 の役割

DHCPv6 は、IPv6 アドレスや追加設定をサーバー側で配布・管理する仕組みです。DHCPv4 に近い管理感覚を持てますが、IPv6 では default gateway を配らない点が大きく違います。

DHCPv6 の種類内容
Stateless DHCPv6アドレスは SLAAC で生成し、DNS などの追加情報だけ DHCPv6 で取得する
Stateful DHCPv6IPv6 アドレスも DHCPv6 サーバーが管理して配布する
DHCPv6-PDrouter に prefix を委任し、配下 network へ再配布できるようにする

DHCPv6-PD は特に重要です。家庭や拠点の CPE、下位 router、自宅データセンターのように、配下に複数セグメントを持つ環境では、単なる RA/SLAAC ではなく prefix delegation が設計上の鍵になります。

RDNSS により SLAAC 単体でも DNS を配れる

以前は、SLAAC では DNS 情報を配れないため、DNS のために stateless DHCPv6 が必要だと説明されることがありました。

現在は、RA の RDNSS / DNSSL option により、DNS resolver や search domain を RA で配布できます。そのため、クライアント OS やネットワーク機器が対応している環境では、SLAAC + RDNSS だけでかなり完結します。

ただし、すべてのクライアントやネットワーク機器が同じ挙動をするわけではありません。混在環境では、RA、RDNSS、DHCPv6 の対応状況を実機で確認する必要があります。

組み合わせの整理

実運用で考えるべき組み合わせは、次のように整理できます。

構成使いどころ注意点
RA + SLAAC + RDNSS一般的な LAN、クライアント端末、シンプルな環境DNS option の対応状況を確認する
RA + SLAAC + Stateless DHCPv6RDNSS では足りない追加情報を配りたい場合アドレス管理は SLAAC 側に残る
RA + Stateful DHCPv6アドレスを DHCPv6 サーバーで管理したい場合それでも default router は RA で通知する
RA + DHCPv6-PD下位 router に prefix を委任したい場合/56、/60、/64 など委任 prefix の大きさが設計を左右する
ULA + GUA 併用内部正本を ULA にしつつ、外部通信には GUA を使いたい場合各 link に GUA /64 を配れる delegated prefix が必要

この整理で見ると、RA と DHCPv6 は競争相手ではありません。RA は link の IPv6 接続性を成立させる土台で、DHCPv6 は管理性や追加情報を補う仕組みです。

M flag / O flag を過信しない

RA には M flag と O flag があります。M flag は managed address configuration、O flag は other configuration を示します。

ただし、これらは「この network では DHCPv6 を使うべき」という通知であって、すべての OS が管理者の期待どおりに完全に同じ挙動をする保証ではありません。

flag意味設計上の見方
M=0, O=0SLAAC 中心RA/SLAAC/RDNSS で完結する構成
M=0, O=1アドレスは SLAAC、その他情報は DHCPv6Stateless DHCPv6 を併用する構成
M=1アドレス管理に DHCPv6 を使うStateful DHCPv6 を使うが、default router は RA が必要

特に混在環境では、flag の理論値よりも、実際のクライアント実装がどう動くかを確認した方が安全です。

設計としての使い分け

私の観点では、RA と DHCPv6 の使い分けは次のようになります。

環境推奨しやすい構成
一般的なクライアント LANRA + SLAAC + RDNSS
サーバー LANRA で経路を通知し、アドレスは固定または DHCPv6 で管理
ネットワーク機器管理 LAN固定アドレス、または管理しやすい DHCPv6。RA は経路通知に使う
下位 router を持つ拠点DHCPv6-PD を重視する
十分な prefix を持つ環境各 L3 セグメントへ GUA /64 を割り当て、RA/SLAAC を素直に使う
prefix 設計主権が弱い環境ULA、GUA 併用、NPTv6、NAT66、Proxy などの境界設計も検討する

重要なのは、IPv6 の自動設定を単なる端末アドレス配布として見ないことです。IPv6 では、link 単位の自動設定、default router、DNS、prefix delegation、内部設計主権が分かれて存在します。

参考
書籍
参考書籍

マスタリング TCP/IP IPv6 編 第2版

IPv6 の基本、Router Advertisement、SLAAC、DHCPv6 などを体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。

Amazon で見る

このリンクは Amazon アソシエイトリンクです。

まとめ

IPv6 Router Advertisement と DHCPv6 は、同じ目的を持つ競合機能ではありません。

RA は IPv6 link の制御プレーンです。default router、on-link prefix、SLAAC 用 prefix、M/O flag、RDNSS/DNSSL などを通知します。

DHCPv6 は、アドレスや追加情報を管理して配布する仕組みです。ただし、default gateway を配るものではありません。

したがって、IPv6 の設計では「SLAAC か DHCPv6 か」ではなく、RA を土台として、アドレス生成、アドレス管理、DNS 配布、prefix delegation、内部設計主権をどう分担させるかを考える必要があります。

この観点で見ると、IPv6 の自動設定は迷走しているというより、link-local な自動設定、管理型アドレス配布、prefix 委任、内部設計の独立性という複数の要求が重なっている、と捉えた方が理解しやすくなります。

参考

IPv6 Router Advertisement と DHCPv6 の役割整理

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る