OSPF原理及配置

 

OSPF原理及配置

OSPF(Open Shortest Pass First,開放最短路徑優先協議),是一個最常用的內部網管協議,是一個鏈路狀態協議。

OSPF的特點

  1. OSPF是一種無類路由協議,支持VLSM可變長子網掩碼。支持IPV4和IPV6.
  2. 組播地址:224.0.0.5 224.0.0.6。
  3. OSPF度量:從源到目的所有出接口的度量值,和接口帶寬反比(10^8/帶寬)。
  4. 收斂速度極快,但大型網絡配置很複雜。
  5. IP封裝,協議號89

OSPF運行原理

OSPF組播的方式在所有開啓OSPF的接口發送Hello包,用來確定是否有OSPF鄰居,若發現了,則建立OSPF鄰居關係,形成鄰居表,之後互相發送LSA(鏈路狀態通告)相互通告路由,形成LSDB(鏈路狀態數據庫)。再通過SPF算法,計算最佳路徑(cost最小)後放入路由表。 
設計要求:1.必須配置骨幹區域0 
                  2.其他區域連接到骨幹區域 
好處:  1.減小路由表(通過域間彙總) 
          2.本地拓撲變化值影響一個區域(也是通過彙總) 
          3.某些LSA之子本地泛紅,不泛洪到其他區域 
注:OSPF區域劃分基於接口而不是設備

OSPF區域及路由器身份

OSPF區域

骨幹區域(區域0):骨幹區域必須連接所有的非骨幹區域,而且骨幹區域不可分割,有且只有一個,一般情況下,骨幹區域內沒有終端用戶。 
非骨幹區域(非0區域):非骨幹區域一般根據實際情況而劃分,必須連接到骨幹區域(不規則區域也需通過tunnel或virtual-link連接到骨幹區域)。一般情況下,費骨幹區域主要連接終端用戶和資源。

OSPF身份

DR(Designated Router):指定路由器,OSPF協議啓動後開始選舉而來 
BDR(Back-up Designated Router):備份指定路由器,同樣是由OSPF啓動後選舉而來 
DRothers:其他路由器,非DR非BDR的路由器都是DRothers。

ABR(Area Border Routers):區域邊界路由器,連接不同OSPF區域。 
ASBR(Autonomous System Boundary Router):自治系統邊界路由器,位於OSPF和非OSPF網絡之間。 
骨幹路由器:至少有一個藉口連接到骨幹區域(區域0)。

OSPF鄰居建立

鄰居的兩個狀態 
Neighbors:鄰居 
Adjacency:鄰接

  1. 鄰居不一定是鄰接,鄰接一定是鄰居,只有交互了LSA的OSPF鄰居才成爲OSPF的鄰接,之交互Hello包的支撐位鄰居,
  2. 在點對點網絡中,所有鄰居都能成爲鄰接。
  3. MA(廣播多路訪問網絡,比如以太網)網絡類型中,DR,BDR,DRothers三者關係爲: 
    DR、BDR與所有的鄰居形成鄰接,DRothers之間只是鄰居而不交換LSA

影響OSPF鄰居建立的原因:

  1. Hello與Dead Time時間不一致(改Hello的話Dead自動*4,單改Dead的話Hello不變)
  2. 區域ID必須一致
  3. 認證(password一致)
  4. Stub標識一致(與特殊區域有關,之後介紹)
  5. MTU-攜帶在DBD報文中,兩端口必須一致
  6. 掩碼,如12.1.1.1/30——12.1.1.2/24 這種情況是可以ping通的,但鄰居關係起不來 
    (OSPF對環回口,無論掩碼多少位,都按32位處理,所以建議環回口直接/32,或者在環回口下還原真實掩碼)
  7. ACL(是否放行OSPF)

OSPF更新

  1. OSPF是一種觸發更新的機制。一旦拓撲發生變化便會更新。
  2. OSPF也有週期性更新(30分鐘一次)
  3. 當收到一條LSA之後: 
    首先查看是否在LSDB中,若沒有則假如LSDB,回覆LSACK。繼續泛洪出去,並且通過SPF算法計算最佳路徑並加入路由表。若存在,則比較誰的更“新”(看序號),序號大者新,若本地不如收到的信更新本地LSDB並泛洪,且通過SPF算法計算最佳路徑並加入路由表,若比收到的新,則將本地的泛洪出去。

注:LSA序列號,4字節,16進制 
0x80000001-0x7FFFFFFF

OSPF數據包類型

  1. Hello:10秒發送一次,死亡時間40s,4倍關係,可以修改。
  2. DBD:Database Description 僅僅是一個對本地數據庫的概念性敘述,供路由器覈對數據庫是否同步
  3. LSR:Link-State Request 請求鏈路狀態,在數據庫同步過程中使用,請求其他角色發送自己失去的LSA最新版本。
  4. LSU:Link-State Update 鏈路狀態更新,LSU包括幾種類型的LSA,LSU負責泛洪LSA,和相應LSR。LSA只會發送給之前以LSR請求的LSA的直連鄰居,進行泛洪的時候,鄰居路由負責把收到的LSA信息重新封裝在新的LSU中。
  5. LSACK:鏈路狀態確認,路由器必須對每個收到的LSA進行LSACK確認,但可以用一個LSACK確認多個LSA。

DR、BDR的選舉

DR、BDR的選舉規則:比較router-id,router-id有以下獲得方式:

  1. 由工程師指定
  2. 這臺設備最大的環回口ip
  3. 沒有環回口的話,物理接口ip地址最大的。

選舉規則:

  1. 最高優先級值的路由器被選爲DR(默認優先級相同:1),次高優先級的爲BDR
  2. 若優先級相同,則比較router-id,擁有最高router-id的成爲DR,次高的成爲BDR
  3. 優先級被設置爲0的不參與選舉
  4. OSPF系統啓動後,若40s內沒有新設備接入就會開始選舉,所以爲保證DR與BDR的選舉不發生意外,建議優先配置想成爲DR與BDR的設備。
  5. DR與BDR不可以搶佔
  6. 當DR小時之後,BDR直升DR,重新選BDR
  7. 所有DR,BDR,DRothers說的都是接口,而不是設備
  8. 不同網段間選DR,BDR,而不是以OSPF區域爲單位

OSPF狀態

  1. Down State
  2. Init State:發送了Hello包(還沒收到)
  3. Two-way State:收到了一個Hello包且Hello包中包括自己的router-id(對方回覆的)
  4. Exstart State:First DBD確認主從關係,router-id大的爲主,先發包
  5. Exchange State:交互DBD 相互學習
  6. Loading State:LSR與LSU的交互過程
  7. Full State:所有交互已經完成

注:DBD只是一個目錄的性質,並且第一個DBD只是用來協商之後的DBD由誰先發送。

基本配置演示

我們用下面的拓撲進行配置演示: 
這裏寫圖片描述
對R1進行配置:

R1>en
R1#conf t
R1(config)#int lo 0
R1(config-if)#ip add 1.1.1.1 255.255.255.255
R1(config-if)#no sh
R1(config-if)#exi
R1(config)#int f0/0
R1(config-if)#ip add 100.1.1.1 255.255.255.0
R1(config-if)#no sh
R1(config-if)#exi

R1(config)#router os 100
R1(config-router)#router-id 1.1.1.1
R1(config-router)#net 1.1.1.1 0.0.0.0 a 0
R1(config-router)#net 100.1.1.0 0.0.0.255 a 0
R1(config-router)#exi

對R2進行配置:

R2>en
R2#conf t
R2(config)#int lo 0
R2(config-if)#ip add 2.2.2.2 255.255.255.255
R2(config-if)#no sh
R2(config-if)#exi
R2(config)#int f0/0
R2(config-if)#ip add 100.1.1.2 255.255.255.0
R2(config-if)#no sh
R2(config-if)#exi

R2(config)#router os 100
R2(config-router)#route
R2(config-router)#router-id 2.2.2.2
R2(config-router)#net 2.2.2.2 0.0.0.0 a 0
R2(config-router)#net 100.1.1.0 0.0.0.255 a 0
R2(config-router)#ex

R3進行配置:

R3>en
R3#conf t
R3(config)#int lo 0
R3(config-if)#ip add 3.3.3.3 255.255.255.255
R3(config-if)#no sh
R3(config-if)#exi
R3(config)#int f0/0
R3(config-if)#ip add 100.1.1.3 255.255.255.0
R3(config-if)#no sh
R3(config-if)#exi

R3(config)#router os 100
R3(config-router)#router-id 3.3.3.3 
R3(config-router)#net 3.3.3.3 0.0.0.0 a 0
R3(config-router)#net 100.1.1.0 0.0.0.255 a 0
R3(config-router)#exi
  • 對R4進行配置:
R4>en
R4#conf t
R4(config)#int lo 0
R4(config-if)#ip add 4.4.4.4 255.255.255.255
R4(config-if)#no sh
R4(config-if)#exi
R4(config)#int f0/0
R4(config-if)#ip add 100.1.1.4 255.255.255.0
R4(config-if)#no sh
R4(config-if)#exi
R4(config)#int f0/1
R4(config-if)#ip add 45.1.1.4 255.255.255.0
R4(config-if)#no sh
R4(config-if)#exi

R4(config)#router os 100
R4(config-router)#router-id 4.4.4.4
R4(config-router)#net 4.4.4.4 0.0.0.0 a 0
R4(config-router)#net 100.1.1.0 0.0.0.255 a 0
R4(config-router)#net 45.1.1.0 0.0.0.255 a 1
R4(config-router)#exi

R5進行配置:


R5>en
R5#conf t
R5(config)#int lo 0
R5(config-if)#ip add 5.5.5.5 255.255.255.255
R5(config-if)#no sh
R5(config-if)#exi
R5(config)#int f0/1
R5(config-if)#ip add 45.1.1.5 255.255.255.0
R5(config-if)#no sh
R5(config-if)#exi

R5(config)#router os 100
R5(config-router)#router-id 5.5.5.5
R5(config-router)#net 5.5.5.5 0.0.0.0 a 1
R5(config-router)#net 45.1.1.0 0.0.0.255 a 1
R5(config-router)#exi
  • 以上就是全部基本配置,我們下面來查看一下基本信息 
    查看鄰居信息:
R4#show ip ospf neighbor 

Neighbor ID     Pri   State           Dead Time   Address         Interface
1.1.1.1           1   FULL/DR         00:00:38    100.1.1.1       FastEthernet0/0
2.2.2.2           1   FULL/BDR        00:00:34    100.1.1.2       FastEthernet0/0
3.3.3.3           1   2WAY/DROTHER    00:00:33    100.1.1.3       FastEthernet0/0
5.5.5.5           1   FULL/DR         00:00:33    45.1.1.5        FastEthernet0/1

以看見R4這臺路由器一共有四個鄰居,這裏臨界狀態,full就是代表鄰接,我們可以看見區域0中R1是DR,R2是BDR,R3和R4都是DRothers,而區域1中R5是DR。那麼我們可以推測,R4是區域1的BDR,我們在R5上查看:

R5#show ip ospf neighbor 

Neighbor ID     Pri   State           Dead Time   Address         Interface
4.4.4.4           1   FULL/BDR        00:00:36    45.1.1.4        FastEthernet0/1

推測不假,下面查看一下開啓OSPF的接口信息:

R1#show ip ospf interface 
FastEthernet0/0 is up, line protocol is up 
  Internet Address 100.1.1.1/24, Area 0 
  Process ID 100, Router ID 1.1.1.1, Network Type BROADCAST, Cost: 10
  Transmit Delay is 1 sec, State DR, Priority 1
  Designated Router (ID) 1.1.1.1, Interface address 100.1.1.1
  Backup Designated router (ID) 2.2.2.2, Interface address 100.1.1.2
  Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
    oob-resync timeout 40
    Hello due in 00:00:00
  Supports Link-local Signaling (LLS)
  Cisco NSF helper support enabled
  IETF NSF helper support enabled
  Index 2/2, flood queue length 0
  Next 0x0(0)/0x0(0)
  Last flood scan length is 1, maximum is 1
  Last flood scan time is 4 msec, maximum is 4 msec
  Neighbor Count is 3, Adjacent neighbor count is 3 
    Adjacent with neighbor 2.2.2.2  (Backup Designated Router)
    Adjacent with neighbor 3.3.3.3
    Adjacent with neighbor 4.4.4.4
  Suppress hello for 0 neighbor(s)
Loopback0 is up, line protocol is up 
  Internet Address 1.1.1.1/32, Area 0 
  Process ID 100, Router ID 1.1.1.1, Network Type LOOPBACK, Cost: 1
  Loopback interface is treated as a stub Host

可以看見,開啓了OSPF的接口的詳細信息,比如Router-id,區域id,進程id,以及接口是如何加入進入OSPF的(network) 
查看OSPF的路由:

R5#show ip route ospf 
     1.0.0.0/32 is subnetted, 1 subnets
O IA    1.1.1.1 [110/21] via 45.1.1.4, 00:26:31, FastEthernet0/1
     2.0.0.0/32 is subnetted, 1 subnets
O IA    2.2.2.2 [110/21] via 45.1.1.4, 00:26:31, FastEthernet0/1
     100.0.0.0/24 is subnetted, 1 subnets
O IA    100.1.1.0 [110/20] via 45.1.1.4, 00:26:31, FastEthernet0/1
     3.0.0.0/32 is subnetted, 1 subnets
O IA    3.3.3.3 [110/21] via 45.1.1.4, 00:26:31, FastEthernet0/1
     4.0.0.0/32 is subnetted, 1 subnets
O IA    4.4.4.4 [110/11] via 45.1.1.4, 00:26:31, FastEthernet0/1

在R5中查看OSPF的路由,發現全部都是O IA標記,這裏O 標識來自OSPF,而IA代表是OSPF其他區域傳來的路由(關於標記在後面講解LSA中還會提到),我們再在R1上查看一下OSPF的路由:

R1#show ip route os
     2.0.0.0/32 is subnetted, 1 subnets
O       2.2.2.2 [110/11] via 100.1.1.2, 00:29:28, FastEthernet0/0
     3.0.0.0/32 is subnetted, 1 subnets
O       3.3.3.3 [110/11] via 100.1.1.3, 00:29:28, FastEthernet0/0
     4.0.0.0/32 is subnetted, 1 subnets
O       4.4.4.4 [110/11] via 100.1.1.4, 00:29:28, FastEthernet0/0
     5.0.0.0/32 is subnetted, 1 subnets
O IA    5.5.5.5 [110/21] via 100.1.1.4, 00:28:17, FastEthernet0/0
     45.0.0.0/24 is subnetted, 1 subnets
O IA    45.1.1.0 [110/20] via 100.1.1.4, 00:29:28, FastEthernet0/0

可見,區域1的被標識爲O IA,而區域0的則只是O。 
以上就是基本的OSPF系統的配置。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章