文章目錄
- 一、OSPF LSA(鏈路狀態通告)詳解
- 1. LSA通用頭部
- 2. OSPFv2 主要LSA類型
- a. Type 1 - Router LSA
- b. Type 2 - Network LSA
- c. Type 3 - Summary LSA
- d. Type 4 - ASBR Summary LSA
- e. Type 5 - AS External LSA
- f. Type 7 - NSSA External LSA
- 3. LSA泛洪機制
- 4. LSA類型與區域設計
- 5. 關鍵操作示例
- 查看LSDB(Cisco設備)
- 二、OSPF在MGRE環境下的問題
- 問題1:
- 解決方法:
- 問題2:
- 解決方法:
一、OSPF LSA(鏈路狀態通告)詳解
LSA(Link State Advertisement)是OSPF協議的核心數據結構,用于描述網絡拓撲和路由信息。每個LSA代表路由器視角下的局部網絡狀態,通過泛洪機制實現全網LSDB(鏈路狀態數據庫)同步。
1. LSA通用頭部
所有LSA類型共享20字節的通用頭部:
LSA類型、鏈路狀態ID、通告路由器ID ---- “LSA三元組” — 通過這三個參數可以唯一的標識出一條LSA。
字段 | 描述 |
---|---|
LS Age | LSA存活時間(秒),最大值3600(老化時間)。 |
Options | OSPF能力標識(如是否支持外部路由)。 |
LS Type | LSA類型(1-11,OSPFv2常用1-7)。 |
Link State ID | 鏈路狀態標識符,標識LSA的拓撲實體(如Router ID、網絡地址等)。 |
Advertising Router | 生成該LSA的路由器Router ID。 |
LS Sequence Number | 序列號(0x80000001~0x7FFFFFFF),用于檢測新舊LSA或是否存在重復。 每一臺路由器發送同一條LSA時都會攜帶一個序列號,并且這些序列號一次加1,是LSA新舊判斷的關鍵參數 序列號空間:直線型空間、循環型空間、棒棒糖型空間 |
LS Checksum | 校驗和(排除LS Age字段),校驗和也會參與LSA的新舊比較。當兩條LSA三元組相同,并且序列號也相同時,則可以使用校驗和比較,和大的認定為新。 |
Length | LSA總長度(含頭部)。 |
2. OSPFv2 主要LSA類型
a. Type 1 - Router LSA
-
生成者:每個OSPF路由器且只發送一條。
-
作用:描述區域內部路由器的直連鏈路狀態(鏈路類型、開銷值)和鄰居關系。
-
傳播范圍:僅在所屬區域內部泛洪。
-
攜帶信息:本地接口直連拓撲
-
具體信息:
- [R1]dis ospf lsdb router 查看Type1 LSA的具體信息
-
LS ID: 發出該LSA的路由器的router-id
-
Link count:鏈路數量,通過link來描述接口的鏈接情況
-
-
Metric:開銷值
-
-
link-type:鏈路類型,描述該接口的二層類型
-
transnet:
? 類型:廣播網絡或者NBMA
? link-id:本網段的DR的IP地址qh
? Data:本路由器在該網段的IP地址
-
P2P:
? 類型:ppp
? link-id:該網段對端路由器的router-id
? Data:本路由器在該網段的與對端路由器相連的接口的IP地址
-
stubnet(末梢網絡):
? 類型:p2p\環回口
? link-id:該網段的網絡地址
? Data:該網段的子網掩碼
-
Virtual(虛鏈路):
? 類型:虛鏈路
? link-id:虛鏈路鄰居的router id
? data:去往該虛連接鄰居的本地接口的IP地址
-
-
Adv Rtr:始發路由器,產生該LSA的路由器的router-id
-
鏈路ID:不同的鏈路類型,對鏈路ID值的定義是不同的。
-
鏈路數據(Link Data):不同的鏈路類型對鏈路數據的定義是不同的。
-
關鍵內容:
- 路由器所有接口的IP地址和掩碼。
- 接口連接的鄰居Router ID(點對點網絡)或DR的IP地址(廣播網絡)。
- 鏈路開銷(Cost)。
b. Type 2 - Network LSA
- 生成者:MA網絡中的DR設備(指定路由器)。
- 作用:描述廣播/NBMA網絡中的全部接入路由器及掩碼信息。(僅依靠1類LSA無法完整描述MA網絡中的信息)
- 傳播范圍:僅在所屬區域內部泛洪。
- 關鍵內容:
- DR的IP地址和網絡掩碼。
- 接入該網絡的所有路由器Router ID。
- LS ID:該網段的DR的IP地址
- Adv Rtr:該網段DR的router-id
- network mask:該網段DR的IP地址的子網掩碼信息
所有路由信息都需要就與拓撲信息進行驗算,及所有其他種類的LSA均需要通過1類和2類LSA進行驗算
c. Type 3 - Summary LSA
-
生成者:ABR(區域邊界路由器)。
-
作用:向其他區域通告本區域的匯總路由(攜帶區域之間傳遞的路由信息,通過下一個區域時需要修改為新的ABR設備)。
-
傳播范圍:跨區域傳播(但僅到達普通區域)。
-
關鍵內容:
-
目標網絡地址和掩碼。
-
ABR到目標網絡的路徑開銷。
-
LS ID:其他區域某個網段的網絡地址
-
SubAdv Rtv:通告該LSA的ABR的router-id
-
net mask:該網段的子網掩碼
注:3類LSA的傳遞范圍在ABR相鄰的單區域中進行,跨區域傳遞時,需要進行通告者的轉換,通告者變了,則將不是同一條LSA
-
d. Type 4 - ASBR Summary LSA
- 生成者:ASBR所在區域的ABR設備,通過下一個區域時需要修改為新的ABR設備。
- 作用:通告ASBR(自治系統邊界路由器)的位置。
- 傳播范圍:除Stub/NSSA區域外的全網泛洪。
- 關鍵內容:
- lsID:ASBR的Router ID。
- ABR到ASBR的開銷。
- 注:在ASBR本區域的內部路由器,不會產生到達該ASBR的4類LSA
e. Type 5 - AS External LSA
- 生成者:ASBR。
- 作用:通告引入的外部路由(如重分布進OSPF的靜態/BGP路由)。
- 傳播范圍:全網泛洪(除Stub/NSSA區域)。
- 關鍵內容:
- 外部網絡地址和掩碼。
- 外部路由類型(E1/E2)。
- LS ID:域外路由目標網絡號
- Metric:因為不同你個協議的開銷值評判標準不同,所以在進行重發布之后,將舍棄原先網絡環境中的開銷值,然后賦予一個初始的度量值 — 種子度量值 —華為設備默認為1
- import-route rip 1 cost 2 — 在重發布過程中修改種子度量值。
- E type — 標記位(標記度量值的類型)
- 0 :類型1 — 所有設備到達域外目標網段的開銷值為本地到達通告路由器的開銷值加種子度量值
- 1 :類型2 — 默認使用度量值類型為2,所有設備到達域外目標網段的開銷值為種子度量值
- import-route rip type 1 — 修改度量值類型
- 轉發地址(Forwarding Address,可選):主要是應對選路不加的情況,如果出現不佳的情況,則將最佳選路的下一跳放在轉發地址中,之后將不再按照算法尋找通告者,而是根據轉發地址到達目標。5類LSA在不存在選路不加時,轉發地址用0.0.0.0來填充。
f. Type 7 - NSSA External LSA
- 生成者:NSSA區域內的ASBR。
- 作用:在NSSA區域內替代5類LSA通告外部路由(類似Type 5的受限版本)。
- 傳播范圍:僅在NSSA區域內部傳播,由ABR轉換為Type 5后泛洪到其他區域。
- 關鍵內容:
- 外部網絡地址和掩碼。
- LS ID:域外路由目標網絡號
- 轉發地址(必須指定,通常為ASBR的接口IP)。
- 特殊區域的標志
- E:E位置1,代表該區域支持5類LSA,如果是特殊區域則置0
- N:N位置1,則代表該區域支持7類LSA,
3. LSA泛洪機制
- 初始泛洪:路由器生成LSA后,通過LSU包發送給所有鄰居(組播地址
224.0.0.5/6
)。 - 確認機制:接收方必須回復LSAck確認,否則發送方重傳。
- 老化與刷新:
- LSA默認每30分鐘(LSRefreshTime)重新生成(序列號+1)。
- 若LS Age達到3600秒且未被刷新,則從LSDB中刪除。
4. LSA類型與區域設計
區域類型 | 允許的LSA類型 |
---|---|
骨干區域(Area 0) | 1, 2, 3, 4, 5 |
普通區域 | 1, 2, 3, 4, 5 |
Stub區域 | 1, 2, 3, 4(禁止Type 5,由ABR生成默認路由) |
NSSA區域 | 1, 2, 3, 4, 7(ABR將Type 7轉換為Type 5) |
Totally Stub | 1, 2, 3(ABR生成默認路由,禁止Type 3/4/5) |
5. 關鍵操作示例
查看LSDB(Cisco設備)
show ip ospf database #
show ip ospf database router 1.1.1.1 # 查看特定Router LSA詳情
show ip ospf database external # 查看Type 5 LSA
二、OSPF在MGRE環境下的問題
在配置完MGRE隧道和OSPF都會發現,各個設備的OSPF路由表學習不全,設備也無法建立正常的鄰接關系
問題1:
Tunnel接口類型為P2P類型,不選舉DR/BDR,使得設備無法正常建立鄰接關系
解決方法:
更改網絡中tunnel接口類型為廣播或者P2MP
[R1-Tunnel0/0/0]ospf network-type broadcast
問題2:
DR/BDR選舉混亂,無法建立鄰接關系
更改網絡類型后,廣播網絡中中心站點和分支站點處于同一個廣播域,此時需要進行DR和BDR的選舉,但是在分支站點的世界里只和中心站點認識,分支站點和分支站點不認識,這就會發生多個分支站點和一個中心站點互相競選DR和BDR,這樣會造成選舉結果混亂。
解決方法:
將分支站點的DR選舉優先級變0,這樣就能保證中心站點是整個廣播網絡中唯一的DR
[R2-Tunnel0/0/0]ospf dr-priority 0