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 は、どちらか一方を選ぶだけの競合関係ではありません。役割が違います。
| 要素 | 主な役割 |
|---|---|
| RA | default router、on-link prefix、SLAAC 用 prefix、M/O flag、RDNSS/DNSSL などを通知する |
| SLAAC | RA の prefix 情報を使って、ホストが自分で IPv6 アドレスを生成する |
| DHCPv6 Stateless | DNS、NTP、その他オプションなど、アドレス以外の設定を配布する |
| DHCPv6 Stateful | IPv6 アドレスをサーバー側で管理して配布する |
したがって、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 Option | on-link prefix や SLAAC 用 prefix を示す |
| A flag | その prefix で SLAAC によるアドレス生成を許可するか |
| L flag | その prefix を on-link と見なすか |
| M flag | managed address configuration、つまり DHCPv6 によるアドレス管理を使うべきか |
| O flag | other configuration、つまりアドレス以外の情報を DHCPv6 から取得すべきか |
| RDNSS / DNSSL | DNS 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-64 | MAC アドレスから生成する。説明しやすいが、端末識別につながりやすい |
| Privacy Extension | 一時的なアドレスを使い、追跡されにくくする |
| Stable Privacy Address | prefix ごとに安定するが、MAC アドレスを直接露出しにくい |
| 手動固定アドレス | サーバーやネットワーク機器で管理しやすい |
サーバー、ネットワーク機器、監視対象では固定性が重要です。一方、クライアント端末ではプライバシーが重要です。IPv6 では、この違いを意識してアドレス生成方式を選ぶ必要があります。
DHCPv6 の役割
DHCPv6 は、IPv6 アドレスや追加設定をサーバー側で配布・管理する仕組みです。DHCPv4 に近い管理感覚を持てますが、IPv6 では default gateway を配らない点が大きく違います。
| DHCPv6 の種類 | 内容 |
|---|---|
| Stateless DHCPv6 | アドレスは SLAAC で生成し、DNS などの追加情報だけ DHCPv6 で取得する |
| Stateful DHCPv6 | IPv6 アドレスも DHCPv6 サーバーが管理して配布する |
| DHCPv6-PD | router に 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 DHCPv6 | RDNSS では足りない追加情報を配りたい場合 | アドレス管理は 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=0 | SLAAC 中心 | RA/SLAAC/RDNSS で完結する構成 |
| M=0, O=1 | アドレスは SLAAC、その他情報は DHCPv6 | Stateless DHCPv6 を併用する構成 |
| M=1 | アドレス管理に DHCPv6 を使う | Stateful DHCPv6 を使うが、default router は RA が必要 |
特に混在環境では、flag の理論値よりも、実際のクライアント実装がどう動くかを確認した方が安全です。
設計としての使い分け
私の観点では、RA と DHCPv6 の使い分けは次のようになります。
| 環境 | 推奨しやすい構成 |
|---|---|
| 一般的なクライアント LAN | RA + SLAAC + RDNSS |
| サーバー LAN | RA で経路を通知し、アドレスは固定または 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 委任、内部設計の独立性という複数の要求が重なっている、と捉えた方が理解しやすくなります。
参考
- RFC 4861 – Neighbor Discovery for IP version 6
- RFC 4862 – IPv6 Stateless Address Autoconfiguration
- RFC 8415 – Dynamic Host Configuration Protocol for IPv6
- RFC 8106 – IPv6 Router Advertisement Options for DNS Configuration
- IPv6 における NAT66 再考 – ULA、GUA、Prefix 設計主権、IPv4 NAT の設計抽象




