OSPFの概要
5段階のパケット
OSPFでは以下のパケットを隣接ルータとやり取りして、ネイバー関係を確立した上で、ネイバーテーブル、LSDB、ルーティングテーブルを最新に保つことを行う。
①Hello Helloパケットは、ネイバーを検出するためのパケット。ネイバーを検出してネイバー関係を確立した後のキープアライブ(ネイバー維持)としても使用される。マルチキャスト ( 224.0.0.5 ) として送信される
②DBD DBD(Database Description)パケットは、自身のLSDBに含まれているLSAのリスト一覧でLSDBの同期をチェックする。
③LSR LSR(Link State Request)パケットは自身のLSDBに不足しているLSAがあった場合、必要なLSAを要求するために使用される。
④LSU(Link State Update)パケットは、LSRで要求されたLSAを送信するために使用。
⑤LSAck LSAck(Link State Acknowledegment)は、LSUを受信したことを通知するための確認応答として送信。
OSPFテーブル(ネイバーテーブル)
①OSPFでは隣接ルータとHelloパケットを交換することでネイバー関係を確立します
②マルチキャスト(224.0.0.5)で送信し、ネイバーテーブルを確率します
③ネイバー確立後、ネイバー関係を維持するため定期的にHELLOパケットを配信する
OSPFテーブル(LSDB)
①ネイバー関係の確立後、OSPFルータは自身の持つリンク情報をLSA(Link State Advertisement)としてお互いに送信。受信したLSAをトポロジテーブルに格納する。
②OSPFではトポロジテーブルのことをLSDB( Link State Database )と呼びます。LSDBは同じエリア内(エリア1なら1内で)の全てのルータで同じLSDBを保持します。
もちろんこの3つが同じエリアというのが条件です。
OSPFテーブル(ルーティングテーブル)
①トポロジマップを作成したOSPFルータでは、次にSPFアルゴリズムを実行し階層ツリーのSPFツリーを作成します
②SPFでは、各ルータは自身をルートとして頂点に位置付け、宛先ネットワークへのコスト合計値を計算します
コスト =100mbps ➗ 帯域幅
例10mbpならコスト10となる
router-id
router-idはルーターを認識するための一意(オンリーワン)の番号を表します。
設定方法として
①router-idコマンドによる手動設定
②アクティブなループバックインタフェースのうち最大のIPアドレス
③アクティブなインタフェースのうち最大のIPアドレス
となり、①〜③の順番で優先度が高くなります。
、ネイバーとアジャセンシー
●ネイバー関係を確立する流れ
①Down State 停止状態。OSPFルータを起動した直後の状態。リンクアップするとHelloパケットの送信を開始。
②Init State 初期状態。ネイバールータから Helloパケットをはじめて受信した状態になる。
③2Way State 双方向状態。ネイバールータの存在を認識してHELLOをお互いに送信する
●アジャセンシー
OSPFルータは2Way State状態になりDR/BDRの選出が完了すると、ネイバー中で実際にLSAを交換し、LDSBの同期をとる。
DR/BDR
アジャセンシーでDR、BDRという言葉が出てきましたので確認します。OSPFでは優先度により各ルーターで代表ルーターを決める動きを行います。
DR (Designated Router) と呼ばれる代表ルータ
BDR (Backup Designated Router) と呼ばれるバックアップ代表ルータがあります。
またそれにすらなれなかったDROTHERがあります
DRとBDRの選出
ではどのように選出されるのでしょうか?
① OSPFプライオリティ値が最も大きいルータがDR
② OSPFプライオリティ値が2番目に大きいルータがBDR
③ OSPFプライオリティ値が同じ場合、ルータIDが最も大きいルータがDR、2番目に大きいルータがBDR
④その他がDROTHER
この絵だと、DRとBDRを選出する時の要件はルーターIDで選出されているということになります。