メインコンテンツまでスキップ

4. Address Scope (アドレススコープ)

未指定アドレス以外のすべてのIPv6アドレスは、特定のスコープを持っています。つまり、アドレスがインターフェースまたはインターフェースのセットの一意な識別子として使用できるトポロジカルな範囲を持っています。アドレスのスコープは、[1] で規定されているように、アドレスの一部としてエンコードされています。

ユニキャストアドレスについては、この文書は2つの定義されたスコープについて議論します:

  • リンクローカルスコープ (Link-local scope): 単一のリンク内 (つまり、リンクに接続されている) でのみインターフェースを一意に識別するためのスコープ。

  • グローバルスコープ (Global scope): インターネットのどこでもインターフェースを一意に識別するためのスコープ。

IPv6ユニキャストループバックアドレス (::1) は、仮想的な「ループバックインターフェース (loopback interface)」が接続されている仮想的なリンク内でリンクローカルスコープを持つものとして扱われます。

未指定アドレス (::) は特別なケースです。[1] によれば、このアドレスはどのノードにも割り当てられてはならないため、スコープを持ちません。ただし、実装は未指定アドレスに対して実装依存のセマンティクスを使用する場合があり、未指定アドレスに特定のスコープを持たせることを許可したい場合があります。例えば、実装はしばしば未指定アドレスをAPIで「任意の (any)」アドレスを表すために使用します。この場合、実装は特定のスコープを持つ未指定アドレスを「そのスコープ内の任意のアドレス」という概念を表すものとみなす場合があります。この文書は、このような使用法が実装内に限定されている限り、これを禁止しません。

[1] は、埋め込みIPv4アドレスを持つIPv6アドレスをグローバルアドレスの一部として定義しています。したがって、これらのアドレスは、IPv6スコープアドレスアーキテクチャに関して、グローバルスコープを持っています。ただし、実装は便宜上、これらのアドレスを他のスコープを持つかのように使用する場合があります。例えば、[6] は、IPv4自動設定リンクローカルアドレス (プレフィックス169.254.0.0/16 [7] からのアドレス) にリンクローカルスコープを割り当て、IPv4とIPv6アドレス間で宛先アドレス選択を実行するために、これらのアドレスをIPv4マッピングIPv6アドレスに変換します。これは、IPv4自動設定リンクローカルアドレスに相当するIPv4マッピングIPv6アドレスがリンクローカルスコープを持つことを暗黙的に意味します。この文書は、このような使用法が実装内に限定されている限り、これを排除しません。

エニーキャストアドレス [1] は、ユニキャストアドレス空間から割り当てられ、ユニキャストアドレスと同じスコープ特性を持っています。この文書のユニキャストに関するすべての記述は、エニーキャストにも等しく適用されます。

マルチキャストアドレスについては、インターフェースローカルからグローバル (リンクローカルを含む) まで、14の可能なスコープがあります。インターフェースローカルスコープは単一のインターフェースのみにまたがります。インターフェースローカルスコープのマルチキャストアドレスは、単一のノード内でのマルチキャストのループバック配信にのみ有用です。例えば、コンピュータ内のプロセス間通信の一形態として使用されます。ユニキャストループバックアドレスとは異なり、インターフェースローカルマルチキャストアドレスは任意のインターフェースに割り当てられる場合があります。

スコープ間にはサイズ関係があります:

  • ユニキャストスコープについては、リンクローカルはグローバルよりも小さいスコープです。

  • マルチキャストスコープについては、マルチキャストアドレスの "scop" サブフィールド ([1] のセクション2.7) でより小さい値を持つスコープは、より大きい値を持つスコープよりも小さく、インターフェースローカルが最小で、グローバルが最大です。

ただし、異なるサイズの2つのスコープが、トポロジの全く同じ領域をカバーする場合があります。例えば、(マルチキャスト) サイトが単一のリンクで構成される場合があり、その場合、リンクローカルスコープとサイトローカルスコープの両方が事実上同じトポロジカルな範囲をカバーします。