4.1. Protocol Data Structures (プロトコルデータ構造)
主要なOSPFデータ構造は、IPv4とIPv6の両方で同じです: エリア (Areas)、インターフェース (Interfaces)、ネイバー (Neighbors)、リンク状態データベース (Link-State Database)、およびルーティングテーブル (Routing Table)。IPv6のトップレベルデータ構造は、[OSPFV2] の第5節にリストされているものを維持し、以下の変更があります:
- 既知のLSタイプとASフラッディングスコープ (AS Flooding Scope) を持つすべてのLSAは、特定のエリアまたはリンクに属するのではなく、トップレベルデータ構造に表示されます。AS外部LSA (AS-External-LSAs) は、本仕様で定義された、ASフラッディングスコープを持つ唯一のLSAです。未知のLSタイプ、Uビットが1に設定されている (認識されない場合でもフラッディング)、およびASフラッディングスコープを持つLSAも、トップレベルデータ構造に表示されます。
4.1.1. The Area Data Structure (エリアデータ構造)
IPv6エリアデータ構造には、[OSPFV2] の第6節でIPv4エリアに対して定義されたすべての要素が含まれています。さらに、エリアフラッディングスコープ (Area Flooding Scope) を持つ既知のタイプのすべてのLSAは、IPv6エリアデータ構造に含まれています。これには常に以下のLSAタイプが含まれます: ルータLSA (Router-LSAs)、ネットワークLSA (Network-LSAs)、エリア間プレフィックスLSA (Inter-Area-Prefix-LSAs)、エリア間ルータLSA (Inter-Area-Router-LSAs)、およびエリア内プレフィックスLSA (Intra-Area-Prefix-LSAs)。未知のLSタイプ、Uビットが1に設定されている (認識されない場合でもフラッディング)、およびエリアスコープを持つLSAも、エリアデータ構造に表示されます。NSSA-LSAも、NSSAエリアのデータ構造に含まれています。
4.1.2. The Interface Data Structure (インターフェースデータ構造)
IPv6のOSPFでは、インターフェースはルータをリンクに接続します。IPv6インターフェース構造は、IPv4インターフェース構造 ([OSPFV2] の第9節で定義されている) を次のように変更します:
Interface ID (インターフェースID)
すべてのインターフェースにインターフェースIDが割り当てられ、これによりルータ内でインターフェースが一意に識別されます。たとえば、一部の実装では、MIB-II IfIndex ([INTFMIB]) をインターフェースIDとして使用できる場合があります。インターフェースIDは、インターフェースから送信されるHelloパケット、ルータが接続されたリンクのために発信するリンクローカルLSA (Link-Local-LSA)、および関連エリアのためにルータが発信するルータLSAに表示されます。また、ルータが指定ルータ (Designated Router) に選出された場合、リンクのためにルータが発信するネットワークLSAのリンク状態ID (Link State ID) としても機能します。
仮想リンク (Virtual Link) のインターフェースIDは、トランジットエリア (Transit Area) で通過する発信インターフェースのインターフェースIDから独立しています。
Instance ID (インスタンスID)
すべてのインターフェースにインスタンスIDが割り当てられます。これはデフォルトで0にする必要があります。複数の独立したOSPFルータのコミュニティを含むリンクでのみ、0以外の値を割り当てる必要があります。たとえば、特定のイーサネットセグメントに2つのルータのコミュニティがあり、それらを分離したいとします。
最初のコミュニティにはインスタンスID 0が割り当てられ、最初のコミュニティのすべてのルータは、イーサネットセグメントに接続されたインターフェースのインスタンスIDとして0が割り当てられます。イーサネットセグメントに接続された他のルータのインターフェースには、インスタンスID 1が割り当てられます。OSPF送信および受信処理 (第4.2節を参照) は、2つのコミュニティを分離します。
List of LSAs with link-local scope (リンクローカルスコープを持つLSAのリスト)
リンク上で発信/フラッディングされた、リンクローカルスコープ (Link-Local Scope) を持つすべてのLSAは、リンクに接続するインターフェース構造に属します。これには、リンクのリンクLSA (Link-LSAs) のコレクションが含まれます。
IP interface address (IPインターフェースアドレス)
IPv6の場合、インターフェース上で送信されるOSPFパケットのソースに表示されるIPv6アドレスは、ほとんど常にリンクローカルアドレス (Link-Local Address) です。唯一の例外は、仮想リンクであり、IPインターフェースアドレスとしてルータ自身のグローバルIPv6アドレスの1つを使用する必要があります。
List of link prefixes (リンクプレフィックスのリスト)
接続されたリンクにIPv6プレフィックスのリストを設定できます。これらは、リンクLSAでルータによってアドバタイズされ、リンクの指定ルータによってエリア内プレフィックスLSA (Intra-Area-Prefix-LSAs) でアドバタイズできるようにします。
IPv6のOSPFでは、各ルータインターフェースには、インターフェース上でパケットを送信するコストを表す単一のメトリック (Metric) があります。さらに、IPv6のOSPFは、[OSPFV3-AUTH] で説明されているように、IP認証ヘッダー (IP Authentication Header、[IPAUTH] を参照) およびIPカプセル化セキュリティペイロード (IP Encapsulating Security Payload、[IPESP] を参照) に依存して、ルーティング交換の整合性および認証/機密性を保証します。このため、AuTypeおよび認証キーは、IPv6 OSPFインターフェースには関連付けられていません。
インターフェース状態、イベント、およびインターフェース状態マシンは、[OSPFV2] の第9.1、9.2、および9.3節にそれぞれ文書化されているように、IPv4から変更されていません。指定ルータおよびバックアップ指定ルータの選出アルゴリズムも、[OSPFV2] の第9.4節のIPv4選出から変更されていません。
4.1.3. The Neighbor Data Structure (ネイバーデータ構造)
ネイバー構造は、IPv6とIPv4の両方で同じ機能を実行します。つまり、そのような隣接性が必要になったときに、2つのルータ間で隣接性を形成するために必要なすべての情報を収集します。各ネイバー構造は、単一のOSPFインターフェースにバインドされています。IPv6ネイバー構造と [OSPFV2] の第10節でIPv4に対して定義されたネイバー構造との違いは次のとおりです:
Neighbor's Interface ID (ネイバーのインターフェースID)
ネイバーがHelloパケットでアドバタイズするインターフェースIDは、ネイバー構造に記録される必要があります。ルータは、a) ネイバーへのポイントツーポイントまたはポイントツーマルチポイントリンクをアドバタイズするとき、または b) ネイバーが指定ルータになったネットワークへのリンクをアドバタイズするときに、ルータのルータLSAにネイバーのインターフェースIDを含めます。
Neighbor IP address (ネイバーIPアドレス)
IPv6のOSPFパケットのソースアドレスとして含まれるネイバーのIPv6アドレス。これは、仮想リンクを除くすべてのリンクタイプで、IPv6リンクローカルアドレスになります。
Neighbor's Designated Router (ネイバーの指定ルータ)
指定ルータに対するネイバーの選択は、IPアドレスではなくルータID (Router ID) としてエンコードされるようになりました。
Neighbor's Backup Designated Router (ネイバーのバックアップ指定ルータ)
バックアップ指定ルータに対するネイバーの選択は、IPアドレスではなくルータIDとしてエンコードされるようになりました。
ネイバー状態、イベント、およびネイバー状態マシンは、[OSPFV2] の第10.1、10.2、および10.3節にそれぞれ文書化されているように、IPv4から変更されていません。どの隣接性を形成するかの決定も、[OSPFV2] の第10.4節に文書化されているIPv4ロジックから変更されていません。