TL

IPv6 のアドレス体系と近隣探索(NDP)

IPv6が「設定なしでつながる」理由が腑に落ちます。128ビットのアドレス構造・SLAAC自動構成・ARPを置き換えるNDPの内部動作までを原理から整理します。

応用IPv6NDPSLAACICMPv6アドレス設計最終更新: 2026-06-21
TL;DR要点だけ先に
  • 1.IPv6アドレスは128ビットで、上位64ビットの サブネットプレフィックス と下位64ビットの インターフェースID に分かれ、1インターフェースが複数アドレスを併用する。
  • 2.SLAAC は ルータが配る プレフィックス と自前のインターフェースID を結合し、DHCPサーバーなしで グローバルアドレス を自動生成する。
  • 3.ARPは廃止され、ICMPv6ベースの NDP が近隣探索・ルータ発見・アドレス重複検出(DAD)を ソリシテッドノードマルチキャスト で行う。

なぜアドレス枯渇だけの話ではないのか

IPv6 は単に「IPv4 のアドレスを 32ビット から 128ビット に増やした」規格ではありません。アドレス空間の拡大に合わせて、自動構成(SLAAC)、近隣探索(NDP)、ヘッダ設計までが作り直されています。とくに ARP が消えて NDP に統合された点は、L2 解決の仕組みそのものが変わったことを意味します。ここでは「なぜそう設計されたか」を内部動作から追います。

128ビットアドレスの内部構造

IPv6 アドレスは 128ビット を 16ビット ずつ8ブロックに区切り、16進数を : で表記します。先頭の 0 省略と、連続する全ゼロブロックを :: で1回だけ畳む規則があります。

決定的なのは、ユニキャストアドレスが原則 上位64ビット=サブネットプレフィックス下位64ビット=インターフェースID に二分される点です。IPv4 のように可変長でホスト部を削るのではなく、サブネットは原則 /64 固定 という前提が、後述する SLAAC を成立させます。

範囲ビット役割
グローバルルーティングプレフィックス上位48ビット程度ISPやAS単位の経路集約
サブネットID残りで /64 まで組織内のセグメント識別
インターフェースID下位64ビットセグメント内のホスト識別

アドレスは用途別にスコープが分かれます。プレフィックスを見れば種別が判別でき、fe80::/10リンクローカル(同一リンク限定・ルーティングされない)、ff00::/8マルチキャスト、グローバルユニキャストは典型的に 2000::/3 です。IPv6 ではブロードキャストが廃止され、その役割は マルチキャスト に置き換わりました。

1インターフェースに複数アドレスが当たり前

IPv6 ではリンクローカルとグローバルを最低でも同時に持ち、さらにプライバシー拡張の一時アドレスも併用します。「1インターフェース=1アドレス」という IPv4 的な前提は捨てる必要があります。

SLAAC:サーバーなしで住所が決まる

SLAAC(StateLess Address AutoConfiguration)は、DHCP サーバーに頼らずホスト自身がアドレスを生成する仕組みです。手順はおおむね次の通りです。

  1. 起動時、インターフェースID から リンクローカルアドレスfe80::/64 + ID)を仮生成する。
  2. そのアドレスが同一リンクで重複しないか DAD(重複アドレス検出) で確認する。
  3. ルータに RS(Router Solicitation) を送り、ルータが定期/応答で返す RA(Router Advertisement) から /64 プレフィックスを受け取る。
  4. 受け取ったプレフィックスと自分のインターフェースID を結合し、グローバルアドレス を構成する。

つまり「プレフィックスはネットワーク(ルータ)が、ホスト部はホスト自身が」決める分業です。インターフェースID は古くは MAC を 64ビット に拡張する EUI-64 で作りましたが、MAC からの追跡を避けるため、現在は RFC 7217 の安定ランダム IDRFC 8981 のプライバシー一時アドレス が主流です。

SLAAC と DHCPv6 は排他ではない

RA の M/O フラグで役割を分担できます。アドレス自体は SLAAC で配り、DNS サーバーなどの付加情報だけを DHCPv6(ステートレス)で配る、といった併用が一般的です。アドレス管理を集中させたい環境では DHCPv6 のステートフル運用も選べます。

NDP が ARP を置き換える仕組み

NDP(Neighbor Discovery Protocol)は ICMPv6 上に定義され、ARP・ICMP リダイレクト・ルータ発見を1つに束ねたものです。ARP がデータリンク層のブロードキャストに依存していたのに対し、NDP は ソリシテッドノードマルチキャスト を使う点が本質的な違いです。

宛先 IPv6 アドレスの下位24ビットを ff02::1:ff00:0/104 に連結したグループ宛てに送るため、リンク全体ではなく「下位24ビットが一致しうるごく少数のホスト」だけが割り込みを受けます。ブロードキャストで全端末を起こす ARP より、無関係なホストの負荷が小さく済みます。

項目ARP(IPv4)NDP(IPv6)
動作層L2(独立プロトコル)ICMPv6(L3メッセージ)
問い合わせ宛先ブロードキャストソリシテッドノードマルチキャスト
MAC解決Request / ReplyNS / NA(近隣要請・近隣広告)
ルータ発見ARPの範囲外RS / RA に統合
到達性確認なし(基本)NUD で双方向に追跡

主要メッセージは4種です。NS(Neighbor Solicitation) が「このアドレスの MAC は?」、NA(Neighbor Advertisement) がその応答で、ARP の Request/Reply に対応します。RS/RA はルータ発見とプレフィックス配布を担います。

NDP は到達性も管理します。NUD(近隣到達不能検出) は、上位層が「通信できている」と示すヒントやNSの再送で隣接エントリの状態を REACHABLE / STALE / PROBE と遷移させ、相手がいなくなった経路を能動的に検知します。ARP テーブルが基本「期限切れまで放置」だったのと比べ、状態機械として近隣を追う設計です。

DAD:自分のアドレスを名乗る前の確認

DAD は、生成したアドレスの 重複 を使い始める前に検出する手続きです。送信元アドレスを未指定(::)にした NS を、自分が使おうとしているアドレスのソリシテッドノードマルチキャスト宛てに送り、誰かが NA で「それは私が使っている」と返せば、そのアドレスは使えないと判断します。応答がなければ確定して使い始めます。IPv4 にも Gratuitous ARP がありましたが、DAD は標準手順として組み込まれている点が異なります。

NDP も“信じる”プロトコル

素の NDP は応答の正当性を検証しないため、偽の NA でキャッシュを汚す NDP スプーフィングや、偽 RA による経路乗っ取りが成立します。対策には RA Guard / ND Inspection や、暗号で近隣を保証する SEND(RFC 3971)があります。LAN 内を無条件に信用しない設計は IPv6 でも変わりません。

拡張ヘッダ:固定本体と数珠つなぎの設計

IPv6 の基本ヘッダは 40バイト固定 で、IPv4 にあった可変オプションやヘッダチェックサムを廃しました。固定長なのでルータがフィールド位置を計算なしで読め、転送が速くなります。オプション機能は 拡張ヘッダ を本体とペイロードの間に 数珠つなぎ にして表現します。

各ヘッダの Next Header フィールドが「次に何が続くか」を指し、Hop-by-Hop Options(経路上の全ルータが処理)→ RoutingFragment → 上位プロトコル(TCP/UDP)のように連鎖します。中継ルータは原則 Hop-by-Hop 以外を読み飛ばせるため、深い検査の負荷を端点に寄せられます。

注目すべきは フラグメント処理の移動 です。IPv4 はルータが途中で分割できましたが、IPv6 では 中継ルータは分割せず、必要な分割は送信元が Fragment 拡張ヘッダで行います。経路の最小 MTU は Path MTU Discovery で事前に求めるのが前提で、ここは MTU とフラグメンテーション の理解がそのまま効きます。

試験で問われる対比

「ARP は NDP に統合」「ブロードキャストは廃止しマルチキャストへ」「基本ヘッダは40バイト固定・チェックサムなし」「フラグメントは送信元のみ」「サブネットは原則 /64」。この5点は IPv6 設計思想の核で、資格試験でも頻出です。

つまずきポイント

  • /64 を割らない:プレフィックスを /64 より長くすると SLAAC が動かなくなる。サブネット境界は /64 に揃えるのが原則。
  • リンクローカルは必須:通信できないと感じても fe80:: は必ず存在する。NDP 自体がリンクローカルで動く。
  • ブロードキャストを探さない:IPv4 の 255.255.255.255 相当はない。「全ノード」は ff02::1 マルチキャストで表す。
  • チェックサムは上位層任せ:基本ヘッダにチェックサムがないぶん、UDP のチェックサムは IPv6 では省略不可になっている。

アドレス構造は IPアドレスとサブネット の延長線上にあり、L2 解決は ARP との対比で捉えると、IPv6 が「拡張」ではなく「再設計」であることが見えてきます。

# 自分のIPv6アドレス(リンクローカル/グローバル/一時)を確認
ip -6 addr show

# NDP の近隣キャッシュ(ARPテーブル相当)を表示
ip -6 neighbor show

# ルータ広告(RA)で受けたデフォルトゲートウェイを確認
ip -6 route show default

ネットワーク Article

IPv6 のアドレス体系と近隣探索(NDP)を実務で読む

TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。

解決すること

IPv6

比較で見る軸

難易度: advanced / カテゴリ: ネットワーク / タグ数: 5

導入後に効く点

SLAAC は ルータが配る プレフィックス と自前のインターフェースID を結合し、DHCPサーバーなしで グローバルアドレス を自動生成する。

先に潰すリスク

用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。

数字・仕様の読み方
難易度
advanced
カテゴリ
ネットワーク
タグ数
5

判断チェックリスト

  • 自社の用途が「IPv6 / NDP」に近いか確認する。
  • 強みである「IPv6アドレスは128ビットで、上位64ビットの サブネットプレフィックス と下位64ビットの インターフェースID に分かれ、1インターフェースが複数アドレスを併用する。」が本当に評価軸になるか確認する。
  • 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
  • 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
  • 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
  • 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。

次に確認する観点

IPv6NDPSLAACICMPv6アドレス設計IPv6NDPSLAAC
参考: 公式情報