OSPF (SPF)
屬於鏈路狀態路由選擇協議,並且是公有標準,理論上是沒有網絡規模限制的;支持網絡的層次化設計,可以將網絡分爲2層。
層,是通過“區域”的概念來進行區分的。
劃分區域以後,可以帶來以下好處:
1、節省區域中的每一個設備的系統資源
(大區域被劃分以後,小區域中的數據庫內容就會變少)
(同一個區域中的所有的路由器,數據庫是完全相同)
2、增強 OSPF 網絡的穩定性
(一個不穩定鏈路造成的不良影響,僅在同一個區域)
(中傳播,不會影響到其他區域)
-骨幹區域
-非骨幹區域
所有的非骨幹必須與骨幹區域直接相連,才能正常通訊。
路由器因爲區域的存在,也分爲不同的類型:
-骨幹路由器
所有鏈路都屬於骨幹區域的路由器;
-非骨幹路由器
所有鏈路都屬於非骨幹區域的路由器;
-區域邊界路由器(*) 【ABR:area border router 】
必須同時連接着骨幹區域和非骨幹區域;
-自治系統邊界路由器【ASBR:】
具有引入外部路由能力的路由器,叫做OSPF的 ASBR。
-工作原理
1、建立鄰居表
僅僅使用 hello 報文。
OSPF路由,僅僅在 OSPF 鄰居路由器之間進行交換;
鄰居狀態:
down
init
2way
Exstart(exchange start)
exchange
loading
full
2、同步數據庫
LSA-link state advertisement , 鏈路狀態通告;
3、計算路由表(通過SPF算法,對LSA進行計算,從而獲得最終的路由條目)
-OSPF報文:
hello:發現、維護鄰居關係;
dbd:database description ,數據庫描述報文;
lsu:link state update ,鏈路狀態更新報文;
lsr:link state request ,鏈路狀態請求報文;
lsack:link state ack ,鏈路狀態確認報文;
-OSPF相關命令:
0、建立測試端口:
[R1]interface loopback 0
[R1-loopback0]ip address 10.10.1.1 255.255.255.0
[R2]interface loopback 0
[R2-loopback0]ip address 10.10.2.2 255.255.255.0
1、配置OSPF
[R1]ospf [process-id] // 不寫的話,默認是1;
[R1-ospf-1] area 0 // 進入區域0;
[R1-ospf-1-area-0.0.0.0] network 192.168.12.1 0.0.0.0
//精確宣告 192.168.12.1所在的鏈路
gi0/0/0的IP地址爲192.168.12.1;
那麼 gi0/0/0,則啓用 OSPF 1 :
#可以發送 ospf 1 的包;
#可以接收 ospf 1 的包;
#可以將該端口的IP地址中的
網絡部分,放入 OSPF 1 的包;
中,傳輸出去,給鄰接路由器。
2、驗證
display ospf [1] peer brief //查看OSPF鄰居表的簡要信息;
display ospf [1] peer //查看OSPF鄰居表的詳細信息;
display ospf [1] brief //查看本地設備上的 OSPF 1 的相關信息;
display ip routing-table //查看路由表中的OSPF路由
(確定路由的類型和屬性)
OSPF鄰居建立影響因素:
1、確保最小範圍內鏈路是互相 Ping通 的;(交換)
R1:Ping R2 ;
R2:Ping R1 ;
2、確保設備端口可以發送報文;
#network要宣告正確的網絡範圍;
#確保接收OSPF報文的端口不能是“被動端口- silent-interface”
(華爲設備上的 OSPF 的 silent-interface , 既不能發,也不能收包)
ospf 1
silent-interface gi0/0/0
3、確保設備端口可以接收報文;
#network要宣告正確的網絡範圍;
#確保 ACL 是允許 OSPF 流量的;
#確保接收OSPF報文的端口不能是“被動端口- silent-interface”
(華爲設備上的 OSPF 的 silent-interface , 既不能發,也不能收包)
R1:
acl name Deny-OSPF advance
rule 5 deny ospf source 192.168.12.2 0.0.0.0 destination 224.0.0.5 0.0.0.0
interface gi0/0/0
traffic-filter inbound acl name Deny-OSPF
4、確保 OSPF Hello 包中的關鍵參數一致;【比較hello中的參數】
直接建立鄰居關係的路由器,RID一定不能相同;
[R1]ospf 1 router-id x.x.x.x // 指定 OSPF 1 使用的 RID
<R1> reset ospf 1 process // 重啓 OSPF 1,才能生效;
#區域ID必須相同;
[R1]ospf 1
[R1-OSPF-1]area 0
[R1-OSPF-1-area-0.0.0.0]undo network 192.168.12.1 0.0.0.0
[R1-OSPF-1]undo area 0
[R1-OSPF-1]area 1
[R1-OSPF-1-area-1]network 192.168.12.1 0.0.0.0
#認證必須成功;
#子網掩碼必須得相同(特殊情況下)
#hello 時間,必須相同;
[R1]interface gi0/0/0
[R1-gi0/0/0]ospf timer hello 20 // 更改hello時,dead跟隨變化之間倍數關係是 4 倍;
#dead 時間,也必須相同;
[R1]interface gi0/0/0
[R1-gi0/0/0]ospf timer dead 41 //更改dead時,hello不變;
#特殊標記位,必須完全相同;
#DR優先級,不能全爲0;(特殊情況下)
[R1]interface gi0/0/0
[R1-gi0/0/0]ospf dr-priority 0
#3層MTU,必須完全相同;
驗證命令:
display ospf peer brief //查看 OSPF 的鄰居表
display ospf interface gi0/0/0 //查看OSPF的接口;
路由協議 - 路由宣告方式
1、network : 凡是以該方式進入協議的,我們稱之爲內部路由
在 LS 路由協議中,內部路由,有細分爲:區域內和區域間;
2、import-route : 凡是以方式進入協議的,我們稱之爲外部路由
(redistribute) 在 LS 協議中,外部路由分爲 type 1 和 type 2 ,默認是2
OSPF 普通區域
LSA - link state advertisment
5類LSA
-表示的是“外部路由”;
-傳輸範圍是沒有區域限制的,可以傳輸到OSPF的整個網絡;
OSPF 特殊區域
-指的是那些不允許 5 類 LSA 存在的區域;
-分類
# stub 區域 : 末節區域
該區域中是不允許存在4、5類LSA的,所以該區域的所有路由器
都沒有外部路由,那麼,爲了與外部路由進行數據互通,
所以,stub 區域的 ABR ,向 stub 自動產生了一個默認路由。
並且屬於 OSPF 的 inter-area 。
-配置命令:
#需要在該區域的每一個路由器配置;
#配置如下:
ospf 1
area 34
stub
# totally stub 區域 : 完全末節區域
該區域中不允許存在3、4、5類LSA(僅保留一個特殊的3類LSA,表示默認路由)
可以減小 stub 區域中的數據庫的大小;
同時,還可以減少其他區域的不穩定,對該區域造成的不良影響。
#需要在該區域的邊界路由器配置;
#配置如下:
ospf 1
area 34
stub no-summary
# nssa 區域:not so stub area ,
允許接受以類型7的LSA發送的外部路由信息,並且ABR要負責把類型7的LSA轉換成類型5的LSA。
ABR不會自動向NSSA區域內發送一條指向自己的默認路由,
#需要在該區域的每一個路由器配置;
#配置如下:
ospf 1
area 34
nssa
# totally nssa 區域: 完全 NSSA 區域
過濾3,4,5類lsa,ABR會產生缺省的3類lsa,該區域能引入外部路由
7類LSA在這裏還是7類LSA,出本area後就變成5類而傳播了
#需要在該區域的邊界路由器配置;
#配置如下:
ospf 1
area 34
stub no-summary
LSA的類型:
1類LSA - router lsa ,
任何一個 OSPF 路由器,都會在任何一個區域中產生一個1類LSA。
相當於 路由器在 特定區域中的 自我介紹。
基於 1 類 LSA 計算出來的路由,我們稱之爲 intra-area 路由。
2類LSA -
3類LSA - summary-network
只有ABR纔會產生;作用是在不同區域之間實現路由的傳遞;
基於 3 類 LSA 計算出來的路由,我們稱之爲 inter-area 路由。
3類LSA的產生:
ABR 會將非骨幹區域中的路由,變成3類LSA的形式,發送到骨幹區域
骨幹區域中的 ABR會將在區域0中收到的3類LSA,繼續下發給其他的
非骨幹區域;
ARB還可以將區域0中的路由,變成3類LSA的形式,發送非骨幹區域
3類LSA在傳輸過程中,每經過一個 ABR,“通告路由器”都會變化
一次。
4類LSA - 該LSA僅僅是爲了配合5類LSA計算外部路由而存在的;
是與ASBR在同一個區域中的 ABR 產生的;
傳輸過程,與3類LSA類似,每經過一個 ABR,“通告路由器”都會變化一次。
5類LSA - as external lsa
只有 ASBR 可以產生,作用是表示外部路由,可以傳輸到 OSPF 網絡
的任何地方。
並且在傳輸過程中,LSA 是不會產生任何變化的。