OSPF(Open Shortest Pass First,開(kāi)放最短路徑優(yōu)先協(xié)議),是一個(gè)最常用的內(nèi)部網(wǎng)管協(xié)議,是一個(gè)鏈路狀態(tài)協(xié)議淮逻。
OSPF的特點(diǎn)
OSPF是一種無(wú)類(lèi)路由協(xié)議授账,支持VLSM可變長(zhǎng)子網(wǎng)掩碼。支持IPV4和IPV6.
組播地址:224.0.0.5 224.0.0.6儒喊。
OSPF度量:從源到目的所有出接口的度量值,和接口帶寬反比(10^8/帶寬)。
收斂速度極快鸵闪,但大型網(wǎng)絡(luò)配置很復(fù)雜。
IP封裝暑诸,協(xié)議號(hào)89
OSPF運(yùn)行原理
OSPF組播的方式在所有開(kāi)啟OSPF的接口發(fā)送Hello包蚌讼,用來(lái)確定是否有OSPF鄰居辟灰,若發(fā)現(xiàn)了,則建立OSPF鄰居關(guān)系篡石,形成鄰居表芥喇,之后互相發(fā)送LSA(鏈路狀態(tài)通告)相互通告路由,形成LSDB(鏈路狀態(tài)數(shù)據(jù)庫(kù))凰萨。再通過(guò)SPF算法继控,計(jì)算最佳路徑(cost最小)后放入路由表胖眷。
設(shè)計(jì)要求:
1.必須配置骨干區(qū)域0
2.其他區(qū)域連接到骨干區(qū)域
好處:
1.減小路由表(通過(guò)域間匯總)
2.本地拓?fù)渥兓涤绊懸粋€(gè)區(qū)域(也是通過(guò)匯總)
3.某些LSA之子本地泛紅武通,不泛洪到其他區(qū)域
注:OSPF區(qū)域劃分基于接口而不是設(shè)備
OSPF區(qū)域及路由器身份
1、OSPF區(qū)域
骨干區(qū)域(區(qū)域0):骨干區(qū)域必須連接所有的非骨干區(qū)域珊搀,而且骨干區(qū)域不可分割冶忱,有且只有一個(gè),一般情況下境析,骨干區(qū)域內(nèi)沒(méi)有終端用戶囚枪。
非骨干區(qū)域(非0區(qū)域):非骨干區(qū)域一般根據(jù)實(shí)際情況而劃分,必須連接到骨干區(qū)域(不規(guī)則區(qū)域也需通過(guò)tunnel或virtual-link連接到骨干區(qū)域)劳淆。
一般情況下链沼,費(fèi)骨干區(qū)域主要連接終端用戶和資源。
2憔儿、OSPF身份
DR(Designated Router):指定路由器忆植,OSPF協(xié)議啟動(dòng)后開(kāi)始選舉而來(lái)
BDR(Back-up Designated Router):備份指定路由器,同樣是由OSPF啟動(dòng)后選舉而來(lái)
DRothers:其他路由器谒臼,非DR非BDR的路由器都是DRothers朝刊。
ABR(Area Border Routers):區(qū)域邊界路由器,連接不同OSPF區(qū)域蜈缤。
ASBR(Autonomous System Boundary Router):自治系統(tǒng)邊界路由器拾氓,位于OSPF和非OSPF網(wǎng)絡(luò)之間。
骨干路由器:至少有一個(gè)借口連接到骨干區(qū)域(區(qū)域0)底哥。
OSPF鄰居建立
鄰居的兩個(gè)狀態(tài)
Neighbors:鄰居
Adjacency:鄰接
鄰居不一定是鄰接咙鞍,鄰接一定是鄰居,只有交互了LSA的OSPF鄰居才成為OSPF的鄰接趾徽,之交互Hello包的支撐位鄰居续滋,
在點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)中,所有鄰居都能成為鄰接孵奶。
MA(廣播多路訪問(wèn)網(wǎng)絡(luò)疲酌,比如以太網(wǎng))網(wǎng)絡(luò)類(lèi)型中,DR,BDR朗恳,DRothers三者關(guān)系為:
DR湿颅、BDR與所有的鄰居形成鄰接,DRothers之間只是鄰居而不交換LSA
影響OSPF鄰居建立的原因:
1粥诫、Hello與Dead Time時(shí)間不一致(改Hello的話Dead自動(dòng)*4油航,單改Dead的話Hello不變)
2、區(qū)域ID必須一致
3怀浆、認(rèn)證(password一致)
4谊囚、Stub標(biāo)識(shí)一致(與特殊區(qū)域有關(guān),之后介紹)
5揉稚、 MTU-攜帶在DBD報(bào)文中秒啦,兩端口必須一致
6熬粗、掩碼搀玖,如12.1.1.1/30——12.1.1.2/24 這種情況是可以ping通的,但鄰居關(guān)系起不來(lái)
(OSPF對(duì)環(huán)回口驻呐,無(wú)論掩碼多少位灌诅,都按32位處理,所以建議環(huán)回口直接/32含末,或者在環(huán)回口下還原真實(shí)掩碼)
7猜拾、ACL(是否放行OSPF)
OSPF更新
1、OSPF是一種觸發(fā)更新的機(jī)制佣盒。一旦拓?fù)浒l(fā)生變化便會(huì)更新挎袜。
2、OSPF也有周期性更新(30分鐘一次)
3肥惭、當(dāng)收到一條LSA之后:
首先查看是否在LSDB中盯仪,若沒(méi)有則假如LSDB,回復(fù)LSACK蜜葱。繼續(xù)泛洪出去全景,并且通過(guò)SPF算法計(jì)算最佳路徑并加入路由表。若存在牵囤,則比較誰(shuí)的更“新”(看序號(hào))爸黄,序號(hào)大者新,若本地不如收到的信更新本地LSDB并泛洪揭鳞,且通過(guò)SPF算法計(jì)算最佳路徑并加入路由表炕贵,若比收到的新,則將本地的泛洪出去野崇。注:LSA序列號(hào)称开,4字節(jié),16進(jìn)制
0x80000001-0x7FFFFFFF
OSPF數(shù)據(jù)包類(lèi)型
1舞骆、Hello:10秒發(fā)送一次钥弯,死亡時(shí)間40s径荔,4倍關(guān)系,可以修改脆霎。
2总处、DBD:Database Description 僅僅是一個(gè)對(duì)本地?cái)?shù)據(jù)庫(kù)的概念性敘述,供路由器核對(duì)數(shù)據(jù)庫(kù)是否同步
3睛蛛、LSR:Link-State Request 請(qǐng)求鏈路狀態(tài)鹦马,在數(shù)據(jù)庫(kù)同步過(guò)程中使用,請(qǐng)求其他角色發(fā)送自己失去的LSA最新版本忆肾。
4荸频、LSU:Link-State Update 鏈路狀態(tài)更新,LSU包括幾種類(lèi)型的LSA客冈,LSU負(fù)責(zé)泛洪L(zhǎng)SA旭从,和相應(yīng)LSR。
LSA只會(huì)發(fā)送給之前以LSR請(qǐng)求的LSA的直連鄰居场仲,進(jìn)行泛洪的時(shí)候和悦,鄰居路由負(fù)責(zé)把收到的LSA信息重新封裝在新的LSU中。
5渠缕、LSACK:鏈路狀態(tài)確認(rèn)鸽素,路由器必須對(duì)每個(gè)收到的LSA進(jìn)行LSACK確認(rèn),但可以用一個(gè)LSACK確認(rèn)多個(gè)LSA亦鳞。
DR馍忽、BDR的選舉
DR、BDR的選舉規(guī)則:比較router-id燕差,router-id有以下獲得方式:
1遭笋、由工程師指定
2、這臺(tái)設(shè)備最大的環(huán)回口ip
3谁不、沒(méi)有環(huán)回口的話坐梯,物理接口ip地址最大的。
選舉規(guī)則:
1刹帕、最高優(yōu)先級(jí)值的路由器被選為DR(默認(rèn)優(yōu)先級(jí)相同:1)吵血,次高優(yōu)先級(jí)的為BDR
2、若優(yōu)先級(jí)相同偷溺,則比較router-id蹋辅,擁有最高router-id的成為DR,次高的成為BDR
3挫掏、優(yōu)先級(jí)被設(shè)置為0的不參與選舉
4侦另、OSPF系統(tǒng)啟動(dòng)后,若40s內(nèi)沒(méi)有新設(shè)備接入就會(huì)開(kāi)始選舉,所以為保證DR與BDR的選舉不發(fā)生意外褒傅,建議優(yōu)先配置想成為DR與BDR的設(shè)備弃锐。
5、DR與BDR不可以搶占
6殿托、當(dāng)DR小時(shí)之后霹菊,BDR直升DR,重新選BDR
7支竹、所有DR旋廷,BDR,DRothers說(shuō)的都是接口礼搁,而不是設(shè)備
8饶碘、不同網(wǎng)段間選DR,BDR馒吴,而不是以O(shè)SPF區(qū)域?yàn)閱挝?/p>
OSPF狀態(tài)
1扎运、Down State
2、Init State:發(fā)送了Hello包(還沒(méi)收到)
3募书、Two-way State:收到了一個(gè)Hello包且Hello包中包括自己的router-id(對(duì)方回復(fù)的)
4绪囱、Exstart State:First DBD確認(rèn)主從關(guān)系测蹲,router-id大的為主莹捡,先發(fā)包
5、Exchange State:交互DBD 相互學(xué)習(xí)
6扣甲、Loading State:LSR與LSU的交互過(guò)程
7篮赢、Full State:所有交互已經(jīng)完成