IPv6とは
これまで広く利用されてきたのはIPv4アドレスですが、そのアドレス空間は32ビットであり、最大約43億個までしか割り当てられません。そのためインターネットの普及に伴ってアドレスの不足問題が深刻化しました。そこで登場したのが IPv6(Internet Protocol version 6) です。IPv6はアドレス長が128ビットと大幅に拡張され、理論上は約340澗(340兆の1兆倍を超える数)のアドレスが利用可能となります。この膨大なアドレス空間により、IPv4で行われていたNATやPATによるアドレス節約は基本的に不要となります。
IPv6の特徴
IPv6にはIPv4にはなかった便利な機能が組み込まれています。主な特徴は次の通りです。
| 特徴 | 説明 |
|---|---|
| 広大なアドレス空間 | 128ビットアドレスにより、事実上無限に近い数のIPアドレスを割り当て可能。 |
| 自動設定機能 | DHCPを使わなくても、自動的にIPv6アドレスを生成して利用できる(SLAAC)。 |
| 効率的な経路集約 | 階層的なアドレス設計が可能で、ルーティングテーブルの縮小に貢献。 |
| シンプルなヘッダ | IPv4よりも簡素化された固定長のヘッダにより、ルータの処理が高速化。 |
| モビリティ | Mobile IPv6により、移動中でも同じIPアドレスを維持して通信が可能。 |
| セキュリティ | IPv6はIPsecが標準実装されており、追加機器を用意せずに暗号化通信が利用可能。 |
試験対策としては、IPv6の大きな違いとして「アドレス空間」「自動設定」「IPsecの標準化」の3点を必ず覚えておきましょう。
IPv6のヘッダ構造
IPv6では、パケット転送に必須の情報だけを40バイトの「基本ヘッダ」にまとめ、追加機能が必要な場合は「拡張ヘッダ」として付加します。これによりルータは基本ヘッダだけを読み取り、効率よく転送処理が可能になります。
IPv4と比較すると、IPv6では次のような変更が行われています。
- 削除されたフィールド
・ヘッダチェックサム(TCPやアプリケーションでチェックするため不要)
・オプション(拡張ヘッダに分離) - 追加されたフィールド
・フローラベル(QoSや経路制御のための識別子)
主なフィールドは以下の通りです。
| フィールド | ビット数 | 説明 |
|---|---|---|
| バージョン | 4 | IPv6を表す「0110」。 |
| トラフィッククラス | 8 | IPv4のToSに相当。QoS用途。 |
| フローラベル | 20 | 通信経路の優先制御、QoSを実現。 |
| ペイロード長 | 16 | IPv6ヘッダを除いたデータ部分の長さ。 |
| ネクストヘッダ | 8 | 拡張ヘッダまたは上位プロトコルを指定。 |
| ホップリミット | 8 | IPv4のTTLに相当。通過できるルータ数の上限。 |
| 送信元アドレス | 128 | 送信元IPv6アドレス。 |
| 宛先アドレス | 128 | 宛先IPv6アドレス。 |
| 拡張ヘッダ | 可変 | 基本ヘッダの後に追加されるオプション機能のヘッダ。 |
試験では「IPv6ヘッダは固定長40バイト」「フローラベルが追加」「ヘッダチェックサムが削除」という点がよく問われます。
IPv6とセキュリティ・モビリティ
IPv6では IPsecが標準サポート されている点が大きな特徴です。IPv4ではオプション扱いだった暗号化通信が、IPv6ではすべてのノードで利用可能となり、より安全なインターネット通信を実現します。
また、Mobile IPv6 では移動中の端末でも同じアドレスを使い続けられる仕組みが組み込まれており、セッションを切断せずに通信を継続できます。これにより、モバイル環境での接続安定性が高まります。
試験対策としては、「IPv6はIPsecを標準でサポート」「Mobile IPで移動通信が可能」 という2点を必ず押さえておきましょう。
IPv6アドレスの表記方法
IPv4アドレスは32ビットを8ビットごとに区切り、10進数で表記するのに対し、IPv6アドレスは128ビットを16ビット単位で区切り、16進数で表記します。区切り記号としては コロン(:) を使い、全部で8つのフィールドに分けます。
例:
2001:0db8:0000:0000:abcd:0000:1234:5678
なお、IPv6では16進数のアルファベット(A~F)は 大文字・小文字を区別しません。ABCD も abcd も同じ扱いです。
IPv6アドレスの省略方法
IPv6アドレスは長いため、省略ルールが3つ用意されています。
- 先頭の0は省略可能
01DA→1DA0012→12
- 全てが0のフィールドは「0」で表記可能
0000→0
- 連続する0のフィールドは「::」でまとめて省略可能
2001:0000:0000:0000:aaaa:bbbb:cccc:1111- →
2001::aaaa:bbbb:cccc:1111
ただし、「::」は1つのアドレスに1回しか使えません。
× 誤りの例:
2001:0000:0000:1111:aaaa:0000:0000:1111 → 2001::1111:aaaa::1111
○ 正しい省略:
2001:0000:0000:1111:aaaa:0000:0000:1111 → 2001::1111:aaaa:0:0:1111
このルールは試験でよく出題されるため、省略の正誤を判断できるようにしておきましょう。
IPv6のプレフィックスとインターフェースID
IPv4アドレスが「ネットワーク部」と「ホスト部」に分かれているのと同様に、IPv6アドレスも プレフィックス と インターフェースID に分かれます。
- プレフィックス:IPv4のネットワーク部に相当
- インターフェースID:IPv4のホスト部に相当
IPv6では一般的に 64ビットがプレフィックス、残りの64ビットがインターフェースID として使われます。
例:
2001:1111:2222:abcd:aaaa:bbbb:cccc:1111/64
この場合、先頭64ビットがネットワークを表し、後半64ビットがホスト識別子です。ネットワーク部だけを表記する場合は次のようになります。
2001:1111:2222:abcd::/64
IPv6アドレスの経路集約
IPv4では、例えば「192.168.0.0/24 ~ 192.168.255.0/24」の範囲を「192.168.0.0/16」として集約できます。
IPv6でも同様に、複数のサブネットを1つにまとめられます。
例:
2001:1111:01DB:0001::/64 ~ 2001:1111:01DB:FFFF::/64
この65535個のサブネットは、プレフィックスの上位16ビットを利用して次のように集約できます。
2001:1111:01DB::/48
試験では、「IPv6でもIPv4と同じ考え方でサブネットをまとめられる」 という点を押さえておきましょう。