OSPF および RIP の高度なルーティング サービス

SonicOS では、ポリシー ベース ルーティングおよび RIP 通知のほかに、高度なルーティング サービス (ARS) を有効にするオプションが用意されています。高度なルーティング サービスは、ルーティング情報プロトコル (RIPv1 - RFC1058 および RIPv2 - RFC2453) および Open Shortest Path First (OSPFv2 - RFC2328) の通知およびリッスンを全面的にサポートしています。高度なルーティング サービスを有効にするのは、この 2 つの動的ルーティング プロトコルの一方または両方をサポートする必要がある環境のみにしてください。

RIP および OSPF は、さまざまな規模のネットワークでルート決定処理を自動化するのに広く使用されている Interior Gateway Protocols (IGP) です。RIP が小規模なネットワークでよく使用されるのに対して、OSPF はそれよりも大きなネットワークで使用されます。ただし、ネットワークの規模のみを見てプロトコルの妥当性を判断するのではなく、ネットワーク速度、相互運用性要件、ネットワーク全体の複雑さなども考慮する必要があります。RIPv1 と RIPv2 のどちらも ARS でサポートされており、両者の最大の違いは RIPv2 が VLSM (可変長サブネット マスク)、認証、およびルーティング更新をサポートしていることです。次の表は、RIPv1、RIPv2、OSPFv2 の主な違いをまとめたものです。

 

表 33. ルーティング情報プロトコルの違い

 

RIPv1

RIPv2

OSPFv2

プロトコル メトリック

距離ベクトル

距離ベクトル

リンク状態

最大ホップ数

15

15

無制限

ルーティング テーブル更新

定期的にテーブル全体をブロードキャストする、収束が遅い

定期的にテーブル全体をブロードキャストまたはマルチキャストする、収束が遅い

状態が変更されたらリンク状態をマルチキャストで通知する、収束が速い

サブネット サイズのサポート

クラス (a/b/c) によるサブネットのみをサポート

クラス別のみ

VLSM

自律システム トポロジ

分割不可、フラット

分割不可、フラット

エリア ベース、セグメント化および集約が可

プロトコル種別

RIP などの距離ベクトル プロトコルがホップ数のみに基づいてルーティング メトリックを決めているのに対して、OSPF などのリンク状態プロトコルではメトリックを決めるときにリンクの状態を考慮に入れます。例えば、OSPF では参照帯域幅 (既定では 100Mbit) をインターフェース速度で割ってインターフェース メトリックを決めており、リンクの速度が速くなればなるほど、コストが低くなり、的確なパスが選択される確率が高くなります。一例として次のネットワークを考えてみます。

図 11. コストが最も低いルートを決めるためのネットワーク例

上のサンプル ネットワークでは、ホスト A が RIP を使用してホスト B に到達しようとした場合、コストが最も低いルートはルータ A からルータ B となり、比較的低速の 64kbps リンクを通ることになります。OSPF を使用すると、ルータ A からルータ B へのコストが 1562 になるのに対して、ルータ A からルータ C、ルータ D、ルータ B へのへのコストは 364 で、優先ルートになります。

最大ホップ数

RIP ではホップ数を 15 までとしており、設定が間違っていたり収束が遅かったりしたために不適切なルーティング情報 (例えば、情報が古いなど) がブロードキャストされてネットワークに伝播されても、ルーティング ループが発生しないようにしています。Figure 11 の例でルータ D とルータ E 間のリンクで障害が発生し、予防措置が取られていなかった場合を考えてみます。

このような状況になったときによく取られる措置にはこのほか、次のように RIP を使用したものがあります。

スプリット ホライズン

あるインターフェースから学習したルーティング情報をそのインターフェースには送り返さないという予防メカニズムです。これは一般に、ブロードキャスト リンクでは正しく機能しますが、フレーム リレーのように、単一のリンクを使用して 2 つの自律システムに到達できる非ブロードキャスト リンクでは正しく機能しません。

ポイズン リバース

ルート ポイズニングとも呼ばれ、スプリット ホライズンを拡張したものです。ネットワークにメトリック 16 (到達不能) を通知して、誤ったバックアップ ルートが伝播されないようにします。

OSPF では、ネットワークの状況が変化すると、ルーティング テーブル全体を通知するのではなく、一般にリンク状態更新を送信するだけにとどまるため、ホップ数を制限する必要はありません。これは、収束速度を高め、更新トラフィックを減らし、ホップ数を無限にできることから、大規模なネットワークでは大きな利点となります。

ルーティング テーブル更新

上記のとおり、ルーティング テーブル全体を送信すると、収束が遅くなり、帯域幅の使用率が増え、ルーティング情報が古くなる確率が高まるという問題を引き起こします。RIPv1 は所定の間隔 (通常 30 秒ごと) でルーティング テーブル全体をブロードキャストし、RIPv2 はブロードキャストまたはマルチキャストが可能であり、OSPF はネットワーク ファブリックの状況が変化したときには常にリンク状態更新のみをマルチキャストします。OSPF にはこのほか、更新をネットワーク全体に送信しなくてもすむように、マルチ アクセス ネットワーク (その概念については後の説明を参照) で隣接関係を形成するのに指名ルータ (DR) を使用するという利点もあります。

サブネット サイズのサポート

ネットワークがクラス A、クラス B、およびクラス C (後に D およびE) に厳密に分類されたときに初めて RIPv1 が実装されました。

クラス A - 1.0.0.0 から 126.0.0.0 まで (0.0.0.0 と 127.0.0.0 は予約済み)
クラス B - 128.0.0.0 から 191.255.0.0 まで
クラス C - 192.0.0.0 から 223.255.255.0 まで
クラス D - 225.0.0.0 から 239.255.255.255 まで (マルチキャスト)
クラス E - 240.0.0. ~ 255.255.255.255 (予約済み)

このアドレス割り当ての方法は、セグメント分割 (サブネット) の方法でも、VLSM (可変長サブネット マスク) の手段による集約 (スーパーネットまたは CIDR (Classless Inter-Domain Routing)) でも柔軟性を提供しないため、極めて非効率的であることがわかっています。

RIPv2 および OSPF でサポートされる VLSM を使用すると、クラスを使用しないネットワーク表現で大きなネットワークをより小さなネットワークに分割することができます。

例えば、クラスフル 10.0.0.0/8 ネットワークを取り、/24 ネットマスクを割り当てます。このサブネットでは、ホスト範囲からネットワーク範囲に追加の 16 ビットが割り当てられます (24 - 8=16)。このサブネットで提供される追加のネットワーク数を計算するには、2 の追加のビット数乗を計算します(2^16=65,536)。つまり、1,670 万のホスト (通常ほとんどの LAN が必要な数以上) を含む 1 つのネットワークを持つことなく、それぞれが 254 の使用可能なホストを含む 65,536 のネットワークを持つことができます。

VLSM は、次のようにルート集約 (CIDR) も可能にします。

例えば、8 個のクラス C ネットワーク、192.168.0.0/24 ~ 192.168.7.0/24 がある場合に、各ネットワークへの別々のルート ステートメントを定義するのではなく、それらすべてを包含する 192.168.0.0/21 への単一のルートを指定できます。

この機能を使用すると、IP アドレス空間のより効率的で柔軟性のある割り当てを実現できるばかりでなく、ルーティング テーブルとルーティング アップデートを小規模に維持することもできます。

自律システム トポロジ

自律システム (AS) は、共通の管理制御下にあり、同じルーティング特性を共有するルータのコレクションです。自律システムのグループがルーティング情報を共有する場合、これらのシステムは一般に自律システムの連合と呼ばれます。(RFC1930 と RFC975は、これらの概念を詳細に扱っています)。簡単に言えば、AS は設定の共通性に基づいて物理ネットワーク要素を包含する論理上の区別です。

RIP と OSPF に関しては、RIP 自律システムをセグメント分割することはできません。 また、すべてのルーティング情報は AS を介して通知 (ブロードキャスト) される必要があります。これは、管理が困難になり、過剰なルーティング情報トラフィックを招く可能性があります。一方 OSPF は、エリアの概念を採用し、論理的に管理可能なセグメント分割で AS 内での情報の共有を制御できるようにします。OSPF エリアは、バックボーン エリア (エリア 0 または 0.0.0.0) で始まり、他のすべてのエリアは、このバックボーン エリアに接続する必要があります (例外あり)。ルーティングAS をセグメント分割するこの機能は、管理するには大きくなりすぎないように、またルータを扱うには計算が多用されすぎないようにするうえで役に立ちます。

OSPF の条件

OSPF の設定やメンテナンスは RIP よりもかなり複雑です。OSPF ルーティング環境を理解するには、次の概念が重要です。

リンク状態 - リンク状態は OSPF に関係しています。リンクはルータ上の送信インターフェースであり、状態にはそのコストなどインターフェースの特性が記述されています。リンク状態は、リンク状態通知 (LSA) の形式で送信されます。これは、5 種類の OSPF パケットの 1 つであるリンク状態の更新 (LSU) パケット内に含まれます。
コスト - 特定のリンクに沿ってパケットを送信するために必要な定量化されたオーバヘッド。コストは、基準帯域 (通常 100Mbit、または 10^8 ビット) をインターフェースの速度で除算して計算されます。コストが低いほど、リンクはより適切になります。一部の一般的なパス コストは次のとおりです。
 

表 34. インターフェースごとのコスト計算

インターフェース

10^8 (100Mbit) で除算=OSPF コスト

ファースト イーサネット

1

イーサネット

10

T1 (1.544Mbit)

64

DSL (1Mbit)

100

DSL (512Kbps)

200

64Kbps

1562

56Kbps

1785

エリア - 共通のリンク状態データベースを共有することを目的とする OSPF ルータのグループで構成されるネットワーク。OSPF ネットワークは、バックボーン エリア (エリア 0 または 0.0.0.0) の周辺に構築され、仮想リンクを使用する (通常、推奨されていません) 場合を除き、他のすべてのエリアはバックボーン エリアに接続する必要があります。エリアの割り当ては、OSPF ルータ上のインターフェースに固有です。言い換えると、複数のインターフェースを含むルータは同じエリアや異なるエリア用に設定されたインターフェースを持つことができます。
近隣 - 一般的なネットワーク セグメント上の OSPF ルータは、Hello パケットを送信することで近隣ルータになることができます。Hello パケットは通知と ID の形式で機能し、2 つの OSPF ルータが特定の特性の共通する組み合わせを共有している場合、これらのルータがもう一方のルータの Hello パケットにあるルータ ID を確認して近隣ルータとなります。Hello パケットは、DR (指定ルータ) および BDR (バックアップ指定ルータ) の選出プロセスでも使用されます。2 つのルータが近隣ルータになるには、次の共通する特性を持っている必要があります。
エリア ID - エリア ID は、32 ビット値を使用して OSPFエリアを識別します。これは一般に IP アドレス形式で表されます。OSPF は、動作するためにバックボーン エリア、エリア 0 (または 0.0.0.0) を最小限度必要とします。
認証 - 認証の種類は、一般に、なし、単純な文字列、または MD5 に設定できます。単純な文字列は保護なしで送信されるので、認証を識別にのみ使用する必要があります。セキュリティを考慮する場合は、MD5 を使用する必要があります。
タイマ間隔 - Hello インターバルと Dead インターバルは同じである必要があります。Hello インターバルは、キープアライブ機能として Hello パケット間の秒数を指定します。Dead インターバルは、Hello を受信しない場合にルータを使用不能と見なすまでの秒数を指定します。
スタブ エリア フラグ -「スタブ エリア」は、1 つの送出ポイントのみを必要とするため、外部リンク通知の完全なリストを必要としません。2 つの潜在的な近隣ルータ上のスタブ エリア フラグは、不適切なリンク状態の交換を避けるために同じである必要があります。近隣に影響を及ぼすもう 1 つの要因はネットワークの種類です。OSPF は、次に示すネットワークの 3 つの種類を認識します。
ブロードキャスト - 例えば、イーサネット。ブロードキャスト ネットワークでは、ブロードキャスト ドメインにある他のすべてのルータと近隣を確立できます。
ポイント ツー ポイント - 例えば、シリアル リンク。ポイント ツー ポイント (またはポイント ツー マルチポイント) ネットワークでは、リンクの一端にあるルータと近隣関係を確立できます。
NBMA (Non-Broadcast Multiple Access) - 例えば、フレーム リレー。NBMA ネットワークでは、近隣を明示的に宣言する必要があります。
リンク状態データベース - リンク状態データベースは、エリア内で隣接関係を形成している近隣OSPF により送受信される LSA で成り立っています。データベースが作成されると、データベースには所定のエリアのすべてのリンク状態情報が含まれます。この時点で最短パス優先 (SPF) アルゴリズムが適用され、コストに基づいて接続されているすべてのネットワークへの最適なルートが決定されます。SPF アルゴリズムは、すべてのルータをグラフ内の頂点と見なして各頂点間のコストを計算する Dijkstra のパス検索アルゴリズムを採用しています。
隣接関係 - OSPF ルータは、隣接するルータと LSA を交換して LSDB を作成します。隣接関係は、ネットワークの種類に応じて種々の方法で形成されます (前述の「近隣」を参照)。一般にネットワークの種類は、ブロードキャスト (例えば、イーサネット) です。このため、隣接関係はハンドシェイクのような方法で OSPF パケットを交換することで形成されます (下記の「OSPF パケットの種類」を参照)。隣接するルータ、OSPF ルータを含むセグメント (ブロードキャスト ドメイン) 間で交換される情報の量を最小にするには、Hello パケットを使用して指定ルータ (DR) およびバックアップ指定ルータ (BDR) を選択します。
DR (指定ルータ) - マルチアクセス セグメント上では、OSPF ルータが DR および BDR を選択し、セグメント上の他のすべてのデータは DR と BDR との隣接関係を形成します。DR 検出はルータの OSPF優先順位に基づきます。 この優先順位は 0 (DR には不適格) から 255 までの値に設定できます。高い優先順位を持つルータが DR になります。優先順位が同じ場合、最も高いルータ ID (インターフェース アドレス指定に基づく) を持つルータが採用されます。ルータが DRになると、不要になるまでその役割が競われることはありません。

次に、セグメント上の可能性のある各ペアリングの組み合わせ間ではなく、これらの隣接関係にまたがる LSU 内で LSA が交換されます。リンク状態の更新は、DR 以外のルータによりマルチキャスト アドレス 225.0.0.6 に送信されます。このアドレスは、RFC1583 が割り当てた「OSPFIGP 指定ルータ」アドレスです。これらの更新は、すべてのルータが LSA を受信できるようにマルチキャスト アドレス 225.0.0.5「OSPFIGP 全ルータ」にも行き渡ります。

図 12. ルーティングの隣接関係:指定ルータ (DR)

OSPF パケットの種別 - OSPF パケットには、次に示す 5 つの種別があります。
Hello (OSPF 種別 1) - 近隣 OSPF ルータとの関係を確立および維持し、指定ルータを選出するために一定の間隔で送信されます。(LSDB 同期の初期化および 2 ウェイ フェーズ中に送信)。
データベース記述 (OSPF 種別 2) - 隣接関係を形成中に OSPF ルータ間で送信されます。LSDB 同期の EXstart フェーズ中に、DD パケットは LSA の追跡に使用される ISN (初期シーケンス番号) を確立し、近隣 OSPF ルータ間でマスタ/スレーブ関係を確立します。LSDB 同期の交換フェーズでは、これらのパケットはリンク状態通知の短いバージョンを含んでいます。DD 交換は、複数のパケットにわたることができるため、これらのパケットはポール (マスタ) と応答 (スレーブ) の形式で交換され、完全性が確保されます。
リンク状態要求 (OSPF 種別 3) - LSDB 同期の読み込みフェーズ中に、近隣ルータからのデータベース更新を要求する LSR パケットが送信されます。これは、隣接関係を確立する最終手順です。
リンク状態更新 (OSPF 種別 4) - リンク状態要求に対する応答で送信されます。LSU パケットはリンク状態通知を使用して隣接関係を行き渡らせて LSDB 同期を実現します。
リンク状態確認応答 (OSPF 種別 5) - LSA フラッドの信頼性を確保するために、すべての更新は確認されます。
リンク状態通知 (LSA) - LSA には、次の 7 つの種別があります。
種別 2 (ネットワーク リンク通知) - ネットワーク内のルータのセットを記述するためにエリアの DR により送信されます。種別 2 LSA は、ルータのエリアのみに行き渡ります。
種別 3 (概要リンク通知) - ABR (領域境界ルータ) によりエリア全体に送信され、エリア内のネットワークを記述します。種別 3 LSA は、ルート統合のためにも使用され、完全スタブ エリアには送信されません。
種別 4 (AS 概要リンク通知) - ABR (エリア境界ルータ) によりエリア全体に送信され、異なる AS 内のネットワークを記述します。種別 4 LSA はスタブ エリアには送信されません。
種別 5 (AS 外部リンク通知) - ASBR (自律システム境界ルータ) により送信され、異なるAS 内のネットワークへのルートを記述します。種別 5 LSA はスタブ エリアには送信されません。外部リンク通知には、次の 2 つの種別があります。
外部種別 1 - 種別 1 のパケットは、リンクの測定基準を計算するときに内部リンク コストを外部リンク コストに追加します。同じ送信先に向かう場合、種別 1 ルートは種別 2 ルートよりも常に優先されます。
外部種別 2 - 種別 2 パケットは測定基準を求めるために外部リンク コストのみに使用されます。通常、種別 2 は外部 AS へのパスが 1 つだけある場合に使用されます。
種別 6 (マルチキャスト OSPF または MOSPF) — 送信元/送信先ルーティングと呼ばれます。これは、送信先のみに基づいてルーティングを行う多くのユニキャスト データグラム転送アルゴリズム (OSPF など) とは対照的です。MOSPF の詳細については、「RFC1584 – Multicast Extensions to OSPF」を参照してください。
種別 7 (NSSA AS 外部リンク通知) - NSSA の一部である ASBR により送信されます (「スタブ エリア」を参照)。
スタブ エリア - スタブ エリアは、最適なルートではなく 1 つのパスのみを必要とするエリアです。これは、1 つの送出ポイントのみを持つエリアであったり、SPF 最適化が必要ではないエリアとすることができます。スタブ エリアのすべてのルータは、完全な状態データベースを受信したり、SPF ツリーを計算したりすることのないスタブ ルータとして構成される必要があり、概要リンク情報のみを受信します。

スタブ エリアには次の種別があります。

スタブ エリア - 標準的なスタブ エリアであり、LSA 種別 5 (AS 外部リンク通知) を除くすべての LSA を受信します。これは、LSDB を小規模に維持するうえで役に立ち、ルータ上での計算オーバヘッドを減らします。
完全スタブ エリア - LSA 種別 3 (概要リンク)、4 (AS 概要リンク)、および 5 が通過しない特殊な種類のスタブ エリアです。エリア内のルートのみおよび既定のルートが完全スタブ エリア内に通知されます。
NSSA (準スタブ エリア) - RFC3101 で説明されている NSSA は、種別 7 LSA (NSSA AS 外部ルート) を使用して外部ルートを NSSA エリア内に行き渡らせることができるようにするハイブリッド スタブ エリアですが、種別 5 LSA を他のエリアから受け入れません。NSSA は、異なる IGP (RIP など) を実行しているリモート サイトを OSPF サイトに接続するときに役立ちます。ここでは、リモート サイトのルートをメイン OSPF サイトに配布し直す必要はありません。また、NSSA ABR (エリア境界ルータ) には、種別 7 LSA を種別 5 LSA に変換する機能もあります (SonicOS CLI からのみ可能です)。
ルータの種別 - OSPF では、ルータの役割を基にルータを次の 4 つの種別に分類しています。

図 13. OSPF 認定ルータの種別の例

IR (内部ルータ) - インターフェースがすべて同じエリア内に含まれるルータ。内部ルータの LSDB にはそのエリアの情報のみが含まれます。
ABR (エリア ボーダ ルータ) - インターフェースが複数のエリアにあるルータ。ABR は接続先の各エリアの LSDB を維持し、通常その 1 つがバックボーンです。
バックボーン ルータ - エリア 0 のバックボーンに接続されたインターフェースがあるルータ。
ASBR (自律システム境界ルータ) - AS から OSPF AS に外部ルーティング情報を通知する OSPF AS 以外 (RIP ネットワークなど) に接続されたインターフェースがあるルータ。