文章來自 辣雞熊個人博客:https://eeeje.com 歡迎訪問,獲得更好閱讀體驗
本文鏈接: https://eeeje.com/2019/11/03/OSPF/
版權聲明: 本博客所有文章除特別聲明外,均采用 CC BY 4.0 CN協議 許可協議。轉載請注明出處!
title: 華為設備OSPF路由的配置
categories: 學習
date: 2019-11-3 01:44:10
tags: 路由交換
toc: true
實驗中有很多個人的理解,因為基礎較差,難免會有一些錯誤的地方,如果您有建議或理解,歡迎在文章下方留言😁
OSPF
Open Shortest Path First翻譯過來是開放式最短路徑優先
華為設備中OSPF的優先級是 10 僅低於直連路由
OSPF單區域配置
實驗設備
HUAWEI AR2220 PC
實驗拓撲&規划
我並沒有使用實驗指導中提供的IP規划
實驗目的
通過配置單個OSPF區域的配置,使PC1、PC2、PC2所在網絡互通
實驗過程
-
為各接口以及PC配置IP,並確保每一對接口之間連通。
-
為路由器配置OSPF
[R1]ospf 1 //1為進程號
進入骨干區域
[R1-ospf-1]area 0
接下來就可以來指定運行OSPF協議的接口和接口所屬的區域
[R1-ospf-1-area-0.0.0.0]network 172.10.1.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0]network 10.0.0.0 0.0.0.3
[R1-ospf-1-area-0.0.0.0]network 10.0.0.4 0.0.0.3
Q:這里的命令我不太理解
猜測后面的應該為255減去原來的掩碼位(數通基礎不好)
- 檢查通告情況,命令:
display ospf interface
OSPF Process 1 with Router ID 172.10.1.254
Interfaces
Area: 0.0.0.0 (MPLS TE not enabled)
IP Address Type tate Cost Pri DR BDR
172.10.1.254 Broadcast DR 1 1 172.10.1.254 0.0.0.0
10.0.0.2 Broadcast DR 1 1 10.0.0.2 0.0.0.0
10.0.0.6 Broadcast DR 1 1 10.0.0.6 0.0.0.0
這里可以看到area域為0.0.0.0,RoutID為172.10.1.254 ,另外可以看待通告出去三個接口的類型為廣播,接口狀態為DR,即都是所在網絡中的指定路由器。
拓展:DR :一個廣播性、多接入網絡中的指定路由器,個人理解為一個網絡中的“管事的”
Q:為什么會選這個ip做為RoutID?
-
配置R2 R3
[R2]ospf 1 [R2-ospf-1]area 0 [R2-ospf-1-area-0.0.0.0]network 10.0.0.1 0.0.0.3 [R2-ospf-1-area-0.0.0.0]network 10.0.0.9 0.0.0.3 [R2-ospf-1-area-0.0.0.0]network 172.10.2.254 0.0.0.255 [R3]ospf 1 [R3-ospf-1]area 0 [R3-ospf-1-area-0.0.0.0]network 10.0.0.5 0.0.0.3 [R3-ospf-1-area-0.0.0.0]network 10.0.0.10 0.0.0.3 [R3-ospf-1-area-0.0.0.0]network 172.10.3.1 0.0.0.255
這里我配置完以后發現,命令敲錯了,network 后面的直接輸了接口地址,但是我去查通告情況,看起來是正常的,我覺得,后面的那個字段和掩碼有關,掩碼是用來定義網絡的,所以說我輸入的32位的地址被定義為了當前ip所在的網絡,暫且不去管他。
- 檢查OSPF鄰居
display ospf peer
OSPF Process 1 with Router ID 172.10.1.254
Neighbors
Area 0.0.0.0 interface 10.0.0.2(GigabitEthernet0/0/0)'s neighbors
Router ID: 172.10.2.254 Address: 10.0.0.1
State: Full Mode:Nbr is Master Priority: 1
DR: 10.0.0.2 BDR: 10.0.0.1 MTU: 0
Dead timer due in 39 sec
Retrans timer interval: 5
Neighbor is up for 00:35:24
Authentication Sequence: [ 0 ]
Neighbors
Area 0.0.0.0 interface 10.0.0.6(GigabitEthernet0/0/2)'s neighbors
Router ID: 10.0.0.10 Address: 10.0.0.5
State: Full Mode:Nbr is Slave Priority: 1
DR: 10.0.0.6 BDR: 10.0.0.5 MTU: 0
Dead timer due in 29 sec
Retrans timer interval: 5
Neighbor is up for 00:28:32
Authentication Sequence: [ 0 ]
這里看到了兩個OSPF鄰居RoutID分別為:172.10.1.254,10.0.0.10(這個RoutID用了路由之間的接口ID)
猜測:RoutID的原則是不重復,所以說是不是隨便指定一個ip做為RoutID
實驗:我新開了一台路由器去嘗試,發現 RoutID的選擇是根據第一個配置的接口ip進行選擇的。我回頭去看R3的數據,我第一個配置的接口Ip的確是1.0.0.10/30
- 現在再去查通告情況,看一下前面看不懂的
BR
OSPF Process 1 with Router ID 172.10.1.254
Interfaces
Area: 0.0.0.0 (MPLS TE not enabled)
IP Address Type State Cost Pri DR BDR
172.10.1.254 Broadcast DR 1 1 172.10.1.254 0.0.0.0
10.0.0.2 Broadcast DR 1 1 10.0.0.2 10.0.0.1
10.0.0.6 Broadcast DR 1 1 10.0.0.6 10.0.0.5
DR是指定路由器,BDR是備份指定路由器,既然前面說到了DR是管事的
那BDR就是副管事的
,當管事的
不在或者做錯的時候,副管事的
就出來接手,這兩個管事的
又是由大家選出來的,這里就涉及到OSPF的選舉機制了,由於理論部分還沒有學到這里,暫時放一下。
現在從表中看出,172.1.1.254是自己所在網絡的DR,他的BDR是一個缺省狀態,另外兩個網絡的BDR都是自己網絡中存在於OSPF域中的地址
- 再看看OSPF的路由表
Public routing table : OSPF
Destinations : 3 Routes : 4
OSPF routing table status : <Active>
Destinations : 3 Routes : 4
Destination/Mask Proto Pre Cost Flags NextHop Interface
10.0.0.8/30 OSPF 10 2 D 10.0.0.1 GigabitEthernet 0/0/0
OSPF 10 2 D 10.0.0.5 GigabitEthernet 0/0/2
172.10.2.0/24 OSPF 10 2 D 10.0.0.1 GigabitEthernet 0/0/0
172.10.3.0/24 OSPF 10 2 D 10.0.0.5 GigabitEthernet 0/0/2
OSPF routing table status : <Inactive>
Destinations : 0 Routes : 0
實驗驗證
- 由
PC1
pingPC2
PC>ping 172.10.2.1
Ping 172.10.2.1: 32 data bytes, Press Ctrl_C to break
Request timeout!
From 172.10.2.1: bytes=32 seq=2 ttl=126 time=16 ms
From 172.10.2.1: bytes=32 seq=3 ttl=126 time=15 ms
From 172.10.2.1: bytes=32 seq=4 ttl=126 time=16 ms
From 172.10.2.1: bytes=32 seq=5 ttl=126 time=16 ms
--- 172.10.2.1 ping statistics ---
5 packet(s) transmitted
4 packet(s) received
20.00% packet loss
round-trip min/avg/max = 0/15/16 ms
單區域的實驗結束
OSPF多區域配置
在網絡規模很大的時候,就要分為多個自治域去管理,否則每個路由上的鏈路狀態數據庫將會非常的巨大,這就考慮到了路由器的硬件因素,打個簡單的比方,大家都知道π=3.141592653...但是這個值不需要我們每次使用的時候都拿去算,因為已經有人算好了,拿來用就好了,多區域就是不同as域的計算、選舉,都是獨立的,由邊界路由提供區域間的聯系。
關於鏈路數據庫大小的概念,這里拿一台來自俄勒岡大學全球BGP路由表瀏覽項目的路由器打個比方(好像關系不大🤔)
這是一台思科的設備,使用的BGP路由
他的路由表是一個很龐大的數量
使用的內存也達到了8.5G左右
而我們實驗中用到的AR2220的內存僅有1G
好像ospf多域解決的是計算等問題,而且ospf和bgp的機制也有很大不同😓,上面這部分就當個拓展,另外在百度的時候發現了一段有意思的話:
OSPF:“身如路由器,心似轉發表,報文何其多,日夜勤查找。”
BGP:“路由本非器,轉發何需表?報文雖然多,自有他人找。”
先收藏起來
言歸正傳
實驗拓撲&規划
基於上一部分是實驗進行改動
其中R1 R2 R3 R4 在區域 0 中,R1 R2 R5在區域 1 中,R3 R4 R6 在區域 2 中
實驗目的
R1 R2 R3 R4 為核心區域,在同一個as域中,其中R1 R2 與 R5 同在區域 1 中,R3 R4 與 R5 同在區域 2 中
從本質上來講,可以理解為“分布式計算”,區域1計算出a=1,區域2計算出b=2,區域3計算出c=3,甲在區域1和2中,乙在區域2和3中,甲和乙互相溝通后,大家都知道a,b,c的值了。
實驗過程
-
配置各接口IP
-
配置骨干區域,將R1 R2 R3 R4 配入area 0 中,並互相通告
- 配置區域A 即R1 R2 R5 配入 area 1 中,其中R1 R2只通告與R5相連的接口
- 配置區域B 即R3 R4 R6 配入 area 2 中,其中R3 R4只通告與R6相連的接口
鄰區沒有問題
- 查一下OSPF鏈路狀態數據庫
[Huawei]display ospf lsdb
OSPF Process 1 with Router ID 10.0.0.18
Link State Database
Area: 0.0.0.2
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 10.0.0.14 10.0.0.14 411 36 80000005 1
Router 172.10.3.254 172.10.3.254 421 36 80000005 1
Router 10.0.0.18 10.0.0.18 409 60 80000008 1
Network 10.0.0.17 10.0.0.14 411 32 80000002 0
Network 10.0.0.22 172.10.3.254 421 32 80000002 0
Sum-Net 172.10.3.0 172.10.3.254 615 28 80000001 1
Sum-Net 172.10.3.0 10.0.0.14 560 28 80000001 2
Sum-Net 172.10.2.0 172.10.3.254 615 28 80000001 2
Sum-Net 172.10.2.0 10.0.0.14 560 28 80000001 3
Sum-Net 172.10.1.0 172.10.3.254 615 28 80000001 3
Sum-Net 172.10.1.0 10.0.0.14 560 28 80000001 3
Sum-Net 10.0.0.12 172.10.3.254 615 28 80000001 2
Sum-Net 10.0.0.12 10.0.0.14 560 28 80000001 1
Sum-Net 10.0.0.8 172.10.3.254 615 28 80000001 1
Sum-Net 10.0.0.8 10.0.0.14 560 28 80000001 2
Sum-Net 10.0.0.4 172.10.3.254 615 28 80000001 1
Sum-Net 10.0.0.4 10.0.0.14 560 28 80000001 1
Sum-Net 10.0.0.0 172.10.3.254 615 28 80000001 2
Sum-Net 10.0.0.0 10.0.0.14 560 28 80000001 2
Sum-Net 10.0.0.28 172.10.3.254 615 28 80000001 2
Sum-Net 10.0.0.28 10.0.0.14 560 28 80000001 3
Sum-Net 10.0.0.24 172.10.3.254 615 28 80000001 3
Sum-Net 10.0.0.24 10.0.0.14 560 28 80000001 2
除了我們通告的路由之外,其他的路由都是Sum-Net類型的
我去搜Sum-Net是什么,並沒有搜到,但是發現啟示錄中有一條Sum-Net LSA會引起路由計算,引發OSPF路由震盪
實驗驗證
PC1
ping PC4
PC>ping 172.10.4.1
Ping 172.10.4.1: 32 data bytes, Press Ctrl_C to break
From 172.10.1.1: Destination host unreachable
失敗
-
排障
先用PC1與PC4 ping各自的網關 --成功
查看R5 R6路由表 --有對應條目
檢查電腦配置 --未配置網關
PC>ping 172.10.4.1
Ping 172.10.4.1: 32 data bytes, Press Ctrl_C to break
Request timeout!
From 172.10.4.1: bytes=32 seq=2 ttl=124 time=31 ms
From 172.10.4.1: bytes=32 seq=3 ttl=124 time=31 ms
From 172.10.4.1: bytes=32 seq=4 ttl=124 time=31 ms
From 172.10.4.1: bytes=32 seq=5 ttl=124 time=32 ms
--- 172.10.4.1 ping statistics ---
5 packet(s) transmitted
4 packet(s) received
20.00% packet loss
round-trip min/avg/max = 0/31/32 ms
實驗完成
OSPF的認證
“對暗號” 我理解為防止非法路由加入網絡中
實驗拓撲/規划
R1的loopback的地址是1.1.1.1 ,R2的是2.2.2.2,以此類推
實驗目的
在區域0和1配上區域認證,0開啟密文認證,1開啟明文認證
實驗過程
OSPF區域認證
-
配置各接口IP,並配置loopback地址
-
將R2 R3 R5 R6 配入area 0 中,並通告網絡,將R1 R2 R4 配入area 1 中,同樣通告網絡
需要注意的是,每台設備都需要把loopback地址通告出去
-
配置區域
可以看到R2有了正確的鄰居關系
-
給區域1配置區域認證
R1
[Huawei]ospf 1 [Huawei-ospf-1]ar [Huawei-ospf-1]area 1 [Huawei-ospf-1-area-0.0.0.1]au [Huawei-ospf-1-area-0.0.0.1]authentication-mode s [Huawei-ospf-1-area-0.0.0.1]authentication-mode simple p [Huawei-ospf-1-area-0.0.0.1]authentication-mode simple plain huawei1 [Huawei-ospf-1-area-0.0.0.1]disp [Huawei-ospf-1-area-0.0.0.1]display th [V200R003C00] # area 0.0.0.1 authentication-mode simple plain huawei1 network 1.1.1.1 0.0.0.0 network 10.0.0.0 0.0.0.3 # return
這時候可以看到口令為
huawei1
重新配置一遍
發現個有趣的東西,按上鍵的時候,原來輸入的口令會變成******
現在口令變為了密文顯示
[Huawei-ospf-1-area-0.0.0.1]authentication-mode simple huawei1
[Huawei-ospf-1-area-0.0.0.1]display th
[V200R003C00]
#
area 0.0.0.1
authentication-mode simple cipher %$%$6iLJ4J=YgV@LW7RZhQgXRp_4%$%$
network 1.1.1.1 0.0.0.0
network 10.0.0.0 0.0.0.3
#
return
R2也沒有了R1的鄰居關系
<R2>display ospf 1 peer brief
OSPF Process 1 with Router ID 10.0.0.2
Peer Statistic Information
----------------------------------------------------------------------------
Area Id Interface Neighbor id State
0.0.0.0 GigabitEthernet0/0/1 10.0.0.6 Full
0.0.0.1 GigabitEthernet0/0/2 4.4.4.4 Full
----------------------------------------------------------------------------
- 接下來配R2 R4的認證
[R2]ospf 1
[R2-ospf-1]area 1
[R2-ospf-1-area-0.0.0.1]au
[R2-ospf-1-area-0.0.0.1]authentication-mode s
[R2-ospf-1-area-0.0.0.1]authentication-mode simple p
[R2-ospf-1-area-0.0.0.1]authentication-mode simple plain huawei1
[R2-ospf-1-area-0.0.0.1]authentication-mode simple huawei1
[R2-ospf-1-area-0.0.0.1]display ospf 1 peer brief
OSPF Process 1 with Router ID 10.0.0.2
Peer Statistic Information
----------------------------------------------------------------------------
Area Id Interface Neighbor id State
0.0.0.0 GigabitEthernet0/0/1 10.0.0.6 Full
0.0.0.1 GigabitEthernet0/0/0 10.0.0.1 Full
----------------------------------------------------------------------------
可以看到現在R2與R1的鄰居關系恢復了,沒有了R4的鄰居,接着去配R4
[R4-ospf-1-area-0.0.0.1]display th
[V200R003C00]
#
area 0.0.0.1
authentication-mode simple cipher %$%$tuiTSpt'-/`8ey(B}PlFR&~y%$%$
network 4.4.4.4 0.0.0.0
network 10.0.0.16 0.0.0.3
#
return
R2的鄰居關系也正常了
<R2>display ospf 1 peer brief
OSPF Process 1 with Router ID 10.0.0.2
Peer Statistic Information
----------------------------------------------------------------------------
Area Id Interface Neighbor id State
0.0.0.0 GigabitEthernet0/0/1 10.0.0.6 Full
0.0.0.1 GigabitEthernet0/0/2 4.4.4.4 Full
0.0.0.1 GigabitEthernet0/0/0 10.0.0.1 Full
----------------------------------------------------------------------------
OSPF鏈路驗證
-
在R2與R4之間部署MD5的鏈路認證
[R2-GigabitEthernet0/0/2]ospf authentication-mode md5 1 huawei5
去看鄰居信息
<R2>display ospf 1 peer brief OSPF Process 1 with Router ID 10.0.0.2 Peer Statistic Information ---------------------------------------------------------------------------- Area Id Interface Neighbor id State 0.0.0.0 GigabitEthernet0/0/1 10.0.0.6 Full 0.0.0.1 GigabitEthernet0/0/0 10.0.0.1 Full ----------------------------------------------------------------------------
現在與R4的鄰居沒有了,因為R2與R4連接的接口被配上了鏈路認證
-
給R4也配上鏈路認證
OSPF Process 1 with Router ID 10.0.0.2 Peer Statistic Information ---------------------------------------------------------------------------- Area Id Interface Neighbor id State 0.0.0.0 GigabitEthernet0/0/1 10.0.0.6 Full 0.0.0.1 GigabitEthernet0/0/2 4.4.4.4 Full 0.0.0.1 GigabitEthernet0/0/0 10.0.0.1 Full ----------------------------------------------------------------------------
R2的與R4的鄰居重新建立
OSPF被動接口配置
讓一個接口從“參與者”變為“使用者”
拓撲&規划
實驗過程
-
配置接口ip,並且都放入area 0 中
-
對PC上的接口進行抓包,可以看到有很多OSPF的hello packet報文,報文中包含了本area中的信息
所以需要配置被動接口,禁止連接終端的接口接收發送OSPF報文
-
將與終端相連的接口配置為被動接口
[R4]ospf 1 [R4-ospf-1]sil [R4-ospf-1]silent-interface g 0/0/2 [R4-ospf-1]display th [V200R003C00] # ospf 1 silent-interface GigabitEthernet0/0/2 area 0.0.0.0 network 10.0.0.16 0.0.0.7 network 10.1.1.0 0.0.0.255 # return
-
重新去抓包,就不會再發現有來自OSPF的報文了
實驗結論
既然被動接口會使當前接口不再發送和接收OSPF的報文,所以不可以配置在路由之間的接口上,否則會使當前接口退出OSPF
OSPF的Router-ID
其實關於Router-ID,我之前就做了簡單的驗證,當時得出的結論是:
猜測:RoutID的原則是不重復,所以說是不是隨便指定一個ip做為RoutID
實驗:我新開了一台路由器去嘗試,發現 RoutID的選擇是根據第一個配置的接口ip進行選擇的。我回頭去看R3的數據,我第一個配置的接口Ip的確是1.0.0.10/30
完善下Router ID的選舉規則
在沒有手動配置Router-ID的情況下,第一個配置的接口IP,會被指定為Router-ID,如果這個IP被刪除,如果當前有loopback地址,則Router-ID會被指定為loopback地址,如果沒有,則會被指定為第二個配置的Router-ID,以此類推。
[Huawei]int
[Huawei]interface g 0/0/0
[Huawei-GigabitEthernet0/0/0]ip add 1.1.1.1 24
[Huawei-GigabitEthernet0/0/0]interface g 0/0/1
[Huawei-GigabitEthernet0/0/1]ip add 2.2.2.2 24
[Huawei-GigabitEthernet0/0/1]disp
[Huawei-GigabitEthernet0/0/1]display r
[Huawei-GigabitEthernet0/0/1]display ro
[Huawei-GigabitEthernet0/0/1]display route id
RouterID:1.1.1.1 //此時的RouterID為第一個配置的接口IP
[Huawei-GigabitEthernet0/0/1]interface g 0/0/0
[Huawei-GigabitEthernet0/0/0]undo ip add
[Huawei-GigabitEthernet0/0/0]display route id
RouterID:2.2.2.2 //刪除第一個配置的接口IP后,被指定為第二個接口IP
[Huawei-GigabitEthernet0/0/0]ip add 1.1.1.1 24
[Huawei-GigabitEthernet0/0/0]interface l 0
[Huawei-LoopBack0]ip add 6.6.6.6 32
[Huawei-LoopBack0]interface g 0/0/1
[Huawei-GigabitEthernet0/0/1]undo ip ad
[Huawei-GigabitEthernet0/0/1]display route id
RouterID:6.6.6.6 //這時就會被指定為loopback地址
-
如果RouterID重復,會發生什么?
簡單拓撲
配置相同的RouterID
修改完RouterID后,會有這樣的提醒:路由器ID已修改,請手動重置相關協議更新路由器ID
現在去查看鄰居
OSPF Process 1 with Router ID 1.1.1.1
Neighbors
Area 0.0.0.0 interface 1.1.1.1(GigabitEthernet0/0/0)'s neighbors
Router ID: 1.1.1.2 Address: 1.1.1.2
State: Full Mode:Nbr is Master Priority: 1
DR: 1.1.1.1 BDR: 1.1.1.2 MTU: 0
Dead timer due in 40 sec
Retrans timer interval: 5
Neighbor is up for 00:08:51
Authentication Sequence: [ 0 ]
Router ID還是原來的,結合之前的提醒,需要重置一下協議:reset ospf process
(這個命令只可以在用戶界面使用)
再去看鄰居
<Huawei>display ospf peer
OSPF Process 1 with Router ID 6.6.6.6
沒有鄰居了,那么路由自然也不會通告
再看一下不同區域的相同RouterID
兩側的路由擁有相同的RouterID
[Huawei]display ospf lsdb
OSPF Process 1 with Router ID 6.6.6.6
Link State Database
Area: 0.0.0.0
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 6.6.6.7 6.6.6.7 425 36 80000004 1
Router 6.6.6.6 6.6.6.6 592 36 80000007 1
Router 1.1.1.2 1.1.1.2 788 36 80000008 1
Router 1.1.1.1 1.1.1.1 1512 36 80000005 1
Network 1.1.1.1 6.6.6.6 592 32 80000002 0
Sum-Net 1.1.2.0 6.6.6.7 371 28 80000001 1
[Huawei]ping 1.1.2.2
PING 1.1.2.2: 56 data bytes, press CTRL_C to break
Reply from 1.1.2.2: bytes=56 Sequence=1 ttl=254 time=30 ms
Reply from 1.1.2.2: bytes=56 Sequence=2 ttl=254 time=20 ms
Reply from 1.1.2.2: bytes=56 Sequence=3 ttl=254 time=30 ms
Reply from 1.1.2.2: bytes=56 Sequence=4 ttl=254 time=30 ms
Reply from 1.1.2.2: bytes=56 Sequence=5 ttl=254 time=30 ms
--- 1.1.2.2 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 20/28/30 ms
可以看出來,並沒有對網絡造成影響。
** 所以,RouterID在同區域內重疊是會影響ospf狀態的,不同區域則不會**