2. Differences from OSPF for IPv4 (IPv4のためのOSPFとの違い)
IPv4のためのOSPF [OSPFV2] のアルゴリズムのほとんどは、IPv6のためのOSPFに保持されています。ただし、IPv4とIPv6の間のプロトコルセマンティクスの変更、または単にIPv6のアドレスサイズの増加に対応するため、いくつかの変更が必要になりました。
以下のサブセクションは、本文書と [OSPFV2] の違いを説明します。
2.1. Protocol Processing Per-Link, Not Per-Subnet (サブネット単位ではなくリンク単位のプロトコル処理)
IPv6は「リンク (Link)」という用語を使用して、「ノードがリンク層で通信できる通信設備または媒体」を示します ([IPV6])。「インターフェース (Interfaces)」はリンクに接続します。複数のIPv6サブネットを単一のリンクに割り当てることができ、2つのノードは共通のIPv6サブネット (IPv6プレフィックス (IPv6 Prefix)) を共有していなくても、単一のリンクを介して直接通信できます。
このため、IPv6のためのOSPFは、IPv4のIPサブネット単位の動作ではなく、リンク単位で実行されます。IPv4 OSPF仕様 ([OSPFV2]) で使用される「ネットワーク (Network)」と「サブネット (Subnet)」という用語は、一般的にリンクに置き換える必要があります。同様に、OSPFインターフェースは、IPサブネットではなくリンクに接続するようになりました。
この変更は、OSPFプロトコルパケットの受信、Helloパケットの内容、およびネットワークLSA (Network-LSAs) の内容に影響します。
2.2. Removal of Addressing Semantics (アドレッシングセマンティクスの削除)
IPv6のためのOSPFでは、アドレッシングセマンティクスがOSPFプロトコルパケットと主要なLSAタイプから削除され、ネットワークプロトコルに依存しないコアが残されました。具体的には:
-
IPv6アドレスは、リンク状態更新パケット (Link State Update Packets) によって運ばれるLSAペイロードを除いて、OSPFパケットに存在しません。詳細については、第2.7節を参照してください。
-
ルータLSA (Router-LSAs) とネットワークLSA (Network-LSAs) には、ネットワークアドレスが含まれなくなり、単にトポロジ情報を表現するだけになりました。詳細については、第2.8節を参照してください。
-
OSPFルータID (Router IDs)、エリアID (Area IDs)、およびLSAリンク状態ID (Link State IDs) は、IPv4のサイズである32ビットのままです。これらは (IPv6) アドレスとして割り当てることができなくなりました。
-
隣接ルータは、常にルータIDによって識別されるようになりました。以前は、ブロードキャスト (Broadcast)、NBMA (非ブロードキャストマルチアクセス、Non-Broadcast Multi-Access)、およびポイントツーマルチポイント (Point-to-Multipoint) リンク上でIPv4アドレスによって識別されていました。
2.3. Addition of Flooding Scope (フラッディングスコープの追加)
LSAのフラッディングスコープ (Flooding Scope) が一般化され、LSAのLSタイプフィールド (LS Type Field) に明示的にコード化されるようになりました。LSAには3つの独立したフラッディングスコープがあります:
-
リンクローカルスコープ (Link-local Scope). LSAはローカルリンク上でのみフラッディングされ、それ以上は伝播しません。新しいリンクLSA (Link-LSA) に使用されます。詳細については、第4.4.3.8節を参照してください。
-
エリアスコープ (Area Scope). LSAは単一のOSPFエリア全体でのみフラッディングされます。ルータLSA、ネットワークLSA、エリア間プレフィックスLSA (Inter-Area-Prefix-LSAs)、エリア間ルータLSA (Inter-Area-Router-LSAs)、およびエリア内プレフィックスLSA (Intra-Area-Prefix-LSAs) に使用されます。
-
ASスコープ (AS Scope). LSAはルーティングドメイン全体でフラッディングされます。AS外部LSA (AS-External-LSAs) に使用されます。ASスコープLSAを発信するルータは、AS境界ルータ (AS Boundary Router, ASBR) と見なされ、通常のエリアのルータLSAでそのEビット (E-bit) を設定します。
2.4. Explicit Support for Multiple Instances per Link (リンクごとの複数インスタンスの明示的サポート)
OSPFは、単一のリンク上で複数のOSPFプロトコルインスタンスを実行する機能をサポートするようになりました。たとえば、これは複数のプロバイダ間で共有されるNAP (ネットワークアクセスポイント、Network Access Point) セグメントで必要になる場合があります。プロバイダは、1つ以上の物理ネットワークセグメント (つまり、リンク) を共有している場合でも、独立したままでいたい独立したOSPFルーティングドメインをサポートしている可能性があります。IPv4のためのOSPFでは、これはIPv4のためのOSPFヘッダーの認証フィールドを使用して、散発的な方法でサポートされていました。
複数のOSPFインスタンスを実行する別の用途は、何らかの理由で、単一のリンクを2つ以上のOSPFエリアに属させたい場合です。
リンク上の複数のプロトコルインスタンスのサポートは、OSPFパケットヘッダーとOSPFインターフェースデータ構造に含まれる「インスタンスID (Instance ID)」を介して実現されます。インスタンスIDは、OSPFパケットの受信にのみ影響し、通常のOSPFインターフェースと仮想リンク (Virtual Links) に適用されます。
2.5. Use of Link-Local Addresses (リンクローカルアドレスの使用)
IPv6リンクローカルアドレス (Link-Local Addresses) は、隣接ルータ検出 (Neighbor Discovery)、自動設定 (Auto-Configuration) などの目的で、単一のリンク上で使用されます。IPv6ルータは、リンクローカル送信元アドレスを持つIPv6データグラムを転送しません [IP6ADDR]。リンクローカルユニキャストアドレス (Link-Local Unicast Addresses) は、IPv6アドレス範囲FE80/10から割り当てられます。
IPv6のためのOSPFは、各ルータがその接続された物理リンクのそれぞれにリンクローカルユニキャストアドレスを割り当てられていることを前提としています [IP6ADDR]。仮想リンクを除くすべてのOSPFインターフェースで、OSPFパケットは、送信元アドレスとしてインターフェースに関連付けられたリンクローカルユニキャストアドレスを使用して送信されます。ルータは、そのリンクに接続されている他のすべてのルータのリンクローカルアドレスを学習し、パケット転送中にネクストホップ情報としてこれらのアドレスを使用します。
仮想リンクでは、グローバルスコープ (Global Scope) IPv6アドレスをOSPFプロトコルパケットの送信元アドレスとして使用しなければなりません (MUST)。
リンクローカルアドレスは、OSPFリンクLSA (Link-LSAs) に表示されます (第4.4.3.8節を参照)。ただし、リンクローカルアドレスは他のOSPF LSAタイプでは許可されていません。特に、リンクローカルアドレスは、エリア間プレフィックスLSA (第4.4.3.4節)、AS外部LSA (第4.4.3.6節)、NSSA-LSA (第4.4.3.7節)、またはエリア内プレフィックスLSA (第4.4.3.9節) でアドバタイズしてはなりません (MUST NOT)。
2.6. Authentication Changes (認証の変更)
IPv6のためのOSPFでは、認証がOSPFプロトコルから削除されました。「AuType」および「Authentication」フィールドがOSPFパケットヘッダーから削除され、すべての認証関連フィールドがOSPFエリアおよびインターフェースデータ構造から削除されました。
IPv6上で実行する場合、OSPFは、[OSPFV3-AUTH] に記述されているように、IP認証ヘッダー (IP Authentication Header、[IPAUTH] を参照) とIPカプセル化セキュリティペイロード (IP Encapsulating Security Payload、[IPESP] を参照) に依存して、ルーティング交換の整合性と認証/機密性を保証します。
意図しないデータ破損に対するOSPFパケット交換の保護は、標準のIPv6上位層チェックサム (IPv6 Upper-Layer Checksum、[IPV6] の第8.1節に記載) によって提供され、OSPFパケット全体と前置されたIPv6疑似ヘッダー (IPv6 Pseudo-Header、付録A.3.1を参照) をカバーします。
2.7. Packet Format Changes (パケットフォーマットの変更)
IPv6のためのOSPFは、IPv6上で直接実行されます。これを除いて、すべてのアドレッシングセマンティクスがOSPFパケットヘッダーから削除され、本質的に「ネットワークプロトコルに依存しない (Network-Protocol-Independent)」ものになりました。すべてのアドレッシング情報は、さまざまなLSAタイプにのみ含まれるようになりました。
詳細には、OSPFパケットフォーマットの変更は次のとおりです:
-
OSPFバージョン番号が2から3に増分されました。
-
HelloパケットとDatabase Descriptionパケットのオプションフィールド (Options Field) が24ビットに拡張されました。
-
AuthenticationおよびAuTypeフィールドがOSPFパケットヘッダーから削除されました (第2.6節を参照)。
-
Helloパケットには、アドレス情報がまったく含まれなくなりました。代わりに、発信ルータがリンクへのインターフェースを (自身のインターフェースの中で) 一意に識別するために割り当てたインターフェースID (Interface ID) が含まれるようになりました。このインターフェースIDは、ルータがリンク上の指定ルータ (Designated Router) になった場合、ネットワークLSAのリンク状態IDとして使用されます。
-
2つのオプションビット、「Rビット (R-bit)」と「V6ビット (V6-bit)」が、SPF計算中にルータLSAを処理するためにオプションフィールドに追加されました (付録A.2を参照)。「Rビット」がクリアされている場合、OSPFスピーカーは、トランジットトラフィックの転送に使用されることなく、OSPFトポロジ配布に参加できます。これは、ルーティングプロトコルに参加したいマルチホームホスト (Multi-Homed Hosts) で使用できます。V6ビットはRビットを特殊化します。V6ビットがクリアされている場合、OSPFスピーカーは、IPv6データグラムの転送に使用されることなく、OSPFトポロジ配布に参加できます。Rビットが設定され、V6ビットがクリアされている場合、IPv6データグラムは転送されませんが、別のプロトコルファミリに属するデータグラムは転送される可能性があります。
-
OSPFパケットヘッダーに「インスタンスID (Instance ID)」が含まれるようになり、単一のリンク上で複数のOSPFプロトコルインスタンスを実行できるようになりました (第2.4節を参照)。
2.8. LSA Format Changes (LSAフォーマットの変更)
すべてのアドレッシングセマンティクスが、LSAヘッダー、ルータLSA、およびネットワークLSAから削除されました。これらの2つのLSAは、ネットワークプロトコルに依存しない方法でルーティングドメインのトポロジを記述するようになりました。IPv6アドレス情報とネクストホップ解決に必要なデータを配布するために、新しいLSAが追加されました。IPv4のLSAの一部の名前が、互いにより一貫性を持つように変更されました。
詳細には、LSAフォーマットの変更は次のとおりです:
-
オプションフィールドがLSAヘッダーから削除され、24ビットに拡張され、ルータLSA、ネットワークLSA、エリア間ルータLSA、およびリンクLSAの本体に移動されました。詳細については、付録A.2を参照してください。
-
LSAタイプフィールドが (以前のオプションスペースに) 16ビットに拡張され、上位3ビットがフラッディングスコープと未知のLSAタイプの処理をエンコードします (第2.9節を参照)。
-
LSA内のアドレスは、[アドレス (Address)、マスク (Mask)] ではなく [プレフィックス (Prefix)、プレフィックス長 (Prefix Length)] として表現されるようになりました (付録A.4.1を参照)。デフォルトルートは、長さ0のプレフィックスとして表現されます。
-
ルータLSAとネットワークLSAには、アドレス情報がなくなり、ネットワークプロトコルに依存しなくなりました。
-
ルータインターフェース情報は、複数のルータLSAに分散される可能性があります (MAY)。受信者は、SPF計算を実行するときに、特定のルータによって発信されたすべてのルータLSAを連結しなければなりません (MUST)。
-
リンクLSA (Link-LSA) と呼ばれる新しいLSAが導入されました。リンクLSAはリンクローカルフラッディングスコープを持ち、関連付けられているリンクを超えてフラッディングされることはありません。リンクLSAには3つの目的があります: 1) リンクに接続されている他のすべてのルータにルータのリンクローカルアドレスを提供する、2) リンクに関連付けるIPv6プレフィックスのリストをリンクに接続されている他のルータに通知する、3) リンクのために発信されるネットワークLSAに関連付けるオプションビットのコレクションをルータがアドバタイズできるようにする。詳細については、第4.4.3.8節を参照してください。
-
IPv4では、ルータLSAはルータのIPv4インターフェースアドレス、つまりリンクローカルアドレスのIPv4相当物を運びます。これらは、OSPFルーティング計算中にネクストホップを計算するときにのみ使用されるため ([OSPFV2] の第16.1.1節を参照)、ローカルリンクを超えてフラッディングする必要はありません。したがって、リンクLSAを使用してこれらのアドレスを配布する方が効率的です。リンクローカルアドレスは、すべてのケースでHelloの受信を通じて学習できるわけではないことに注意してください。NBMAリンクでは、ネクストホップルータは必ずしもHelloを交換しません。むしろ、これらのルータは指定ルータ (DR) を介して互いの存在を知ります。
-
ネットワークLSAのオプションフィールドは、リンク上の各ルータがそのリンクLSAでアドバタイズするオプションの論理OR (Logical OR) に設定されます。
-
タイプ3サマリLSA (Summary-LSAs) は「エリア間プレフィックスLSA (Inter-Area-Prefix-LSAs)」に改名されました。タイプ4サマリLSAは「エリア間ルータLSA (Inter-Area-Router-LSAs)」に改名されました。
-
エリア間プレフィックスLSA、エリア間ルータLSA、NSSA-LSA、およびAS外部LSAのリンク状態IDは、そのアドレッシングセマンティクスを失い、リンク状態データベースの個々の部分を識別するためだけに機能するようになりました。以前にリンク状態IDによって表現されていたすべてのアドレスまたはルータIDは、LSA本体に運ばれるようになりました。
-
ネットワークLSAとリンクLSAは、リンク状態IDが追加の意味を持つ唯一のLSAです。これらのLSAでは、リンク状態IDは常に、記述されているリンク上の発信ルータのインターフェースIDです。このため、ネットワークLSAとリンクLSAは、サイズを制限できない唯一のLSAになりました: ネットワークLSAは、リンクに接続されているすべてのルータをリストしなければならず (MUST)、リンクLSAは、リンク上のルータのすべてのアドレスをリストしなければなりません (MUST)。
-
エリア内プレフィックスLSA (Intra-Area-Prefix-LSA) と呼ばれる新しいLSAが導入されました。このLSAは、IPv4でルータLSAとネットワークLSAに含まれているすべてのIPv6プレフィックス情報を運びます。詳細については、第4.4.3.9節を参照してください。
-
AS外部LSAでの転送アドレス (Forwarding Address) または外部ルートタグ (External Route Tag) の包含は、オプションになりました。さらに、AS外部LSAは、OSPFプロトコルの範囲外の追加のルート属性を含めるために、別のLSAを参照できるようになりました。たとえば、この参照は、BGPパス属性を外部ルートに添付するために使用できます。
2.9. Handling Unknown LSA Types (未知のLSAタイプの処理)
未知のLSAタイプの処理がより柔軟になり、LSタイプに基づいて、未知のLSAタイプはリンクローカルフラッディングスコープを持つものとして扱われるか、理解されているかのように保存およびフラッディングされます。この動作は、リンク状態ヘッダーのLSタイプフィールドのLSAハンドリングビット (LSA Handling Bit) に明示的にコード化されています (付録A.4.2.1のUビットを参照)。
単一のリンク上でルータ機能を混在させたいという要望のため、未知のタイプを単に破棄するIPv4 OSPFの動作はサポートされていません。指定ルータがリンク上の他のルータよりも少ないオプションをサポートしている場合、未知のタイプを破棄すると問題が発生します。
2.10. Stub/NSSA Area Support (スタブ/NSSAエリアサポート)
IPv4のためのOSPFでは、スタブ (Stub) エリアとNSSAエリアは、エリアの内部ルータのリンク状態データベースとルーティングテーブルのサイズを最小化するように設計されました。これにより、最小限のリソースを持つルータでも、非常に大きなOSPFルーティングドメインに参加できます。
IPv6のためのOSPFでは、スタブエリアとNSSAエリアの概念が保持されています。IPv6では、必須のLSAタイプのうち、スタブエリアはルータLSA、ネットワークLSA、エリア間プレフィックスLSA、リンクLSA、およびエリア内プレフィックスLSAのみを運びます。NSSAエリアは、これらのタイプと、もちろんNSSA-LSAに制限されています。これは、IPv4スタブエリアで運ばれるLSAタイプのIPv6相当物です: ルータLSA、ネットワークLSA、タイプ3サマリLSA、およびNSSAエリアの場合: スタブエリアタイプとNSSA-LSA。
2.11. Identifying Neighbors by Router ID (ルータIDによる隣接ルータの識別)
IPv6のためのOSPFでは、特定のリンク上の隣接ルータは常にそのOSPFルータIDによって識別されます。これは、ポイントツーポイントネットワークと仮想リンク上の隣接ルータはルータIDによって識別され、ブロードキャスト、NBMA、およびポイントツーマルチポイントリンク上の隣接ルータはIPv4インターフェースアドレスによって識別されるIPv4の動作とは対照的です。
この変更は、OSPFパケットの受信 ([OSPFV2] の第8.2節を参照)、隣接ルータの検索 ([OSPFV2] の第10節)、およびHelloパケットの受信 ([OSPFV2] の第10.5節) に影響します。
ルータID 0.0.0.0は予約されており、使用すべきではありません (SHOULD NOT)。