🍬 博主介紹
- 👨?🎓 博主介紹:大家好,我是 _PowerShell ,很高興認識大家~
- ?主攻領域:【滲透領域】【資料通信】 【通訊安全】 【web安全】【面試分析】
- 🎉點贊?評論?收藏 == 養成習慣(一鍵三連)😋
- 🎉歡迎關注💗一起學習👍一起討論??一起進步📝文末有彩蛋
- 🙏作者水平有限,歡迎各位大佬指點,相互學習進步!
ospf 是當前用的最多的 IGP 路由協議
走網路方向的兄弟們,ospf 是必須掌握的
同時,ospf 的內容很多,之前已經寫了兩篇了,接下來還會有幾篇,歡迎持續關注和訂閱哦
可能由于能力有限,不會寫的特別全面,但對于網路作業來說,應該是夠用了
目錄
🍬 博主介紹
一、ospf報文擁有統一的頭部
二、驗證合法ospf報文頭部:
1. 認證模式
1. 介面認證:
2. 區域認證:
三、報文型別及格式
1. Hello報文:
2. DD報文:
3. LSR報文
4. LSU報文
5. LSACK報文
6. 報文互動程序
四、LSA頭部
五、LSA(鏈路狀態通告資訊) type
1. LSA型別:
?2. LSA包含:路由資訊和拓撲資訊
3. Link State ID
4. LS Sequence Number & LS age
5. 比較LSA
六、專欄分享
一、ospf報文擁有統一的頭部
每個報文里面都有OSPF頭部,長度為24byte,其欄位有:
1.版本(version):對于ospfv2,該欄位值為2. Ospfv3針對ipv6
2.型別(Type):表示該報文的型別,其對應關系為:1-hello;2-DD;3-LSR;4-LSU;5-LSACK,
3.報文長度(packet length):整個報文的長度(位元組數),
4.源路由器ID(router identification):產生這條報文的路由 器的ospf router-id
(router ID不能一樣)
5.區域ID(area identification):該報文所屬的區域ID,32bit(統一區域才能發送)
6.校驗和(checksum):校驗報文的有效性,
7.認證型別(Authentication type):使用的認證型別,(MD5 明文 等等)
8.認證資料(Authentication data):用于報文認證的資料,(可有多個)
明文 一個Authentication 就解決了
明文 多個Authentication 因為還有kid 密碼的具體內容
二、驗證合法ospf報文頭部:
版本一致,區域id一致,認證型別一致
認證程序是在建立鄰居的時候認證的
1. 認證模式
ospf authentication-mode ?可以查看認證模式(五種)
hmac-md5 Use HMAC-MD5algorithm
keychain Keychain authentication mode
md5 Use MD5 algorithm
null Use null authentication
simple simple authentication mode
1. 介面認證:
介面視圖下:ospf authentication-mode simple plain Huawei(同一條鏈路的兩個介面都需要認證) 認證模式 明文 在本路由器上以明文型式顯示 Huawei
配置實體:兩邊核心配置是一樣的,這里只演示了RTA
[RTA] router id 1.1.1.1[RTA]ospf [RTA-ospf-1] area 1 [RTA-ospf-1-area-0.0.0.1] network 1.1.1.1 0.0.0.0 [RTA-ospf-1-area-0.0.0.1] network 10.1.1.0 0.0.0.3 [RTA] interface Ethernet 0/0 [RTA-Ethernet0/0] ospf authentication-mode simple plain huawei
2. 區域認證:
區域下:要求區域下所有的路由器都做相同認證
配置差不多,這里就不演示了
三、報文型別及格式
ospf協議基于ip運行,采用IP封裝,ip報文頭部中對應的協議號為89.
多數情況下,ospf報文使用組播地址作為目的IP地址,
Hello p2p和廣播(間隔10s dead40s) NBMA和P2MP(30s 120s)
DD(LSA頭部資訊)
LSR(請求 LSA)
LSU(正真的LSA(路由+拓撲))
LSACK(確認)
1. Hello報文:
用于發現直連鏈路上的鄰居,以及維護鄰居關系,攜帶一些引數,這些引數會被檢查,引數互相匹配才能建立鄰居關系,
1.網路掩碼(network mask):發送該報文的介面的網路掩碼,
2.Hello間隔(hello interval):周期性發送hello報文的間隔,P2P和BMA網路中預設為10s,NBMA和P2MP網路中預設為30s,
3.可選項(options):8位元位,每個位元位都用于指示該路由器的某個特性,路由器通過設定相應的位元位來通告自己支持某種特性或擁有某種能力,會直接影響到ospf鄰接關系對的建立,
4.路由器優先級(router priority):路由器優先級,也叫DR 優先級,用于DR和BDR的選舉,華為數通設備上預設為1,
5.路由器失效時間(router dead interval):在鄰居路由器被視為失效之前,需等待收到對方hello報文的時間,預設為hello interval的4倍,
6.指定路由器(Designated router):網路中DR的介面IP地址,若為0.0.0.0,表示沒有DR或者DR還未選舉出來,
7.備份指定路由器(backup Designated router):網路中BDR的介面IP地址,若為0.0.0.0,表示沒有BDR或者BDR還未選舉出來,
8.鄰居(Neighbor):直連鏈路上的有效鄰居,該欄位表示鄰居的router id,如果有多個鄰居,則包含多個鄰居欄位,
2. DD報文:
DD報文用于描述LSDB,確定主從關系(master/slave),攜帶LSA的頭部資料,用于協商主從關系的DD報文不攜帶任何的LSA頭部資訊,master路由器主導整個LSDB的描述程序,
1.介面最大傳輸單元(interface maximum transmission unit):介面的MTU,在部分華為設備中,預設時介面發送的DD報文中,無論該介面實際的MTU值為多少,該欄位的值都為0,
2.可選項(options):路由器支持的ospf可選項,
3.I位(Initial bit):初始化位,當該DD報文用于選舉主從關系時該位元位置為1,選舉完成后,該位元位置為0,
4.M位(More bit):該位元位為1時表示后面還有更多的DD報文,為0時表示這是最后一個DD報文,
5.MS位(Master bit):master路由器發送的DD中該欄位為1,slave路由器發送的則為0,
6.DD序列號(DD sequence number):DD報文的序列號,在DD報文互動的程序中,DD序列號被逐次加1,確 保DD報文傳輸的有序和可靠性,
7.LSA頭部(LSA header):LSA頭部資訊,可能包含一潭訓多條LSA頭部資訊,
3. LSR報文
互動DD報文之后,路由器已經知曉了鄰居有哪些LSA,然后就發送LSA向鄰居請求所需的LSA完整資訊,
1.鏈路狀態型別(link-state ID):指示本條LSA的型別,1-router LSA;2-network LSA;3-network summary LSA;4-ASBR summary LSA;5-AS external LSA,
2.鏈路狀態標識(link-state ID):LSA 的標識,不同的LSA對該欄位的定義不同,
3.通告路由器(advertising router):產生該LSA的路由器的 Router id,
4. LSU報文
LSU用于向鄰居發送完整的LSA資訊,其中只有兩個欄位,一個是LSA個數,另一個是詳細的LSA資訊,
5. LSACK報文
LSACK用于對收到的LSA進行確認,里面包含了路由器所確認的LSA頭部,
6. 報文互動程序
路由器的介面一旦激活ospf,就會開始發送hello報文,來發現直連鏈路上的OSPF鄰居,
然后開始發送DD報文,其中包括了LSA頭部摘要,
通過DD的互動之后路由器知道了對方擁有的LSA,于是就發送LSR請求對方完整的LSA,
對方收到LSR后就把LSA放在LSU中進行回應,
最后發送LSACK對收到的LSU進行確認,維護ospf,更新機制的可靠性,
四、LSA頭部
LSA的生存時間(3600s):(路由器AB都正常的情況下這個LSA不會老化掉)
OSPF的機制是定時更新(30分鐘 1800秒)(發送LSA給你更新)
鏈路down掉之后 永遠重繪不了LSA LSA生存時間就會到3600(會被洗掉)
如果A上另外一個鄰居down了
就會觸發更新 就會立馬通告給B (讓B把這條路由刪掉)
利用3類和五類LSA:就是把該路由的LSA的age時間置為3600s
B收到age為3600秒 就認為這個路由不可達了 就會洗掉
Rip撤銷(洗掉)路由:meteic置為16跳就撤銷了
Options:是否是一個特殊區域,nssa有沒有置為等等資訊
下面三個欄位用來唯一標識一條LSA(通過這三個資訊來辨別LSA)
LS type:OSPF有幾種LSA型別(五種)
Link State ID:(不同型別LSA 就有不同型別的Link ID)
Advertising Router:通告路由器(就是通告這條路有的一個router id)
LS sequence number:序列號 用來標明是否是一個更新的LSA
一共有四個位元組0x8000 0000到0x7FFF FFFF(負的最小值一直漲到正的最大值)
如果AB特別穩定,一直3分鐘更新一次,有可能Seq用完了 那么就會重啟ospf行程
用完要100多年(沒有一個設備能跑十幾年)
Seq和age用來標識一個更新的LSA(先比較LS seq 在比較age age越小越新)
LS checksum:校驗和
Length:LSA長度
LSA頭部資訊:除了hello報文,其他OSPF報文都攜帶LSA資訊
五、LSA(鏈路狀態通告資訊) type
誰生成的,描述了什么資訊,在哪里泛洪
運行鏈路狀態路由協議的路由器,會產生用于描述自己直連介面狀況的鏈路狀態資訊并將其通告出去,路由器將網路中泛洪的鏈路狀態資訊都收集并存入鏈路狀態資料庫(LSDB)中,LSDB可視為對整個網路拓撲結構及網段資訊的描繪,LSDB同步后,所有路由器對整個網路有一致認知,
LSU報文用于鏈路狀態更新,該報文包含多個LSA,而且是LS完整資料,OSPF定義多種型別的LSA,但是這些LSA都擁有相同的頭部,
1. LSA型別:
1類 所有路由器產生 描述鏈路狀態資訊
2類由NBMA和廣播產生 (作用:計算區域間路由)描述網路中路由器的串列 區域內泛洪
3類LSA由區域邊界路由器(ABR)產生,描述AS內部本區域外部 某一網段的路由資訊,在LSA所屬區域泛洪
本區域路由在另以區域泛洪, 經過一個ABR后要重新生成

5類LSA:自治系統邊界路由器(ASBR)產生:描述了AS外部的一段路由資訊,在整個AS內部泛洪
較特殊:不管通告到哪里 五類的資訊不會做任何改變(導致找不到ASBR 引出4類LSA)
4類LSA:ABR產生,描述到達某一ASBR的路由資訊在ABR所連接的區域內泛洪,(ASBR所在區域除外) ASBR所在區域沒有4類LSA
作用:描述怎么去往ASBR
(三類通告的不是鏈路狀態資訊 不會描述ASBR在什么位置 只會顯示你的 路由怎么走 不會描述router id是誰)五類攜帶:去往外部一定要找到router id 三類搞不定)

2. LSA包含:路由資訊和拓撲資訊
1.每個運行OSPF的路由器都會泛洪自身的LSA資訊,(我和那個路由器相連,我要把那個網段通告給相應的設備)
2.最后每個路由器形成一個統一的LSDB(同區域完全一樣)
3.每個路由器都以自己為根去計算(SPF演算法)到達每一個分支節點的最短路徑
4.計算路由,加載到路由表
3. Link State ID
Link State lD是該LSA所描述鏈路的標識
4. LS Sequence Number & LS age
查看LSDB資料庫
序列號越大越新 序列號同 age
Router代表一類的LSA 自己產生的
5. 比較LSA
1、比較LSA實體的序列號,大的優先
2、序列號相同,再比校驗和,大的優先
3、校驗和也相同,再比老化時間,如果有一條LSA擁有大小為最大生存時間(3600S) 的老化時間,則最優
4、如果LSA的老化時間之間的差別多于15分鐘,則老化時間小的優先
5、如果以上條件都比不出來,則認為這些LSA相同
六、專欄分享
每個專欄都在持續更新中~~~
滲透測驗自學篇 web基礎知識點
網路基礎 面試總結
網路工程師 python
作業系統篇 通訊安全
閑聊 漏洞復現篇
代碼審計 SSM
docker 環境搭建篇
python爬蟲 靶場
??????心理學
系列文章:[ 網路協議篇 ] IGP 詳解之 OSPF 詳解(一)--- 基礎知識
[ 網路協議篇 ] IGP 詳解之 OSPF 詳解(一)--- 四種網路型別 && 虛鏈路 詳解
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/404068.html
標籤:其他
下一篇:ce游戲逆向修改之植物大戰僵尸






