OSPF



 OSPF

 OSPFとは、ディスタンスベクタ型とは異なる、クラスレスのリンクステートプロトコルです。( RFC2328にて定義 )
 OSPFでは、クラスレスルーティング、VLSMのサポート、手動集約、OSPFネイバー認証、マルチキャストによる
 差分アップデート、Dijkstraアルゴリズム(SPF)による高速収束、ホップ数の無制限、大規模ネットワークに対応
 できる 「エリア」 の概念、Helloによるネイバー検出と隣接維持、ルーティングのループフリーなどが実現されて
 RIPv2のようなディスタンスベクタ型プロトコルの問題点を解決した、大規模ネットワークに適したIGPと言えます。
 ※ OSPFのバージョンには v1、v2、v3 の3つがありますが、一般的にOSPFと言えばRFC2328で定義された 「OSPFv2」 を意味します。



 リンクステートプロトコル

 OSPFはリンクステートプロトコルです。リンクステートプロトコルは、最適な経路の選択にコストを使用します。
 コストは回線の帯域幅から算出されます。このコスト値が低いものが最適な経路になります。例えば下図では
 R1から 「172.16.5.0」 への経路は、コスト ( 回線の帯域幅 ) の計算結果から R3 経由で見えることになります。



  




 OSPF - コスト計算方法 -

 OSPFのコストは、コスト値の公式 ( 100÷帯域幅Mbps ) により算出されます。つまり、100Mbpsの帯域幅は
 [ 1 ] となりますが、100Mbpsを超える1Gbpsの帯域幅の場合においても、[ 0.1 ] ではなくて [ 1 ] となります。
 宛先経路に辿り着くまでのこのコスト値の合計がOSPFのメトリックです。EIGRP同様に発信I/Fで加算します。

 下図のR1から、「172.16.5.0/24」 へのコスト値はFastEthernet経由の場合、丸印のI/F値をもとに算出します。
 R1、R2、R3の印のどのI/Fも100Mbpsであることから、R1から「172.16.5.0/24」へのコスト値は[ 3 ]になります。


  


 OSPFの用語説明

OSPFの用語 各用語の説明
ネイバーテーブル

 隣接するルータが記載されているテーブル。ネイバーを失えばその経由のパスを無効にしパスを再計算。
 OSPFネイバー確立の条件 ( @ 同じnetmask A 同じエリア B 同じHello/Dead Cスタブフラグの有無 )

 リンクステートデータベース

 LSAにより、全てのOSPFルータ、リンク等に関する情報を持つ。EIGRPのトポロジーテーブルより詳細な
 ネットワークの全体図を持つのでCPUやメモリの使用率が高くなるが、エリア内の全てのOSPFルータが
 同じLSDBを保持していることから、クエリーを送信することなく、独立して最適ルートの再計算を行える。

ルーティングテーブル  宛先への最適なルートが記載されているテーブル。ある宛先への最適ルートはLSDBから選択されて
 ルーティングテーブルに注入される。EIGRPはDUALを使用するのに対してOSPFはDijsktraを使用する。
Dijkstra  最適なパスの選択ためにLSDBに適用されるOSPFのアルゴリズム。SPFアルゴリズムとも呼ばれる。 
LSA

 LSA ( Link-state update ) には、ルータID、リンク ( インターフェースのコスト、IPアドレス、タイプ等 )
 そしてLSAのタイプなどが含まれる。LSAは独自のエージングタイマー( デフォルト30分 )を持っている。
 つまり、30分に一度ルータ全体の同期が行われる。このLSAはOSPFパケットのLSUに含まれている。 

エリア

 全てのOSPFルータは同一のLSDB ( 全てのルータとリンクに関する情報 ) を持つ必要があり、大規模な
 ネットワークになってくるとCPUやメモリの使用率が激しくなる。この「エリア」という概念を導入することで
 同一エリア内の全OSPFルータだけが同一のLSDBの詳細な情報を持つだけでよくなり、異なるエリアの
 ためのLSDBは、同じエリアのLSDBよりも大まかな情報 ( サマリ情報 ) だけを維持すればよい形となる。



 OSPF - 5種類のパケット -

 OSPFは5種類のパケットをやり取りすることにより、動的にネイバー関係を確立した上で、ネイバーテーブル
 LSDB、ルーティングテーブルを最新に保ちます。EIGRPと同様に、OSPFを有効にしたいインターフェースで
 passive-interfaceを設定すると、これらの5種類のパケットのやり取りが出来ないので隣接関係を築けません。
 ※ 経路情報をそのまま or 差分アップデートするRIPv2やEIGRPとは異なり、LSA を交換することでルーティングテーブルを作成します。

タイプ パケット名 各パケットの説明
1 Hello

 ネイバーの検出するためのパケット。ネイバーを検出してリレーションシップを確立した後のキープアライブ
 としても使用される。マルチキャスト( 224.0.0.5 )として送信される。( Hello間隔はレイヤー2により異なる )

2 DBD  DBD ( database description ) は、ルータ間のデータベースの同期をチェックします。
3 LSR  LSR ( link-state request ) は、他のルータの特定のリンクステートレコード (LSA) を要求します。
4 LSU  LSU ( link-state update ) は要求された特定のリンクステートレコード(LSA)を送信します。LSAはここにある。
5 LSAck  LSAck ( link-state acknowledegment ) は、上記のパケットに対して確認応答を行います。

 

 Resource : Routing TCP/IP Volume 1 BSCI 試験認定テキスト 第2版 CCO Open Shortest Path Fast インターネットルーティング入門


OSPF パケットフォーマット → 

ネットワークエンジニアとして

Copyright(C) 2002-2008 Cool. All Rights Reserved