路由器OSPF的基本概念與工作過程

OSPF是基於開放標準的鏈路狀態路由選擇協議,它完成各路由選擇協議算法的兩大主要功能:路徑選擇和路徑交換。

在共同管理域下的一組運行相同路由選擇協議的路由器的集合爲一個自治系統(autonomous system,AS)。在網絡中,一個AS是一個有權決定本系統使用哪種路由協議的單位,它可以是一個企業,一座城市,隨着網絡的發展,對AS的定義已經不是十分精準了,網絡的發展使網絡之間經常出現網絡合並情況,導致同一個AS中使用的路由協議越來越多,所以AS的定義應該是在共同管理下的互聯網絡。

內部網關路由協議(IGP):用於在單一AS內決策路由,內部網關路由協議包括RIP、OSPF等。

與內部網關路由協議相對應的是外部網關路由協議(EGP),外部網關路由協議用於在多個AS之間執行路由。

IGP是用來解決內部通信的,而EGP是用來解決AS間的通信的。

運行RIP路由協議的路由器只需要保存一張路由表,而使用OSPF路由協議的路由器需要保存以下三張表:①鄰居列表;②鏈路狀態數據庫;③路由表。

OSPF路由協議與RIP相比,前者適合更大型的網絡環境,因爲OSPF是一種鏈路狀態型的路由協議,不會產生環路問題,因此不需要使用最大跳數等限制來防止路由環路的產生。具體區別如下圖所示:
路由器OSPF的基本概念與工作過程

OSPF將AS分割成多個小的區域,OSPF的路由器只在區域內部學習完整的鏈路狀態信息,而不必瞭解整個AS內部所有的鏈路狀態。

OSPF協議中有一個幾個很重要的概念,如“Router ID”、“DR”、“BDR”,我們先來了解一下Router ID:

因爲運行OSPF的路由器要了解每條鏈路是連接在哪個路由器上的,因此,就需要有一個唯一的標識來標記OSPF網絡中的路由器,這個標識就是Router ID,Cisco路由器是這樣來得到它們的Router ID的。

首先,路由器會選取它所有loopback接口上數值最高的IP地址。若沒配置loopback接口的IP地址,那麼路由器就在所有活動物理端口中選取一個數值最高的IP地址作爲路由器的Router ID。用作Router ID的路由器接口不一定非要運行OSPF協議。

一般我們會在配置OSPF時,使用 “router-id“ 來指定路由器的Router ID,也可以把想要配置的Router ID配置爲loopback地址,兩種辦法二選一即可,但一定要注意不可從物理端口中選舉Router ID。因爲該端口一旦down掉,便會影響網絡中路由器之間的通信。

接下來便是“DR”和“BDR”:

運行OSPF的路由器通過與鄰居路由器建立鄰接關係,互相傳遞鏈路狀態信息。如果每兩個路由器之間都要建立鄰接關係,那麼就會構成n(n-1)/2個鄰接關係,這時就有些混亂了,而且浪費了很多不必要的網絡資源。

爲了可以避免這些問題的發生,可以在該網段上選舉一個指定路由器(Designated Router,DR )。由DR和網絡中的其他路由器建立鄰接關係,並負責將網段上的變化告知它們。

爲了實現冗餘,當DR失效時,需要有一個新的DR來接替DR的工作,這便是BDR(Backup Designated Router,BDR)。網絡上所有的路由器將和DR和BDR同時形成鄰接關係。DR和BDR之間也將形成鄰接關係。

DR和BDR即可以自動選舉,也可以手工選舉。

自動選舉:網段上router ID最大的路由器將被選舉爲DR,第二大的將被選舉爲BDR,這樣的選舉可能不是最佳的,如果網段中有Cisco 7200 和3800系列路由器,那麼3800路由器可能會由於router ID較而被選爲DR,所以若要採用自動選舉,則必須要注意Router ID的配置。

手工選舉DR和BDR:需要設置路由器的優先級,每臺路由器的接口都有一個路由器優先級,優先級的大小範圍是0~255,數值越大,優先級越高,Cisco路由器默認的優先級是1,接口優先級可以在接口模式中通過“ip OSPF priority”命令來更改,若路由器的優先級被設置爲0,它將不參與DR和BDR。

DR和BDR的選舉過程:
當一臺OSPF路由器啓動並發現它的鄰居路由器時,它將會去檢查有效的DR和BDR路由器,如果DR和BDR存在,這臺路由器將會接受已經存在的DR和BDR路由器,如果不存在,將執行一個選舉過程,選出具有最高優先級的路由器作爲BDR路由器,如果多個路由器的優先級一樣,那麼Router ID最大的路由器將被選中。如果沒有有效的DR路由器存在,那麼BDR路由器將被提升爲DR路由器,然後執行一個選舉過程選舉BDR路由器。

路由器的優先級可以影響一個選舉過程,但是它不能強制更換已經存在的DR或BDR路由器,因此,在一個廣播多路訪問網絡上,最先初始化啓動的兩臺具有選舉資格的路由器將成爲DR和BDR路由器,若想讓路由器根據自己配置的Router ID來選舉DR和BDR,那麼在所有路由器接入網絡後,可以在特權模式下使用“clear ip ospf pro”來清除OSPF相關信息,讓網絡中的路由器進行重新選舉,如果實際情況允許,也可重啓網絡中的路由器,但路由器都關機後,前兩個運行起來的路由器,必須是自己想要作爲DR和BDR的路由器。

OSPF的組播地址有兩個224.0.0.5和224.0.0.6,用來發送鏈路更新消息,鏈路更新消息會先發送給DR和BDR偵聽的地址224.0.0.6,但BDR只偵聽不相應。然後DR路由器使用組播地址224.0.0.5泛洪更新報文到其他所有路由器。

路由器OSPF的基本概念與工作過程
OSPF鄰接關係的建立的過程有兩個階段,共經歷七種狀態:
路由器OSPF的基本概念與工作過程

路由器OSPF的基本概念與工作過程

至此完全鄰接關係建立就完成了。OSPF協議的應用環境應考慮一下幾點:
路由器OSPF的基本概念與工作過程

OSPF單域的配置基本命令如下:

Router(config)#router ospf 1 #配置OSPF的進程號。進程號是本地路由器的進程號,用於標識一臺路由器上的多個OSPF進程,其值可以在1~65535選取。

Router(config-router)#router-id 1.1.1.1 #指定Router ID,若已經配置loopback接口地址,則這條命令可以省略,將1.1.1.1配置爲loopback地址時,掩碼則最好爲255.255.255.255

Router(config-router)#network 192.168.1.0 0.0.0.255 area 0 #配置運行OSPF協議的接口,也就是將與本路由器直連的網段聲明,以便讓別的路由器學習到該路由器上的直連網段。 “area”是指定區域,在單域配置中區域必須爲0。

以上述同樣格式的network命令聲明該路由器上所有的直連網段,配置便完成了。不過需要注意的是,在聲明網段時,網絡地址後面跟的是反掩碼

查看鄰居路由器的命令:
Router#show ip ospf neighbor

查看F0/0接口的數據結構:
Router#show ip ospf interface f0/0 #可以查看到該網段的DR和BDR,屬於哪個區域等詳細信息。

修改接口F0/0的優先級爲2
Router(config)#in f0/0
Router(config-if)#ip ospf priority 2 #注意優先級爲0的話將不參與DR和BDR的選舉
Router(config-if)#ip ospf cost 2 #修改接口的cost值(cost值爲路徑選擇的一種方式,值的取值範圍爲1~65535)
當網絡環境中有多家廠商的產品,則應注意cost值,有些廠家默認的是1,如果網絡中所有的路由器沒有使用同一種計算cost的方式來指定OSPF的開銷,那麼OSPF協議將不能正確的進行路由選擇。

查看鄰居列表及其狀態:

Router#show ip ospf neighbor

查看OSPF的配置

Router#show ip ospf #查看OSPF的配置

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