基礎網路管理 第十一章 OSPF路由協定 製作:林錦財
大綱 鏈結狀態路由協定 單一區域OSPF概念 單一區域OSPF組態
鏈結狀態路由法 當有變動時將相連線路狀態資訊傳送給系統中 所有路由器 如OSPF, IS-IS 激發式更新 使用Dijkstra最短路徑(Shostest Path First, SPF) 演算法 每個路由器知道相同的網路拓樸 收歛快速 不容易產生路由迴路 較不易組態 需要較多的記憶體與計算處理能力 如OSPF, IS-IS
鏈結狀態路由協定功能 對網路改變的反應較快 當網路有改變時送出激發性更新 定期(較長時間)送出『鏈結狀態重新整理』的 更新訊息 使用Hello機制決定可否到達鄰居 用群播 使用鏈結狀態通告(Link-State Advertisement, LSA)追蹤區域內所有路由器的狀態 每部路由器據以建立『網路拓樸資料庫』
鏈結狀態拓樸與路徑表
OSPF vs RIP 可擴充性 階層式架構 主幹:Area 0 收歛速度 最大躍程數 考量頻寬 只適用TCP/IP協定組
OSPF術語 區域(area) 鏈結(link) 成本(cost) DR BDR 相鄰性資料庫 拓樸資料庫 路徑表
OSPF 反覆問題 後發先至 為克服此問題,Cisco IOS使用SPF hold timer 可利用timers spf命令設定之
OSPF封包類別 Type 1: Hello Type 2: DataBase Description (DBD) 建立與維護與鄰居之連接資訊 Type 2: DataBase Description (DBD) 描述OSPF路由器鏈結狀態資料庫的內容 Type 3: Link State Request 要求路由器鏈結狀態資料庫的特定內容 Type 4: Link State Update (LSU) 傳輸鏈結狀態通告(LSA)給鄰居路由器 Type 5: Link State Acknowledgement (LSAck) 認可收到鄰居送來的LSA
OSPF封包標頭格式 請參考CCNA Semester 3 Module 2
OSPF Hello標頭格式
OSPF的運作 發現鄰居(建立鄰接關係) 在多重存取網路上選舉DR與BDR 選擇最佳路徑 維護路由資訊
OSPF網路類別 廣播型多重存取(Broadcast multiaccess) Ethernet, Token Ring, FDDI 非廣播型多重存取(Nonbroadcast multiaccess, NBMA) Frame Relay, X.25, SMDS 點對點網路(Point-to-point networks) PPP, HDLC 一點對多點(Point-to-multipoint) 由管理者設定
OSPF網路類別
發現鄰居 建立鄰接關係 OSPF狀態 Down Init Two-way ExStart Loading Full Adjacency
初始(Init)狀態 OSPF路由器定期(10秒)送出Hello封包以與鄰 居建立關係 當由介面收到Hello封包時,路由器進入『Init 狀態』 表示路由器知道有一個鄰居在那裡並等待建立下 一步的關係
雙向(Two-way)狀態 Hello封包含有傳送者所知的OSPF鄰居清單 當路由器收到Hello訊息,其清單包含自己本 身時,則進入『Two-way狀態』 也就是知道『對方知道自己』 此時,尚未交換路由資訊
交換開始(ExStart)狀態 兩相鄰路由器間利用Hello比較路由器ID,決 定誰為master,誰為slave 鄰接關係的開始
交換(Exchange)狀態 使用Type DBD封包傳給對方本身鏈結狀態資 料庫的總結
載入(Loading)狀態 路由器比較對方與本身鏈結狀態資料庫,若發 現有不同的鏈結資訊,則送出LSR要求 收到LSR則回應LSU(包含鏈結詳細資訊) Hello Hello DBD DBD LSAck LSAck LSR LSU LSAck
選舉DR與BDR 在多重存取網路中,可能有許多路由器,若每 部路由器都須與其他路由器建立完全鄰接(full adjacency)關係並且交換資訊的話,則負擔太 重。 例如,5部路由器之間,則有10條鄰接關係;10部 則有45條鄰接關係 解決辦法:舉行委任路由器(Designated Router, DR)選舉 DR鄰接此廣播網段中所有其他路由器 所有其他路由器送其鏈結狀態資訊結DR DR送鏈結狀態資訊給所有其他路由器
備份委任路由器(BDR) 雖然DR可增進傳送效率,但會形成單一失效 點,因此,需同時選一備份委任路由器 (Backup Designated Router, BDR),作為當 DR失效時的繼任者
OSPF使用的群播位址 Hello: 224.0.0.5 送給DR與BDR:224.0.0.6 在廣播型多重存取網路與點對點網路上,預設每 10秒送一次 但是,在非廣播型多重存取網路,為每30秒送一 次 送給DR與BDR:224.0.0.6 給所有執行OSPF協定的路由器:224.0.0.5 LSAck:?
DR/BDR選舉方法 Hello封包為選票 在鄰居間,具有最大優先等級則為DR,其次者 為BDR 包含路由器ID及優先等級(priority) 在鄰居間,具有最大優先等級則為DR,其次者 為BDR 優先等級預設為1 若優先等級相同,則比較ID 若已選過DR與BDR,對新加入的路由器,會以 Hello封包告知,不再選舉 DR失效,BDR繼任 若BDR也失效,則重新選舉
Router ID 若無Loopback介面,則以實體介面最大的IP 位址為ID 若有Loopback介面,則以Loopback介面最大 的IP位址為ID
選擇最佳路徑 成本(cost)=108/頻寬(bps為單位)
維護路由資訊 發生異動 點對點網路:新鏈結狀態資訊以224.0.0.5送出 LSU 多重存取網路: 新鏈結狀態資訊以224.0.0.6送出LSU給DR和BDR DR收到以224.0.0.6送來的LSU,則以LSAck認可之 DR或BDR若須送出LSU,則以224.0.0.5送給所有 OSPF路由器 其他路由器收到以224.0.0.5送來的LSU,則LSAck認可 之 若OSPF路由器連接其他網段,則轉送LSU(視網 路類別群播)給多重存取網路的DR,或是點對點網 路的相鄰路由器 更改鏈結狀態資料庫,並執行SPF演算法
定期重新整理 注意,就算網路沒有發生鏈結狀態變動, OSPF路由資訊也會定期重新整理,預設計時 為30分鐘 當LSA項目計時一到,原先發出該項LSA的路由 器,會送出LSU,以證明該鏈結仍然存在
設定單一區域的OSPF路由法 第一步 第二步 router(config)# router ospf 行程識別碼 router(config-router)# network 位址 通用遮罩 area 區域識別碼
設定回溯介面位址 使用回溯介面的IP位址作為路由器的ID router(config)#inteface loopback 編號 router(config-if)#ip address ip位址 子網遮罩 Router(config)#interface loopback0 Router(config-if)#ip address 192.168.1.1 255.255.255.255
設定路由器的優先等級 對介面 優先等級為0~255的整數;0最低,255最高 router(config-if)#ip ospf priority 優先等級 Router(config)#interface ethernet0 Router(config-if)#ip ospf priority 0
show ip ospf interface指令 可以看介面的優先等級設定值、DR, BDR、計 時器設定值 Router#show ip ospf interface ethernet0 Ethernet0 is up, line protocol is up Internet Address 10.5.0.2, Area 0 Process ID 1, Router ID 10.6.0.1, Network Type BROADCAST, Cost: 10 Transmit Delay is 1 sec, State Dr, Priority 1 Designated Router(ID) 10.6.0.2, Interface address 10.6.0.1 Backup Designated router(ID) 10.5.0.1, Interface address 10.5.0.1 Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5 Hello due in 00:00:03 Index 1/1, flood queue length 0 Next 0x0(0)/0x0(0) Last flood scan length is 1, maximum is 1 Last flood scan time is 0 msec, maximun is 0 msec Neighbor Count is 2, Adjacent neighbor count is 2 Adjacent with neighbor 10.5.0.1 (Backup Designated Router) Suppress hello for 0 neighbor(s)
更改成本量度 對介面 Cost = 108/頻寬 設定頻寬(以bps為單為) Router(config)#interface serial 0/0 Router(config-if)#bandwidth 64
設定OSPF認證 對介面 對方介面必須相同設定 明文認證法(容易被監視) 密文認證法(較好) router(config-if)#ip ospf authentication-key 密碼 router(config-router)#area 編號 authentication 密文認證法(較好) router(config-if)#ip ospf message-digest-key 密鑰識別 碼 md5 [加密種類] 密碼 router(config-router)#area 編號 authentication message-digest 對方介面必須相同設定
設定OSPF計時器 在廣播型網路,預設上Hello間隔是10秒,死 亡間隔(dead interval)是40秒 都可更改,但注意同網段上的介面的計時器必 須相同 Router(config-if)# ip ospf hello-interval 秒數 Router(config-if)# ip ospf dead-interval 秒數
非廣播型多重存取(NBMA)網路之OSPF組態 群播Hello選舉DR, BDR問題:如圖,RTA, RTB和RTC在相同的IP子網路,若RTB未被選 為DR
NBMA網路之OSPF組態 解決辦法 使用neighbor指令 使用point-to-point子介面 使用point-to-multipoint組態 根據網路連接拓樸決定 完全互連(Full-mesh) 部份互連(Partial mesh) 輪輻型(Hub-and-Spoke)
NBMA拓樸優劣 Full-mesh需最多永久虛擬電路(PVC), 輪幅需 最少PVC
使用neighbor指令 只能用於full-mesh 各路由器維持在同一個IP子網路 RTA(config)#router ospf 1 RTA(config-router)#network 3.1.1.0 0.0.0.255 area 0 RTA(config-router)#neighbor 3.1.1.2 RTA(config-router)#neighbor 3.1.1.3 RTB(config)#router ospf 1 RTB(config-router)#network 3.1.1.0 RTB(config-router)#neighbor 3.1.1.1 RTB(config-router)#neighbor 3.1.1.3 RTC(config)#router ospf 1 RTC(config-router)#network 3.1.1.0 RTC(config-router)#neighbor 3.1.1.2 RTC(config-router)#neighbor 3.1.1.3
使用子介面 分成不同的point-to-point子網路 PVC設定請參考訊框中繼 優點:partial mesh可用 缺點:需較多IP位址 RTA(config)#interface s0 RTA(config-if)#no shutdown RTA(config-if)#interface s0.1 RTA(config-subif)#ip address 3.1.1.1 255.255.255.0 RTA(config-if)#interface s0.2 3.2.2.1 255.255.255.0 RTA(config-subif)# end
point-to-multipoint組態 只適用於輪幅狀拓樸 在輪軸路由器介面上設定 router(config-if)#ip ospf network point-to-multipoint router(config-if)#frame-relay map ip 位址 dlci broadcast
傳播預設路徑 在最上游的路由器設定 預設路徑 Router(config)#ip route 0.0.0.0 0.0.0.0 [介面|下一 步位址] 傳播預設路徑 Router(config)#router ospf 行程編號 Router(config-router)#default-information originate
show指令 show ip protocol show ip route show ip ospf inteface show ip ospf neighbor detail show ip ospf database