OSPF-開發最短路徑優先協議-學習筆記
一、OSPF分類屬性
1、分類:屬於IGP內部協議。
2、算法:屬於鏈路狀態協議。
不發路由,發送LSA(鏈路狀態通告),包含拓撲信息和路由信息,收到LSA後,加入LSDB(鏈路狀態數據庫),經過SPF樹形算法,根據開銷cost,將最優路由加入路由表。
3、網絡類型:無類路由協議,支持VLSM和CIDR。
4、封裝:OSI四層-傳輸層。
協議端口號89,組播地址:224.0.0.5,224.0.0.6(DR/BDR)
L2 | IP | OSPF | FCS |
5、鏈路狀態協議的優點:
① 瞭解的信息多,不容易產生環路。
② 每臺路由器都有區域內的整個拓撲信息。
③ 層次結構設計:劃分區域的星型結構設計。
[--骨幹區域0(傳輸區域,必須)
[--非骨幹區域
(部署爲單個區域時,可以不是區域0)。
二、OSPF劃分區域是基於路由器接口劃分,劃分區域的優點:
1、減少路由條目數量,在區域邊界可以進行彙總、聚合。
① 只支持手工彙總,區域內部無法手工彙總。
{--區域間彙總
{--域外匯總
{--無域內彙總
② 可以減少LSDB數條目,不同區域LSDB不相同,一個路由器屬於不同區域,會爲每個區域維護一張獨立的LSDB。
③ 傳遞到不同區域的LSA,包含的是路由信息。
2、將拓撲變化限制在一個區域內,減少鏈路翻動對整網的影響。
3、某些LSA只能在一個區域內傳遞,減少LSDB數量。
4、劃分區域基於層次結構。
① 優化,適用於中到大型網絡。
② 星型拓撲設計,防環路。
骨幹路由器,屬於區域0。
③ 一個ABR建議最多關聯三個區域。
④ 在單個區域內的路由器最多50臺。
⑤ 一臺路由器的鄰居最多60臺。
【ABR】-->區域邊界路由器,一個接口屬於區域0,一個接口屬於非骨幹區域。ABR把非骨幹區域連接到區域0。
【ASBR】-->系統邊界路由器,除OSPF外還運行其他路由協議,並且通過路由重分發將其他路由注入OSPF。既可以是ABR,也可以使區域0內的路由器,也可以是非骨幹區域內的路由器。
三、鄰居建立
--鄰居:三層直連。
--鄰接:七級OSPF狀態。
--點到點網絡:full狀態。
--MA網絡(LAN):DR-->指定路由器,BDR-->備份路由器,DROtheres。
--DR/BDR:full
--DROthers:two-way
1、五類報文:
① Hello:建立鄰居。
hello週期:10s或30s
HoldTime:40s或120s(hello的4倍)
各路由器的hello時間和dead時間必須相同才能建立鄰居。
② DBD:數據庫描述,包含LSA摘要。
③ LSR:鏈路狀態請求。
④ LSU:鏈路狀態更新,發送LSA。
⑤ LSAck:確認。
2、確認機制:
顯式確認:用一個報文回覆。
隱式確認:基於序列號的機制,返回相同的序列號。
Hello不需要確認,DBD自己確認自己,LSU確認LSR,LSAck確認LSU。
3、鄰居建立狀態:
① Down:初始狀態,接口剛宣告進OSPF。
② Init:發送一份hello。
③ Two-way:收到對方hello,含自身Router-ID.MA網段選舉DR/BDR。
④ Exstart:交互三個不帶LSA的DBD,選擇Master/Slave。
⑤ Exchange:由Master發起,包含LSA的DBD。
⑥ Loading:交互LSR、LSU,以及LSAck,實現LSDB的同步。
⑦ Full:LSDB同步完成。
4、MTU值不一致,會卡在Exstart狀態
Router#clear ip ospf process 清進程。
① 進入接口下輸入以下命令無視MTU
Router(config-if)#ip ospf mtu-ignore 只需要在一端修改即可。
② 修改hello時間(在接口下)
Router(config-if)#ip ospf hello-interval 12 改成了12秒
修改hello時間後,dead時間和wait時間會自動改爲hello的四倍。
修改dead時間,wait時間也會變,hello時間不變。
兩端的hello時間和dead時間必須一致。
5、在MA網絡選舉DR/BDR的原則:
① 比較參與該MA網段路由器接口的OSPF優先級,越高越好,取值範圍0-255,默認爲1。
② 該MA網段所連路由器的RID(router-id),越高越好。
③ 在wait時間內選擇,40秒或120秒。
④ DR和BDR不會被搶佔。
修改接口優先級:接入接口下,Router(config-if)#ip ospf priority 255
⑤ DR掛了,BDR會立即成爲DR,BDR在DROther中選舉出。
⑥ DR和BDR都是路由器接口的概念,每個網段的DR和BDR都通過相同機制單獨選舉。
⑦ MA網段接口的OSPF優先級如果是0,代表的不是最小值,而是該接口沒有資格在這個網段參選DR和BDR,只能成爲DROther,(two-way狀態)。
⑧ 可以只有一個DR,沒有BDR,應用在幀中繼網絡中,hub節點爲DR,spoke節點都爲DROther。
⑨ 如果一個MA網段中沒有DR和BDR,就沒有LSA交互,(接口優先級都爲0)。
⑩ 一臺運行OSPF的路由器,只要一個接口開啓了OSPF進程,該接口就會立即監聽224.0.0.5的組播地址,而僅當一個節點成爲DR或BDR時,該接口才會同時監聽224.0.0.5和224.0.0.6。
在一個MA網段內,所有路由器發給DR和BDR的報文的目的地址都是224.0.0.6。
而DR將LSA整合之後以224.0.0.5的地址發給網段內其他路由器。
四、SPF算法
1、區域內每臺路由器擁有相同的LSDB。
2、每臺路由器都先將自己作爲root樹根。
3、計算最低鏈路開銷。
4、將最佳路由加入路由表。
5、LSU更新報文:
① 首先判斷本地是否有該LSA。
② 沒有就加入LSDB,發送LSAck確認。
③ 如果有,查看LSA序列號,一致就不管;如果比本地的LSA新,就加入LSDB,如果比本地的LSA舊,發送LSU給源路由器。
Aging Time(老化時間):60分鐘。
泛洪更新週期:30分鐘。
五、OSPF包
1、版本:V2--IPv4,V3--IPv6。
2、Router-ID:域內唯一,標識路由器、LSA。
① 手工配置
② 環回接口最大IP地址
③ 物理接口最大IP地址(UP狀態接口)
3、Area-ID:與接口關聯。
表現形式有:點分十進制和數字形式。
每個網段只能是屬於同一個區域。
4、認證類型:不認證,明文認證和密文認證(MD5)。
六、OSPF命令
1、配置命令
Router(config)#router ospf 110 /*進程號只在本地有效
Router(config-router)#router-id 1.1.1.1
Router(config-router)#network 1.1.1.1 0.0.0.0 area 0
區域表示方式:
0 = 0.0.0.0
1 = 0.0.0.1
255 = 0.0.0.255
256 = 0.0.1.0
2、查詢命令
Router#show ip protocols
Router#show ip ospf neighbor
Router#show ip ospf interface
Router#show ip route ospf /*查看OSPF路由條目
環回接口會以32位掩碼進入OSPF路由,被當做末節主機,避免路由黑洞。
Router(config-if)#ip ospf network point-to-point
在環回接口下修改網絡類型爲點到點網絡,可以還原真實掩碼。
Router#clear ip route * /*清路由表
Router#show ip ospf database /*顯示本地LSDB LSA數據庫
七、LSA類型
1、router LSA:路由LSA,純拓撲信息。
① 只在一個區域內泛洪,無法穿越ABR。
② 一個區域內每臺路由器都會發送一條1類LSA,無論有幾個接口在區域內。
③ 每條1類LSA都有一個標識,即發送該條LSA-1的路由器的RID。
④ 1類LSA包含的是純拓撲信息,描述的是路由器直連的鏈路,和這些鏈路的前綴,掩碼,鏈路類型,度量值。
⑤ 一臺路由器把多個接口宣告進同一個區域,通過這個區域發送的LSA-1包含所宣告進該區域所有接口的鏈路信息。
-- Link-ID:通告該LSA的路由器的RID(router-id)。
-- ADV Router:通過該LSA的路由器的RID。
Router#show ip ospf database router /*查看1類LSA命令。
建立了OSPF鄰居後,不能修改RID,需要重置OSPF進程。
Router#clear ip ospf process
2、network LSA:網絡LSA
3、summary LSA:彙總LSA
4、summary ASBLSA:
5、External LSA:外部LSA
6、multicast OSPF LSA:
7、NSSA LSA: