IPv6

IPv6とは

IPv6(Internet Protocol version 6)は、現在広く使われている IPv4 の後継となるインターネットの住所の新しい規格です。最大の目的は、IPv4 アドレスの枯渇問題を解決することにあります。

IPv4 のアドレスは32ビットで、理論上の総数は約43億個です。世界の人口とスマートフォン・IoT機器の数を考えれば、これでは到底足りません。IPv6 はアドレス長を 128ビットに拡張し、約340澗(かん)個という、事実上使い切れない数のアドレスを用意しました。

表記の違い

[[IPアドレスとサブネット]] で扱う IPv4 と、書き方が大きく変わります。

IPv4IPv6
ビット長32ビット128ビット
表記10進数・ドット区切り16進数・コロン区切り
192.168.1.12001:0db8:0000:0000:0000:ff00:0042:8329
アドレス総数約43億約340澗

IPv6 は長いので、短縮ルールがあります。

  • 各ブロックの先頭の0は省略できる(0db8db8)
  • 0だけが連続する区間は :: で1回だけ省略できる

先ほどの例は 2001:db8::ff00:42:8329 と書けます。:: は1つのアドレスに1回しか使えません(2回使うと、どこに何個の0があったか復元できなくなるためです)。

なお、ループバックアドレスは IPv4 の 127.0.0.1 に対して IPv6 では ::1 です。

IPv6で変わること

  • NATが原則不要になる — アドレスが潤沢なので、機器1台ずつにグローバルアドレスを割り当てられます。[[NATとポートフォワーディング]] で行っていたアドレス変換の出番が減ります
  • 自動設定が標準(SLAAC)— ルーターが配る情報から端末が自分でアドレスを組み立てられ、DHCPサーバーがなくても通信できます
  • ヘッダがシンプルになり、ルーターの処理負荷が下がる — [[ルーティング]] の効率が上がります
  • ブロードキャストが廃止され、マルチキャストに統合されました

移行はどう進んでいるか

IPv4 と IPv6 に直接の互換性はありません。IPv6 だけの端末は IPv4 だけのサーバーと素直には話せないため、移行期の現在はデュアルスタックという方式が主流です。1台の機器が IPv4 と IPv6 の両方のアドレスを持ち、相手に応じて使い分けます。

[[DNS]] もこれに対応しており、IPv4 アドレスを返す Aレコードに対して、IPv6 アドレスは AAAAレコード(クアッドAレコード)で登録します。名前解決の結果として両方が返れば、OS が使えるほうを選びます。

初学者向けポイント

  • URL に IPv6 アドレスを直接書くときは http://[2001:db8::1]:8080/ のように角括弧で囲む — コロンがポート番号の区切りと紛らわしいためです
  • 手元の環境が IPv6 対応かは ipconfig(Windows)や ip -6 addr(Linux)で確認できます
  • fe80:: で始まるアドレスはリンクローカルアドレスで、同じネットワーク内でしか使えません
  • [[ファイアウォール]] の設定を IPv4 側だけ書いて IPv6 側を素通しにしてしまう事故が起きがちです。両方に同じポリシーを設定しましょう

関連技術とのつながり

  • [[IPアドレスとサブネット]] — IPv4 の基礎。IPv6 はその拡張版にあたる
  • [[TCP/IP]] — IPv6 はネットワーク層のプロトコル。TCP や UDP はそのまま上に乗る
  • [[DNS]] — IPv6 アドレスは AAAA レコードで名前解決する
  • [[NATとポートフォワーディング]] — IPv4 の枯渇対策。IPv6 では原則不要になる
  • [[ルーティング]] — ヘッダの簡素化で転送処理が効率化された
Q: IPv6のアドレス長は何ビット?
- [ ] 32ビット
- [ ] 64ビット
- [x] 128ビット
解説: IPv4の32ビットに対し、IPv6は128ビットで約340澗個のアドレスを表現できます。

Q: IPv6アドレスの `::` が意味するものはどれ?
- [x] 0だけが連続する区間の省略
- [ ] ポート番号の区切り
- [ ] サブネットマスクの指定
解説: 0が連続する区間を `::` で省略できます。復元できなくなるため、1つのアドレスに1回だけ使えます。

Q: IPv6アドレスをDNSに登録するときのレコード種別はどれ?
- [ ] Aレコード
- [x] AAAAレコード
- [ ] MXレコード
解説: IPv4はAレコード、IPv6はAAAAレコード(クアッドA)で登録します。MXはメール配送先の指定用です。