自宅にあるCisco 1812Jを2台使ってccstudyさんで掲載されているOSPFの設定をしていきます。
http://www.ccstudy.org/study/ospf/basic/basic.html
*ルータ間はSerialでは無くFastethernet接続としました。
LSAとは「OSPFルータ同士で共有されるリンクステート情報やルーティング情報の入ったOSPFデータパケット」
※用語集はccstudyさんのが一番わかりやすいです。
ccstudy
-LSAの種類により異なるリンクステートIDが設定されます。
LASの種類 | 生成元 | リンクステートID | |
1.Router LSA | OSPFルータ | OSPFのルーターID | リンク情報が含まれる |
2.Summary LSA | DR | DRのIPアドレス | DR所属セグメントのルータ一覧、マスクが含まれる |
3.Network Summary LSA | ABR | 宛先NWアドレス | エリア間のNW情報が含まれる |
4.ASBR Summary LSA | ABR | ASBRのルーターID | ASBRまでのルート情報が含まれる |
5.AS External LSA | ASBR | 宛先NWアドレス | AS外部NWへのルート情報が含まれる |
7.NSSA External LSA | NSSA内のASBR |
[LS Type2]
Type2 LSAのリンクステートIDは、そのセグメントにおけるDRのI/Fアドレスが格納されます。
[LS Type3]
LSType1のRouter LSAにはルータに接続されているOSPFを話すリンクの情報(リンクID、リンクデータ、コスト)が複数個含まれます。なお、sh ip ospf databaseコマンドで表示されるLink IDはここの「リンクID」では無く、前記の「リンクステートID」です。表記が統一されていないのでわかりづらいです。
設定されるリンクの情報はリンクのタイプによって異なり、受信した側のI/Fのコストが加算されます。
-リンクタイプ毎のリンクIDとリンクデータ
リンクタイプ | リンクID | リンクデータ |
Stub | ネットワークアドレス | サブネット |
トランジット | DRのIPアドレス | 受信したI/Fアドレス |
PtoP | NeighborルータのID | 受信したI/Fのアドレス |
※リンクタイプがPtoPの場合、RouterLSAの中のリンク情報2つセットで一つのリンク情報を示します。この場合のリンクIDはNeighborルータのID、Dataは受信したI/Fのアドレスなのでサブネットがわからないのです。なので追加の情報が必要です。具体的にはリンクIDが上記PtoPのネットワークアドレスでありLinkTypeがStubになっているリンク情報が追加でセットされているので、そのLinkData部分にサブネット情報が入るのでそれで補います。
※リンクタイプがトランジットの場合、アドレスはわかるがサブネットがわかりません。この部分はLSType2にサブネット情報が挿入されているのでここから情報を補うことができます。
最初お互いにHelloパケットを送りあいNeighborを確立、その後Adjacencyの確率ステップへ進みます。
■DB Description
No97と98で互いが知っているLSDBの情報を交換します。(OSPF メッセージタイプ2のDB Description)
下図のようにLSA ヘッダのみ送付します。
■LS Request / LS Update
互いにLS Request (OSPF メッセージタイプ3のLS Request)を出してユニキャストでLS Update(OSPF メッセージタイプ4のLS Update)を返信しています。
192.168.0.0/24はEthernetなのでTypeはTransitだと思うがこの時点では双方がstubとして認識している模様。
下図のようにLSA ヘッダの後、リンク情報が複数記載されています。
メトリックはコスト(インターフェースの帯域幅)を採用しています。(※RIPのメトリックはホップ数)
コストはルーターからネットワークに到達した際に加算され、LSA内にmetricとして記載されます。
■Network-LSA
DRである153.1.1.1からNetworl-LSAがマルチキャスト宛に送信されます。
Network-LSAを受け取った10.1.1.1は192.168.0.0/24をTransitと認識しなおします(ここまではstubと認識していた)。10.1.1.1はトポロジーが変化したとみなしDR/BDR宛のマルチキャスト224.0.0.6へLSUpdateを送信します。