IPv6 には全員あてが無く、1 つのインターフェースが複数の住所を持つ
図 1〜5 の土台を 128 ビットの住所で描き直す。ブロードキャストが消え、ARP が NDP に替わり、PC が自分でアドレスを作る一方で、探し方と付け替え方は図 5 のまま変わらない
目次
図 1 から図 5 までで、もの、結びつき、通信フローの 3 層を IPv4 で組みました。図 20 では、同じ構成を 128 ビットの住所で描き直します。
10/24 の勉強会の予習なので、実機はまだ触っていません。素材は RFC と教科書サイトだけです。
変わるのは住所の長さだけではありません。全員あて(ブロードキャスト)が無くなり、ARP が NDP に替わり、1 つのインターフェースが複数のアドレスを持ちます。一方で、テーブルの探し方と MAC アドレスの付け替え方は図 5 のままです。
この連載は、ネットワークの言葉をもの(物理と論理)、結びつき(手動、自動、固定)、通信フロー(1 本の通信がこれらを順に通る流れ)の 3 層に置いています。
登場するもの
IPv6 アドレス
論理のもので、128 ビットです。16 ビットずつ 8 つに区切って 16 進で書きます。各ブロックの先頭の 0 は省略でき、連続する 0 のブロックは :: に縮められます。:: は 1 つのアドレスに 1 回だけ使えます。
種類は 4 つです。グローバルユニキャスト(2000::/3)、ユニークローカル(fc00::/7。組織の中だけで使う)、リンクローカル(fe80::/10。同じ線の中だけ)、マルチキャスト(ff00::/8)です。ブロードキャストは無く、その役目はマルチキャストが持ちます。
近隣キャッシュ
論理のもので、自動で育ちます。図 2 の ARP テーブルに当たる表です。これとは別に「外あての出口の一覧」を持ちます。IPv4 のデフォルトゲートウェイに当たるものです。
結びつき
インターフェースとリンクローカルの結びつきは自動です。インターフェースが使えるようになった時点で、fe80::/10 に後半(インターフェース ID)をつないで自分で作ります。使う前に重複していないかを確かめます(DAD)。
インターフェースとグローバルの結びつきは、ルータ広告(RA)の prefix に同じ後半をつないで自作するか(SLAAC)、手動で付けます。1 つのインターフェースが両方を同時に持ちます。
外あての出口とルータのリンクローカルの結びつきは自動で、RA の送信元アドレスを出口として覚えます。ルーティングテーブルの行と出口の結びつきは、自分のインターフェースの網が自動、その先が手動です。図 5 と同じです。
通信フロー
① PC-A はインターフェースが使えるようになった時点で、リンクローカル fe80::21a:2bff:fe00:a を自分で作ります。使う前に重複を確かめます。
② ルータ 1 が全ノードあて(ff02::1)にルータ広告を送ります。PC-A は prefix を受け取り、送信元 fe80::1 を外あての出口として覚えます。
③ PC-A は prefix 2001:db8:10::/64 に自分で作った後半をつないで、グローバルアドレスを作ります。これも重複を確かめてから使います。
④ 宛先 2001:db8:3::10 は自分の網の外なので、出口 fe80::1 へ送ります。その MAC アドレスは、近隣要請(要請ノードマルチキャストあて)と近隣広告(1 対 1)で引きます。
⑤ ルータ 1 はテーブルの手動の行でルータ 2 へ送ります。MAC アドレスを付け替え、ホップリミットを 1 減らします。
⑥ ルータ 2 はテーブルの自動の行で PC-C へ送ります。MAC アドレスを付け替え、ホップリミットをさらに 1 減らします。
要請ノードマルチキャストは、アドレスの下 24 ビットから作る宛先です。送る側は相手のアドレスから同じ計算で作ります。呼びかける範囲が「全員」から「下 24 ビットが一致する相手」に狭まりました。
近隣要請と近隣広告、ルータ要請とルータ広告は、いずれも ICMPv6 のメッセージです。つまり IPv6 パケットそのものです。図 2 で「ARP は IP パケットではない」と書いた点は、IPv6 では逆になります。
図 20
上が構成図とフローの矢印、その下にアドレスの種類、書き方、1 つのインターフェースが持つものと、2 台のルータのルーティングテーブルが並びます。いちばん下は各表の推移と、通信の中身の推移です。
図 1 の「ルータは自分のインターフェースの網の行を自動で持つ」は、そのまま成り立ちます。図 5 の「テーブルで一致する行を探す」「MAC アドレスを付け替える」「宛先と送信元は端から端まで変わらない」も同じです。IPv6 の表は IPv4 の表とは別に持ちます。
図 2 の ARP が NDP に替わり、要求のブロードキャストが近隣要請のマルチキャストになります。図 5 の「PC は宛先が網の外ならデフォルトゲートウェイへ」も変わりませんが、その出口の書き方がルータのリンクローカルになります。
図 7 の 3 つの問題は、IPv6 にしても解けません。アドレスが足りるので NAT(図 8)の出番は減りますが、途中のルータの経路を書けないことと、中身が読めることは別の話です。
未検証・注意
- PC-A の後半(インターフェース ID)は EUI-64 で作った形にしています。MAC アドレス 00:1a:2b:00:00:0a の真ん中に FFFE を挟んだ 21a:2bff:fe00:a で、リンクローカルもグローバルも同じ後半です。ただし EUI-64 は現在の既定ではありません。RFC 8064 §3 は RFC 7217 の方式を既定にすべきとし、リンク層アドレスを埋め込む方式は既定として使うべきでない(SHOULD NOT)としています(RFC 4291 を含む 14 本を更新)。
- グローバルユニキャストの 2000::/3 は、RFC 4291 §2.4 の表には出てきません。そこは「(everything else)」とだけ書かれています。この記事では出典を RFC 3587 §2・§3(現在 IANA が委譲しているのは 2000::/3)と IANA の登録簿にしています。
- ホップリミットの初期値はルータ広告が配ります。Cur Hop Limit に入った値をホストが既定として使い、0 なら「このルータは指定しない」の意味です(RFC 4861 4.2・6.3.4)。図の 64 は一例です。
- ルータのリンクローカルを fe80::1 と fe80::2 と手動で付けた形にしています。既定では自動で作られます。
- 2001:db8:10::/64 のような「2001:db8: の後に 10」は説明用の割り当て方で、実運用でのサブネット ID の切り方とは別の話です。本図のアドレスはすべて 2001:db8::/32(RFC 3849)の中です。
- DHCPv6(ステートフル)には触れていません。ルータ広告の M と O のフラグで DHCPv6 を併用する形は、DHCP を扱った図 17 の側で見るのが自然です。
- IPv6 の表と IPv4 の表を別に持つことに 1 行触れただけで、切り替えの方式(トンネル、変換)は扱っていません。
出典
- RFC 4291 IP Version 6 Addressing Architecture — ブロードキャストが無いこと(2)、表記と
::(2.2)、リンクローカル FE80::/10(2.5.6)、要請ノードマルチキャストと FF02::1・FF02::2(2.7.1)、§2.4 の表が「(everything else)」であること - RFC 4861 Neighbor Discovery for IP version 6 (IPv6) — NDP が ARP とルータ探索とリダイレクトをまとめたものであること、ルータを指すのにリンクローカルを使うこと(3.1)、Cur Hop Limit(4.2・6.3.4)、RS 133・RA 134・NS 135・NA 136 とホップリミット 255(4.1〜4.3・7.1.1)、近隣キャッシュ(5.1)
- RFC 4862 IPv6 Stateless Address Autoconfiguration — リンクローカルを先に作り、その後 RA の prefix でグローバルを作ること(4)、重複検出(5.4)、RS で RA を催促すること(5.5.1)
- RFC 8200 Internet Protocol, Version 6 (IPv6) Specification — ヘッダが 40 オクテット固定でホップリミットが転送のたびに 1 減ること(3)、分割するのは送信元だけであること(4.5)
- RFC 2464 Transmission of IPv6 Packets over Ethernet Networks — 種類の欄が 86DD であること(3)、マルチキャストが 33-33 で始まる MAC アドレスに写ること(7)
- RFC 4193 Unique Local IPv6 Unicast Addresses — FC00::/7 と、グローバルなインターネットへは広告しないこと
- RFC 3849 IPv6 Address Prefix Reserved for Documentation — 説明用の 2001:DB8::/32
- RFC 3587 IPv6 Global Unicast Address Format — 現在 IANA が委譲しているのは 2000::/3 であること(2・3)
- RFC 8064 Recommendation on Stable IPv6 Interface Identifiers — RFC 7217 を既定にすべきこと、リンク層アドレスを埋め込む方式を既定に使うべきでないこと(3)、更新対象 14 本に RFC 4291 を含むこと
- RFC 7217 A Method for Generating Semantically Opaque Interface Identifiers — サブネットごとに安定で、外から中身を推測できないインターフェース識別子
- IANA IPv6 Address Space — 2000::/3、fc00::/7、fe80::/10、ff00::/8 の割り当て
- インフラエキスパート: IPv6 - EUI-64 — MAC アドレスの真ん中に FFFE を挟んでインターフェース ID を作ること
- インフラエキスパート: IPv6 アドレス設定 — RS と RA、SLAAC と DHCPv6
関連
-
ネットワーク_INDEX — 連載の目次
-
連載の入口: ネットワーク_00_3層で言葉を置く(
/notes/nw-basics-00-three-layers) -
前の記事(図 19): ネットワーク_19_無線LAN(
/notes/nw-basics-19-wireless-lan) -
次の記事(図 21): ネットワーク_21_SDN(
/notes/nw-basics-21-sdn) -
ここで NDP に替わる ARP の動き: ネットワーク_02_同じネットワークの中(
/notes/nw-basics-02-same-network) -
探し方と付け替え方が変わらない元の 1 枚: ネットワーク_05_行きと帰り(
/notes/nw-basics-05-static-route) -
IPv6 にしても残る 3 つの問題: ネットワーク_07_インターネットを挟む(
/notes/nw-basics-07-internet)
この記事の校閲記録
誰が・いつ・どの版の・どの段落を・何の観点で見て、何と言ったかを全件そのまま出す(追記のみ・削除しない)。
段落 35 のうち出典つき 11・出典なし 24
v1 2 件
AIAI (claude-fable-5) が AI 確認未解決
出典 13 件を WebFetch で取得して確認した。IPv6 にブロードキャストが無いこと、:: が 1 つのアドレスに 1 回だけであること、リンクローカル FE80::/10、要請ノードマルチキャストと FF02::1・FF02::2 は RFC 4291 で確認した。NDP が ARP とルータ探索とリダイレクトをまとめたものであること、ルータを指すのにリンクローカルを使うこと、Cur Hop Limit の 0 が指定なしであること、RS 133・RA 134・NS 135・NA 136 がホップリミット 255 で送られ受信側も 255 を確かめること、近隣キャッシュは RFC 4861 で確認した。リンクローカルを先に作りその後 RA の prefix でグローバルを作ること、重複検出、RS で RA を催促することは RFC 4862 で確認した。ヘッダ 40 オクテット固定とホップリミットが転送のたびに 1 減ること、分割するのは送信元だけであることは RFC 8200 で確認した。Ethernet の種類の欄 86DD とマルチキャストが 33-33 で始まる MAC に写ることは RFC 2464 で確認した。FC00::/7 が組織の中だけで外へ広告しないことは RFC 4193、2001:DB8::/32 が説明用であることは RFC 3849 で確認した。グローバルユニキャストの 2000::/3 について、RFC 4291 §2.4 の表は『(everything else)』とだけ書いており 2000::/3 の記載が無いことを原文で確認したため、出典を RFC 3587 §2・§3 と IANA の登録簿にした。EUI-64 が現在の既定ではないこと(RFC 8064 §3 の SHOULD NOT と、RFC 4291 を含む 14 本を更新すること)と、代わりに既定とされる RFC 7217 も確認した。この記事は 10/24 の勉強会の予習で、実機の観察は含まない。ホップリミットの 64 が一例であること、ルータのリンクローカルを手動で付けた形にしたこと、DHCPv6 とデュアルスタックの切り替え方式を扱っていないことは未検証・注意に明記した。校正チェックリストを全項目回し、図の『口』を本文ではインターフェースに直した。守秘検査(人名、社名、会場名、地名、連絡先の機械検査)で該当なし
AIAI (claude-fable-5) が 編集未解決
公開前の校閲。「この 20 本目」を「図 20」に直した。連載の 3 層の型を再掲する 1 文が無く、この記事だけを開いた人に型が渡らないので、図 17〜19 と同じ文を導入の末尾に足した。関連を、図 8〜16 と同じ形に揃え、前の記事(図 19)と次の記事(図 21)への行と /notes/ のパスを足した。2000::/3 が RFC 4291 §2.4 の表に無いことを注で断り、出典を RFC 3587 と IANA にしている点、リンクローカルが EUI-64 と揃っている点は図と一致しているので、修正していない。
参考文献
- 二次RFC 4291 IP Version 6 Addressing Architecture参照 2026-09-14
- 二次RFC 4861 Neighbor Discovery for IP version 6 (IPv6)参照 2026-09-14
- 二次RFC 4862 IPv6 Stateless Address Autoconfiguration参照 2026-09-14
- 二次RFC 8200 Internet Protocol, Version 6 (IPv6) Specification参照 2026-09-14
- 二次RFC 2464 Transmission of IPv6 Packets over Ethernet Networks参照 2026-09-14
- 二次RFC 4193 Unique Local IPv6 Unicast Addresses参照 2026-09-14
- 二次RFC 3849 IPv6 Address Prefix Reserved for Documentation参照 2026-09-14
- 二次RFC 3587 IPv6 Global Unicast Address Format参照 2026-09-14
- 二次RFC 8064 Recommendation on Stable IPv6 Interface Identifiers参照 2026-09-14
- 二次RFC 7217 A Method for Generating Semantically Opaque Interface Identifiers参照 2026-09-14
- 二次IANA IPv6 Address Space参照 2026-09-14
- 二次インフラエキスパート: IPv6 - EUI-64参照 2026-09-14
- 二次インフラエキスパート: IPv6 アドレス設定参照 2026-09-14
更新履歴
- 連載のトピックを「ネットワーク基礎」から「ネットワーク」へ改名(32 本+目次。slug と URL は不変)
- 公開: 連載「ネットワーク基礎」図 8〜24 の記事 17 本と目次の更新
機械可読の記録
- article.json(記事の正本)
- reviews.json(校閲記録)
- blocks.json(ブロック一覧)