概述
開放式最短路徑優先(Open Shortest Path First,OSPF)是目前普遍使用的一種動態路由協議,它屬於鏈路狀態路由協議,具備路由變化收斂速度快、無路由環路、支持變長子網掩碼(VLSM)和彙總、層次區域劃分等優勢。在網絡中使用OSPF協議後,大部分路由將由OSPF協議自行計算和生成,無須網絡管理員人工配置,當網絡拓撲發生變化時,協議能夠自動計算、更正路由,極大地方便了網絡管理。但若是使用時不結合具體網絡應用環境,不作好細緻的規劃,OSPF協議的使用效果會大打折扣,甚至引起故障。 redis
OSPF協議是一種鏈路狀態協議。每一個路由器負責發現、維護與鄰居的關係,並將已知的鄰居列表和鏈路費用LSU(Link State Update)報文描述,經過可靠的泛洪與自治系統AS(Autonomous System)內的其餘路由器週期性的交互,學習到整個自治系統的網絡拓撲結構;並經過自治系統邊界的路由器注入其餘AS的路由信息,從而獲得整個Internet的路由信息。每隔一個特定時間或當鏈路狀態發生變化時,從新生成LSA,路由器經過泛洪機制將新LSA通告出去,以便實現路由的實時更新數據庫
1、四種路由類型
網絡
DR 指定理由器負載均衡
當多路訪問網絡發生變化時,DR負責更新其餘全部路由器。
BDR備份指定路由器ide
BDR會監控DR 的狀態,並在當前DR發生故障時接替其角色。
ABR區域邊界路由器
ABR用來鏈接骨幹區域和非骨幹區域,它與骨幹區域之間既能夠是物理鏈接,也能夠是邏輯上的鏈接。
ASBR自治系統邊界路由器oop
ASBR路由器是用來把其餘路由選擇協議學習到的路由經過路由選擇重分配的方式注入到OSPF域的路由器。
2、五大區域
1.骨幹區域(Area0)學習
2.非骨幹區域——根據可以學習的路有種類來區分大數據
(1)標準區域debug
(2)末梢區域(stub)router
(3)徹底末梢(Totally stubbby)
(4)非純末梢區域(NSSA)
3、五大數據包類型
hello包
是週期發送(直連網段),該包有router ID,保持時間40s,router優先級,鄰居信息,area ID,DR、BDR、password,stub area標記;(就是發送看對方掛了沒有)
數據庫描述包(DBD)
該包實際上是對LSA的摘要,是用來進行比較的(就像一本書的目錄)
鏈路狀態請求包(LSR)
進行DBD比較後發現本身DBD中少lsa,會發送該包(兩本書的目錄不同,少的向多的要)
鏈路狀態更新包(LSU)
收到LSR後把本身lsa發送給少的路由器,(把本身多的目錄給他,讓他和個人同樣,少的向多的要)
鏈路狀態確認包(LSAck)
收到LSA後發送確認,(我收到了!謝了!)
4、OSPF鏈路狀態
1.鏈路狀態數據庫的組成
(1)每一個路由器都建立了由每一個接口、對應的相鄰節點和接口速度組成的數據庫
(2)鏈路狀態數據庫中的每一個條目稱爲LSA(鏈路狀態通告),常見的有六種LSA類型
2.鏈路狀態通告(LSA)類型
Type1 路由器LSA 由區域內的路由器發出的(全部路由)
Type2 網絡LSA 由區域內的DR發出的(宣告網絡狀態信息)
Type3 網絡彙總LSA ABR發出的,其餘區域的彙總鏈路通告(彙總交換)
Type4 ASBR彙總LSA ABR發出的,用於通告ASBR信息(告知ASBR位置)
Type5 AS外部LSA ABR發出的,用於通告外部路由(外交官)
Type6 NSSA外部LSA NSSA區域內的ASBR發出的,用於本區域鏈接的外部路由
5、OSPF鄰接關係的創建(七種狀態)
1.OSPF啓動的第一個階段是使用hello報文創建雙向通訊的過程
2.OSPF啓動的第二個階段是創建徹底鄰接關係
Down
在Down狀態下,OSPF進程尚未與任何鄰居交換信息。OSPF在等待進入Init狀態。
Init OSPF路由器以固定的時間間隔(缺省10s)發送類型1(Hello)的分組,以便與鄰居路由器創建特殊的關係。
2-Way
每臺OSPF路由器都使用分組試圖與同一個IP網絡中的全部鄰居路由器創建雙向狀態或雙向通訊。Hello分組中含有發送者已知的OSPF鄰居列表。當路由器看到它本身出如今一個鄰居路由器的Hello分組中時,它就進入了雙向狀態。
ExStart
每臺OSPF路由器都使用分組試圖與同一個IP網絡中的全部鄰居路由器創建雙向狀態或雙向通訊。Hello分組中含有發送者已知的OSPF鄰居列表。當路由器看到它本身出如今一個鄰居路由器的Hello分組中時,它就進入了雙向狀態。
Exchange
在交換狀態下,鄰居路由器使用類型2的DBD分組來互相發送它們的鏈路狀態信息,也就是說路由器相互描述它們的鏈路狀態數據庫。路由器將它們所學到的信息與其現存的鏈路狀態數據庫進行比較,而且單獨確認每一個DBD分組,若是任何一臺路由器接收到不在其數據庫中的鏈路信息,該路由器就向其鄰居請求有關該鏈路的完整更新信息。完整的路由信息在「Loading(加載)」狀態下被交換。
Loading
在交換狀態下,鄰居路由器使用類型2的DBD分組來互相發送它們的鏈路狀態信息,也就是說路由器相互描述它們的鏈路狀態數據庫。路由器將它們所學到的信息與其現存的鏈路狀態數據庫進行比較,而且單獨確認每一個DBD分組,若是任何一臺路由器接收到不在其數據庫中的鏈路信息,該路由器就向其鄰居請求有關該鏈路的完整更新信息。完整的路由信息在「Loading(加載)」狀態下被交換。
Full
加載狀態結束以後,路由器就進入全毗鄰狀態。每臺路由器都保存着一張毗鄰路由器列表,它就是稱爲毗鄰數據庫。
6、OSPF工做過程
7、內部網關協議和外部網關協議
(1)自治系統(AS)
(2)內部網關協議(IGP),例如:RIP、OSPF、ISIS等
(3)外部網關協議(EGP),例如:BGP等
8、OSPF的基本概念
1.OSPF區域
(1)爲了適應大型的網絡,OSPF在AS內劃分多個區域
(2)每一個OSPF路由器只維護所在區域的完整鏈路狀態信息
2.區域ID
(1)區域ID能夠是表示成一個十進制的數字
(2)也能夠表示成一個IP
3.骨幹區域Area 0
(1)負責區域間路由信息傳播
4.Router ID
(1)OSPF區域內惟一標識路由器的IP地址
5.Router ID選取規則
(1)選取路由器loopback接口上數值最高的IP地址(推薦)
(2)若是沒有loopback接口,在屋裏端口中選取IP地址最高的(不推薦)
(3)也可使用router-id命令指定Router ID
6.DR和BDR的選舉方法
自動選舉:
網段上Router ID最大的路由器將被選舉爲DR,第二大的將被選舉爲BDR
手動選舉:
(1)優先級範圍0-255,數值越大,優先級越高,默認1
(2)若是優先級相同,則須要比較Router ID
(3)若是路由器優先級被設置爲0,它將不參與DR和BDR的選舉方式
7.DR 和BDR的選舉過程
(1)路由器的優先級能夠影響一個選舉過程,可是它不能強制更換已經存在的DR或BDR路由器
8.OSPF的組播地址
(1)224.0.0.5
(2)224.0.0.6
9.OSPF的度量值COST
(1)COST=10^8/BW 代價(數值越小越好)
(2)最短路徑是基於接口指定的代價(cost)計算的
10.OSPF數據包
(1)承載在IP數據包內,使用協議號89
11.OSPF的網絡類型
(1)點到點
(2)廣播多路訪問網絡
(3)非廣播多路訪問網絡
(4)點到多點
9、OSPF的配置命令
啓動OSPF路由進程 rout ospf process-id
指定OSPF協議運行的接口和所在的區域 network addresss invers-mask area area-ad
查看路由表信息(直連/學習) show ip route
只查看OSPF學習到的路由 show ip route ospf
查看OSPF協議配置信息 show ip protocol
查看OSPF是如何配置的以及ABR信息 show ip ospf
查看LSDB內的因此LSA數據信息 show ip ospf database
查看接口上OSPF配置信息
show ip ospf interface
查看OSPF鄰居和鄰接的狀態 show ip ospf neighbor
查看OSPF鄰居的詳細信息(包括DR/BDR) show ip ospf neighbor detail
查看路由器「鄰接」的整個過程 debug ip ospf adj
查看每一個OSPF數據包的信息 debug ip ospf packet
清空路由表 clear ip route
反掩碼例子:
10、OSPF的三種通訊量
(1)域內通訊量
單個區域內的路由器之間交換數據包構成的通訊量
(2)域間通訊量(ABR)
不一樣區域的路由器之間交換數據包構成的通訊量
(3)外部通訊量(ASBR)
OSPFR域內的路由器與DSPF區域外部或另外一個自治系統內的路由器之間交換數據包構成的通訊量
11、OSPF的應用環境
1.從如下幾方面考慮OSPF的使用
(1)網絡規模
(2)網絡拓撲
(3)其餘特殊要求
(4)路由器自身要求
2.OSPF的特色
(1)可適應大規模網絡
(2)路由變化收斂速度快
(3)無路由環
(4)支持變長子網掩碼VLSM
(5)支持區域劃分
(6)支持以組播地址發送協議報
12、生成OSPF多區域的緣由
(1)改善網絡的可擴展性
(2)快速收斂
十3、OSPF的路由器類型
OSPF路由器根據在AS 中的不一樣位置,能夠分爲如下四類:
區域內路由器(Internal Routers)
該類路由器的全部接口都屬於同一個OSPF 區域。
區域邊界路由器ABR(Area Border Routers)
該類路由器能夠同時屬於兩個以上的區域,但其中一個必須是骨幹區域。ABR 用來鏈接骨幹區域和非骨幹區域,它與骨幹區域之間既能夠是物理鏈接,也能夠是邏輯上的鏈接。
骨幹路由器(Backbone Routers)
該類路由器至少有一個接口屬於骨幹區域。所以,全部的ABR 和位於Area0 的內部路由器都是骨幹路由器。
十4、 路由器對路由條目的選擇
1.路由器只把最優的路由條目添加到路由表
2.選擇路由條目的依據
(1)管路距離
(2)度量值
3.負載均衡的路由條目
十5、末梢區域和徹底末梢區域
1.知足如下條件的區域
(1)只有一個默認路由做爲其區域的出口
(2)區域不能做爲虛鏈路的穿越區域
(3)Stub區域無自治系統邊界路由器ASBR
(4)不是骨幹區域Area 0
2.末梢區域
(1)沒有LSA四、五、7通告
3.徹底末梢區域
(1)除了LSA3的默認路由通告外,沒有LSA三、四、五、7通告
十6、路由重分發
1.理解路由重分發
(1)一個單一個IP路由協議是管理網絡中IP路由的首選方案
(2)Cisco IOS能執行多個路由協議,每個路由協議和該路由協議所服務的網絡屬於同一個自制系統
(3)Cisco IOS使用路由重分發特性以交換由不一樣協議建立的路由信息
2.路由重分發的考慮
(1)度量值
(2)管路距離
3.重分發到OSPF域中的路徑類型
(1)類型1的外部路徑(Type 1 external path,E1)
(2)類型2的外部路徑(Type 2 external path,E1)
4.路由器A有兩條到達外部目的網絡10.1.2.0的路徑
(1)E1類型
路徑A-B-D的代價是25(20+5)——優先
路徑A-C-D的代價爲48(18+30)
(2)E2類型
路徑A-B-D的代價是20
路徑A-C-D的代價爲18——優先
5.路由重分發配置
(1)語法:
redistribute protocol 【metric metric-value】【metric-type type-value】【subnets】
(2)示例
router rip
redistribute ospf 1 metric 10
router ospf 1
redistribute metric 200 subnets
十7、NSSA區域
1.NSSA區域是0OSPF RFC的補遺
(1)定義了特殊的LSA類型7
(2)提供相似stub area和totally stibby area的優勢
(3)能夠包含ASBR
2.OSPF鏈路狀態通告
(1)LSA7(NSSA External LSA,NSSA外部LSA)
3.NSSA區域重分發路由類型
(1)N一、N2
(2)通過NSSA區域ABR後轉換爲E一、E2
4.配置NSSA區域命令
(1)語法
area area-id nssa 【no-summmary】
十8、小結
1.常見的六種LSA
LSA一、LSA二、LSA三、LSA四、LSA五、LSA7
2.OSPF的路徑類型
區域內路徑、區域外路徑、類型1的外部路徑和類型2的外部路徑
十9、OSPF地址彙總
1.做用
(1)經過減小泛洪的LSA數量來節省資源
(2)能夠經過屏蔽一些網絡不穩定的細節來節省資源
(3)減小路由表中的路由條目
2.區域間路由彙總配置
(1)語法
area area-id range ip address mask
3.外部路由彙總配置
(1)語法
summary-address ip adress mask
二10、OSPF虛鏈路
1.虛鏈路
(1)指一條經過非骨幹區域鏈接到骨幹區域的鏈路
2.虛鏈路的目的
(1)經過一個非骨幹區域鏈接到一個區域到骨幹區域
(2)經過一個非骨幹區域鏈接到一個分段的骨幹區域
3.配置虛鏈路的規則及特色
(1)虛鏈路必須配置在兩臺ABR路由器之間
(2)傳送區域不能是一個末梢區域
(3)虛鏈路的穩定性取決於其通過的區域的穩定性
(4)虛鏈路有助於提供羅技冗餘
4.虛鏈路配置命令
(1)語法
area area-id vritual-link router-id