OSPFv2 について
OSPFv2 は、IPv4 ネットワーク用 IETF リンクステート プロトコルです。OSPFv2 ルータは、hello パケットと呼ばれる特別なメッセージを各 OSPF 対応インターフェイスに送信して、ほかの OSPFv2 隣接ルータを探索します。ネイバー ルータが発見されると、この 2 台のルータは hello パケットの情報を比較して、両者の設定に互換性のあるかどうかを判定します。これらの隣接ルータは隣接を確立しようとします。つまり、両者のリンクステート データベースを同期させて、確実に同じ OSPFv2 ルーティング情報を持つようにします。隣接ルータは、各リンクの稼働状態に関する情報、リンクのコスト、およびその他のあらゆるネイバー情報を含むリンクステート アドバタイズメント(LSA)を共有します。これらのルータはその後、受信した LSA をすべての OSPF 対応インターフェイスにフラッディングします。これにより、すべての OSPFv2 ルータのリンクステート データベースが最終的に同じになります。すべての OSPFv2 ルータのリンクステート データベースが同じになると、ネットワークは収束します。その後、各ルータは、ダイクストラの最短パス優先(SPF)アルゴリズムを使用して、自身のルート テーブルを構築します。
OSPFv2 ネットワークは、複数のエリアに分割できます。ルータは、ほとんどの LSA を 1 つのエリア内だけに送信するため、OSPF 対応ルータの CPU とメモリの要件が緩やかになります。
OSPFv2 は IPv4 をサポートしています。
(注) |
Cisco NX-OS 上の OSPFv2 は、RFC 2328 をサポートしています。この RFC では、ルート サマリー コストの計算に、RFC1583 で使用する計算と互換性がない別の方法が導入されました。また RFC 2328 では、AS-external パスに対して異なる選択基準が導入されました。すべてのルータが同じ RFC をサポートしていることを確認することが重要です。RFC。RFC1583 にのみ準拠しているルータがネットワークに含まれる場合は、 rfc1583compatibility コマンドを使用します。デフォルトでサポートされている OSPFv2 用の RFC 標準は、Cisco NX-OS と Cisco IOS とで異なる場合があります。値が同じになるように設定するには、調整が必要です。詳細については、「OSPF RFC 互換モードの例」の項を参照してください。 |
Hello パケット
OSPFv2 ルータは、すべての OSPF 対応インターフェイスに hello パケットを定期的に送信します。ルータがこの hello パケットを送信する頻度は、インターフェイスごとに設定された hello 間隔により決定されます。OSPFv2 は、hello パケットを使用して、次のタスクを実行します。
-
ネイバー探索
-
キープアライブ
-
双方向通信
-
指定ルータの選定(「指定ルータ」セクションを参照してください)
hello パケットには、リンクの OSPFv2 コスト割り当て、hello 間隔、送信元ルータのオプション機能など、送信元の OSPFv2 インターフェイスとルータに関する情報が含まれます。これらの hello パケットを受信する OSPFv2 インターフェイスは、設定に受信インターフェイスの設定との互換性があるかどうかを判定します。互換性のあるインターフェイスはネイバーと見なされ、ネイバー テーブルに追加されます(「ネイバー」の項を参照してください)。
hello パケットには、送信元インターフェイスが通信したルータのルータ ID のリストも含まれます。受信インターフェイスが、このリストで自身の ID を見つけた場合は、2 つのインターフェイス間で双方向通信が確立されます。
OSPFv2 は、hello パケットをキープアライブ メッセージとして使用して、ネイバーが通信を継続中であるかどうかを判定します。ルータが設定されたデッド間隔(通常は hello 間隔の倍数)で hello パケットを受信しない場合、そのネイバーはローカル ネイバー テーブルから削除されます。
ネイバー情報
ネイバーであると見なされるようにするには、リモート インターフェイスと互換性があるように、OSPFv2 インターフェイスを設定しておく必要があります。この 2 つの OSPFv2 インターフェイスで、次の基準が一致している必要があります。
-
hello 間隔
-
デッド間隔
-
エリア ID(エリアセクションを参照してください)
-
認証
-
オプション機能
一致する場合は、次の情報がネイバー テーブルに入力されます。
-
ネイバー ID:ネイバーのルータ ID。
-
プライオリティ:ネイバーのプライオリティ。プライオリティは、指定ルータの選定(指定ルータセクションを参照)に使用されます。
-
状態:ネイバーから通信があったか、双方向通信の確立処理中であるか、リンクステート情報を共有しているか、または完全な隣接関係が確立されたかを示します。
-
デッド タイム:このネイバーから最後の hello パケットを受信した後に経過した時間を示します。
-
IP アドレス:ネイバーの IP アドレス。
-
指定ルータ:ネイバーが指定ルータ、またはバックアップ指定ルータとして宣言されたかどうかを示します(指定ルータセクションを参照してください)。
-
ローカル インターフェイス:このネイバーの hello パケットを受信したローカル インターフェイス。
隣接関係
すべてのネイバーが隣接関係を確立するわけではありません。ネットワーク タイプと確立された指定ルータに応じて、完全な隣接関係を確立して、すべてのネイバーと LSA を共有するものと、そうでないものがあります。詳細については、指定ルータを参照してください。
隣接関係は、OSPF のデータベース説明(DD)パケット、リンク状態要求(LSR)パケット、およびリンク状態更新(LSU)パケットを使用して確立されます。データベース説明パケットに含まれるのは、ネイバーのリンクステート データベースからの LSA ヘッダーだけです(リンクステート アドバタイズメント セクションを参照してください)。ローカル ルータは、これらのヘッダーを自身のリンクステート データベースと比較して、新規の LSA か、更新された LSA かを判定します。ローカル ルータは、新規または更新の情報を必要とする各 LSA について、リンク状態要求(LSR)パケットを送信します。ネイバーは LSU パケットで応答します。このパケット交換は、両方のルータのリンクステート情報が同じになるまで継続します。
指定ルータ
複数のルータを含むネットワークは、OSPF 特有の状況です。すべてのルータがネットワークで LSA をフラッディングした場合は、同じリンクステート情報が複数の送信元から送信されます。ネットワークのタイプによっては、OSPFv2 は指定ルータ(DR)という 1 台のルータを使用して LSA のフラッディングを制御し、OSPFv2 の残りの部分に対してネットワークを代表する役割をさせる場合があります(「エリア」の項を参照)。DR がダウンした場合、OSPFv2 はバックアップ指定ルータ(BDR)を選択します。DR がダウンすると、OSPFv2 はこの BDR を使用します。
ネットワーク タイプは次のとおりです。
-
ポイントツーポイント: 2 台のルータ間にのみ存在するネットワーク。ポイントツーポイント ネットワーク上の全ネイバーは隣接関係を確立し、DR は存在しません。
-
ブロードキャスト: ブロードキャスト トラフィックが可能なイーサネットなどの共有メディア上で通信できる複数のルータを持つネットワーク。OSPFv2 ルータは DR および BDR を確立し、これらにより、ネットワーク上の LSA フラッディングを制御します。OSPFv2 は、よく知られている IPv4 マルチキャスト アドレス 224.0.0.5 および MAC アドレス 0100.5300.0005 を使用して、ネイバーと通信します。
DR と BDR は、hello パケット内の情報に基づいて選択されます。インターフェイスは hello パケットの送信時に、どれが DR および BDR かわかっている場合は、優先フィールドと、DR および BDR フィールドを設定します。ルータは、hello パケットの DR および BDR フィールドで宣言されたルータと優先フィールドに基づいて、選定手順を実行します。最終的に OSPFv2 は、最も大きいルータ ID を DR および BDR として選択します。
他のルータはすべて DR および BDR と隣接関係を確立し、IPv4 マルチキャスト アドレス 224.0.0.6 を使用して、LSA 更新情報を DR と BDR に送信します。次の図は、すべてのルータと DR との隣接関係を示しています。
DR は、ルータ インターフェイスに基づいています。1 つのネットワークの DR であるルータは、別のインターフェイス上の他のネットワークの DR となることはできません。
エリア
OSPFv2 ネットワークを複数のエリアに分割すると、ルータに要求される OSPFv2 の CPU とメモリに関する要件を制限できます。エリアとは、ルータの論理的な区分で、OSPFv2 ドメイン内にリンクして別のサブドメインを作成します。LSA フラッディングはエリア内でのみ発生し、リンクステート データベースはエリア内のリンクにのみ制限されます。定義されたエリア内のインターフェイスには、エリア ID を割り当てることができます。エリア ID は、10.2.3.1 などの、数字またはドット付き 10 進表記で入力できる 32 ビット値です。
Cisco NX-OS は常にドット付き 10 進表記でエリアを表示します。
OSPFv2 ネットワーク内に複数のエリアを定義する場合は、0 という予約されたエリア ID を持つバックボーン エリアも定義する必要があります。エリアが複数ある場合は、1 台以上のルータがエリア境界ルータ(ABR)となります。図では、ABR がバックボーン エリアと他の 1 つ以上の定義済みエリアの両方に接続する方法を示します。
ABR には、接続するエリアごとに個別のリンクステート データベースがあります。ABR は、接続したエリアの 1 つからバックボーン エリアにネットワーク集約(タイプ 3)LSA(「 ルート集約」セクションを参照)を送信します。バックボーン エリアは、1 つのエリアに関する集約情報を別のエリアに送信します。OSPFv2 エリア図に、エリア 0 が、エリア 5 に関する集約情報をエリア 3 に送信しています。
OSPFv2 では、自律システム境界ルータ(ASBR)という、もう 1 つのルータ タイプも定義されています。このルータは、OSPFv2 エリアを別の自律システムに接続します。自律システムとは、単一の技術的管理エンティティにより制御されるネットワークです。OSPFv2 は、そのルーティング情報を別の自律システムに再配布したり、再配布されたルートを別の自律システムから受信したりできます。詳細については、「詳細な機能」のセクションを参照してください。
リンクステート アドバタイズメント
OSPFv2 はリンクステート アドバタイズメント(LSA)を使用して、固有のルーティング テーブルを構築します。
リンクステート アドバタイズメント タイプ
OSPFv2 はリンクステート アドバタイズメント(LSA)を使用して、固有のルーティング テーブルを構築します。
次の表に、Cisco NX-OS でサポートされる LSA タイプを示します。
タイプ |
名前 |
説明 |
---|---|---|
1 |
ルータ LSA |
すべてのルータが送信する LSA。この LSA には、すべてのリンクの状態とコスト、およびリンク上のすべての OSPFv2 ネイバーの一覧が含まれます。ルータ LSA は SPF 再計算をトリガーします。ルータ LSA はローカル OSPFv2 エリアにフラッディングされます。 |
2 |
ネットワーク LSA |
DR が送信する LSA。この LSA には、マルチアクセス ネットワーク内のすべてのルータの一覧が含まれます。ネットワーク LSA は SPF 再計算をトリガーします。「指定ルータ」のセクションを参照してください。 |
3 |
ネットワーク集約 LSA |
エリア境界ルータが、ローカル エリア内の宛先ごとに外部エリアに送信する LSA。この LSA には、エリア境界ルータからローカルの宛先へのリンク コストが含まれます。「エリア」のセクションを参照してください。 |
4 |
ASBR 集約 LSA |
エリア境界ルータが外部エリアに送信する LSA。この LSA は、リンク コストを ASBR のみにアドバタイズします。「エリア」の項を参照してください。 |
5 |
AS 外部 LSA |
ASBR が生成する LSA。この LSA には、外部自律システム宛先へのリンク コストが含まれます。AS 外部 LSA は、自律システム全体にわたってフラッディングされます。「エリア」の項を参照してください。 |
7 |
NSSA 外部 LSA |
ASBR が Not-So-Stubby Area(NSSA)内で生成する LSA。この LSA には、外部自律システム宛先へのリンク コストが含まれます。NSSA 外部 LSA は、ローカル NSSA 内のみでフラッディングされます。「エリア」のセクションを参照してください。 |
9–11 |
不透明 LSA |
OSPF の拡張に使用される LSA。「不透明 LSA」のセクションを参照してください。 |
リンク コスト
各 OSPFv2 インターフェイスは、リンク コストを割り当てられています。このコストは任意の数字です。デフォルトでは、Cisco NX-OS が、設定された参照帯域幅をインターフェイス帯域幅で割った値をコストとして割り当てます。デフォルトでは、参照帯域幅は 40 Gbps です。リンク コストは各リンクに対して、LSA 更新情報で伝えられます。
フラッディングと LSA グループ ペーシング
OSPFv2 ルータは LSA を受信すると、その LSA をすべての OSPF 対応インターフェイスに転送し、この情報を使用して OSPFv2 エリアをフラッディングします。この LSA フラッディングにより、ネットワーク内のすべてのルータが同じルーティング情報を持つことが保証されます。LSA フラッディングは、OSPFv2 エリアの設定により異なります(「 エリア 」を参照)。LSA は、リンクステート リフレッシュ時間に基づいて(デフォルトでは 30 分ごとに)フラッディングされます。各 LSA には、リンクステート リフレッシュ時間が設定されています。
ネットワークの LSA 更新情報のフラッディング レートは、LSA グループ ペーシング機能を使用して制御できます。LSA グループ ペーシングにより、CPU またはバッファの高い使用率を低下させることができます。この機能により、同様のリンクステート リフレッシュ時間を持つ LSA がグループ化されるため、OSPFv2 で、複数の LSA を 1 つの OSPFv2 更新メッセージにまとめることが可能となります。
デフォルトでは、相互のリンクステート リフレッシュ時間が 10 秒以内の LSA が、同じグループに入れられます。この値は、大規模なリンクステート データベースでは低く、小規模のデータベースでは高くして、ネットワーク上の OSPFv2 負荷を最適化する必要があります。
リンクステート データベース
各ルータは、OSPFv2 ネットワーク用のリンクステート データベースを保持しています。このデータベースには、収集されたすべての LSA が含まれ、ネットワークを通過するすべてのルートに関する情報が格納されます。OSPFv2 は、この情報を使用して、各宛先への最適パスを計算し、この最適パスをルーティング テーブルに入力します。
MaxAge と呼ばれる設定済みの時間間隔で受信された LSA 更新情報がまったくない場合は、リンクステート データベースから LSA が削除されます。ルータは、LSA を 30 分ごとに繰り返してフラッディングし、正確なリンクステート情報が期限切れで削除されるのを防ぎます。Cisco NX-OS は、LSA グルーピング機能をサポートし、同時にすべての LSA が更新されないようにします。詳細については、「フラッディングと LSA グループ ペーシング 」のセクションを参照してください。
不透明 LSA
不透明 LSA により、OSPF 機能の拡張が可能となります。不透明 LSA は、標準 LSA ヘッダーと、それに続くアプリケーション固有の情報で構成されます。この情報は、OSPFv2 または他のアプリケーションにより使用される場合があります。OSPFv2 は、OSPFv2 グレースフル リスタート機能をサポートするために Opaque LSA を使用します(「グレースフル リスタート」セクションを参照)。次のような 3 種類の不透明 LSA タイプが定義されています。
-
LSA タイプ 9:ローカル ネットワークにフラッディングされます。
-
LSA タイプ 10:ローカル エリアにフラッディングされます。
-
LSA タイプ 11:ローカル自律システムにフラッディングされます。