OSPFってなに?(CCNA第4回) 座学編
ルーティング
今までは...
ルーター1つ1つに次の転送先のルーターのIPを入力していた。
もし上記の画像のようにルーティングが行われていた場合、PCから4ルーターを経由して目的のサーバーにアクセスすることになる。
また、ルート内で障害が起きた場合、PCから7ルーターを経由して目的のサーバーにアクセスすることになる。
OSPFだと...
OSPFの場合、あらかじめルーティングを行う必要がなく、ルーターのコスト計算によって自動で最短ルートが選択される。
また、ルート内で障害が起きた場合でも自動でコスト計算によって自動で最短ルートが選択される。
では、どうやって最短ルートを導いているのか?
OSPFの基本動作
OSPFでは以下のやり取りをルーター間で行った後、コンバージェンス(有効化)になる。
- Hello パケットを交換しネイバーを検出
- ネイバーテーブルにネイバーを登録
- 相互で認識し、LSDBの交換の準備
- ルーター間でDBDパケットを交換
- 詳細なLSA情報を交換する
LSAとは?
Link State Advertisement
IPアドレスなどのインターフェイス情報( Link State )を交換する。その情報のこと。
LSDBとは?
Link State Database
各ルーターから収集したLSAを格納するためのデータベース。各ルーター間で共有される。
Helloパケットとは?
Helloパケットは、隣接したルータの発見と生存確認のために送られる。
隣接したルータに対して自分の存在を知らせる。また定期的に送信され、それが途絶えると受信側のルーターで停止したと判断される。
マルチキャストアドレスは「224.0.0.5」が使われる。
また、Helloパケット送信時に、ネイバーの情報も一緒に送られる。
EIGRPやHSRPでも使われる。
テーブルで見てみる
状態(ステート)遷移
状態 | 詳細 |
---|---|
Down | Helloパケットを受け取る前の初期状態 |
Init | Helloパケットを受け取ったが、相手はまだ認識していない状態 |
2-Way | お互いに認識している状態 |
Exstart | DBDパケットを交換するためマスタースレーブを選択している状態 |
Exchange | DBDパケットを交換している状態 |
Load | LSRパケットを送信し最新のLSAをLSUパケットとして取得している状態 |
Full | 完全な隣接関係を築いた状態 |
パケット
パケット | 詳細 |
---|---|
Helloパケット | ネイバー発見と生存確認 |
DBDパケット | LSDBの要約情報の送信 |
LSRパケット | LSDBの詳細情報問い合わせ |
LSUパケット | LSDBの更新。LSAの集合体がLSU |
LSAckパケット | LSUパケットの確認応答 |
パケット
パケット | 詳細 |
---|---|
Helloパケット | ネイバー発見と生存確認 |
DBDパケット | LSDBの要約情報の送信 |
LSRパケット | LSDBの詳細情報問い合わせ |
LSUパケット | LSDBの更新。LSAの集合体がLSU |
LSAckパケット | LSUパケットの確認応答 |
テーブル
テーブル | 詳細 |
---|---|
ネイバーテーブル | 認識しているネイバーを登録する |
トポロジテーブル(LSDB) | 収集したLSAを登録する。同じエリア内の全ルーターで同一の情報になる |
ルーティングテーブル | 最適なルート情報を登録 |
具体的な流れ
このネットワーク上に、1.1.1.1
が新しく追加されたとする。
ステップ1
OSPFを動作させたルーターは、まずHelloパケットを全OSPFルーター宛(マルチキャストアドレス 224.0.0.5)に送信される。
Helloパケットが返ってきたルーターをネイバーとして検出する。
ステップ2
ステップ3
お互いにシーケンス番号を交換し、master/slaveを決める
ステップ4
ステップ5
ステップ6
2~6をネイバー分繰り返す
Gifで理解する
互換性
RFCで標準仕様が規定。いろんなメーカー間で使用できる
参考文献
- 林口 裕志; 浦川 晃. シスコ技術者認定教科書 CCNA 完全合格テキスト&問題集[対応試験]200 -301 (p.325). 株式会社 翔泳社. Kindle 版.
- https://note.com/sato_manabi/n/nb179b5e60762