7-6 OSPF
繞路協定與設定
內容:
7-6-1 OSPF
繞路協定簡介
『開放式最短路徑優先』(Open
Shortest Path First, OSPF)是在
1980 年中期由
IETF(Internet
Engineering Task Force)發展出來,主要應用於
IP 網路中內部閘門之間的路徑選擇協定。和
RIP 相比較,OSPF
能適用於較大網路或異質網路上。OSFP
有兩個重要特性:(1)
是開放性架構(Open),它的規格是公開性的(RFC
1247),任何廠商可任意安裝在自家電腦上,並修改或增加其功能。(2)
它是最短路徑演算法(SPF),在所有路徑之中最短路徑,一般都參考採用
Dijkstra Algorithm。(請參考
TCP/IP 協定與
Internet 網路)
和其他路徑選擇協定的另一不同點是,OSPF
採用『鏈路狀態繞路法』(Link-State
routing)。在
OSPF 下的路由器定時傳送『鏈路狀態宣傳』(Link-State
Advertisement, LSA)訊息給同等階級地區的其他路由器,LSA
訊息包含有連接介面、路由值(Metric)、以及其他相關變數值。OSPF
路由器計算這些參數後,並以最短路徑演算法找出,針對網路上(自治系統內)所有路由器中的最短路徑。另外和使用距離向量法的
RIP 或
IGRP
有很大的不同,它們皆傳送某部份(或更新部份)的路由表給其他路由器;而 OSPF
是傳遞路由器所管轄內之『路由拓樸圖』給相鄰之路由器。
OSPF
能將自己管轄的自治系統(Autonomous System, AS)以階層式分割為若干個小區域(如圖
7-26 所示)。基本上,OSPF
是做自治系統內(intra-AS)路徑選擇的功能,但它也有能力處理接收和傳送路徑於自治系統之間(inter-AS)。被分割的小區域一般都稱為網域(Domain),一個網域內也許連接數個路由器和若干個主機。網域之間連接的路由器稱之為邊界路由器(Border
Router)或稱骨幹路由器(Backbone
Router),如圖中的
Router_4、Router_5、Router_12、Router_11、Router_10、以及
Router_6,它們之間連線稱為骨幹(Backbone)。骨幹路由器和一般網域內路由器(如
Router_3 等)處理不同的『拓樸圖資料庫』(Topological
Database)。
圖
7-26 自治系統內
OSPF 的拓樸圖
網域內所有路由器接收網域內其他路由器所傳送的
LSA
建立網路架構圖,並將其建構於拓樸圖資料庫內。骨幹路由器不僅必須建構網域內的拓樸圖,還必須建立骨幹的拓樸圖資料庫,因此在任一部骨幹路由器上可觀察到所有網域和骨幹網路的拓樸圖。在
OSPF 中有兩種路徑選擇功能:(1)
網域內(intra-domain),處理封包的目的和來源位址皆屬於本網域之路徑選擇;(2)
網域間(inter-domain),跨越不同網域必須透過骨幹路由器轉送。如圖
6-30 網域
3 的主機_B欲傳送封包到網域
2 的主機_A,該封包被傳送到
Router_13、再往前送到
Router_11、再送到
Router_10(inter-domain);之後再經由
Router_9 轉送到
Router_7 到達主機_A(intra-domain)。
因此,骨幹路由器在跨越不同網域之間的路徑選擇,必須搜尋較複雜的拓樸圖資料庫,尤其在做連續封包傳送時,每個封包都必須搜尋資料庫。為了節省搜尋時間及次數,骨幹路由器可以建立虛擬鏈路(Virtual
Link),來連結經常使用的路徑。但虛擬路徑在網域內路由器之間是共享而非專屬。骨幹路由器也可以學習經由外部閘門所傳過的路徑訊息,作自治系統之間的路徑選擇功能。
OSPF
的協定號碼是 89/udp,可以直接包裝在
IP 封包內,並用多點傳輸(Class
D 位址),因此可以減少網路負荷。圖
7-27 為
OSPF 封包格式,其中各欄位功能如下:
●
版本(Version,
Ver):表示該封包之
OSPF 的版本。
●
型態(Type):表示該封包的工作型態,有下列四種型態:
○
Hello:建立和管理相鄰路由器關係。
○
Database Description:描述拓樸圖資料庫的內容。這些訊息將因調整資料庫而被改變。
○
Link-state Request:向相鄰路由器要求傳遞某些片段的拓樸圖資料庫。這些訊息被傳送是因為某些路由器發現資料庫的內容已經失去時效性,要求重新更新。
○
Link-state Update:回應
Link-state Request
要求。傳送中的訊息可能經由 LSA
訊息修正過。
○
Link-state Acknowledge:確認接收到回應訊息。
●
封包長度(Length,
Len):整個封包的長度,以位元組為單位。
●
Router ID:發送封包的來源路由器之識別碼。
●
Area ID:來源封包之區域(或網域)的識別碼。
●
Checksum(CS):檢查集之檢查碼。
●
認證型態(Authentication
Type, AT):內容為認證型態。所有
OSPF
的交換訊息都必須經過認證,任何區域可自行規劃認證型態。
●
認證(Authentication,
Auth):內容為認證訊息。
●
資料(Data):傳送給上層通訊協定之包裝資料。
圖
7-27 OSPF
封包格式
7-6-2 OSPF
繞路設定
(A) OSPF
繞路規劃
(請下載:『自治系統網路(一)_介面設定.pkt),再實作演練)
圖 7-5
自治系統網路(一)
吾人依照圖
7-14 自治系統網路(二),規劃
OSPF 動態繞路環境如下:(假設沒有設定『預設閘門』)
Router |
Network_1 |
Network_2 |
Network_3 |
Area |
R1 |
192.168.0.0/24 |
192.168.100.0/24 |
|
Area 0 |
R2 |
192.168.100.0/24 |
192.168.1.0/24 |
192.168.101.0/24 |
Area 0 |
R3 |
192.168.101.0/24 |
192.168.2.0/24 |
192.168.102.0/24 |
Area 0 |
R4 |
192.168.102.0/24 |
192.168.3.0/24 |
202.168.1.0/24 |
Area 0 |
R_R5 |
120.118.166.0/24 |
202.168.1.0/24 |
|
Area 0 |
(B) OSPF
繞路設定
█
R1設定
OSPF 與網路範圍:
R1(config)#ip routing
[啟動
IP routing 功能]
R1(config)#route ospf
1 [進入設定
OSPF 功能]
R1(config-router)#network
192.168.0.0 0.0.0.255 area 0 [設定網路範圍與區域]
R1(config-router)#network
192.168.100.0 0.0.0.255 area 0
R1(config)#do show ip
route [顯示路由表]
Gateway of last resort is not set
C 192.168.0.0/24 is directly connected,
FastEthernet1/0
C 192.168.100.0/24 is directly connected,
FastEthernet0/1 |
█
R2設定
OSPF 與網路範圍:
R2(config)#ip routing
R2(config)#route ospf
1
R2(config-router)#network
192.168.100.0 0.0.0.255 area 0
R2(config-router)#network
192.168.1.0 0.0.0.255 area 0
0R2(config-router)#network
192.168.101.0 0.0.0.255 area 0
R2(config-router)#do
show ip route
O 192.168.0.0/24 [110/2] via 192.168.100.1, 00:01:19,
FastEthernet0/0
C 192.168.1.0/24 is directly connected,
FastEthernet1/0
C 192.168.100.0/24 is directly connected,
FastEthernet0/0
C 192.168.101.0/24 is directly connected,
FastEthernet0/1 |
█
R3設定
OSPF 與網路範圍:
R3(config)#ip routing
R3(config)#route ospf
1
R3(config-router)#network
192.168.101.0 0.0.0.255 area 0
R3(config-router)#network
192.168.2.0 0.0.0.255 area 0
R3(config-router)#network
192.168.102.0 0.0.0.255 area 0
R3(config-router)#do
show ip route
O 192.168.0.0/24 [110/3] via 192.168.101.1, 00:00:30,
FastEthernet0/0
O 192.168.1.0/24 [110/2] via 192.168.101.1, 00:00:30,
FastEthernet0/0
C 192.168.2.0/24 is directly connected,
FastEthernet1/0
O 192.168.100.0/24 [110/2] via 192.168.101.1,
00:00:30, FastEthernet0/0
C 192.168.101.0/24 is directly connected,
FastEthernet0/0
C 192.168.102.0/24 is directly connected,
FastEthernet0/1 |
█
R4設定
OSPF 與網路範圍:
R4(config)#ip routing
[啟動
ip routing 功能]
R4(config)#route ospf
1 [啟動
ospf, process-id = 1]
R4(config-router)#network
192.168.102.0 0.0.0.255 area 0 [設定網路範圍與區域]
R4(config-router)#network
192.168.3.0 0.0.0.255 area 0
R4(config-router)#network
202.168.1.0 0.0.0.255 area 0
R4(config-router)#do
show ip route [顯示路由表]
O 192.168.0.0/24 [110/4] via 192.168.102.1, 00:00:51,
FastEthernet0/0
O 192.168.1.0/24 [110/3] via 192.168.102.1, 00:00:51,
FastEthernet0/0
O 192.168.2.0/24 [110/2] via 192.168.102.1, 00:00:51,
FastEthernet0/0
C 192.168.3.0/24 is directly connected,
FastEthernet1/0
O 192.168.100.0/24 [110/3] via 192.168.102.1,
00:00:51, FastEthernet0/0
O 192.168.101.0/24 [110/2] via 192.168.102.1,
00:00:51, FastEthernet0/0
C 192.168.102.0/24 is directly connected,
FastEthernet0/0
C 202.168.1.0/24 is directly connected, Serial0/2/0 |
█
R_R5設定
OSPF 與網路範圍:
R_R5(config)#ip
routing
R_R5(config)#route
ospf 1
R_R5(config-router)#network
120.118.166.0 0.0.0.255 area 0
R_R5(config-router)#network
202.168.1.0 0.0.0.255 area 0
R_R5(config-router)#do
show ip route
120.0.0.0/24 is subnetted, 1 subnets
C 120.118.166.0 is directly connected,
FastEthernet0/0
O 192.168.0.0/24 [110/1004] via 202.168.1.1,
00:00:22, Serial0/2/0
O 192.168.1.0/24 [110/1003] via 202.168.1.1,
00:00:22, Serial0/2/0
O 192.168.2.0/24 [110/1002] via 202.168.1.1,
00:00:22, Serial0/2/0
O 192.168.3.0/24 [110/1001] via 202.168.1.1,
00:00:22, Serial0/2/0
O 192.168.100.0/24 [110/1003] via 202.168.1.1,
00:00:22, Serial0/2/0
O 192.168.101.0/24 [110/1002] via 202.168.1.1,
00:00:22, Serial0/2/0
O 192.168.102.0/24 [110/1001] via 202.168.1.1,
00:00:22, Serial0/2/0
C 202.168.1.0/24 is directly connected, Serial0/2/0 |
█
R1 ~R_R5
皆設定 OSPF
完成之後,再回來觀察
R1 的路由表,便會發現已包含網路所有路徑,如下:
R1(config)#do show ip
route
120.0.0.0/24 is subnetted, 1 subnets
O 120.118.166.0 [110/1004]
via 192.168.100.2, 00:03:58, FastEthernet0/1
C 192.168.0.0/24 is directly connected,
FastEthernet1/0
O 192.168.1.0/24 [110/2]
via 192.168.100.2, 00:16:50, FastEthernet0/1
O 192.168.2.0/24 [110/3]
via 192.168.100.2, 00:11:04, FastEthernet0/1
O 192.168.3.0/24 [110/4]
via 192.168.100.2, 00:07:55, FastEthernet0/1
C 192.168.100.0/24 is directly connected,
FastEthernet0/1
O 192.168.101.0/24 [110/2]
via 192.168.100.2, 00:16:09, FastEthernet0/1
O 192.168.102.0/24 [110/3]
via 192.168.100.2, 00:10:48, FastEthernet0/1
O 202.168.1.0/24 [110/1003]
via 192.168.100.2, 00:07:33, FastEthernet0/1 |
(C)
路由器繞路測試
(完成後:自治系統網路(一)_OSPF
設定.pkg)
█
PC1 (192.168.0.1)
繞路測試:
C:\>ping 192.168.1.1
[OK]
C:\>ping 192.168.2.1
[OK]
C:\>ping 192.168.3.1
[OK]
C:\>ping 120.118.166.1
[OK] |
█
R_PC1 (120.118.166.1)
繞路測試:
C:\>ping 192.168.0.1
[OK]
C:\>ping 192.168.1.1
[OK]
C:\>ping 192.168.2.1
[OK]
C:\>ping 192.168.3.0
[OK] |
|
翻轉工作室:粘添壽
網路規劃與管理技術:
翻轉電子書系列:
|