OSPF動態路由協議算法
一 OSPF路由協議介紹數據庫
·鏈路狀態路由協議的概念:OSPF路由協議屬於距離矢量路由協議類型;經過與鄰居路由器創建鄰接關係,相互傳遞路由狀態信息,來了解整個網絡的拓撲結構,從而能分析出最優路徑,更新本身的路由表網絡
鄰居路由器:直連路由器數據結構
鏈路狀態數據庫:也叫拓撲數據庫,包含全部路由器、路由器的鏈路以及這些鏈路的狀態,和全部網絡以及到達這些網絡的路徑ide
鄰接關係:當兩臺運行OSPF協議的鄰居路由器的鏈路狀態數據庫達到一致時,它們就是徹底鄰接的oop
·OSPF路由協議概述:開放式最短路徑優先協議,是基於開放標準的鏈路狀態路由選擇協議,它完成各路由選擇協議算法的兩大主要功能:路徑選擇和路徑交換學習
1 OSPF是內部網關路由協議:OSPF運行在AS中(擁有相同路由協議的一些路由器的集合叫作AS,自治系統);也包括RIP協議;與之對應的也有外部網關路由協議,如圖測試
2 OSPF區域:OSPF將自治系統分割成多個小的區域,OSPF路由器只在區域內部學習完整的鏈路狀態信息,而沒必要了解整個自治系統內部全部的鏈路狀態spa
區域ID:區域ID能夠表示成一個十進制的數字、也能夠表示成一個IP3d
骨幹區域(區域0):自治系統內部會指定一個骨幹區域來鏈接其餘全部區域;用來鏈接骨幹區域和其餘區域的路由器叫作區域邊界路由器
3 Router ID:標記OSPF中的路由器的標識;Router ID選取規則:
首先,選取路由器loopback接口上數值最高的IP地址
若是沒有loopback接口,在物理端口中選取IP地址最高的
也可使用router-id命令指定Router ID
4 度量值:OSPF的用來度量路徑優劣的度量值成爲Cost(開銷);COST= 108/BW;最短路徑是基於接口指定的代價(cost)計算的
二 OSPF路由協議工做過程和原理
·OSPF工做過程:運行OSPF的路由器與鄰居路由器創建鏈接關係,再鄰居之間互相同步鏈路狀態數據庫;使用最短路徑算法,從鏈路狀態信息計算獲得一個以本身爲樹根的最短路徑樹,到最後每一臺路由器都將從最短路徑中構建出本身的路由表;因而根據路由錶轉發數據
鄰居列表:列出每臺路由器已經創建鄰接關係的所有鄰居路由器
鏈路狀態數據庫:列出網絡中其餘路由器的信息,顯示了全網絡的拓撲
路由表:列出經過算法計算出的到達每一個相連網絡的最佳路徑
·DR和DBR:在複雜的拓撲中,每臺路由器都要與其餘全部的鄰居路由器互相傳遞鏈路狀態信息,這樣大大的浪費了網絡資源,所以能夠在這個網段上選舉一個指定的路由器DR,由DR同網絡中的路由器創建連接關係,並負責將網絡上的變化告訴它們;爲了實現冗餘,當DR失效時,須要有一個指定的路由器來接替它,這個備份路由器就是DBR;網絡上全部的路由器將和DR、DBR同時造成鄰接關係,DR和DBR之間也造成鄰接關係
1 DR和DBR的選舉(針對接口而言)
·自動選舉DR和BDR
網段(同一個網段)上Router ID最大的路由器將被選舉爲DR,第二大的將被選舉爲BDR
·手工選擇DR和BDR
優先級範圍是0~255,數值越大,優先級越高,默認爲1
若是優先級相同,則須要比較Router ID
若是路由器的優先級被設置爲0,它將不參與DR和DBR的選舉
2 DR和DBR的選舉過程
當一臺OSPF路由器啓動時,它先去檢查有效的DR和DBR;若是DR和DBR已存在,則無論它的優先級多高,也只能接受;若是不存在,則從新自動選舉;若是DR失效,則BDR提高爲DR,而後再選舉一個BDR
3 OSPF的組播地址
當選舉結束後,其餘路由器只與DR和DBR會造成鄰接關係;作地址224.0.0.5表明全部參與OSPF的路由器,而組播地址224.0.0.6只有DR和DBR去監聽這個地址
·OSPF工做原理
OSPF數據包
承載在IP數據包內,使用協議號89
OSPF的包類型
·OSPF鄰接關係的創建(路由表的造成)
1 OSPF啓動的第一個階段是使用Hello報文創建雙向通訊的過程
2 OSPF啓動的第二個階段是創建徹底鄰接關係
3 路由器中的鏈路狀態數據庫已經一致,路由器能夠根據這個一致的鏈路狀態數據庫經過最短路徑優先算法計算出最佳路徑並造成路由表
三 OSPF的應用
·OSPF的網絡類型:OSPF將網絡劃分爲四種類型
點到點網絡(Point-to-Point)
廣播多路訪問網絡(Broadcast MultiAccess,BMA)
非廣播多路訪問網絡(None Broadcast MultiAccess,NBMA)
點到多點網絡(Point-to-Multipoint)
·OSPF的應用環境:從如下幾方面考慮OSPF的使用
網絡規模
網絡拓撲
其餘特殊要求
路由器自身要求
·OSPF的特色
可適應大規模網絡
路由變化收斂速度快
無路由環
支持變長子網掩碼VLSM
支持區域劃分
支持以組播地址發送協議報
·OSPF與RIP的比較
四 OSPF單域的配置
啓動OSPF路由進程
Router(config)# router ospf process-id
process-id:進程號,範圍1~65535之間
例如Router(config)# router ospf 1
指定OSPF協議運行的接口和所在的區域:
Router(config-router)# network address inverse-mask area area-id
inverse-mask:反碼
area-id:區域號,能夠是0、一、2......
例如Router(config-router)# network 192.168.1.0 255.255.255.0 area 0
修改接口的優先級
Router(config-if)#ip ospf priority priority
Priority:默認爲1,範文0~255,爲0時表示不參與DR與DBR的競爭
如Router(config-if)#ip ospf priority 0
修改接口的Cost值
Router(config-if)#ip ospf cost cost
Cost:開銷大小,範圍1~65535
如Router(config-if)#ip ospf cost 1000
清除OSPF配置
R1(config)#no ip ospf
查看路由表
Router#show ip route
查看鄰居列表及其狀態
Router#show ip ospf neighbor
查看OSPF的配置
Router#show ip ospf
查看OSPF接口的數據結構
Router#show ip ospf interface type number
如R1#show ip ospf int f0/0
五 實驗
實驗目的:配置OSPF,實現全網互通
實驗環境:如圖
實驗要求:
1 配置默認OSPF,實現全網互通,並說明哪個是DR、DBR
2要求經過指定Router ID,將路由器R2指定爲DR,將路由器R1指定爲BDR
3要求經過設置接口優先級將路由器R1指定爲DR,將路由器R2指定爲BDR
實驗步驟:
要求1
配置R1
基本配置
R1>en
R1#conf t
R1(config)#int f1/0
R1(config-if)#ip add 192.168.1.1 255.255.255.0
R1(config-if)#no shu
R1(config-if)#int f0/0
R1(config-if)#ip add 10.0.0.1 255.0.0.0
R1(config-if)#no shu
R1(config-if)#exit
OSPF配置
R1(config)#router ospf 1
R1(config-router)#network 192.168.1.0 0.0.0.255 area 0
R1(config-router)#network 10.0.0.0 0.255.255.255 area 0
配置R2
基本配置
R2>en
R2#conf t
R2(config)#int f0/0
R2(config-if)#ip add 10.0.0.2 255.0.0.0
R2(config-if)#no shu
R2(config)#int f1/0
R2(config-if)#ip add 20.0.0.1 255.255.255.0
R2(config-if)#no shu
R2(config-if)#exit
OSPF配置
R2(config)#router ospf 1
R2(config-router)#network 10.0.0.0 0.255.255.255 area 0
R2(config-router)#network 20.0.1.0 0.0.0.255 area 0
配置R3
基本配置
R3>en
R3#conf t
R3(config)#int f1/0
R3(config-if)#ip add 20.0.1.2 255.255.255.0
R3(config-if)#no shu
R3(config-if)#int f0/0
R3(config-if)#ip add 192.168.2.1 255.255.255.0
R3(config-if)#no shu
R3(config-if)#exit
OSPF配置
R3(config)#router ospf 1
R3(config-router)#network 20.0.1.0 0.255.255.255 area 0
R3(config-router)#network 192.168.2.0 0.0.0.255 area 0
測試:使用C1 pingC2成功;使用show ip ospf int f0/0查看並分析DR和BDR角色
分析:默認狀況下優先級都相同,因此只考慮IP地址
·首先在每一個路由器上選舉IP地址最大的爲Router ID,R1爲192.168.1.一、R2爲20.0.1.一、R3爲192.168.2.1;使用show ip ospf neighbor驗證。
·而後在每一個網段上做比較,routerID大的爲DR,次之的爲BDR;可是當DR和BDR產生後,後接入的路由器則不參與競爭
要求2:配置要求2時,環境最好是初始狀態,或者清除以前的自動選舉配置
關閉與其餘路由器相連的接口,指定RouterID
配置R1
R1(config-if)#int f0/0
R1(config-if)#shu
R1(config)#router ospf 1
R1(config-router)#router-id 10.0.0.1
配置R2
R2(config-if)#int f0/0
R2(config-if)#shu
R2(config)#router ospf 1
R2(config-router)#router-id 20.0.1.1
配置R3
R3(config-if)#int f1/0
R3(config-if)#shu
R3(config)#router ospf 1
R3(config-router)#router-id 192.168.2.1
先開啓R1和R2的接口,(30秒以後)再開啓R3接口,並驗證DR和BDR
要求3
更改R1的優先級爲2,同時關閉R1和R2的接口在開啓接口
配置R1
R1(config)#int f0/0
R1(config-if)#ip ospf priority 2
R1(config-if)#shu
配置R2
R2(config)#int f0/0
R2(config-if)#shu
開啓後驗證查看DR和BDR,已經改變