ssecutils
Network / Browser-native guide

IPv4 と IPv6 の違い

アドレス長、表記、SLAAC、NDP、デュアルスタック、NAT不要という設計思想を解説します。

6Zero tracking reading surface

「IPv4 が枯渇した」と言われ続けて何年か

2011 年に IANA の IPv4 アドレスプールが枯渇してから 10 数年。「次は IPv6!」と言われ続けながら、なかなか完全移行しないまま現在に至ります。

この記事では、IPv4 と IPv6 の違いを初学者向けに整理し、なぜ普及が進んでいるのか、自分のサービスで IPv6 対応すべきかを考える材料を提供します。

圧倒的に違うのはアドレス長

IPv4IPv6
アドレス長32 bit128 bit
総アドレス数約 43 億約 340 澗(3.4 × 10^38)
表記192.168.1.102001:db8::1

IPv6 のアドレス空間は事実上無限と言ってよく、地球上のすべての砂粒に IP を割り当てても余ると言われます。

IPv6 アドレスの読み方

128bit を 16 進数 4 桁ずつ「:」で区切って書きます:

2001:0db8:0000:0000:0000:ff00:0042:8329
└─16bit─┘└─16bit─┘└─16bit─┘└─16bit─┘└─16bit─┘└─16bit─┘└─16bit─┘└─16bit─┘
                        計 128bit

長いので省略表記のルールがあります:

  • 各ブロックの先頭の 0 は省略: 0db8 → db8
  • 連続する 0 のブロックは :: で 1 回だけ省略可能
完全形:  2001:0db8:0000:0000:0000:ff00:0042:8329
省略後:  2001:db8::ff00:42:8329

完全形:  fe80:0000:0000:0000:0000:0000:0000:0001
省略後:  fe80::1

IPv6 のアドレス種類

プレフィックス用途IPv4 で言うと
2000::/3グローバルユニキャスト普通のグローバルIP
fc00::/7ULA(Unique Local)RFC 1918(プライベート)
fe80::/10リンクローカル169.254.0.0/16
ff00::/8マルチキャスト224.0.0.0/4
::1ループバック127.0.0.1
::未指定0.0.0.0

IPv6 で何が変わるか

① NAT が原則不要

アドレスが豊富にあるので、すべての機器にグローバルアドレスを直接割り当てられます。NAT が要らないと、P2P 通信や自宅サーバー公開がぐっと楽になります。

② SLAAC による自動構成

IPv6 では SLAAC(Stateless Address Autoconfiguration)という仕組みで、DHCP サーバーがなくても自動的にアドレス取得できます。ルーターが流すプレフィックス + 自分の MAC アドレスから生成する仕組みです。

家庭で IPv6 が使えるルーターを買うと、設定なしで全機器に IPv6 アドレスが振られているのはこのためです。

③ ヘッダーがシンプル化

IPv4 ヘッダーは可変長で複雑でしたが、IPv6 では固定長 40 バイトに整理されました。途中ルーターでのチェックサム計算もなくなり、ルーティング処理が高速化しています。

④ IPsec が組み込み(建前)

IPv6 仕様では IPsec が標準実装でした(RFC 6434 で必須から推奨に格下げ)。実運用では IPv4 と同じく必要な部分にだけ TLS / VPN を被せる運用が一般的です。

⑤ ARP が NDP に

IPv6 では ARP の代わりに NDP(Neighbor Discovery Protocol)が使われます。仕組みは似ていますが、ICMPv6 上で動き、プレフィックス通知や近隣到達性検出など機能が増えています。

移行が進まない理由

理論的には IPv6 の方が優れていますが、移行は遅々として進みません。理由:

  • NAT で誤魔化せる: IPv4 + NAT で当面困らない
  • レガシー機器・ソフト: 古いシステムの IPv6 対応コスト
  • 運用ノウハウ不足: トラブル時に切り分けできるエンジニアが少ない
  • キャリアグレード NAT で延命

ただしモバイル網(携帯各社)は積極的に IPv6 化しており、Google や Apple のサービスは早くから IPv6 対応済み。静かに移行は進んでいるのが現状です。

デュアルスタックという中間策

多くの環境は IPv4 と IPv6 を両方話す「デュアルスタック」で運用されています。OS は両方のアドレスを取得し、通信時にはどちらかを選びます(DNS の応答にどちらが含まれているか、Happy Eyeballs アルゴリズムで速い方を選ぶ等)。

サーバーで IPv6 対応するときも、まずIPv4 と IPv6 両方で受け付けるデュアルスタック設定から始めるのが定石です。

セキュリティ視点

  • IPv6 はスキャンされにくい: アドレス空間が広すぎて全数スキャンが現実的でない(IPv4 なら数時間で全 4G 個スキャン可能)
  • 逆に「直接アクセス可能」になる: NAT で隠れていた機器が剥き出しになる。明示的なファイアウォールが必須
  • 家庭ルーターの IPv6 ファイアウォール設定を確認しよう。多くの製品は適切にブロックしているが要確認

おわりに

IPv6 は「IPv4 + アルファ」ではなく、ある意味別物のプロトコルです。アドレスの考え方、自動構成、近隣探索、すべて IPv4 と異なります。今すぐ移行する必要はなくても、「自分のサービスで IPv6 アクセスログがどう見えるか」を一度確認しておくと、移行が必要になったときに慌てずに済みます。

Tool companion

この記事と一緒に使えるツール

Related reading

関連記事