Ch.7-8 OSPF と EIGRP

EIGRP

EIGRPはRIPなどのディスタンスベクタ型のルーティングプロトコルと同じく、自らのルーティングテーブルをアドバタイズしたり、それを受信して自分のルーティングテーブルを更新していく。

一方リンクステート型に近い特徴として、以下のようなデータを保持する。

  • ネイバーテーブル: 隣接関係にあるEIGRPルータ

  • トポロジテーブル: アドバタイズされた情報すべてを保持しているテーブル。トポロジ図ではない。

アドバタイズされた情報から最適ルートを算出するのにはDUALという方法を用いる。

DUAL

実際に最適ルートとして使われるネクストホップのことをEIGRPではサクセサといい、そのサクセサが利用できなくなった時の代替ネクストホップをフィージブルサクセサと呼ぶ。フィージブルサクセサは不等コストロードバランシングを利用しない限り、サクセサと併用されることはないが、代替ルートの情報を持ち続けるので、トポロジ変更に対する収束時間が非常に早く済むという特徴も持つ。

サクセサの選定は『自ルータから宛先ネットワークまでのコスト(FD フィージブルディスタンス)が最小となる』ネクストホップルータとなる。このコストは『複合メトリック』と呼ばれる計算式により算出され、

(10,000,000÷経路上の最小帯域幅 + 経路上の遅延合計 ÷ 10) × 256

で算出される。

FD値が同じ場合は複数のサクセサを同時に持つことになり、デフォルトでは一つの宛先ネットワークに対して最大4つのサクセサを保持でき、等コストロードバランシングに利用できる。

フィージブルサクセサは『(フィージブルサクセサとなる)ネクストホップルータから宛先ネットワークまでのコスト(AD アドバタイズドディスタンス、またはRD リポーテッドディスタンス)がサクセサのルートのFDよりも小さい』かどうかで選定される。

サクセサは「自ルータ」基準の値であるFD値を利用するのに対して、フィージブルサクセサは「隣接ルータ」基準でありAD値で比較する。当然、宛先ルータへのコストは サクセサ経由のコスト = フィージブルサクセサ経由のコスト + 隣接ルータまでのコスト となる。

具体的には以下のようになる。

f:id:Pyons:20200504095925p:plain
Ping-t 解説から

OSPF

OSPFではEIGRPと同じように、ルーティングテーブル作成のために以下のような情報を持つ.

  • ネイバーテーブル: 認識しているネイバールータ。隣接しているルータに限らず、同じエリアに所属するルーター全て認識する。

  • トポロジ―テーブル: 同一エリア内のルーターの配置をまとめたテーブル。エリア内のトポロジ図のようなもので、全てのルータが同じテーブルを持つ

OSPFに参加するルータールーターIDという値を持つ。これはルーティングドメイン内で一意である必要があり、router-idコマンドで手動設定することも可能だが、設定が行われなければ...

ルータに設定してあるループバックインターフェースのIPアドレスの中で最も大きいIPアドレスルーターIDにする ループバックインターフェースがなければ、アクティブなインターフェースの中で最も大きいIPアドレスルーターIDにする

という独特のルールが存在する。

全てのルータが同じトポロジ図を持つにあたり、各ルータが持つ自分のリンクの状態をお互いに共有する必要がある。このリンクの情報のことを(LSA: Link State Advertisement)と呼び、この情報の交換に関しては取りまとめ役のルータを置いて、効率的なトポロジ図の完成を行っている。

このとりまとめルータと、その代替ルータのことをDR(Desiginated Router)とBDR(Backup desingeted router)と呼び、それに選ばれなかった一般参加ルーターをDROTHERと呼ぶ。全てのDROHERルータはDR/BDRルータとだけ情報を交換する「ネイバー」関係となり、その他のルータとの関係は隣接(アジャセン̪̪シ―)という。

お互いがHelloパケットを交換しあう中で、受信した全てのHelloパケットのネイバーフィールドに自分のルーターIDがあれば、、自分自身の存在を全てのルータが把握していることがわかる。この状態を2WAY状態という。

DR/BDRルータの選定は、OSPFルータがお互いに送信しあうHelloパケットに含まれていて、0~255までの値を自由に設定できる。 このプライオリティ値が最大のルータがDR/BDRとなるが、0が指定されているとDR/BDRになれない。また、このHelloパケットにはDR/BDR選定の前に、「インターフェースのサブネットマスク、エリアID、認証パスワード、Hello/Deadインターバル」そして、ネイバーリストなども交換され、ネイバー関係の確立の前の様々な情報のやり取りに利用される。

また、この値がOSPFルータで同じであった場合は先ほどのルータIDが最大のものを選ぶ。なお、後からOSPFルーティングに参加したルータはたとえ、プライオリティ値が高くても、DR・BDRになることは出来ない。DRのダウン時にはBDRがDRに昇格し、その際に新しいBDRとして選出されることが出来る。

各リンクのLSAの情報を含んだパケットのことをDBDといい、BR/BDRへのDBDの送信はマルチキャストの224.0.0.6で、取りまとめられたDBDの情報は224.0.0.5で送信される。この状態のことをLOADING状態と呼ぶ。

全てのリンクのLSAがDBDパケットによって交換されたところで、各ルータは計算を開始し、ルーティングテーブルの更新を行う。この状態をFULL状態と呼ぶ。

リンクの状態が更新されると、トポロジの変更を探知したルーターがまず、DRへと224.0.0.6へ通報する。この時のパケットをLSUパケットと呼ぶ。DRはLSAの変更が必要なセグメントに対して224.0.0.5でLSUパケットを転送して、LSAの変更を要求する。LSUパケットを受信した各ルータはその受信完了を知らせるため、LSAckパケットを送信する。

OSPFをポイントツーポイントで利用する場合

2台一組でOSPFを利用する場合は、LSAの交換にそれほど手間がかからないのでDRの選定は行われない。ネイバーは224.0.0.5に送信されたHelloパケットによって自動で検出され、生存確認のため10秒間隔でHelloパケットが送信される。40秒間Helloパケットを受信できないとDownしたとみなし、トポロジの変更が行われる。