【独学CCNA】062.OSPFの動作の基本①
ゼロからのCCNA独学講座
本連載では、シスコ技術者認定資格であるCCNA合格を目指して、試験範囲の解説や問題演習などを扱っていきます!
今回はOSPFの動作の流れを解説します。
- OSPFとは
- OSPFの動作概要
- OSPFの動作の流れ-前編-
- まとめ
OSPFの動作概要
前回はOSPFの特徴について解説しました。今回と次回に渡り、OSPFの動作を見ていきましょう。
OSPFでは、隣接した他のルータをネイバーとして認識し、情報交換を行います。
そして収集した情報をもとに、最適な経路を作成します。
この流れを確認していきましょう。解説の中で5つのパケット、3つのテーブル、8つの状態遷移が登場します。これらについては後の記事で詳しく解説します。
OSPFの動作の流れ-前編-
- ネイバー関係の確立
- LSDBの同期を行う
- LSAの交換
- アジャセンシー関係の確立と維持
今回はルータとルータが1対1で繋がっている例をもとに、OSPFの流れの前半をみていきます。
1.ネイバー関係の確立
経路情報を作成するためには元となる情報、LSAが必要になります。
OSPFでは、LSAを隣接した他のルータと交換することで情報を収集します。ですが、ルータでOSPFを有効にしただけでは他のOSPGが動作しているルータを認識することができません。
そこで、OSPFを有効にしたルータではHelloパケットの送信を行います。Helloパケットを相互に送り合うことで、ルータ同士がお互いを認識し、情報交換の下準備を行うことができるのです。
Helloパケットの交換を行う前の状態がDownステートです。
OSPFを動作させるとルータはHelloパケットの送信を開始します。
Helloパケットは、OSPFが動作しているルータを宛先とするマルチキャスト、224.0.0.5宛に送られます。
他のルータからHelloパケットを受け取ると、送信元のルータを自身のネイバーテーブルに登録し、Initステートへ移行します。
Initステートは、自身が相手からHelloパケットを受け取ったものの、相手がこちらを認識していない状態です。
後の記事で解説しますが、Helloパケットにはネイバーの情報が含まれるため、Helloパケットを受け取った側では
自身が相手のネイバーテーブルに登録されているかどうかを判断することができます。
また、Helloパケットをネイバーテーブルに登録するにはいくつかの条件が自身と他のルータ間で一致している必要があります。
Helloインターバル、Deadインターバル、サブネットマスク、エリアID、スタブフラグ、認証情報、といった条件です。
これらの情報はHelloパケットに含まれており、ネイバーになるためにはこれらの条件が一致していなければなりません。
隣接するルータ同士が相互にHelloパケットを交換し終えると、2wayステートへ移行します。
この状態をネイバー関係とも言います。
2.LSDBの同期を行う
双方のルータが2wayステートになると、LSDBの同期を開始します。
LSDBの同期するために、DBDパケットを交換してマスターとスレーブの関係を構築します。
DBDパケットにはシーケンス番号が含まれており、この番号で情報交換を管理しています。
そこで、まずはDBDパケットを交換し、ルータIDが大きいルータをマスター、小さいルータをスレーブとします。
マスターとなったルータのシーケンス番号を初期値として情報交換を開始します。
マスターとスレーブが決定した状態がExstartステートです。
マスターとスレーブが決定すると、Exchangeステートに移行しLSDBの同期を始めます。
Exchangeステートの段階では、LSDBの中身全てをやり取りするわけではなく、LSDB内の各データのヘッダだけを交換します。
簡単に言うと、LSDBの目録を交換しているようなイメージです。
DBDパケットの交換が完了すると、実際のデータの交換へと移行していきます。
まとめ
- OSPFではまずHelloパケットを交換してネイバー関係を構築する
- ネイバー関係を構築したのち、LSDBの同期を行う
- Downステート→Initステート→2wayステートの順に状態遷移する
今回はOSPFの動作の流れの前半を紹介しました。
次回は今回の続きから解説していきます。