本文へスキップ
ipaddress.si

IPv6 のしくみ

16 進数で書く 128 ビット。これから接続するすべての機器に行き渡る広さがあります。その読み方を紹介します。

IPv6 アドレスを調べる

IPv6 が生まれた理由

IPv6(RFC 8200)は、IPv4 の 43 億個のアドレスが尽きることが明らかになった 1990 年代に設計されました。IPv6 アドレスは 128 ビット、つまり 2¹²⁸(約 3.4 × 10³⁸)個のアドレスがあります。大事なのは数の大きさではなく、どのネットワークも必要なだけのアドレス空間を得られ、すべての機器が再び世界中から到達可能なアドレスを持てる、つまり NAT が不要になる点です。

IPv6 は IPv4 のアップグレードではなく、2 つのプロトコルは並行して動きます(デュアルスタック)。現在、主要サービスへの通信のうち大きな、そして増え続ける割合が IPv6 を使っており、特にモバイル回線で顕著です。

表記:16 進数のグループ

IPv6 アドレスは、4 桁の 16 進数を 8 グループ、コロンで区切って書きます。

2001:0db8:0000:0000:0000:ff00:0042:8329

1 グループは 16 ビットです。16 進数の数字は 0〜9 と a〜f で、大文字・小文字は区別されませんが、慣例として小文字で書きます。

省略のルール

長いゼロの連続はよく現れるため、2 つの省略ルールがあり(RFC 4291)、RFC 5952 がその唯一正しい適用方法を定めています。

  1. 各グループの先頭のゼロを省く:0db8 → db8、0042 → 42、0000 → 0。
  2. 連続する 0 のグループを 1 か所だけ :: に置き換える:最も長い連続(同じ長さなら最初のもの)で、2 グループ以上にわたる場合に限ります。:: は 1 回しか使えません。2 回以上使うとアドレスが一意に決まらなくなるためです。

こうして 2001:0db8:0000:0000:0000:ff00:0042:8329 は 2001:db8::ff00:42:8329 になります。ループバックアドレス 0:0:0:0:0:0:0:1 は ::1、未指定アドレスは単に :: です。

下のエクスプローラーで任意のアドレスを試してみてください。完全表記と正規表記を並べて表示します。

完全表記

2001
ルーティング
0db8
ルーティング
0000
ルーティング
0000
サブネット
0000
インターフェース
ff00
インターフェース
0042
インターフェース
8329
インターフェース

省略表記

2001:db8::ff00:42:8329

スコープ: 特殊用途 · Documentation (2001:db8::/32)

プレフィックスと /64

IPv6 も IPv4 と同じく CIDR 表記を使います。典型的なグローバルユニキャストアドレスは次のように分かれます。

  • ルーティングプレフィックス(通常 /48 または /56)— プロバイダーが拠点に割り当てます。
  • サブネット ID — /64 までのビットで、拠点内のネットワークに番号を付けます。/48 には 65,536 個のサブネットがあります。
  • インターフェース ID(下位 64 ビット)— ネットワーク上の機器を識別します。

1 つの LAN はほぼ必ず /64 です。ステートレスアドレス自動設定(SLAAC)はこれを前提としており、機器は自分でインターフェース ID を選びます。現在はプライバシー保護のためランダムに生成され(RFC 8981)、定期的に変わります。

よく見かけるアドレスの種類

  • グローバルユニキャスト 2000::/3 — 公開されたルーティング可能なアドレス。
  • リンクローカル fe80::/10 — すべての IPv6 インターフェースが持ち、同じリンク内でのみ有効。近隣探索やルーティングプロトコルで使われます。
  • ユニークローカル fc00::/7(実際には fd00::/8)— プライベートアドレスに相当する IPv6 アドレス(RFC 4193)。
  • マルチキャスト ff00::/8 — IPv6 にはブロードキャストがなく、マルチキャストグループが代わりを務めます。
  • ループバック ::1 と未指定 ::。
  • IPv4 射影 ::ffff:0:0/96 — IPv6 のソフトウェアが IPv4 の相手を表す形式。例:::ffff:192.0.2.1。
  • ドキュメント用 2001:db8::/32 と 3fff::/20 — このページのような例示のためのアドレス。

特殊用途の IPv6 ブロック

予約されている IPv6 ブロックの一覧です。このサイトの分類機能が使う IANA のレジストリから生成しています。

ブロック用途参照グローバル到達可能
::/128Unspecified AddressRFC 4291いいえ
::1/128Loopback AddressRFC 4291いいえ
::ffff:0:0/96IPv4-mapped AddressRFC 4291いいえ
64:ff9b::/96IPv4-IPv6 Translation (NAT64)RFC 6052はい
64:ff9b:1::/48Local-use IPv4/IPv6 TranslationRFC 8215いいえ
100::/64Discard-Only Address BlockRFC 6666いいえ
2001::/32TEREDORFC 4380いいえ
2001:2::/48BenchmarkingRFC 5180いいえ
2001:db8::/32DocumentationRFC 3849いいえ
2001:10::/28Deprecated (ORCHID)RFC 4843いいえ
2001:20::/28ORCHIDv2RFC 7343はい
2002::/166to4RFC 3056いいえ
3fff::/20DocumentationRFC 9637いいえ
5f00::/16Segment Routing (SRv6) SIDsRFC 9602いいえ
fc00::/7Unique-LocalRFC 4193いいえ
fe80::/10Link-Local UnicastRFC 4291いいえ
ff00::/8MulticastRFC 4291いいえ

デュアルスタックと、このサイトが両方のアドレスを検出する方法

ブラウザは一度に 1 つのアドレスファミリーで接続します。両方が使える場合は通常 IPv6 を優先します(Happy Eyeballs、RFC 8305)。両方のアドレスを表示するために、ipaddress.si はブラウザから追加で 2 つのホスト名にアクセスします。1 つは IPv4(A)レコードだけ、もう 1 つは IPv6(AAAA)レコードだけを持つホスト名です。それぞれが見たアドレスが、そのファミリーでのあなたのアドレスです。IPv6 のリクエストが失敗した場合、あなたの接続では IPv6 が使えません。

よくある質問

IPv6 が使えるかどうかを確認するには?
このサイトのトップページを開いてください。メインのアドレスまたは IPv6 の行に IPv6 アドレスが表示されていれば、接続は IPv6 に対応しています。
IPv6 は IPv4 より速いですか?
本質的に速いわけではありませんが、速くなることはあります。IPv6 の通信はキャリアグレード NAT を経由しないことが多く、中継と状態管理によるボトルネックが 1 つ減るためです。
IPv6 でもファイアウォールは必要ですか?
必要です。NAT がないと機器は世界中からルーティング可能なアドレスを持つことになります。求められていない着信をブロックするステートフルファイアウォールが、NAT が暗黙的に果たしていた保護を担います。
IPv6 アドレスが頻繁に変わるのはなぜ?
プライバシー拡張(RFC 8981)が一時的なインターフェース ID を生成して入れ替えるため、ネットワークをまたいで機器を追跡されにくくなります。/64 のプレフィックスは通常変わりません。