華爲——OSPF單區域實驗配置,實驗抓包分析,五種報文分析,六種LSA介紹,以及如何建立鄰接關係的七種狀態
前言
OSPF協議是一種鏈路狀態協議。每個路由器負責發現、維護與鄰居的關係,並將已知的鄰居列表和鏈路費用LSU(Link State Update)報文描述,通過可靠的泛洪與自治系統AS(Autonomous System)內的其他路由器週期性交互,學習到整個自治系統的網絡拓撲結構;並通過自治系統邊界的路由器注入其他AS的路由信息,從而得到整個Internet的路由信息。每隔一個特定時間或當鏈路狀態發生變化時,重新生成LSA,路由器通過泛洪機制將新LSA通告出去,以便實現路由的實時更新。
注:可以看下我另外一篇博客,這邊理論就不再講的那麼詳細
鏈接: https://blog.csdn.net/m0_47219942/article/details/106498790.
一:OSPF簡介
1.1:工作原理
區域0:路由器A、路由器B |
區域1:路由器C、路由器D |
區域2:路由器E、路由器F |
區域3:路由器G、路由器H |
1.1.1:架構介紹:花瓣形狀,骨幹區域爲0區域,其他區域1、2、3都圍繞區域0相連,及個別的特殊情況,可以通過虛擬鏈路來連接
1.1.2:信息傳遞:向鄰居發送是自己知道的所有狀態的鏈路狀態信息
1.1.3:路由標識:Router-ID是網絡上唯一用於標識的一臺路由器,線網用路由器的環回口來配置Router-ID,這邊的地址是32位的公網IP地址,如果沒有標,通過物理口來確認
1.1.4:區域規劃:劃分多個區域是爲了優化網絡性能
1.2:對於OSPF的一些總結
1.生產環境中,loopback設置32位的公網IP地址,router id 使用它
2.5類LSA向內通告
7類LSA向外通告
3.傳送的 LSA link status advertisement鏈路狀態通告,包括拓撲信息,具體包括:
網段的前綴
掩碼
連接的路由器的哪些接口
直連哪些路由器
4.LSA分爲7種類型
某些包含的是拓撲信息
但是有些包含的是路由信息
5.LSDB,他是LSA的的集合,鏈路狀態數據庫
對此進行spf算法得到spf樹
(基於cost代價)再得出最優的路由並將其加入到路由表中
6.既支持vlsm可變掩碼、又支持cidr(無類別域間選路)
7.封裝layer | 2 | ip | ospf | fcs
直接封裝到P報頭內,上層協議號爲89 ,eigrp爲88
8.OSPF默認使用v2版本,v3版本針對IPv6
1.3:OSPF協議五種報文分析
1、Hello | 發現鄰居並建立和維護鄰居關係 (Hello報文)
2、DataBase Description | 檢查所有路由器的LSDB是否同步(數據庫描述報文DBD)
3、Link-State Request | 向另外一臺路由器請求特定的鏈路狀態記錄 (鏈路請求報LSR)
4、Link-State Update | 發送被請求的鏈路狀態記錄 (鏈路迴應報文LSU)
5、Link-State Acknowledgment | 對其他類型的分組進行確認
一:hello發送週期分爲10s和30s兩種, hello hold的時間爲發送時間*4即40s或120s
二:DBD數據庫描述報文包含LSA的報頭,即告訴鄰居路由器本地的LSDB中包含哪些LSA信息
同步LSDB過程中如果沒有此描述可能會發送重複的LSA,造成資源的浪費,導致低效LSA中除了拓撲或路由信息的載荷外還有LSA的報頭也叫LSA的摘要,報頭中包含此LSA的標識,從而避免發送重複的LSA信息
三:路由器請求鄰居有但是本地沒有的LSA,以保證LSDB一致,根據交互的DBD,將沒有的LSA的報頭放在LSAR中,表明需要的LSA
四、根據上面的一條將鄰居請求的LSA信息放在LSU中,由本地路由器發送給鄰居LSU包含完整的LSA信息
五、 LSACK爲確認機制,由OSPF定義的確認機制
OSPF定義了兩類的確認:
一種爲顯式的確認
另一類爲隱式的確認(基於序列號的確認機制)
前者收到一個報文針對此報文生成一個單獨的確認報文
(只有osp支持確認)後者收到一個報文使用相同的報文再發送回來序列號設置爲一致既傳輸了信息又做了確認
1.4:OSPF協議6種LSA分析
1.4.1:6種LSA
1類:所有OSPF路由器都會產生,只在區域內傳播
2類:DR產生,只在區域內傳播
3類:ABR產生,在相鄰的兩個區域相互傳播
4類:ABR產生,向和ASBR不在同一區域的其他區域傳播,用於表示ASBR
5類:ASBR產生,向整個oSPF協議區傳播,用於描述另一個協議域的路由信息
7類:NSSA區域中的ASBR產生,用於向NSSA區域通告外部路由
1.4.2:LSA各類介紹
1類LSA:OSPF路由域內每一臺路由器都會產生的LSA,這是LSA通告的基礎,該LSA包內列出了,本路由器的所有參與OSPF進程的端口的IP地址與掩碼與該接口Metric值,他的Link-ID與Adv Router都是發出該LSA的路由器的Router-id,該LSA只會在發送路由器所在的區域內擴散,也就是說他的作用範圍是本區域
2類LSA:此類LSA只會在網絡拓撲是多路訪問的情況下產生(MA或NBMA),這類LSA包內,列出了這個多路訪問的掩碼,使用Router-id的方式,描述這個物理網段內有多少臺路由器與DR保持聯繫,Link-id爲DR所屬的接口的IP地址,Adv Router爲DR所在的那臺路由器的Router-id
3類LSA: 3類LSA由BDR發出,存在這類LSA的主要原因是1類2類只能在域內域內和傳播,無法跨區域,這類數據包內,列出了網段,,掩碼,出接口到達目標網段的Metric值,所以3類LSA相當於將1,2類LSA打包,通過ABR傳輸至其他區域,因爲這類LSA一定是由ABR發出的,所以這類LSA的Adv Router爲發出發出該數據包的ABR的Router-id,Link-id爲區域外的網段,比如說192.168.10.0192.168.20.0,可以使用show ip ospf database summary 192.168.10.0來查詢這條3類LSA明細信息
4類LSA:該類LSA並沒有什麼很特殊的意義,數據包中用Router-id的方法,,定位了ASBR與ASBR所在的區域的ABR,使得其他其他路由器可以找到ABR的位置,可以使用show ip ospf database asbr-summary 命令查看4類LSA明細,4類LSA的Link-ID爲ASBR,Adv Router爲ASBR所在的區域的ABR的Router-id,該類LSA會在ASBR不在的區域擴散,也就是說ASBR所在的區域不會存在4類LSA,如果ASBR同時也是BR,那麼在ASBR所在的骨幹區域與非骨幹區域將不會產生4類LSA,只會在別的區域產生,因爲ASBR所在的區域,其他路由器可以通過1類LSA找到它,而不是通過4類LSA
5類LSA:這類LSA數據包內列出了外部路由網段,掩碼,Metric值,route tag,以及發佈類型(E2/E1)Link-ID爲目標網段,Adv Router則爲ASBR的Router-id,需要注意的是,這類LSA不會與區域關聯,也就是說這類LSA是在整個OSPF路由域內傳播
7類LSA··:如果要學習這類LSA,,那麼一定要先了解NSSA區域,這裏·簡單的複習一下nssa區域的概念,該區域不接受5類LSA,只接受1,2,3類LSA,但是這就存在一個問題,如果在nssa區域內有一臺ASBR怎麼辦,因爲NSSA區域不接受5類LSA,所以當nssa區域內有一臺ASBR存在的時候,ASBR會發出7類LSA,然後在NSSA區域內泛洪,ABR收到7類LSA後會將7類轉換成5類,然後向整個OSPF路由域泛洪,7類LSA的包內容與5類LSA一樣,都含有網絡號,掩碼,Metric值,發佈類型,其中Link-ID爲外部網絡的網絡號,Adv Router爲ASBR的Router-id,還需要注意一個點,當NSSA區域存在ASBR時,該區域的ABR會同時兼任ABR與ASBR的角色,所以區域0是不會有4類LSA的。
1.5:如何建立鄰接關係的七種狀態
112.18.17.1/30 112.18.17.2/30
路由A ------------------------------------------------------------------ 路由B
E0 E1
【Down State】
I am route ID 112.18.17.1/30, and I see no one
|Hello|----------》》》-----------------------|to 244.0.0.5|
E0 E1
【Init State】 Router B
Neighbor list
112.18.17.1/30 init E1
I am route ID 112.18.17.2/30, and I see 112.18.17.1
| to A |----------《《《-----------------------|Hello|
Router A
Neighbor list
112.18.17.2/30 init E0
【Two-Way State】 ###此時只是建立鄰居關係,還沒有建立連接關係
第一個DBD不包含LSA頭部嗎,只是RID,
1:init=0 不是第一個DBD
M:more=1表示後讀DBD
MS:master=1表示主
112.18.17.1/30 112.18.17.2/30
路由A--------------------------------------------------------路由B
E0 E1
【Exstart State】
I will start exchange because I have router ID 112.18.17.1
| DBD |----------》》》----------------------------------------
No ,I will start exchange because I have a higher router I
----------------------------------------------《《《---------|DBD|
選主從的目的,是誰先發DBD,這和選DR、BDR是兩個概念
【Exchange State】
Here is a summary of my LSDB
-------------------《《《------------------------------------|DBD|
Here is a summary of my LSDB
| DBD |----------》》》------------------------------
Thanks for the information
|LsAck|----------《《《---------------------------------|LsAck|
【Loading State】
I need the complete entry for net work 112.18.16.0
| LSR |----------》》》-------------------------------------
Here is the entry for network 112.18.16.0
-------------------《《《-----------------------------------|LSU|
Thanks for the information
|LsAck|------------》》》---------------------
【Full State】
二:實驗配置:OSPF單區域配置以及實驗抓包
2.1:實驗目的:
通過OSPF地洞收斂路由條目,形成路由表,抓包分析鄰接關係的變化
2.2:實驗環境:
ENSP軟件
五臺路由器
一臺二層交換機(傻瓜式交換機)
2.3:實驗拓撲結構圖:
2.4:實驗步驟:
2.4.1:大體實驗步驟;
R1:配置IP地址,OSPF
R2:配置IP地址,OSPF
R3:配置IP地址,OSPF
R4:配置IP地址,OSPF
R5:配置IP地址,OSPF
2.4.2:具體實驗步驟:
R1:
[Huawei]sysn R1
[R1]int loo 0
[R1-LoopBack0]ip add 1.1.1.1 32
[R1-LoopBack0]q
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip add 12.0.0.1 30
[R1-GigabitEthernet0/0/0]un sh
[R1-GigabitEthernet0/0/0]q
[R1]ospf 1 router-id 1.1.1.1
[R1-ospf-1]are 0
[R1-ospf-1-area-0.0.0.0]net 12.0.0.0 0.0.0.3
[R1-ospf-1-area-0.0.0.0]net 1.1.1.1 0.0.0.0
R2
[Huawei]sysn R2
[R2]int loo 0
[R2-LoopBack0]ip add 2.2.2.2 32
[R2-LoopBack0]int g0/0/0
[R2-GigabitEthernet0/0/0]ip add 12.0.0.2 30
[R2-GigabitEthernet0/0/0]un sh
[R2-GigabitEthernet0/0/0]int g0/0/1
[R2-GigabitEthernet0/0/1]ip add 23.0.0.1 30
[R2-GigabitEthernet0/0/1]un sh
[R2-GigabitEthernet0/0/1]q
[R2]ospf 1 router-id 2.2.2.2
[R2-ospf-1]a 0
[R2-ospf-1-area-0.0.0.0]net 12.0.0.0 0.0.0.3
[R2-ospf-1-area-0.0.0.0]net 23.0.0.0 0.0.0.3
[R2-ospf-1-area-0.0.0.0]net 2.2.2.2 0.0.0.0
R3
[Huawei]sysn R3
[R3]int loo 0
[R3-LoopBack0]ip add 3.3.3.3 32
[R3-LoopBack0]int g0/0/0
[R3-GigabitEthernet0/0/0]ip add 23.0.0.2 30
[R3-GigabitEthernet0/0/0]un sh
[R3-GigabitEthernet0/0/0]int g0/0/1
[R3-GigabitEthernet0/0/1]ip add 35.0.0.1 24
[R3-GigabitEthernet0/0/1]un sh
[R3-GigabitEthernet0/0/1]q
[R3]ospf 1 router-id 3.3.3.3
[R3-ospf-1]a 0
[R3-ospf-1-area-0.0.0.0]net 23.0.0.0 0.0.0.3
[R3-ospf-1-area-0.0.0.0]net 3.3.3.3 0.0.0.0
[R3-ospf-1-area-0.0.0.0]net 35.0.0.0 0.0.0.255
R4
[Huawei]sysn R4
[R4]int loo 0
[R4-LoopBack0]ip add 4.4.4.4 32
[R4-LoopBack0]int g0/0/0
[R4-GigabitEthernet0/0/0]ip add 35.0.0.2 24
[R4-GigabitEthernet0/0/0]un sh
[R4-GigabitEthernet0/0/0]q
[R4]ospf 1 router-id 4.4.4.4
[R4-ospf-1]a 0
[R4-ospf-1-area-0.0.0.0]net 35.0.0.0 0.0.0.255
[R4-ospf-1-area-0.0.0.0]net 4.4.4.4 0.0.0.0
R5
[Huawei]sysn R5
[R5]int loo 0
[R5-LoopBack0]ip add 5.5.5.5 32
[R5-LoopBack0]int g0/0/0
[R5-GigabitEthernet0/0/0]ip add 35.0.0.3 24
[R5-GigabitEthernet0/0/0]un sh
[R5-GigabitEthernet0/0/0]q
[R5]ospf 1 router-id 5.5.5.5
[R5-ospf-1]a 0
[R5-ospf-1-area-0.0.0.0]net 5.5.5.5 0.0.0.0
[R5-ospf-1-area-0.0.0.0]net 35.0.0.0 0.0.0.255
從一開始抓包分析:
通過ospf配置自動收斂路由表條目
R1路由表,相同方法查看其他路由表
2.5:實驗總結:
dis ospf pee b ##查看鄰居關係
dis ip routing-table pro ospf ### 查看OSPF路由表
ospf 1 route 1.1.1.1 ####OSPF指定個route-id、1是表示,只在本區域有效
route id 1.1.1.1 ###全局模式下配置 這個router-id所有協議生效
reset ospf 1 process graceful-restart ###1是進程號 重啓ospf
ospf 配置方法
ospf 1 route 1.1.1.1 ###配置route-id
ospf 10 ##啓動ospf 它的進程號是10
area 0 ###進入區域0 骨幹區域
network 20.0.0.0 0.0.0.3 ###宣告網段 20.0.0.0 反掩碼 0.0.0.3 (32位)
實例:
interface GigabitEthernet0/0/1
ip address 23.0.0.2 255.255.255.252
interface LoopBack0
ip address 5.5.5.5 255.255.255.255
ospf 1 router-id 5.5.5.5
area 0.0.0.0
network 5.5.5.5 0.0.0.0
network 35.0.0.0 0.0.0.255
rea 0 ###進入區域0 骨幹區域
network 20.0.0.0 0.0.0.3 ###宣告網段 20.0.0.0 反掩碼 0.0.0.3 (32位)
實例:
interface GigabitEthernet0/0/1
ip address 23.0.0.2 255.255.255.252
interface LoopBack0
ip address 5.5.5.5 255.255.255.255
ospf 1 router-id 5.5.5.5
area 0.0.0.0
network 5.5.5.5 0.0.0.0
network 35.0.0.0 0.0.0.255