基於 OSPF 路由的鄰居鄰接關系發現實踐


1、實驗目的

  • 理解 OSPF 鄰居關系和 OSPF 鄰接關系的含義及差別
  • 觀察 OSPF 鄰居鄰接關系的建立過程
  • 觀察 OSPF 鏈路狀態數據庫的同步過程

2、實驗原理

OSPF 網絡中,路由器在發送任何鏈路狀態信息之前,必須先建立起正確的 OSPF 鄰居、 鄰接關系。

OSPF 路由器使用 Hello 報文來建立鄰居關系,具體地,OSPF 路由器會檢查所收到的 Hello 報文中的各種參數,如 Router-ID、Area-ID、認證信息、網絡掩碼、Hello 時間間隔等。 如果這些參數和接收接口上配置的對應參數都——保持一致,則鄰居關系就會建立起來,否則就無法建立起鄰居關系。

OSPF 路由器的鄰居關系建立完成之后,下一步是建立鄰接關系。並不是所有的 OSPF 鄰居之間都可以建立鄰接關系,這要取決於 OSPF 鄰居之間的網絡類型。例如,在點到點網絡上,有效的 OSPF 鄰居關系都可以進一步形成鄰接關系。而在廣播型網絡上,會選舉 DR 和 BDR,DR 和 BDR 會與所有其他路由器都建立鄰接關系,其他路由器都只與 DR 和 BDR 建立鄰接關系。

3、實驗平台

eNSP 、Wireshark

4、實驗內容

4.1 在指定拓撲上完成相應路由器的基本配置

本實驗模擬了一個跨國企業網絡場景, 國內集團總部的路由器 R1、R2、R3 組成了一個廣播型網絡,國外分公司 1 的路由器 R4 與國內集團總部核心路由器 R1 組成了一個點到點網絡,國外分公司 2 的路由器 R5 與 國內集團總部核心路由器 R1 組成了另一個點到點網絡。

按照上述要求搭建如下網絡拓撲:

image-20211104185900375

編址如下:

R1:
sys
sysname R1
int loop 0
ip add 10.0.1.1 32
int s0/0/1
ip add 10.0.14.1 24
int s0/0/0
ip add 10.0.15.1 24
int g0/0/0
ip add 10.0.123.1 24
q

R2:
sys
sysname R2
int loop 0
ip add 10.0.2.2 32
int g0/0/0
ip add 10.0.123.2 24
q

R3:
sys
sysname R3
int loop 0
ip add 10.0.3.3 32
int g0/0/0
ip add 10.0.123.3 24
q

R4:
sys
sysname R4
int loop 0
ip add 10.0.4.4 32
int s0/0/1
ip add 10.0.14.4 24
q

R5:
sys
sysname R5
int loop 0
ip add 10.0.5.5 32
int s0/0/0
ip add 10.0.15.5 24
q

4.2 配置OSPF路由協議

在每台路由器上進行OSPF協議的配置,其中R1、R2、R3之間的鏈路屬於區域0,R1和R4之間的鏈路屬於區域1,R1和R5之間的鏈路屬於區域2。

[R1] ospf router-id 10.0.1.1 

[R1-ospf-1]area 0 

[R1-ospf-1-area-0.0.0.0]network 10.0.123.0 0.0.0.255 

[R1-ospf-1-area-0.0.0.0]network 10.0.1.1 0.0.0.0 

[R1-ospf-1-area-0.0.0.0]area 1 

[R1-ospf-1-area-0.0.0.1]network 10.0.14.0 0.0.0.255

[R1-ospf-1-area-0.0.0.1]area 2 

[R1-ospf-1-area-0.0.0.2]network 10.0.15.0 0.0.0.255

[R2]ospf router-id 10.0.2.2 [R2-ospf-1]area 0 

[R2-ospf-1-area-0.0.0.0]network 10.0.123.0 0.0.0.255 

[R2-ospf-1-area-0.0.0.0]network 10.0.2.2 0.0.0.0 

[R3]- [R5] 類似[R2]

配置完成后,

  • 在R1上查看OSPF鄰居建立情況

image-20211029193102778

  • 鄰居狀態詳細信息

image-20211029193153111

image-20211029193215749

可以看出,R1,R2,R3的廣播網絡完成了DR和BDR的選舉,R3為DR,R2為BDR;R1和R4,R1和R5沒有選舉DR和BDR是因為他們是點到點網絡

  • DR基於接口進行選舉
  • DR可以減少鏈路中的鄰接關系,BDR是DR的備份,鏈路中的所有路由器只和DR&BDR建立鄰接關系
  • DR是基於端口的DR優先級進行選舉(0-255)
  • 優先級值越高越優先,當優先級值相同時比較Router ID,Router ID越大越優先
  • 非搶占式選舉

在 R1 上查看廣播型網絡的接口 GE 0/0/0 和點到點網絡的接口 Serial 0/0/1 的詳細情況,得到廣播網絡接口和點到點網絡接口默認的 hello 時間間隔,失效時間大小。

display ospf interface GigabiEthernet0/0/0

image-20211029193512249

display ospf interface Serial0/0/1

image-20211104193020560

4.3 觀察OSPF鄰居鄰接關系的建立過程

觀察在廣播網絡上 OSPF 鄰居鄰接關系的建立過程。為了在 R1 上清晰地觀察到廣 播網絡上 OSPF 鄰居鄰接關系的建立過程,先關閉 R1 上 Serial 0/0/1 和 Serial 0/0/0 接 口。

[R1]interface Serial 0/0/1 
[R1-Serial0/0/1]shutdown 
[R1-Serial0/0/1]interface Serial 0/0/0 
[R1-Serial0/0/0]shutdown 
  • 在 R1 上查看 OSPF 鄰居狀態
display ospf peer brief

image-20211029193945010

由上圖可見關閉了和R1相連的 R4、R5的Serial0/0/1和Serial0/0/0接口后,R1與他們的鄰接狀態消失,只與R2和R3保持鄰接狀態。

在R1上重啟OSPF進程,通過Debugging調試觀察R1與R2之間的OSPF鄰接關系的建立過程。

<R1>debugging ospf packet
<R1>reset ospf process 

![image-20211029194412142](C:\Users\Chenxu Gong\AppData\Roaming\Typora\typora-user-images\image-20211029194412142.png)

image-20211029194527227

R1 和 R2 的鄰居關系由 full 狀態轉到 down 狀態,盡管 hello 報文通信后,又變為 init 狀態,繼而通過 2-way、exchange、loading 等狀態,再次進入到 full 狀態。

我們可以通過下圖清晰地觀察鄰接關系的建立過程。

image-20211104200424250

OSPF 路由器之間的鄰居關系並不等於鄰接關系。鄰居關系建立后,還需完成鏈路狀態信息的交換,然后才能建立起鄰接關系

在廣播網絡中,DRothers 之間不需要交換 LSA(Link State Advertisement),DRothers 是通過 DR/BDR 來獲取整個廣播網絡的鏈路狀態信息的,所以 DRothers 之間不需要建立鄰接關系,只需要建立鄰居關系即可

在 R1、R2、R3、SW 組成的廣播網絡中, R3 是 DR, R2 是 BDR,只有 R1 是 DRothers, 所以不便於觀察 DRothers 之間的鄰居關系。現在,將 R1 的 GE 0/0/0 和 R2 的 GE 0/0/0 接口優先級的值改為 0,放棄 DR 的選舉,使它們都成為 DRothers,以便觀察它們之間的 OSPF 鄰居關系。

[R1]interface GigabiEthernet0/0/0 
[R1- GigabiEthernet0/0/0]ospf dr-priority 0 
[R2]interface GigabiEthernet0/0/0
[R2- GigabiEthernet0/0/0]ospf dr-priority 0 

重啟 R1 和 R2 上的 OSPF 進程后,先在 DR 路由器 R3 上查看 OSPF 的鄰居建立情況。

<R3>display ospf peer

image-20211104201919959

R1 與 DR 路由器 R3 建立的是鄰接關系,狀態為 full。在路由器R1上查看OSPF鄰居關系建立情況。

<R1>display ospf peer 

image-20211104202051166

R1與DR路由器R3建立的是鄰接關系,狀態為full,而與DRothers路由器R2只建立了鄰居關系,狀態為2-way。

4.4 觀察點到點網絡中OSPF鄰居關系建立情況

開啟R1上的兩個串口Serial0/0/1和Serial0/0/0,然后關閉廣播接口GE0/0/0。關閉廣播接口的目的是突出所要關注的實驗現象,排除干擾因素。

[R1]interface Serial 0/0/1 

[R1-Serial0/0/1]undo shutdown 

[R1-Serial0/0/1]interface Serial 0/0/0 

[R1-Serial0/0/0] undo shutdown 

[R1]interface GigabiEthernet0/0/0 

[R1- GigabiEthernet0/0/0]shutdown 

在R1上查看OSPF鄰居建立情況。

<R1>display ospf peer brief 

image-20211029200048463

R1 與 R4 和 R5 已經分別建立了鄰接關系。

在路由器R1上重啟OSPF進程,通過Debugging調試觀察R1與R4之間的OSPF鄰居鄰接關系的建立過程。

<R1>debugging ospf packet

<R1>reset ospf process

image-20211029200149644

image-20211029200202782

R1和R4的鄰居關系由full狀態轉到down狀態,經過Hello報文通信后,又變為init狀態,繼而通過2-way、exchange、loading等狀態,再次進入到full狀態。

即:點到點網絡里面,能夠建立OSPF鄰居關系的路由器一定會繼續建立鄰接關系

4.5觀察OSPF鏈路狀態數據庫的同步過程

下面通過查看報文的方式來簡單觀察一下 OSPF 鄰接關系建立過程中鏈路狀態數據 庫 LSDB 是如何同步的,這里僅以點到點網絡為例進行實驗。 在 R1 的 Serial 0/0/1 接口上捕獲並查看報文,重啟 R1 上的 OSPF 進程。

debugging ospf packet 

reset ospf process

image-20211104204038669

image-20211104204403321

image-20211104204507678

image-20211104204616839

在第一次交互報文時可以看到I,M,MS都為1.R1和R4都宣稱自己為主路由器。

5.思考

1.在 OSPF 廣播型網絡中的 DR 與 BDR 之間需要建立 OSPF 鄰接關系嗎?為什么?

需要。只有建立鄰接關系的路由器之間才能夠同步LSDB。BDR是備份的DR,必須要和DR之間同步。如果DR故障,BDR必須要在其失效時接替他的工作,因此建立鄰接關系是必要的,

2.按照 OSPF 的網絡設計要求,不同普通區域 Area 之間的通信必須經骨干區域 Area 0 中轉才能實現,這種要求的出發點是什么?

OSPF最短路徑優先時針對區域內的,區域間采用d-v算法,可能會有環路。因此讓哦偶同區域經過骨干區域,可以有效地防止環路的出現。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM