IPv6アドレスの自動設定(SLAAC / DHCPv6)の仕組み

  • URLをコピーしました!

IPv6では、IPv4と異なり手動でのアドレス設定を最小限にできるよう設計されています。 特に注目すべきは、SLAAC(Stateless Address Autoconfiguration)DHCPv6による自動設定の仕組みです。 本記事では、この2つの違いや動作の流れを、ネットワーク構成例を交えながら丁寧に解説します。

目次

1. IPv6アドレス自動設定の全体像

IPv6のアドレス設定には、主に以下の3つの方法があります。

  • ① 手動設定:管理者が固定アドレスを設定
  • ② SLAAC(ステートレス自動設定):ルータからの情報をもとにPC自身が自動生成
  • ③ DHCPv6(ステートフル自動設定):サーバがアドレス情報を配布

IPv4ではDHCPサーバがアドレスを割り当てるのが一般的でしたが、IPv6ではルータ自身が「ネットワークプレフィックス」を配布できるため、DHCPサーバが不要なケースも多くあります。

2. SLAAC(Stateless Address Autoconfiguration)とは

SLAACは「ステートレスアドレス自動設定」と呼ばれる方式で、 クライアントが自らIPv6アドレスを作成する仕組みです。 ここで「ステートレス」とは、「サーバ側で状態(=アドレス情報)を保持しない」という意味です。

◆ SLAACの基本動作の流れ

  1. クライアント(PCなど)は起動時にリンクローカルアドレス(fe80::/64)を自動生成します。
  2. クライアントは、ネットワーク上のルータを見つけるためにRouter Solicitation(RS)メッセージを送信します。
  3. ルータは応答としてRouter Advertisement(RA)メッセージを送信します。ここには「ネットワークプレフィックス情報」が含まれています。
  4. クライアントはRAメッセージをもとに、自身のインターフェイスIDを組み合わせてIPv6アドレスを生成します。
# SLAACによる自動生成イメージ
ネットワークプレフィックス:2001:db8:100::/64
+
インターフェイスID:abcd:ef12:3456:7890
↓
IPv6アドレス:2001:db8:100::abcd:ef12:3456:7890

このように、ルータがネットワーク部分、クライアントがホスト部分を生成することで、自動的に有効なIPv6アドレスが構成されます。

◆ SLAACの特徴

  • DHCPサーバが不要で、構成がシンプル
  • ルータからのRAメッセージのみで設定可能
  • DNSサーバ情報は別途設定が必要(RAでDNS情報を送るNDオプションもあり)

3. DHCPv6とは(ステートフル方式)

DHCPv6は、IPv6版のDHCPであり、サーバがアドレスを集中管理してクライアントに配布します。 IPv4のDHCPと似ていますが、IPv6ではSLAACとの併用が可能です。

◆ DHCPv6の基本動作の流れ

  1. クライアントはRAメッセージの「Mフラグ(Managed Flag)」を確認します。
  2. M=1の場合、DHCPv6サーバに対してアドレス要求メッセージ(Solicit)を送信します。
  3. DHCPv6サーバはAdvertise → Request → Replyの一連のメッセージでアドレス情報を提供します。
# DHCPv6メッセージの流れ
Client → Server : Solicit
Server → Client : Advertise
Client → Server : Request
Server → Client : Reply

この仕組みにより、アドレスだけでなくDNSやNTPサーバなどの詳細設定も一元管理できます。

◆ DHCPv6の特徴

  • ネットワーク管理者がアドレスを集中管理できる
  • RAのMフラグ(Managed)で使用が決定される
  • 企業ネットワークなどでよく使用される

4. SLAACとDHCPv6の併用

実際のネットワークでは、SLAACとDHCPv6を併用するケースが多くあります。 たとえば以下のような使い分けです。

構成タイプ説明
SLAACのみ家庭用ルータなど、シンプルな構成で利用。DNSは手動設定。
SLAAC + DHCPv6(情報提供のみ)アドレスはSLAAC、DNSなどはDHCPv6から取得。
DHCPv6(フル管理)企業ネットワークなどで使用。アドレスもDNSもサーバから取得。

5. トラブルシューティングのポイント

IPv6自動設定がうまくいかない場合は、以下の点を確認しましょう。

  • ① RAメッセージが届いているか? → コマンド例:tcpdump -i eth0 icmp6 and 'ip6[40] == 134'
  • ② Mフラグ・Oフラグの設定は正しいか? → ルータ設定でipv6 nd managed-config-flagother-config-flagを確認
  • ③ DHCPv6サーバが応答しているか?journalctl -u dhcpd6systemctl status isc-dhcp-server6で確認

6. まとめ

  • SLAAC: ルータ広告(RA)に基づいて端末が自動生成(ステートレス)
  • DHCPv6: サーバがアドレスを配布・管理(ステートフル)
  • 両者は併用可能で、用途に応じて使い分けが行われる

IPv6の設計では、SLAACを基本としつつ、DNSなどの付加情報はDHCPv6で補う構成が主流です。 これらの理解は、ネットワーク設計やトラブル対応において非常に重要です。

目次