IPv6 アドレスは 128 ビット長であり、個々のインタフェースおよびインタフェースセットの識別子です。すべての IPv6 アドレスはインタフェースに割り当てられ、ホストやルーターには割り当てられません。各インタフェースの所属先は 1 つのノードだけなので、インタフェースのユニキャストアドレスは、そのノードの識別子として使用できます。1 つのインタフェースには、任意のタイプの複数の IPv6 アドレスを割り当てることができます。
IPv6 アドレスには、ユニキャスト、エニーキャスト、マルチキャストの 3 種類のタイプがあります。
ユニキャストアドレスは、1 つのインタフェースを識別する
エニーキャストアドレスは、インタフェースのセットを識別する。エニーキャストアドレスに送信されたパケットは そのセットのメンバーの 1 つに配信される
マルチキャストアドレスは、インタフェースのグループを識別する。マルチキャストアドレスに送信されるパケットは、グループにあるすべてのインタフェースに配信される。
IPv6 では、ブロードキャストアドレスの代わりにマルチキャストアドレスが使われます。
IPv6 は IPv4 アドレスの 4 倍のビット数のアドレス、つまり 128 対 32 をサポートします。したがって、計算上はそのアドレス領域は IPv4 のアドレス領域の 40 億 x 40 億倍の大きさになります。実際にはアドレスの割り当てとルーティングでは階層を作成する必要があり、アドレス領域の利用効率が減少します。結果として、利用できるアドレス数は減少します。ただし当面は、IPv6 で提供するアドレス領域で十分です。
アドレスの先頭ビットでは IPv6 アドレスのタイプを指定します。この先頭ビットがある可変長フィールドをフォーマットプレフィックス (FP) といいます。 次の表は、これらのプレフィックス (接頭辞) の初期割り当てです。
表 1-1 フォーマットプレフィックスの割り当て
割り当て |
プレフィックス (バイナリ) |
アドレス領域の端数 |
---|---|---|
予約済み |
0000 0000 |
1/256 |
割り当てなし |
0000 0001 |
1/256 |
NSAP 割り当てに予約 |
0000 001 |
1/128 |
IPX 割り当てに予約 |
0000 010 |
1/128 |
割り当てなし |
0000 011 |
1/128 |
割り当てなし |
0000 1 |
1/32 |
割り当てなし |
0001 |
1/16 |
集約グローバルユニキャストアドレス |
001 |
1/8 |
割り当てなし |
010 |
1/8 |
割り当てなし |
011 |
1/8 |
ニュートラル相互接続ベースユニキャストアドレスに予約 |
100 |
1/8 |
割り当てなし |
101 |
1/8 |
割り当てなし |
110 |
1/8 |
割り当てなし |
1110 |
1/16 |
割り当てなし |
1111 0 |
1/32 |
割り当てなし |
1111 10 |
1/64 |
割り当てなし |
1111 110 |
1/128 |
割り当てなし |
1111 1110 0 |
1/512 |
リンクローカル用アドレス |
1111 1110 10 |
1/1024 |
サイトローカル用アドレス |
1111 1110 11 |
1/1024 |
マルチキャストアドレス |
1111 1111 |
1/256 |
割り当てには、集約グローバルユニキャストアドレス、ローカル用アドレス、マルチキャストアドレスの直接割り当てがサポートされています。NSAP (ネットワークサービスアクセスポイント) アドレス、IPX (相互ネットワークパケット交換プロトコル) アドレス、ニュートラル相互接続アドレスには空間が予約されています。残りのアドレス領域は将来用に割り当てなしになっています。残りのアドレス領域は、既存の領域の拡張部分に利用できます。たとえば、集約グローバルユニキャストアドレスへの追加として使用されます。残りの領域は、新規用としても使用されます。たとえば、個別のロケータと個別の識別子として使用されます。なお、エニーキャストアドレスはユニキャストアドレス領域の範囲外に割り当てられるため、ここには示していません。
初期設定で、アドレス領域の約 15 パーセントが割り当てられます。残りの 85 パーセントは将来用に予約されています。
IPv6 ユニキャストアドレスの割り当て形式は、次のとおりです。
集約グローバルユニキャストアドレス
ニュートラル相互接続ユニキャストアドレス
NSAP アドレス
IPX 階層アドレス
サイトローカル用アドレス
リンクローカル用アドレス
IPv4 対応ホストアドレス
その他のアドレスタイプは、あとから定義できます。
集約グローバルユニキャストアドレスは、グローバル通信に使用するアドレスです。CIDR (クラスレス相互ドメインルーティング) における IPv4 アドレスに機能的に似ています。表 1–2 に、そのフォーマットをまとめます。
表 1-2 集約グローバルユニキャストアドレスのフォーマット
3 ビット |
13 ビット |
8 ビット |
24 ビット |
16 ビット |
64 ビット |
FP |
TLA ID |
RES |
NLA ID |
SLA ID |
Interface ID |
FP |
フォーマットプレフィックス (001) |
TLA ID |
最上位集約識別子 |
RES |
将来用に予約 |
NLA ID |
次レベル集約識別子 |
SLA ID |
サイトレベル集約識別子 |
INTERFACE ID |
インタフェース識別子 |
最初の 48 ビットはパブリックトポロジを表します。次の 16 ビットは各サイトのトポロジを表します。
最初の 3 ビットは集約グローバルユニキャストアドレスとしてアドレスを識別します。次のフィールドである TLA ID はルーティング階層の最上位レベルです。その次の 8 ビットは将来用に予約されています。NLA ID フィールドは TLA ID を割り当てられた組織が、アドレス指定階層の作成と、サイトの識別に使用します。
SLA ID フィールドは、組織で各ローカルアドレス指定階層の作成とサブネットを識別するときに使用します。SLA ID フィールドの使い方は IPv4 のサブネットと似ていますが、組織別に割り当てることのできるサブネット数がはるかに多いところが異なります。16 ビット SLA ID フィールドがサポートするサブネットの数は 65,535 です。Interface ID は、リンク上のインタフェースを識別するために使用します。Interface ID はそのリンク上で一意である必要があります。また、より広い範囲で一意とすることができます。通常、インタフェース識別子はインタフェースのリンクのアドレスと同じです。または、インタフェースのリンク層のアドレスに基づいた値です。
ローカル用アドレスは、ローカルにルーティング可能な範囲のみを対象とするユニキャストアドレスです。使用できるのは、サブネット内または加入者ネットワーク内に限定されます。ローカル用アドレスは、プラグアンドプレイのローカル通信を行うために、サイト内で使用します。また、グローバルアドレスを使用するためのブートストラップ操作を行うために使用されます。
ローカル用のユニキャストアドレスには、リンクローカルとサイトローカルの 2 種類があります。リンクローカル用は単一リンクで使用します。サイトローカル用は単一サイトで使用します。次の表は、リンクローカル用アドレスフォーマットを示したものです。
表 1-3 リンクローカル用アドレスフォーマット
10 ビット |
54 ビット |
64 ビット |
1111111010 |
0 |
Interface ID |
リンクローカル用アドレスは自動アドレス設定などの目的で 1 つのリンク上のアドレス指定に使用します。
表 1–4 は、サイトローカル用アドレスフォーマットです。
表 1-4 サイトローカル用アドレス
10 ビット |
38 ビット |
16 ビット |
64 ビット |
1111111011 |
0 |
Subnet ID |
Interface ID |
どちらのタイプのローカルアドレスでも、インタフェース ID はそれを使用するドメインで一意な識別子である必要があります。通常は、識別子としてノードの IEEE-802 48 ビットアドレスを使用します。Subnet ID は、サイト内の特定のサブネットを識別します。Subnet ID と Interface ID を組み合わせてローカルアドレスを作成します。これで大規模なプライベートインターネットを構築することができ、その他のアドレス割り当てを行う必要はありません。
現在グローバルインターネットに接続していない組織はローカルアドレスを使用できます。ローカルアドレスを使うだけでグローバルインターネットアドレス領域からのアドレスプレフィックスを要求する必要はありません。この組織が将来インターネットに接続する場合、Subnet ID と Interface ID をグローバルプレフィックスと組み合わせてグローバルアドレスを作成することができます。たとえば、Registry ID、Provider ID、Subscriber ID の組み合わせでグローバルアドレスを作成できます。この拡張機能は IPv4 に対する大幅な改善点です。IPv4 では、プライベート (非グローバル) な IPv4 アドレスを使うサイトは、インターネットに接続する場合に手動で番号を指定し直す必要があります。IPv6 の場合、番号は自動的に指定し直されます。
IPv6 移行機能では、ホストとルーターが IPv4 ルーティングインフラストラクチャのもとで IPv6 パケットを動的にトンネル処理できる方式を採用しています。この方式を利用した IPv6 ノードには、下位 32 ビットに IPv4 アドレスを保存した特別な IPv6 ユニキャストアドレスが割り当てられます。このタイプのアドレスを IPv4 互換 IPv6 アドレスといいます。 次の表にそのフォーマットを示します。
表 1-5 IPv4 互換 IPv6 アドレスフォーマット
80 ビット |
16 ビット |
32 ビット |
0000.......................................0000 |
0000 |
IPv4 アドレス |
組み込み IPv4 アドレスを保存する第 2 のタイプの IPv6 アドレスも定義されています。このアドレスは IPv6 アドレス領域内の IPv4 アドレスを表すときに使用します。このアドレスは主に、アプリケーション、API、オペレーティングシステムの実装内で使用します。このタイプのアドレスを IPv4 マップ IPv6 アドレスといいます。 次の表にそのフォーマットを示します。
表 1-6 IPv4 マップ IPv6 アドレスフォーマット
80 ビット |
16 ビット |
32 ビット |
0000..............................0000 |
FFFF |
IPv4 アドレス |
IPv6 エニーキャストアドレスは複数のインタフェースに割り当てるアドレスです。通常は、エニーキャストアドレスは異なるノードに所属しています。エニーキャストアドレスに送られたパケットは、そのアドレスを持つ最も近いインタフェースにルーティングされます。
エニーキャストアドレスはルートシーケンスの一部に使用できます。 したがって、ノードはトラフィックを搬送するインターネットサービスプロバイダを選択できます。この機能をソース選択ポリシーと呼ぶこともあります。この機能を実装するには、インターネットサービスプロバイダに所属するルーターセットを識別するようにエニーキャストアドレスを構成します。たとえば、インターネットサービスプロバイダごとに 1 つのエニーキャストを構成します。エニーキャストを、IPv6 ルーティングヘッダーで中間アドレスとして使用できます。これにより、特定のプロバイダによってパケットが配信されます。または、一連のプロバイダによって配信されます。また、エニーキャストアドレスは、特定のサブネットに接続されたルーターセットや、特定のルーティングドメインへのエントリを提供するルーターセットの識別にも使用できます。
定義済みのユニキャストアドレスフォーマットを利用すれば、ユニキャストアドレス領域からエニーキャストを指定できます。そのため、エニーキャストアドレスは、構文的にはユニキャストアドレスと区別がつきません。複数のインタフェースにユニキャストアドレスを割り当てる場合は、ユニキャストアドレスをエニーキャストアドレスに変換します。ただし、そのアドレスがエニーキャストアドレスであることがわかるように、アドレスを割り当てるノードを明示的に構成する必要があります。
IPv6 マルチキャストアドレスは、インタフェースグループの識別子です。1 つのインタフェースが所属できるマルチキャストグループは複数設定できます。表 1–7 は、マルチキャストアドレスフォーマットを示します。
表 1-7 マルチキャストアドレスフォーマット
8 ビット |
4 ビット |
4 ビット |
112 ビット |
11111111 |
FLGS |
SCOP |
グループ ID |
アドレスの先頭の 11111111 は、アドレスがマルチキャストアドレスであることを表します。FLGS は、4 つのフラグ (0,0,0,T) のセットです。
上位 3 つのフラグは、予約されていて、これらのフラグは 0 に初期設定される必要があります。
T=0 – 固定的に割り当てられた (既知の) マルチキャストアドレスを識別する。このマルチキャストアドレスは、グローバルインターネット番号指定機関が割り当てます。
T=1 – 非固定的に割り当てられた (一時的な) マルチキャストアドレスを識別する
SCOP は、4 ビットのマルチキャストスコープの値であり、マルチキャストグループの有効範囲を表します。表 1–8 は、SCOP の値です。
表 1-8 SCOP の値
0 |
予約済み |
8 |
組織ローカルスコープ |
1 |
ノードローカルスコープ |
9 |
(割り当てなし) |
2 |
リンクローカルスコープ |
A |
(割り当てなし) |
3 |
(割り当てなし) |
B |
(割り当てなし) |
4 |
(割り当てなし) |
C |
(割り当てなし) |
5 |
サイトローカルスコープ |
D |
(割り当てなし) |
6 |
(割り当てなし) |
E |
グローバルスコープ |
7 |
(割り当てなし) |
F |
予約済み |
グループ ID は、指定スコープ内で、固定または一時的のどちらかのマルチキャストグループを識別します。