一、前期回顧
之前講過運行ospf的路由器之間是通過lsa進行消息傳遞,且建立鄰接關係時,兩端接口的網絡類型必須一致,如果在MA類型網絡中接口的掩碼也要一致,p2p網絡掩碼可以不一致,只有MA網絡中才有DR與BDR角色等約束條件,之所以有這些要求,從另一個維度講都是因爲lsa需要滿足這些條件,本章就來詳細介紹下ospf中的lsa種類及作用。
二、拓撲介紹
area1是一個MA網絡類型,area0是p2p網絡類型,R1,R2,R3處於一個廣播域,交換機上未作任何設備,只當一個純二層設備,R3的g0/0/0口作爲本area的DR,其餘信息如圖上所示。
三、lsa的種類級使用場景
lsa根據種類共分爲7種,即1~7類lsa,每一種lsa的出現都需要滿足特定的條件,本章重點介紹前3種lsa的特點及功能,其餘lsa後續介紹。
1類lsa
每一個運行ospf的路由器都會產生1類lsa,1類lsa自己(本路由器)直連接口的信息在本area內進行泛洪,類似於廣播終結於網關,1類lsa終結於ABR,1類lsa主要的兩個特點:
- 通過lsa中相關的V、B、E位是否置1,描述路由器的virtual-link,ABR,ASBR等特殊角色。
- 描述本路由器在某個區域內部的直連鏈路接口及接口cost值。
通過查看R1的lsdb可以看到R1上有3條標表項爲router的1類路由,R2上的lsdb與R1一致,印證了同一area內的lsdb完全一樣
[R1]display ospf lsdb
OSPF Process 1 with Router ID 1.1.1.1
Link State Database
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 2.2.2.2 2.2.2.2 6 48 8000000B 1
Router 1.1.1.1 1.1.1.1 13 48 80000007 1
Router 3.3.3.3 3.3.3.3 6 36 8000000B 1
Network 123.0.0.3 3.3.3.3 6 36 80000008 0
Sum-Net 34.0.0.0 3.3.3.3 1194 28 80000005 48
仔細看下MA網絡區域area1中router id爲1.1.1.1路由器的lsdb
[R1]display ospf lsdb router 1.1.1.1
OSPF Process 1 with Router ID 1.1.1.1
Area: 0.0.0.1
Link State Database
Type : Router
Ls id : 1.1.1.1
Adv rtr : 1.1.1.1
Ls age : 263
Len : 48
Options : E
seq# : 80000007
chksum : 0x49c4
Link count: 2 #lsa包含2個鏈路描述
* Link ID: 123.0.0.3 #DR的ip地址
Data : 123.0.0.1 #始發路由接口地址
Link Type: TransNet #傳輸區域網絡
Metric : 1 #接口cost=1
* Link ID: 11.11.11.11
Data : 255.255.255.255
Link Type: StubNet #末梢網絡
Metric : 0
Priority : Medium
總結一下,不同鏈路類型的1類lsa中包含的link id及link data字段內容有所不同,具體爲:
序號 | 鏈路類型 | link id | link data |
---|---|---|---|
1 | 點到點鏈接另一臺路由 | 鄰接路由器route id | 和網絡相連的本地路由器始發接口ip地址 |
2 | 傳輸區域網絡(MA) | dr路由器的接口ip地址 | 和網絡相連的本地路由器始發接口ip地址 |
3 | 末梢網絡 | ip或子網地址 | 網絡的ip地址或子網掩碼 |
4 | 虛鏈路 | 鄰接路由器route id | 和網絡相連的本地路由器始發接口MIB-II iflndex值 |
在R1的lsdb中除了代表1leilsa的router表項,還有network跟sum-net表項,這分別代表了2類和3類lsa,下面就這兩種lsa進行介紹。
2類lsa
首先需要說明的是,2類lsa只存在於MA類型的網絡中,在右邊p2p網絡區域area0中route id爲4.4.4.4路由器lsdb中就沒有network表項
[R4]dis ospf lsdb
OSPF Process 1 with Router ID 4.4.4.4
Link State Database
Area: 0.0.0.0
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 4.4.4.4 4.4.4.4 552 48 80000007 48
Router 3.3.3.3 3.3.3.3 552 48 80000007 48
Sum-Net 123.0.0.0 3.3.3.3 672 28 80000001 1
Sum-Net 11.11.11.11 3.3.3.3 629 28 80000001 1
Sum-Net 22.22.22.22 3.3.3.3 631 28 80000001 1
還記得介紹lsa建立鄰接關係的條件時有一條是:MA網絡類型下,接口的子網掩碼位數要一致,而p2p網絡就沒有這個要求,原因是在1類lsa中p2p類型的網絡使用2條描述信息來進行說明
[R4]display ospf lsdb router 4.4.4.4
OSPF Process 1 with Router ID 4.4.4.4
Area: 0.0.0.0
Link State Database
Type : Router
Ls id : 4.4.4.4
Adv rtr : 4.4.4.4
Ls age : 603
Len : 48
Options : E
seq# : 80000007
chksum : 0x6a02
Link count: 2
* Link ID: 3.3.3.3 #鄰接路由器router id
Data : 34.0.0.2 #與router id爲3.3.3.3路由器相連的的本地接口ip
Link Type: P-2-P
Metric : 48
* Link ID: 34.0.0.0 #與router id爲3.3.3.3路由器相連使用的網段
Data : 255.255.255.0 #該網段掩碼
Link Type: StubNet
Metric : 48
Priority : Low
而MA網絡中只是介紹了dr的接口ip跟接入該網絡本地ip地址與cost值,但光憑這一點還沒發準確描述一個網絡地址,還需要知道這ip所對應的掩碼
Link count: 2
* Link ID: 123.0.0.3
Data : 123.0.0.1
Link Type: TransNet
Metric : 1
而network表項,就是彌補1類lsa中所缺少的掩碼信息,且2類lsa只由DR產生,其掩碼是dr接口的掩碼信息,但該信息不包含cost值,所以在MA網絡中需要通過1類和2類lsa一起才能準確的描述出網絡信息
[R1]display ospf lsdb network
OSPF Process 1 with Router ID 1.1.1.1
Area: 0.0.0.1
Link State Database
Type : Network
Ls id : 123.0.0.3 #dr接口ip地址
Adv rtr : 3.3.3.3 #通告路由器
Ls age : 402
Len : 36
Options : E
seq# : 8000000c
chksum : 0xd2d5
Net mask : 255.255.255.0 #子網掩碼
Priority : Low
Attached Router 3.3.3.3 #該MA網絡中包含的路由器route id
Attached Router 1.1.1.1 #該MA網絡中包含的路由器route id
Attached Router 2.2.2.2 #該MA網絡中包含的路由器route id
通過上圖中Adv rtr: 3.3.3.3可以看出,2類lsa是由本area中的dr路由器產生,並通過224.0.0.5這個組播地址發送給area內所有的路由器,還記得224.0.0.6這個組播地址麼,之前介紹ospf在MA網絡中的時候提到過,所有的drother相互間不通信,停留在2way階段,只能與dr與bdr通信,原因就是dr與bdr同時又偵聽了224.0.0.6地址接收lsa,再通過224.0.0.5這個組播將lsa下發到本區域內所有的路由器。總結一下,2類lsa的特點:
- 2類lsa由dr產生,描述所有連接到該MA網絡的路由器route id及該MA網絡的掩碼地址(dr接口掩碼地址)
- 2類lsa只在本area泛洪,終結於abr
- 2類lsa沒有cost字段
-
1類lsa結合2類lsa才能完整提供一個MA網絡所需要的信息
3類lsa
從拓撲圖中,我們能夠看到,無論是area1中的MA網絡還是area0中的p2p網絡,其內部的1類、2類lsa都無法傳遞到對方區域,這樣無法計算出到達11.11.11.11/24等ip地址路由,3類lsa就是解決此類問題。3類lsa由abr路由器產生,其表項爲Sum-Net,其功能是收集本區域的1類2類lsa,再將他們以3類lsa發送到其他區域泛洪,這樣計算路由的問題就解決了
以上圖中R3將area0中的1類lsa收集後發送到area1爲例,此時在R1上看到的3類lsa是由R3產生,並且cost值爲48,此處cost值是R4計算到R3的開銷(p2p網絡開銷爲48),而R3只是將此信息直接泛洪到了area1[R1]display ospf lsdb OSPF Process 1 with Router ID 1.1.1.1 Link State Database Area: 0.0.0.1 Type LinkState ID AdvRouter Age Len Sequence Metric Router 2.2.2.2 2.2.2.2 656 48 8000000D 1 Router 1.1.1.1 1.1.1.1 662 48 8000000D 1 Router 3.3.3.3 3.3.3.3 656 36 80000009 1 Network 123.0.0.3 3.3.3.3 656 36 80000006 0 Sum-Net 34.0.0.0 3.3.3.3 821 28 80000002 48
在R1上詳細看下3類lsa所包含的信息,能夠看到area0中的網段、掩碼、cost值都包含在本信息中,所以可以直接計算路由
[R1]display ospf lsdb summary OSPF Process 1 with Router ID 1.1.1.1 Area: 0.0.0.1 Link State Database Type : Sum-Net Ls id : 34.0.0.0 Adv rtr : 3.3.3.3 Ls age : 1009 Len : 28 Options : E seq# : 80000002 chksum : 0x35c8 Net mask : 255.255.255.0 Tos 0 metric: 48 Priority : Low
總結一下3類lsa的特點:
- 由abr產生,將本區域的1,2類lsa進行收集並在其他區域泛洪,以解決不同區域見路由計算問題
- cost是直接將本區域內到達abr的開銷泛洪到其他區域
- 3類lsa這種自身不參與鏈路狀態計算,只是收集1,2類lsa並泛洪到其他區域的工作特點與距離矢量協議特別類似