IGPのダイナミックルーティングプロトコルの2つのタイプ
IGPのダイナミックルーティングプロトコルには大きく分けて2種類があります。
一つ目のリンクステート型ルーティングプロトコルの代表例としてはOSPFとIS-ISがあり、日本の企業ネットワークでは特にOSPFが広く利用されています。さらにCisco独自の方式として、ディスタンスベクタ型とリンクステート型の特徴を組み合わせた「ハイブリッド型(拡張ディスタンスベクタ型)」も存在します。
一方で、ディスタンスベクタ型の代表であるRIPは最大ホップ数が15に制限されているため、大規模なネットワークには向きません。また、VLSMに非対応、収束が遅いといった弱点もあります。そこで、大規模なネットワークに対応できるように設計されたのがリンクステート型ルーティングプロトコルです。リンクステート型ではホップ数制限がなく、収束も速いため、現代のネットワークに適した方式と言えます。
リンクステート型ルーティングプロトコルとは
ディスタンスベクタ型では、隣接ルータから受け取ったルーティング情報をそのままルーティングテーブルに追加していく単純な仕組みでした。これに対して、リンクステート型ではより高度なプロセスを踏み、ネットワーク全体を俯瞰して最短経路を計算します。
具体的な流れは次の通りです。
① Helloパケットのやり取りによって隣接ルータとネイバー関係を確立し、ネイバーテーブルを作成する
② ルータ同士でLSA(Link State Advertisement)を交換し、ネットワーク全体の情報を収集する
③ 集めた情報をトポロジテーブルに保存し、そこからトポロジマップを作成する
④ SPF(Shortest Path First)アルゴリズムを用いてSPFツリーを作成する
⑤ SPFツリーをもとに最短経路を算出し、その情報をルーティングテーブルに登録する
このとき収集されたLSAには、ルータのインターフェース情報やリンク状態に関する詳細が含まれます。OSPFにおいて、このトポロジテーブルは「LSDB(Link State Database)」と呼ばれます。
さらにディスタンスベクタ型では一定間隔ごとに全ルーティング情報を更新していましたが、リンクステート型では30分ごとにLSA単位での同期を行うため、負荷が少なく効率的です。また、ネットワークに変更があった場合には「トリガードアップデート」によって即時に更新が伝達され、変更部分だけを差分で通知するため帯域の節約にもなります。
OSPFとは
OSPF(Open Shortest Path First)は、リンクステート型ルーティングプロトコルの代表格であり、企業ネットワークで最も一般的に利用されています。名前の通り「最短経路優先」を基本とし、SPFアルゴリズムを用いて最適な経路を選択します。
OSPFの大きな特徴は、ネットワークを「エリア」という単位に分割できる点です。これにより、大規模ネットワークでも効率よくルーティング情報を管理でき、LSAの流通範囲を制限することで不要な負荷を抑えられます。特に中心となるのはエリア0(バックボーンエリア)で、すべてのエリアはこのエリアを経由して接続される必要があります。
OSPFには、IPv4対応の OSPFv2とIPv6対応の OSPFv3の2種類ありますが、一般的には前者のOSPFv2を指します。
また、OSPFはRIPのように単純なホップ数ではなく、インターフェースの帯域幅を基準に「コスト」というメトリックを計算します。そのため、より性能の高い回線を優先して使用できる仕組みになっています。
Helloパケットによるネイバー関係の確立
OSPFでは、まず隣接するルータ同士が「自分はここにいるよ」という挨拶のような意味でHelloパケットを送り合います。このパケットはマルチキャストアドレス224.0.0.5宛に送信され、受信したルータは相手をネイバーとして認識します。認識されたネイバーはネイバーテーブルに登録され、その後も定期的にHelloパケットを送り合うことで「相手がまだ生きているか」を確認し続けます。
この仕組みは、まるで友達同士が「元気?」と時々連絡を取り合っているようなイメージです。連絡が途絶えたら、そのルータはダウンしたと判断されます。
LSA交換 ⇒ LSDB構築 ⇒ トポロジマップ作成
ネイバー関係が確立すると、次はルータ同士でリンク情報をやり取りします。具体的には、自身のインターフェース情報や接続状況を「LSA(Link State Advertisement)」という形で隣のルータに送信します。受け取ったLSAはトポロジテーブルに保存され、さらに別のルータにも伝達されるため、最終的にはエリア内のすべてのルータに同じ情報が共有されます。
OSPFでは、このトポロジテーブルを特別に「LSDB(Link State Database)」と呼びます。重要なのは「同じエリア内の全ルータは同一のLSDBを保持する」という点です。エリアとは、LSAのやり取りを行う範囲を区切る論理的な単位であり、大規模ネットワークを効率的に管理する仕組みのひとつです。
LSDBに格納された情報を組み合わせることで、各ルータはネットワーク全体の地図、つまり「トポロジマップ」を作成します。この段階でルータは自分を取り巻くネットワーク全体の姿を正しく把握できるようになります。
SPFツリーの作成 ⇒ ルーティングテーブルの作成
トポロジマップが完成したら、次にSPF(Shortest Path First)アルゴリズム、通称「ダイクストラ法」が実行されます。このアルゴリズムは、地図をもとに「最もコストの低い経路はどこか」を計算するもので、結果として「SPFツリー」と呼ばれる階層構造が作られます。
OSPFのコストはリンクの帯域幅から算出され、帯域幅が広いリンクほどコストは小さくなります。例えば10Mbpsはコスト10、100Mbpsはコスト1、1Gbpsは計算上0.1ですが、整数値に切り上げて1となります。このため高速回線が優先的に選ばれる仕組みです。
たとえばR1から「192.168.3.0/24」に行く場合、R1からR2までのコストが1、R2からR3までが1、R3から目的のネットワークまでが1なら、合計コストは3になります。一方、もし別経路があり、その合計コストが12であれば、OSPFは自動的にコスト3の経路を選びます。
さらに重要なのは、同じ宛先への経路コストが等しい場合、OSPFは「等コストロードバランシング」を行うことです。つまり、複数の経路をルーティングテーブルに登録し、宛先へのトラフィックを複数のルートに分散させます。これは大規模ネットワークでの効率的な帯域利用につながる大切な機能です。
OSPF – トポロジ変更の動作
OSPFでは、ネットワーク構成に変化が起きたときに「差分のみ」をすばやく周囲に知らせる仕組みを持っています。これを「トリガードアップデート」と呼びます。たとえば、あるルータのインターフェースがダウンした場合、そのルータはすぐに新しい情報をLSAに反映し、隣接ルータに通知します。
下記は、R1のFastEthernet0/0がダウンした場合の流れです。
| 項番 | 説明 |
|---|---|
| ① | R1のFa0/0リンクがダウンし、接続していたネットワーク(192.168.0.0/24)が使えなくなる。 |
| ② | R1は自身のLSAを修正し、LSDBを更新する。 |
| ③ | SPFアルゴリズムを再実行し、SPFツリーを更新。その結果、ルーティングテーブルから該当する経路が削除される。 |
| ④ | R1は更新したLSAを隣接ルータにトリガードアップデートで通知する。 |
| ⑤ | R2は受信したLSAが新しいものであることを確認し、LSDBを更新する。 |
⑤以降、R2も同様にSPFを再計算してルーティングテーブルを更新し、そのLSAをさらに他のルータに通知します。この一連の処理はエリア内のすべてのOSPFルータで連鎖的に行われ、最終的に全ルータが同じLSDBを持つ状態になります。
この仕組みのおかげで、OSPFはネットワーク障害時に高速で収束し、大規模な環境でも安定した通信を実現できます。
OSPFの特徴
OSPFにはいくつかの重要な特徴があります。代表的なものを以下に整理します。
| 項番 | 特徴 | 説明 |
|---|---|---|
| ① | マルチベンダー対応 | IETF標準プロトコルのため、異なるメーカーのルータ同士でも相互接続が可能。 |
| ② | リンクステート型 | RIPのようなディスタンスベクタではなく、ネットワーク全体を把握するリンクステート型。 |
| ③ | 高速なコンバージェンス | トポロジ変化時にすぐに再計算され、収束が速い。 |
| ④ | コストをメトリックに使用 | 帯域幅を基準に計算される「コスト」で経路選択を行う。 |
| ⑤ | VLSM対応 | サブネットマスクを含めて通知できるため、クラスレスアドレス設計に対応。 |
| ⑥ | 経路集約のサポート | ABRやASBRで手動による経路集約が可能。大規模ネットワークに適している。 |
| ⑦ | エリア設計が可能 | エリアという論理的な単位を使って階層的にネットワークを分割できる。 |
| ⑧ | 差分アップデート | 定期的に全情報を流すのではなく、トポロジ変更時のみ差分をマルチキャストで通知。 |
これらの特徴は試験でも頻出ポイントです。特に「リンクステート型であること」「メトリックにコストを使うこと」「エリア設計が可能であること」は必ず押さえておきましょう。