今天咱們簡單介紹一下OSPF路由協議。比咱們以前介紹的RIP(動態路由協議)功能更強大。
OSPF(開放式最短路徑優先協議)是居於開放標準的鏈路狀態路由選擇協議,它完成各路由選擇協議算法的兩大主要功能:路徑選擇和路徑交換。
OSPF是內部網關路由協議,在共同管理域下的一組運行相同路由選擇協議的路由器的集合爲一個自治系統(AS)
自治系統(AS)狹義:運行相同路由協議的一組路由協議;廣義:有權自主決定使用哪一種路由協議。好比:它能夠是一個企業、一座城市或一個電信運營商。
內部網關路由協議(IGP)用於在單一AS內決策路由,內部網關路由協議包括RIP、OSPF等。
外部網關路由協議用於在多個AS之間執行路由。例如BGP就是外部網關路由協議。
IGP是用來解決AS內部通訊的,而EGP是用來解決AS間通訊的。
OSPF是鏈路狀態路由協議
在之間咱們介紹的距離矢量路由協議(RIP),路由器之間互相傳遞路由表來學習路由信息,距離矢量協議的路由器只知道某個網段能夠經過哪一個下一跳到達和到達這個這個網絡有多少跳等這樣的信息,並不瞭解整個網絡拓補結構;
而咱們今天介紹的鏈路狀態路由協議(OSPF)經過與鄰居創建鄰接關係,互相傳遞鏈路狀態信息,來了解整個網絡的拓補信息,在鏈路狀態信息中,包含哪些鏈路,這些鏈路與那個路由器相連,鏈接的成本是多少等信息。
咱們經過簡單的拓補圖來看一下
經過鄰居之間交換信息,就是這樣
在一個區域內的全部路由器都保存着徹底相同的鏈路狀態數據庫
運行RIP的路由協議的路由器只須要保存一張路由表,而使用OSPF路由協議的路由器須要保存如下三種表:
1.鄰居列表:列出每臺路由器已經創建鄰接關係的所有鄰居路由器;
2.鏈路狀態數據庫:列出網絡中其餘路由器的信息,由此顯示了全網的網絡拓補;
3.路由表:列出了經過Dijkstra算法計算出的到達每一個相連網絡的最佳路徑。
這三張表之間的關係是:運行OSPF的路由器視圖域鄰居路由器創建鄰接關係,在鄰居之間互相同步鏈路狀態數據庫,而後使用最短路徑算法從鏈路狀態信息計算得出一個以本身爲樹根的「最短路徑樹」
OSPF路由協議與RIP路由協議相比,OSPF更適合更大型的網絡環境。那麼它是如何實現的?
1.OSPF是一種鏈路狀態型的路由協議,不會產生環路問題,所以不須要使用直達跳數等限制來防止環路的產生;
2.OSPF將AS分割成多個小的區域,OSPF的路由器只在區域內部學習完整的鏈路狀態信息,沒有必要了解整個AS內部全部的鏈路狀態。
劃分區域的目的:1.便於擴展;2.快速收斂。
區域是經過一個32位的區域ID來標識的,區域ID能夠是一個十進制的數字,也能夠表示成一個點分十進制的數字。(骨幹區域的ID必須是0.)
由於運行OSPF的路由器要了解每條鏈路是鏈接子啊那個路由器上的,所以,就須要一個惟一的標識來標記OSPF網絡中的路由器,每一個標識成爲Router ID。
Router ID選取規則:
1.選取路由器loopback接口上數值最高的IP地址;
2.若是沒有loopback接口,在物理端口中選取IP地址最高的;
3.也可以使用「router-id」指定Router ID(手工指定的router ID優先)。
在實際工做中配置OSPF時都須要手工指定路由器的Router ID,這已經成爲了一種標準配置。
選舉過程當中:路由器都具備非搶佔性;
運行OSPF的路由器與鄰居路由器創建鄰接關係,互相傳遞鏈路狀態信息,
如圖這樣就顯得狀況比較複雜,並且會浪費許多沒必要要的網絡資源。
爲了不這些問題的發生,能夠在網段上選舉一個指定路由器(DR)由DR通網絡中的其餘路由器創建鄰接關係,並負責將網段上的變化狀況及時告知其餘路由器
爲了實現冗餘,當DR忽然失效時,須要有一個新的DR來接替它,這個路由器稱爲備份指定路由器(BDR)網絡上全部的路由器將和DR、BDR同時造成鄰接關係,DR和BDR之間也將造成鄰接關係。(若是DR失效了,BDR將稱爲新的DR,不考慮別的任何狀況)
DR和BDR的選舉:
自動選舉:網段上Router ID最大的路由器將被選舉爲DR,第二大將被選舉爲BDR。
手工選舉:
1.根據優先級進行選舉,優先級越大越有可能稱爲DR(默認的優先級是1);
2.若是優先級相同,再比較Router ID;
3.若是路由器的優先級設置爲0,則表示它不參與DR和BDR的選舉。
選舉DR和BDR同樣都具備非搶佔性,就表示若是某個AS中已經有DR和BDR的話,優先級再大,Router ID再大,也不可能替換已經存在的DR和BDR路由器。
組播地址224.0.0.5表明全部參與OSPF的路由器,而組播地址224.0.0.6表示只有DR和BDR路由器偵聽,但BDR只偵聽不響應。在廣播多路訪問網絡上,鏈路更新信息先發送到224.0.0.6,再由DR路由器使用組播地址224.0.0.5泛洪更新報文到區域中的其餘路由器。
OSPF用來度量路徑優劣的度量值成爲開銷(Cost),是指從該接口發送出去的數據包的出站接口的開銷。
OSPF信息不使用TCP和UDP,它承載在IP數據包內,使用協議號89(十進制)
OSPF路由協議依靠五種不一樣類型的包來標識他們的鄰居及更新鏈路狀態信息。
兩臺路由器運行OSPF路由協議,當它們同時啓動時將開始創建鄰接關係的過程,須要經歷7種狀態。
OSPF啓動的第一個階段是使用Hello報文創建雙向通訊的過程(創建鄰居關係)
DR和BDR就是在雙向(2-Way)狀態下產生的。
OSPF啓動的第二個階段是創建徹底鄰接關係
根據路由器所鏈接的物理網絡不一樣,OSPF將網絡劃分爲如下四種類型:
1.點到點網絡(s-s串口,鄰居確定是鄰接關係,無需選舉DR和BDR,在這種網絡中OSPF報文的目的地址老是224.0.0.5,通常採用的協議PPP協議、HDLC協議等)
2.廣播多路訪問網絡(以太網,選舉DR和BDR,鄰居不必定是鄰接關係,這種網絡也是採用組播的方式發送)
3.非廣播多路訪問網絡(幀中繼,選舉DR和BDR,這種網絡全部的OSPF報文都是單播)
4.點到多點網絡(多個點到點的鏈路的鏈路集,不用選舉DR和BDR,OSPF報文是組播)
使用OSPF的緣由:1.網絡的規模較大;2.網絡的拓補結構爲網狀;3.其餘特殊需求(如快速收斂)4.路由器自身的要求(若是路由器性能較低,將不建議使用OSPF路由協議)
OSPF的特色:1.可適應大規模的網絡;2.路由變化收斂速度快(觸發更新)3.無路由環;4.支持可變長的子網掩碼;5.支持區域劃分;6.支持以組播地址發送協議報文。
OSPF和RIP的區別
那咱們接下來經過一個簡單的拓補圖來了解一下如何配置OSPF
接下來咱們簡單的進行配置一下(建議每臺路由器都配置loopback接口,除非路由器壞,要不loopback接口不會出現問題,loopback接口就是虛擬出來的一個接口,並不存在)算法
R1(config)#int f0/0 R1(config-if)#ip add 192.168.1.1 255.255.255.0 R1(config-if)#no sh R1(config-if)#int f0/1 R1(config-if)#ip add 10.1.1.1 255.255.255.252 R1(config-if)#no sh R1(config-if)#int f1/0 R1(config-if)#ip add 20.2.2.1 255.255.255.252 R1(config-if)#no sh R1(config-if)#int loopback 0 R1(config-if)#ip add 1.1.1.1 255.255.255.255 #配置loopback接口 R1(config)#int f0/1 R1(config-if)#ip ospf priority 100 #針對接口配置優先級,優先級爲100 R1(config)#router ospf 1 #啓動OSPF路由協議,進程號爲1(不準爲0) R1(config-router)#router-id 1.1.1.1 #手工指定Router -ID爲1.1.1.1 (建議手動指定loopback的地址) R1(config-router)#net 1.1.1.1 0.0.0.0 area 0 #宣告網段(注意反掩碼)區域是0 R1(config-router)#net 192.168.1.0 0.0.0.255 area 0 R1(config-router)#net 10.1.1.0 0.0.0.3 area 0 #(/30的反掩碼就是0.0.0.3) R1(config-router)#net 20.2.2.0 0.0.0.3 area 0
其餘的路由跟這個形式同樣
配置完後咱們查看一下R1
別的路由器查看的結果跟這個差很少,這樣網絡確定就通了
實驗完成!願咱們在學習的道路上共同進步,共同努力!加油!數據庫