八、路由詳細介紹之動態路由OSPF(重點)

MrXiong發表於2020-04-16

一、OSPF介紹

OSPF優點:無環路、收斂快、擴充套件性好、支援認證

二、工作原理:

       圖中RTA、RTB、RTC每個路由器都會生成一個LSA, 通過LSA泛洪進行互相傳送相互學習,形成LSDB (鏈路狀態通告資料庫),LSDB資料庫中存了各路由器的LSA鏈路狀態通告。然後每個路由器拿這個資料庫通過SPF算舉動進行計算(SPF最短路徑樹演算法),跟據最短路徑數型成路由表。 

  LSA鏈路狀態通告,包含:RouterID、網路\掩碼資訊(路由資訊)、領居(誰跟我鏈在一起的)、網路型別、cost開銷值 【領居、網路型別、cost形成拓撲】

  Router-ID 是一個IPV4地址格式的唯一標識,每個RouterID 是唯一的,不能相同

  RouterID:1、手動配置 2、自動選擇(不手動配的話他會自動生產一個,先從環回介面、如果沒有配環回介面,就從物理介面選擇)

  LSDB資料庫: 存了各路由器的LSA鏈路狀態通告。

三、OSPF建立鄰居關係和鄰接關係

  OSPF報文型別有5種:

    HELLO報文,

    DD(Database Description)報文,

    LSR(LSA Request)報文

    LSU(LSA Update)報文

    LSACK(Link State Acknowledgment)報文

 

第一過程:

       HELLO報文, 作用打招呼,用來發現、建立和維持OSPF鄰居關係, HELLOW報文是組播的型式傳送 224.0.0.5,只有相鄰的路由器啟動了OSPF都會收到HELLOW報文。沒問動OSPF的不會收到。 

       RTA使用HELLO發現相鄰的RTB和RTC路由器是否開啟OSPF,如果啟動了會傳送HELLO報文 並先會協商一些協議(RouterID \ 傳送HELLO報文時間等)、建立連線、每隔10秒時間會相互傳送一次HELLO報文維持連線,如要4倍的時間收不到相鄰的HELLO報文,就預設為鄰居不線上,會自動在路由表中把它刪掉

 

 第二過程:

DD(Database Description)報文 。 資料描述報文

通過HELLO報文形成鄰居後,路由器使用DD報文來進行主從路由器的選舉和資料庫摘要資訊的互動。 

DD報文:包含LSA的頭部資訊,用來描述LSDB的摘要資訊

根據RourtID大小來確認路由器的主從關係,圖上RTB是主,RTA是從

前三個DD報文確定主從關係,互相交換大家所知道的路由

確證主從關係後,兩路由器就形成鄰居關係

 

第三過程:

  確定鄰居關係後,主路由會先傳送一個LSR的請求報名給從路由器,從路由器就把LSU的報文發給主路由,主路由收到後就會向從路由傳送一個LSACK確認報文進行確認。

  反之從路由器也會發一個LSR的請求報名給主路由器,主路由器就把LSU的報名發給從路由器,從路由器收到後也會向主路由器傳送一個LSACK確認報文進行確認。

  兩個主從的路由器只起到誰先請求的作用,不是說以哪個發的報文為準(誰說了算)。

    LSR(LSA Request)報文, 用於向對方請求所需要的LSA

    LSU(LSA Update)報文, 用於向對方傳送其所需要的LSA

    LSACK(Link State Acknowledgment)報文 ,用於向對方傳送收到LSA的確認

  LSACK報文確認完成後,兩路由器間就會形成鄰接關係。

 四、OSPF配置

[RTA]ospf  1 router-id 1.1.1.1        #router id  在實際操作中為了嚴謹,必須要手動新增router-id。1指的是程式號
[RTA-ospf-1]area 0                     #區域0  預設把路由器放到區域0裡面
[RTA-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255       #宣告直連網段  反掩碼

router-id可以全域性配置,但優先順序別較低。配置命 令: [R1]router id 11.11.11.11

反掩碼計算:255.255.255.255減去當前掩碼.。如:255.255.252.0 的反掩碼是255.255.255.255 - 255.255.252.0=0.0.3.255

程式號:程式號是本地有效,若不同的路由器之間OSPF對接,兩臺路由器的OSPF程式號可以不同,這是不會有任何問題的,但是為了保證網路配置的規範性和標準化,建議還是採用相同的程式號。

 

配置案例1:

 

1)配置路由器名字和各路由器介面ip

R1:
[Huawei]sysname R1
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip add 192.168.10.1 24
[R1-GigabitEthernet0/0/0]int g 0/0/1
[R1-GigabitEthernet0/0/1]ip add 192.168.1.1 24
R2:
[Huawei]sysname R2
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]ip add 192.168.10.254                                              
[R2-GigabitEthernet0/0/0]int g0/0/1
[R2-GigabitEthernet0/0/1]ip add 192.168.20.1 24
R3:
[Huawei]sysname R3
[R3]int g0/0/0
[R3-GigabitEthernet0/0/0]ip add 192.168.20.254 24 
[R3-GigabitEthernet0/0/0]int g0/0/1
[R3-GigabitEthernet0/0/1]ip add 192.168.2.1 24 

2)配置環回介面    

interface LoopBack0

R1:
[R1]interface LoopBack 0
[R1-LoopBack0]ip add 1.1.1.1 32
R2:
[R2]int LoopBack 0
[R2-LoopBack0]ip add 2.2.2.2 32
R3:
[R3]interface LoopBack 0
[R3-LoopBack0]ip add 3.3.3.3 32  

3)配置ospf

配router-Id 和區域 並宣告直連網路

R1:
[R1]ospf 1 router-id 1.1.1.1                              #建立ospf的程式 1和新增router-id
[R1-ospf-1]area 0    
[R1-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255     #宣告直連網段
[R1-ospf-1-area-0.0.0.0]network 192.168.10.0 0.0.0.255    #宣告直連網段
[R1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0           #宣告環回地址
R2:
[R2]ospf 1 router-id 2.2.2.2    
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]network 192.168.10.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 192.168.20.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0
R3:
[R3]ospf 1 router-id 3.3.3.3    
[R3-ospf-1]area 0
[R3-ospf-1-area-0.0.0.0]network 192.168.20.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]network 192.168.2.0 0.0.0.255    
[R3-ospf-1-area-0.0.0.0]network 3.3.3.3 0.0.0.0

4)配置完後,PC1可以ping通PC2,同時也能ping通各路由的環回地址

 

常用命令: 

  檢視OSPF協議相關執行引數    display ospf brief

  檢視OSPF鄰居表       display ospf peer

  檢視LSDB表          display ospf lsdb

  檢視OSPF路由        display ospf routing

  重啟ospf程式        reset ospf process

 

五、鄰居狀態機

 

上圖描述: 

還沒建立鄰居關係,還沒開啟ospf狀態 (初始化狀態)

當開始ospf時,往外發hello報文尋找鄰居關係時,狀態為lnit

當兩個路由器都 收到對方發的hello報文後,形成2-way狀態,等同於鄰居狀態(2-Way狀態是最終的鄰居狀態)

----------------------------------------------------------------------------------------

成為鄰居關係後,大家都向外發DD報文選主從關係,變成ExStart狀態

確定主從關係後,成為Exchange狀態,各自傳送目錄資訊

目錄資訊(DD)資訊互動完後,變成Loading狀態,大家相互傳送LSR和LSU資訊和LSACK資訊

LSACK確認完後變成FULL狀態。FULL狀態是鄰接關係的最高狀態。

六、OSPF支援的網路類形

廣播型別和點對點類形

預設情況下,OSPF認為網線把兩裝置連線在一起的都是乙太網的網路類形是廣播類形。

兩裝置用串列埠線連線起來的是PPP類形的網路是點對點網路。

 預設情況下,OSPF認為幀中繼NBMA、ATM的網路型別是P2MP

七、DR&BDR

DR可以減少廣播型網路中的鄰接關係的數量

如果大型網路中,每個路由器都建鄰接關係太多,當某個路由資訊發生變化時,同步時會產生大量的流量,佔用頻寬。

N*(N-1)/2,計算路由器建立鄰居關係的數量,N指路由器。

如果4個路由器都需要建6個鄰接關係。當路由器越多時建立的鄰接關係太多。

任命DR(老大),BDR(老二),其它都是DRother(小弟),像上圖

RTA和RTB是DRothers(小弟)他們不需要建立鄰接關係,只需要建立鄰居關係即可

RTC(BDR 老二)和RTD(DR老大)和小弟間形成鄰接關係就行,這樣可減少鄰接關係數量

 

DR&BDR的選舉

DR是基於埠的路由器優先順序的值進行選舉的。

埠優先順序由0-255,1是預設值,數值越大越優先。但0特殊優先順序,如果路由器優先順序是0,它就不參於選舉。

如果路由器埠優先順序一樣,就拿router-id進行比較

 

在OSPF中,如果一個網路己從埠或router-id優先順序中選舉出DR,如這個路由器埠優先順序為100,後又新增了一個新的路由器,他的埠優先順序為255,但也不能成為DR或DBR,只能當個小弟。

當DR(老大)路由器掛了,再由BDR(老二)當DR,BDRothers(小弟)中再根據埠或優先順序再選舉哪個可以成為BDR。

DR和BDR是基於路由器的埠去選舉的,同一個路由器不同介面在不同網路中狀態是不一樣的(有的是DR,有的是BDR,有的是DRother)

上圖中R8路由器的在上面的網路中EG/0/0/0介面是DR, 而在下面的網路介面E0/0/0就不是DR而是DRother

 

OSPF開銷值

OSPF的開銷計算公式為頻寬參考值/頻寬(介面頻寬)、

可通過bandwidth-reference命令來設定頻寬參考值

 手動配置開銷值(開銷值1-65535)

[R1]int g0/0/0 
[R1-GigabitEthernet0/0/0]ospf cost 20

手動配置設定頻寬參考值,(用得少,一般都直接設定開銷值)

[R1]ospf 
[R1-ospf-1]bandwidth-reference 100000

 

八、OSPF認證

 認證有兩種 方式:MD5和密文

華為ARG3系列路由器執行OSPF時,支援兩種認證方式:區域認證和介面認證

 

命令:

[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ospf authentication-mode md5 1 Ehong

 

OSPF認證實驗1:

 

1)、配置路由器名字和各路由器介面ip

R1:
[Huawei]sysname R1
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip add 192.168.10.1 24
[R1-GigabitEthernet0/0/0]int g 0/0/1
[R1-GigabitEthernet0/0/1]ip add 192.168.1.1 24
R2:
 [Huawei]sysname R2
 [R2]int g0/0/0
[R2-GigabitEthernet0/0/0]ip add 192.168.10.254                                              ^
[R2-GigabitEthernet0/0/0]int g0/0/1
[R2-GigabitEthernet0/0/1]ip add 192.168.20.1 24
R3:
[Huawei]sysname R3
[R3]int g0/0/0
[R3-GigabitEthernet0/0/0]ip add 192.168.20.254 24 
[R3-GigabitEthernet0/0/0]int g0/0/1
[R3-GigabitEthernet0/0/1]ip add 192.168.2.1 24   

2)配置環回介面

interface LoopBack0

R1:
[R1]interface LoopBack 0
[R1-LoopBack0]ip add 1.1.1.1 32
R2:
[R2]int LoopBack 0
[R2-LoopBack0]ip add 2.2.2.2 32
R3:
[R3]interface LoopBack 0
[R3-LoopBack0]ip add 3.3.3.3 32    

3)配置ospf

配router-Id 和區域 並宣告直連網路

R1:
[R1]ospf 1 router-id 1.1.1.1      #建立ospf的程式 1和新增router-id
[R1-ospf-1]area 0    
[R1-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255     #宣告直連網段
[R1-ospf-1-area-0.0.0.0]network 192.168.10.0 0.0.0.255    #宣告直連網段
[R1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0      #宣告環回地址
R2:
[R2]ospf 1 router-id 2.2.2.2    
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]network 192.168.10.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 192.168.20.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0
R3:
[R3]ospf 1 router-id 3.3.3.3    
[R3-ospf-1]area 0
[R3-ospf-1-area-0.0.0.0]network 192.168.20.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]network 192.168.2.0 0.0.0.255    
[R3-ospf-1-area-0.0.0.0]network 3.3.3.3 0.0.0.0

配置完後要進行測試保證網路是通的,如果PC1可以ping通PC2,同時也能ping通各路由的環回地址,那就對路由器介面進行加密認證

4)配置OSPF認證加密

R1
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ospf authentication-mode md5 1 ehong
R2
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]ospf authentication-mode md5 1 ehong
[R2-GigabitEthernet0/0/0]int g0/0/1
[R2-GigabitEthernet0/0/1]ospf authentication-mode md5 1 ehong
R3
[R3]int g0/0/0
[R3-GigabitEthernet0/0/0]ospf authentication-mode md5 1 ehong

配置完畢

 

 

 

相關文章