使用OSPF的意義
OSPF是一種鍊路狀态協定。一般鍊路狀态協定都需要向整個網絡告知鄰居資訊,使各節點隻需要維護網絡的“拓撲圖”,而不必交換各自連接配接目的站點的的距離,路由器根據拓撲生成各自的路由表。OSPF基于接口的通信量、通暢狀況、往返用時、可靠性等得出路由的成本,來達到平衡網絡負荷的要求。OSPF按照路由器儲存的網絡資訊,通過SPF最短路徑算法,得出最佳路由并保持連接配接,而不必定期地大量交換資訊。OSPF的出現克服了原本RIP存在的不足,它通過多點傳播方式完成對網絡拓撲的迅速彙聚,在快速連接配接、減輕系統負荷、穩定連結方面表現突出,有網絡資源占用少、收斂速度快、支援大規模網絡等優勢。
OSPF協定的運作原理
OSPF路由協定是一種典型的鍊路狀态的路由協定,一般用于同一個路由域内。在這裡,路由域是指一個自治系統,即AS,它是指一組通過統一的路由政策或路由協定互相交換路由資訊的網絡。在這個AS中,所有的OSPF路由器都維護一個相同的描述這個AS結構的資料庫,該資料庫中存放的是路由域中相應鍊路的狀态資訊,OSPF路由器正是通過這個資料庫計算出其OSPF路由表。
OSPF的三張表
1、鄰居表
OSPF用鄰居機制來發現和維持路由的存在,鄰居表存儲了雙向通信的鄰居關系OSPF路由器清單的資訊。
2、拓撲表
OSPF用LSA(link state Advertisement 鍊路狀态通告)來描述網絡拓撲資訊,然後OSPF路由器用拓撲資料庫來存儲網絡的這些LSA。
3、OSPF路由表
對鍊路狀态資料庫進行SPF(Dijkstra)計算,而得出的OSPF路由表。
一、建立鄰接關系-Hello包
1.Hello包用來發現OSPF鄰居并建立相鄰關系,通過多點傳播位址發送給所有SPF路由器。
2.通告兩台路由器建立相鄰關系所必需的一些參數。
3.在多路通路網絡中選舉指定路由器(DR)與備用指定路由器(BDR)
二、必要的時候進行DR的選舉
1.為了減小OSPF中的流量,OSPF會選舉一個指定路由器(DR)與一個備用指定路由器(BDR)
2.按照端口的優先級選舉DR與BDR,如果優先級相等則根據路由器的ID選舉DR與BDR,ID高的為DR 3.DR負責使用該變化資訊更新其他所有OSPF路由器。
4.BDR負責監控DR,當DR出現故障時,BDR會接替DR的工作。
三、發現路由
1.路由器與路由器之間首先利用Hello包的路由器ID資訊确認主從關系,然後主從路由器互相交換鍊路狀态資訊,交換完成後建立完全鄰接關系,同時鄰接路由器擁有自己獨立的、完整的鍊路狀态資料庫。
四、選擇合适的路由器
1.當每台路由器都擁有完整的獨立的鍊路狀态資料庫後,OSPF路由器會根據資料庫中的内容,運作SPF算法,計算出到每個目的地的網絡的最佳路徑,并添加到路由表中。
五、維護路由資訊
1.當某條鍊路出現故障時,會自動及時的通知其他OSPF路由器,避免資料的無法傳輸。
OSPF協定的配置
實驗拓撲圖
<a href="https://s2.51cto.com/oss/201711/06/4480b746b504a78addcc5c44bf8fdb49.png-wh_500x0-wm_3-wmp_4-s_3901619372.png" target="_blank"></a>
R1路由器IP位址與基本配置
1
2
3
4
5
6
7
8
9
10
11
12
13
<code>R1>enable \\進入特權模式</code>
<code>R1#configure terminal \\進入全局配置模式</code>
<code>R1(config)#interface fastEthernet 0/0 \\進入fastethernet 0/0接口配置模式</code>
<code>R1(config-if)#no shutdow \\開啟接口</code>
<code>R1(config-if)#ip address 192.168.1.1 255.255.255.0 配置IP位址</code>
<code>R1(config-if)#exit \\退出接口模式</code>
<code>R1(config)#interface serial 0/0/1</code>
<code>R1(config-if)#no shutdown</code>
<code>R1(config-if)#ip address 192.168.3.1 255.255.255.0</code>
<code>R1(config-if)#exit</code>
<code>R1(config)#interface serial 0/0/0</code>
<code>R1(config-if)#ip address 192.168.4.1 255.255.255.0</code>
R2路由器IP位址與基本配置
14
15
16
<code>Router>enable</code>
<code>Router#configure terminal</code>
<code>Router(config)#hostname R2</code>
<code>R2(config)#int</code>
<code>R2(config)#interface f</code>
<code>R2(config)#interface fastEthernet 0/0</code>
<code>R2(config-if)#no shutdown</code>
<code>R2(config-if)#ip add 192.168.2.1 255.255.255.0</code>
<code>R2(config-if)#exit</code>
<code>R2(config)#interface serial 0/0/0</code>
<code>R2(config-if)#ip add 192.168.3.2 255.255.255.0</code>
<code>R2(config)#interface serial 0/0/1</code>
<code>R2(config-if)#ip add 192.168.5.1 255.255.255.0</code>
R3路由器IP位址與基本配置
<code>Router(config)#hostname R3</code>
<code>R3(config)#interface serial 0/0/0</code>
<code>R3(config-if)#no shutdown</code>
<code>R3(config-if)#ip add 192.168.4.2 255.255.255.0</code>
<code>R3(config-if)#exit</code>
<code>R3(config)#interface serial 0/0/1</code>
<code>R3(config-if)#ip add 192.168.5.2 255.255.255.0</code>
<code>R3(config)#interface serial 0/1/0</code>
<code>R3(config-if)#ip add 192.168.6.1 255.255.255.0</code>
R4路由器IP位址與基本配置
<code>Router(config)#interface serial 0/0/0</code>
<code>Router(config-if)#no shutdown</code>
<code>Router(config-if)#ip add 192.168.6.2 255.255.255.0</code>
<code>Router(config-if)#exit</code>
<code>Router(config)#hostname R4</code>
<code>R4(config)#interface fastEthernet 0/0</code>
<code>R4(config-if)#no shutdown</code>
<code>R4(config-if)#ip add 11.10.0.1 255.255.255.0</code>
測試R1路由器與R2、R3路由器之間的連通性。當出現5個!(感歎号)時即代表正常連通。
<a href="https://s4.51cto.com/oss/201711/06/b0378fc5693fcd845e1ab3a66edacfe2.png-wh_500x0-wm_3-wmp_4-s_1252906579.png" target="_blank"></a>
測試R3路由器與R4路由器之間的連通性。
<a href="https://s4.51cto.com/oss/201711/06/11f754e3d5fb6d6c7bb6a0ffe0e736ea.png-wh_500x0-wm_3-wmp_4-s_525949219.png" target="_blank"></a>
測試用戶端、伺服器與其直連路由器的連通性
<a href="https://s2.51cto.com/oss/201711/06/a990bba11b5c324927c17e796a118e30.png-wh_500x0-wm_3-wmp_4-s_932123480.png" target="_blank"></a>
<a href="https://s1.51cto.com/oss/201711/06/60e8d9bf214b09b6c7256ab629c547cb.png-wh_500x0-wm_3-wmp_4-s_1912042195.png" target="_blank"></a>
<a href="https://s2.51cto.com/oss/201711/06/6177226c32111ff2f31ee4b312fd6bd8.png-wh_500x0-wm_3-wmp_4-s_3275062491.png" target="_blank"></a>
**************** 此實驗中沒有配置routeid ****************
route id 是這個路由器衆多接口ip位址的一個。選擇這個id作為這個路由器的代表。就像一個班的班長代表這個班級一樣。如何選擇這個ID,有一個規則。首先先看是否有回環接口,如果隻一個有回環接口,則直接選擇這個回環接口當ID,如果有多個回環接口則,選擇ip位址大的那個回環接口。如果沒有回環接口,則選擇普通接口的ip位址大的那一個作為ID。
OSPF配置:
路由器1 OSPF配置
<code>R1>enable</code>
<code>R1#configure terminal</code>
<code>R1(config)#router ospf 1 \\設定程序</code>
<code>R1(config-router)#network 192.168.1.0 0.0.0.255 area 0 \\宣告網絡與設定區域</code>
<code>R1(config-router)#network 192.168.3.0 0.0.0.255 area 0</code>
<code>R1(config-router)#network 192.168.4.0 0.0.0.255 area 0</code>
<code>R1#write \\儲存(注:指令前加do,意思為強制執行)</code>
<code>Building configuration...</code>
<code>[OK]</code>
路由器2 OSPF配置
<code>R2>enable</code>
<code>R2#configure terminal</code>
<code>R2(config)#router ospf 1</code>
<code>R2(config-router)#network 192.168.2.0 0.0.0.255 area 0</code>
<code>R2(config-router)#network 192.168.3.0 0.0.0.255 area 0</code>
<code>R2(config-router)#network 192.168.5.0 0.0.0.255 area 0</code>
<code>R2(config-router)#do write</code>
路由器3 OSPF配置
<code>R3>enable</code>
<code>R3#conf</code>
<code>R3#configure terminal</code>
<code>R3(config)#router ospf 1 </code>
<code>R3(config-router)#network 192.168.4.0 0.0.0.255 area 0 </code>
<code>R3(config-router)#network 192.168.5.0 0.0.0.255 area 0</code>
<code>R3(config-router)#network 192.168.6.0 0.0.0.255 area 0</code>
<code>R3(config-router)#do write </code>
路由器4 OSPF配置
<code>R4>enable</code>
<code>R4#configure terminal</code>
<code>R4(config)#router ospf 1</code>
<code>R4(config-router)#network 11.10.0.0 0.0.0.255 area 0</code>
<code>R4(config-router)#network 192.168.6.0 0.0.0.255 area 0</code>
<code>R4(config-router)#do write</code>
檢視R1、R2、R3、R4路由器的路由表
<a href="https://s5.51cto.com/oss/201711/06/c186e845689f95d5edefabd726ad1a73.png-wh_500x0-wm_3-wmp_4-s_147126140.png" target="_blank"></a>
<a href="https://s5.51cto.com/oss/201711/06/197d548b1ec865f037fdecf466ba6ad5.png-wh_500x0-wm_3-wmp_4-s_2466235782.png" target="_blank"></a>
<a href="https://s4.51cto.com/oss/201711/06/f756dcbb4093caeaa6142e9f4979d731.png-wh_500x0-wm_3-wmp_4-s_2801261414.png" target="_blank"></a>
<a href="https://s4.51cto.com/oss/201711/06/f1c3d0614f8a537e839e2a4f2b6859f7.png-wh_500x0-wm_3-wmp_4-s_3597999766.png" target="_blank"></a>
檢視R1、R2、R3、R4路由器的配置資訊
<a href="https://s4.51cto.com/oss/201711/06/4adf5184e95f9863948e8927119463b8.png-wh_500x0-wm_3-wmp_4-s_1580564943.png" target="_blank"></a>
<a href="https://s4.51cto.com/oss/201711/06/caeea874ea6c0858b8456a2fc5315260.png-wh_500x0-wm_3-wmp_4-s_968394975.png" target="_blank"></a>
<a href="https://s3.51cto.com/oss/201711/06/946715e721a6a55c3e5d6da69876440e.png-wh_500x0-wm_3-wmp_4-s_3607571317.png" target="_blank"></a>
<a href="https://s3.51cto.com/oss/201711/06/c14ec0f035cd106d2d762fef9c1b3d77.png-wh_500x0-wm_3-wmp_4-s_2752810779.png" target="_blank"></a>
此試驗僅為CISCO中最為基礎的OSPF協定實驗。如有錯誤,可以指出,共同學習!