【Linux】IPv6アドレス

 IPv6アドレスは、次世代のインターネットプロトコルであるIPv6で使用される128ビットのアドレスです。現在広く使用されているIPv4アドレスが32ビットの長さを持つのに対して、IPv6アドレスは128ビットという非常に広いアドレス空間を持ち、理論上無限に近い数のユニークなアドレスを提供します。この膨大なアドレス空間は、IPv4アドレスの枯渇という問題を解決するために設計されました。

 インターネットの急速な普及と、PCやスマートフォン、IoTデバイスなど多様なデバイスの増加に伴い、IPv4アドレスの限界が露呈し、より多くのアドレスが必要となりました。IPv6は、この課題に対応するための解決策として登場し、セキュリティの向上やアドレスの自動設定機能など、さまざまな利点を提供しています。

IPv6アドレスとは

 IPv6アドレスは、インターネットプロトコルの第6版で使用される128ビットのアドレスです。これは、IPv4アドレスの32ビットから拡張されたもので、理論的には無限に近い数のユニークなアドレスを提供します。IPv6アドレスは、主にインターネットの成長に伴うIPv4アドレスの枯渇問題を解決するために開発されました。

IPv6アドレスが生まれた背景

 IPv4アドレスの枯渇が進む中、インターネットの拡大をサポートするために、より多くのアドレス空間が必要となりました。IPv6は、より多くのデバイスをサポートし、セキュリティとパフォーマンスの向上を図るために導入されました。128ビットのアドレス空間により、IPv4の43億個のアドレスに比べ、非常に多くのアドレスが提供されます。

IPv6アドレスのアドレス空間

 IPv6アドレス空間は128ビットであり、これは2128個のアドレスを提供します。これに対して、IPv4は32ビットであり、約43億(232)個のアドレスしか提供しません。以下の表で、IPv4とIPv6のアドレス空間を比較します。

項目IPv4IPv6
ビット数32ビット128ビット
アドレス数約43億(232340澗(3.4 x 1038
表記例192.168.0.12001:0db8:85a3:0000:0000:8a2e:0370:7334
IPv6アドレスのアドレス空間

IPv6アドレスの省略方法のルール

IPv6アドレスは長いため、以下のような省略方法が定義されています。

  1. 先頭のゼロの省略
    各セグメント(16ビット)で先頭のゼロを省略できます。
    例:2001:0db8:0000:0000:0000:0000:0000:00012001:db8:0:0:0:0:0:1 に省略されます。
  2. 連続するゼロの省略
    複数の連続するゼロセグメントを「::」で一度だけ省略できます。
    例:2001:0db8:0000:0000:0000:0000:0000:00012001:db8::1 に省略されます。

IPv6アドレスの省略方法の具体例

元のIPv6アドレス省略後のIPv6アドレス
2001:0db8:0000:0000:0000:0000:0000:00012001:db8::1
2001:0db8:0000:0000:0000:ff00:0042:83292001:db8::ff00:42:8329
2001:0db8:0000:0000:0001:0000:0000:00012001:db8:0:0:1::1
IPv6アドレスの省略方法の具体例

IPv6アドレスの特徴

IPv6アドレスには以下のような特徴があります。

  • 128ビットのアドレス空間: 非常に多くのアドレスを提供します。
  • 省略表記の導入: 長いアドレスを簡潔に表記できる省略方法が定義されています。
  • 多層構造のサポート: IPv6は、より細かなネットワーク構成をサポートするためのアドレス構造を持っています。

IPv6アドレスを使用するメリット

IPv6アドレスの使用には以下のようなメリットがあります。

  • 自動設定機能: IPv6は、デバイスがネットワークに接続されたときに自動的にアドレスを設定する機能を持っています(ステートレスアドレス自動設定)。
  • セキュリティの強化: IPv6は、IPsec(IP Security)を標準でサポートし、通信の暗号化や認証が強化されています。
  • 拡張性: IPv6は、ネットワークのスケーラビリティを高め、大規模ネットワークでの運用を容易にします。

GUAとLLAについて

 IPv6アドレスには、グローバルユニキャストアドレス(GUA:Global Unicast Address)とリンクローカルアドレス(LLA:Link-Local Address)の2種類のアドレスがあります。

  • GUA (Global Unicast Address): インターネット上で一意に識別されるグローバルなユニキャストアドレスです。
  • LLA (Link-Local Address): 同じリンク(ネットワークセグメント)内でのみ使用されるユニキャストアドレスです。ルータを越えて通信することはできません。
アドレスの種類分類先頭部分のアドレス例説明
GUAユニキャスト2000::/3グローバルな範囲で一意なアドレス
LLAユニキャストfe80::/10ローカルリンク内でのみ使用されるアドレス
マルチキャストマルチキャストff00::/8グループ宛の通信を行うためのアドレス
GUAとLLAについて

プレフィックスとインタフェースID

 IPv6アドレスは、128ビットの長さを持ち、その中でネットワーク部分を「プレフィックス(Prefix)」、ホスト部分を「インタフェースID(Interface Identifier)」と呼びます。一般的に、プレフィックスは64ビット、インタフェースIDも64ビットで構成されます。

以下の表を用いて、IPv6アドレスのプレフィックスとインタフェースIDの具体例を解説します。

IPv6アドレス全体の例プレフィックス(ネットワーク部分)インタフェースID(ホスト部分)
2001:0db8:85a3:0000:0000:8a2e:0370:73342001:0db8:85a3:00000000:8a2e:0370:7334
2001:0db8:abcd:0012:0000:0000:0000:00012001:0db8:abcd:00120000:0000:0000:0001
2001:0db8:abcd:abcd:abcd:abcd:abcd2001:0db8:abcdabcd:abcd:abcd
プレフィックスとインタフェースIDの具体例
  • プレフィックス(Prefix)
     プレフィックスは、IPv6アドレスのネットワーク部分を指します。通常、最初の64ビットがプレフィックスに割り当てられ、この部分でネットワークを識別します。異なるネットワークは異なるプレフィックスを持ちます。
  • インタフェースID(Interface ID)
     インタフェースIDは、IPv6アドレスのホスト部分(ネットワーク内のデバイスを識別する部分)です。残りの64ビットがインタフェースIDに割り当てられます。インタフェースIDは、同一のネットワーク内でユニークなアドレスを持つことを保証します。

まとめ

 IPv6アドレスは、IPv4のアドレス枯渇問題を解決するために設計された、次世代のインターネットプロトコルです。128ビットのアドレス空間により、理論上無限に近い数のユニークなアドレスを提供します。自動設定機能や強力なセキュリティ機能を備え、よりスケーラブルでセキュアなネットワーク運用が可能です。GUAとLLA、ユニキャストとマルチキャストの分類によって、IPv6は多様なネットワークシナリオに対応できる柔軟性を持っています。