產(chǎn)品分類+
OSPF路由協(xié)議詳解
OSPF:開(kāi)放式最短路徑優(yōu)先協(xié)議
無(wú)類別鏈路狀態(tài)路由協(xié)議,組播更新224.0.0.5/6;跨層封裝到三層,協(xié)議號(hào)89;
基于拓?fù)涔ぷ鳎矢铝看?----需要結(jié)構(gòu)化部署–區(qū)域劃分、地址規(guī)劃
觸發(fā)更新、每30min周期更新
OSPF的數(shù)據(jù)包:
Hello包
DBD–數(shù)據(jù)庫(kù)描述包
LSR–鏈路狀態(tài)請(qǐng)求
LSU–鏈路狀態(tài)更新 攜帶各種LSA
LSack–鏈路狀態(tài)確認(rèn)
狀態(tài)機(jī)----OSPF建立時(shí),存在各個(gè)階段;
1、down 本地一旦發(fā)出hello包進(jìn)入下一狀態(tài)
2、Init初始化 本地接收到的hello包存在本地的RID進(jìn)入下一狀態(tài)
3、2way雙向通信 鄰居關(guān)系建立標(biāo)志;
條件匹配:點(diǎn)到點(diǎn)網(wǎng)絡(luò)直接進(jìn)入下一狀態(tài);MA網(wǎng)絡(luò)將進(jìn)行DR/BDR選舉(40S),非DR/BDR間不得進(jìn)入下一狀態(tài);
4、exstart 預(yù)啟動(dòng) 使用類似hello的DBD進(jìn)行主從關(guān)系選舉,RID大為主,主優(yōu)先進(jìn)入下
一狀態(tài)
5、Exchange 準(zhǔn)交換 使用真實(shí)的DBD包進(jìn)行數(shù)據(jù)庫(kù)目錄共享,需要ACK;
6、Loading 加載 使用LSR/LSU/LSack來(lái)獲取未知的LSA信息;
7、Full轉(zhuǎn)發(fā) 鄰接關(guān)系建立的標(biāo)志
OSPF工作過(guò)程:
啟動(dòng)配置完成后,本地使用hello包建立鄰居關(guān)系,生成鄰居表;
進(jìn)行條件匹配,匹配失敗者間保持為鄰居關(guān)系,僅hello包周期保活即可;
匹配成功者間,將使用DBD/LSR/LSU/LSack來(lái)獲取未知的LSA信息,當(dāng)收集其網(wǎng)絡(luò)中所有LSA后,生成LSDB–數(shù)據(jù)表;之后使用最短路徑算法,計(jì)算本地到達(dá)所有未知網(wǎng)段的最佳路由,然后將其加載路由表中,收斂完成。
結(jié)構(gòu)突變—1、新增網(wǎng)段 發(fā)送新的DBD 未知設(shè)備會(huì)使用LSR獲取
2、斷開(kāi)網(wǎng)段 發(fā)送新的DBD 未知設(shè)備會(huì)使用LSR獲取
名詞:
LSA–鏈路狀態(tài)通告 —存在多種類別,攜帶不同環(huán)境下產(chǎn)生的拓?fù)浠蚵酚尚畔ⅲ辉撔畔⒁蕾?/span>
LSU數(shù)據(jù)包傳遞;
LSDB–鏈路狀態(tài)數(shù)據(jù)庫(kù) —各種的LSA的集合
OSPF的收斂行為------LSA洪泛 LSDB同步
配置:
r1(config)#router ospf 1 啟動(dòng)OSPF協(xié)議,啟動(dòng)時(shí)需要配置進(jìn)程號(hào),進(jìn)行號(hào)僅具有本地意義
r1(config-router)#router-id 1.1.1.1 全網(wǎng)唯一,手工–環(huán)回最大數(shù)值–物理接口最大數(shù)值
宣告:1、激活 2、路由或拓?fù)?3、區(qū)域劃分
r1(config-router)#network 12.1.1.1 0.0.0.0 area 0
r1(config-router)#network 1.1.1.1 0.0.0.0 area 0
宣告時(shí)必須攜帶反掩碼
區(qū)域劃分規(guī)則:
1、星型結(jié)構(gòu)
2、必須存在ABR-邊界路由器
【1】當(dāng)啟動(dòng)配置完成后,鄰居間使用hello包建立鄰居關(guān)系,生成鄰居表:
Hello包–用于鄰居的發(fā)現(xiàn)、關(guān)系、保活
hello time為10s或30s dead time 為hello time 的4倍;
Hello包中和鄰居必須完全一致的參數(shù):hello time和dead time
區(qū)域ID
認(rèn)證字段
末梢區(qū)域標(biāo)記
r2#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
1.1.1.1 0 FULL/ - 00:00:39 12.1.1.1 Serial1/0
3.3.3.3 0 FULL/ - 00:00:38 23.1.1.2 Serial1/1
狀態(tài)機(jī)
【2】鄰居關(guān)系建立后,進(jìn)行條件匹配,匹配失敗保持為鄰居關(guān)系,僅hello包保活
匹配成功成為鄰接關(guān)系,將使用DBD/LSR/LSU/LSACK來(lái)獲取未知的LSA信息,生成數(shù)據(jù)庫(kù)表:
DBD:攜帶MTU值;強(qiáng)制鄰居間MTU值必須一致,否則卡在exstart或exchange狀態(tài);
DBD包中的描述字段:I 為1標(biāo)示該包為本地發(fā)出的第一個(gè)DBD包
M為0標(biāo)示該包為本地發(fā)出的最后一個(gè)DBD包
MS為1標(biāo)示本地為主;
隱性確認(rèn):從使用主的序列號(hào)來(lái)對(duì)主進(jìn)行確認(rèn);
r1#show ip ospf database 查看數(shù)據(jù)庫(kù)簡(jiǎn)表
OSPF存在各種類別的LSA,簡(jiǎn)表內(nèi)僅記錄分類的基礎(chǔ)信息;
【3】OSPF協(xié)議在生成好數(shù)據(jù)庫(kù)表后,將基于最短路徑規(guī)則將最佳路徑加載到本地的路由表中
O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
O標(biāo)示本地區(qū)域內(nèi)的路由–本地基于拓?fù)溆?jì)算所得
O IA 標(biāo)示其他區(qū)域的路由通過(guò)ABR導(dǎo)入 --域間路由
O E1/2 標(biāo)示通過(guò)其他協(xié)議或進(jìn)程計(jì)算所得,之后ASBR重發(fā)布導(dǎo)入 域外路由
ON1/2 標(biāo)示通過(guò)其他協(xié)議或進(jìn)程計(jì)算所得,之后ASBR重發(fā)布導(dǎo)入,同時(shí)本地為NSSA或完
全NSSA區(qū)域 -----域外路由
管理距離為110;度量為cost=開(kāi)銷值=參考帶寬/接口實(shí)際帶寬
Ospf選路,就是選擇cost值之和最小路徑;默認(rèn)參考帶寬為100M;若接口帶寬大于參考帶寬,將可能導(dǎo)致選路不佳,可以修改參考帶寬
r1(config)#router ospf 1
r1(config-router)#default auto-cost reference-bandwidth ?
r1(config-router)#default auto-cost reference-bandwidth 1000
注:所有設(shè)備均需修改;
【4】OSPF建立鄰接關(guān)系的條件
網(wǎng)絡(luò)類型:點(diǎn)到點(diǎn)網(wǎng)絡(luò)類型 ----必然成為鄰接關(guān)系
MA----進(jìn)行DR/BDR選舉,所有非DR/BDR僅與DR/BDR建立鄰接關(guān)系;非DR/BDR間正常保持為鄰居關(guān)系;
選擇規(guī)則:1、比較接口優(yōu)先級(jí),默認(rèn)為1,大優(yōu);
2、若優(yōu)先級(jí)相同,比較RID,數(shù)值大優(yōu);
干涉選舉:
1、DR優(yōu)選級(jí)最大,BDR次大;DR選擇為非搶占,故修改優(yōu)先級(jí)后,正常需要重啟OSPF進(jìn)程
r1(config)#interface fastEthernet 0/0
r1(config-if)#ip ospf priority 3
r1#clear ip ospf process
Reset ALL OSPF processes? [no]: yes
2、DR優(yōu)選級(jí)最大,BDR次大;其他設(shè)備優(yōu)先級(jí)修改為0,標(biāo)示不參選;
切記:不能將所有參選接口優(yōu)先級(jí)修改為0;
【5】OSPF接口網(wǎng)絡(luò)類型
設(shè)備接口網(wǎng)絡(luò)類型: 環(huán)回 點(diǎn)到點(diǎn) BMA NBMA
所謂的OSPF接口網(wǎng)絡(luò)類型,是指OSPF協(xié)議在設(shè)備不同網(wǎng)絡(luò)類型下的不同工作方式;
設(shè)備接口網(wǎng)絡(luò)類型 OSPF 接口網(wǎng)絡(luò)類型(工作方式)
環(huán)回接口 LOOPBACK LOOPBACK 無(wú)hello包,發(fā)送32位主機(jī)路由
串口(HDLC/PPP)點(diǎn)到點(diǎn) POINT_TO_POINT hello time 10s;不選DR;
以太網(wǎng)接口 BMA BROADCAST hello time 10s;選DR;
MGRE NBMA
注:在tunnel接口上,OSPF默認(rèn)的工作方式為點(diǎn)到點(diǎn);這種工作方式在MGRE環(huán)境下,將無(wú)法正常建立鄰居關(guān)系—因?yàn)辄c(diǎn)到點(diǎn)工作方式只能和一個(gè)鄰居建鄰;
可以將接口工作方式修改為BROADCAST;切記BROADCAST和POINT_TO_POINT工作方式均為10s的hello time,故能夠建立鄰居關(guān)系,但由于一個(gè)選DR,另一個(gè)不選,不能正常收斂路由;
r2(config)#interface tunnel 0
r2(config-if)#ip ospf network broadcast
注:若ROADCAST的工作環(huán)境為星型或部分網(wǎng)狀結(jié)構(gòu)都可能出現(xiàn)DR位置錯(cuò)誤問(wèn)題;
必須修改DR的位置到最合適的地方;
建議:
1、在星型結(jié)構(gòu)中可以定義為broadcast 類型,但注意DR位置;或修改為點(diǎn)到多點(diǎn)工作方式;
2、在部分網(wǎng)狀結(jié)構(gòu)中直接定義為點(diǎn)到多點(diǎn)
3、在全連網(wǎng)狀建議broadcast ;
r1(config)#interface tunnel 0
r1(config-if)#ip ospf network point-to-multipoint
點(diǎn)到多點(diǎn)工作方式:hello time 為30s;不選DR;
2、不連續(xù)骨干
解決方法:
1、tunnel --在兩臺(tái)ABR上建立tunnel,然后將其宣告到OSPF協(xié)議中;
缺點(diǎn):選路不佳,對(duì)中間區(qū)域周期、觸發(fā)占用;
2、OSPF虛鏈路—相當(dāng)于OSPF關(guān)閉了區(qū)域限制;
在兩臺(tái)ABR上配置,然后骨干區(qū)域的ABR為非骨干區(qū)域間的ABR授權(quán);
R2(config)#router ospf 1
R2(config-router)#area 1 virtual-link 4.4.4.4
優(yōu)點(diǎn):選路正常,為減少對(duì)中間區(qū)域的資源占用,取消所有周期信息–hello、更新
缺點(diǎn):不可靠
3、多進(jìn)程雙向重發(fā)布 --在一臺(tái)設(shè)備啟動(dòng)多個(gè)進(jìn)程時(shí),每個(gè)進(jìn)程為獨(dú)立協(xié)議,用于自己的RID,自己的數(shù)據(jù)庫(kù)和鄰居關(guān)系,這些數(shù)據(jù)庫(kù)不共享,僅將所以計(jì)算所得路徑加載到同一張路由表中;若多個(gè)進(jìn)程工作于同一接口上,僅最先啟動(dòng)進(jìn)程生效;
R4(config)#router ospf 1
R4(config-router)#redistribute ospf 2 subnets
R4(config-router)#exit
R4(config)#router ospf 2
R4(config-router)#redistribute ospf 1 subnets
二、OSPF的數(shù)據(jù)庫(kù)表 -----該表格由各種類別的LSA組成;
所有類別LSA均存在以下參數(shù):
LS age: 119 老化時(shí)間,周期1800s歸0,觸發(fā)更新歸0;最大老化3609;
Options: (No TOS-capability, DC)
LS Type: Router Links 類別名,此處為1類;
Link State ID: 1.1.1.1 link-id—目錄中番號(hào)
Advertising Router: 1.1.1.1 通告者的RID;
LS Seq Number: 80000003
Checksum: 0x67F8
Length: 60
Number of Links: 3
傳播范圍 通告者 攜帶信息
1
LSA1 Router 單區(qū)域(本區(qū)域) 本區(qū)域內(nèi)所有設(shè)備 本地直連拓?fù)?/span>
LSA2network 本區(qū)域 DR MA部分的拓?fù)?/span>
LSA3Summary 整個(gè)OSPF區(qū)域 ABR O IA 域間路由
LSA4 asbr-summary 除ASBR所在區(qū)域 ABR ASBR的位置
外的整個(gè)OSPF區(qū)域
和ASBR同區(qū)域的設(shè)備是通過(guò)1類來(lái)獲取ASBR位置;
LSA5 external 整個(gè)OSPF區(qū)域 ASBR O E 域外路由
LSA7 nssa-external NSSA區(qū)域 ASBR O N 域外路由
LINK ID(目錄中的番號(hào)) 通告者
1
LSA1 通告者的RID 本地區(qū)域內(nèi)所有設(shè)備
LSA2 DR接口IP地址 DR
LSA3 IA 路由目標(biāo) ABR,在經(jīng)過(guò)下一個(gè)ABR時(shí)修改為本地
LSA4 ASBR的RID ABR,在經(jīng)過(guò)下一個(gè)ABR時(shí)修改為本地
LAS5 E 路由目標(biāo) ASBR
LSA7 N 路由目標(biāo) ASBR
三、優(yōu)化,減少OSPF的LSA的更新量
【1】匯總 --減少骨干區(qū)域的LSA量
(1)域間匯總–只能在ABR上操作
r1(config)#router ospf 1
r1(config-router)#area 2 range 5.5.4.0 255.255.254.0
通過(guò)本區(qū)域內(nèi)1/2類LSA計(jì)算所得
(2)域外匯總–在ASBR上操作
r4(config)#router ospf 1
r4(config-router)#summary-address 99.1.0.0 255.255.252.0
【2】特殊區(qū)域—減少非骨干區(qū)域
不得為骨干區(qū)域,不能存在虛鏈路;
(1)不存在ASBR
{1}末梢區(qū)域----拒絕4/5的LSA,自動(dòng)產(chǎn)生一條3類的缺省路由指向骨干
r5(config)#router ospf 1
r5(config-router)#area 2 stub 本區(qū)域內(nèi)所有設(shè)備均需配置
{2}完全末梢區(qū)域----在末梢區(qū)域的基礎(chǔ)上進(jìn)一步拒絕3類的LSA,僅保留一條3類缺省
先將整個(gè)區(qū)域配置為末梢區(qū)域,然后僅在ABR上定義完全即可
r1(config-router)#area 2 stub no-summary
(2)存在ASBR
{1}NSSA ----非完全末梢區(qū)域
拒絕4/5的LSA,本區(qū)域ASBR產(chǎn)生的5類使用7類傳輸;7類LSA在離開(kāi)本區(qū)域時(shí)被ABR修改為5類;不會(huì)自動(dòng)產(chǎn)生缺省;
作用:拒絕網(wǎng)絡(luò)中其他區(qū)域的ASBR產(chǎn)生的4/5的信息;但為了避免環(huán)路產(chǎn)生,故不自動(dòng)產(chǎn)生缺省,在管理員確定無(wú)環(huán)的前提下可以手工添加缺省路由;
r3(config)#router ospf 1
r3(config-router)#area 1 nssa
{2}完全NSSA
在NSSA的基礎(chǔ)上進(jìn)一步拒絕3類LSA;自動(dòng)產(chǎn)生3類的缺省指向區(qū)域0;
先將該區(qū)域配置為NSSA,然后僅在ABR上定義完全即可
r3(config-router)#area 1 nssa no-summary
四、OSPF的擴(kuò)展配置
1、認(rèn)證
【1】接口認(rèn)證
1)接口明文
r1(config)#interface ethernet 0/0
r1(config-if)#ip ospf authentication 開(kāi)啟明文認(rèn)證需求,開(kāi)啟后本地所有ospf數(shù)據(jù)包中認(rèn)證類型字段被修改,鄰居間若不一致將不能建立鄰居關(guān)系
r1(config-if)#ip ospf authentication-key cisco123 配置明文密碼
2)接口密文
r6(config)#int s0/1
r6(config-if)#ip ospf authentication message-digest 開(kāi)啟秘文認(rèn)證需求,開(kāi)啟后本地所有ospf數(shù)據(jù)包中認(rèn)證類型字段被修改,鄰居間若不一致將不能建立鄰居關(guān)系
r6(config-if)#ip ospf message-digest-key 1 md5 cisco123
【2】區(qū)域認(rèn)證
例:在R1上開(kāi)啟關(guān)于區(qū)域0的明文或密文認(rèn)證;然后僅僅只是將R1上所有屬于區(qū)域0的接口,認(rèn)證類型字段修改,相當(dāng)于在R1上所有區(qū)域0接口配置明文或密文認(rèn)證需求;但每個(gè)接口的秘鑰還是需要逐一配置;
r12(config)#router ospf 1
r12(config-router)#area 2 authentication 明文
r12(config-router)#area 2 authentication message-digest 密文
【3】虛鏈路認(rèn)證
r1(config)#router ospf 1
r1(config-router)#area 1 virtual-link 4.4.4.4 authentication
r1(config-router)#area 1 virtual-link 4.4.4.4 authentication-key cisco
r1(config-router)#area 1 virtual-link 4.4.4.4 authentication message-digest
r1(config-router)#area 1 virtual-link 4.4.4.4 message-digest-key 1 md5 cisco123
2、被動(dòng)接口
r1(config)#router ospf 1
r1(config-router)#passive-interface ethernet 0/1
3、加快收斂—鄰居間直連接口hello和dead 必須完全一致
r7(config)#interface s0/1
r7(config-if)#ip ospf hello-interval 5
r7(config-if)#ip ospf dead-interval 20
注:修改本端的hello time本端的dead time自動(dòng)4倍關(guān)系匹配;
4、缺省
3類缺省—通過(guò)特殊區(qū)域自動(dòng)產(chǎn)生;
末梢、完全末梢、完全NSSA自動(dòng)產(chǎn)生;
5類缺省—本地路由表中必須已經(jīng)存在缺省路由,通過(guò)什么方式產(chǎn)生的無(wú)所謂;
之后,可以使用專用指令將其重發(fā)布到OSPF協(xié)議中
r9(config)#router ospf 2
r9(config-router)#default-information originate
默認(rèn)進(jìn)入路由為類型2,OE2;度量為1;
類型1:在內(nèi)部傳遞時(shí)不疊加內(nèi)部度量;
類型2:在內(nèi)部疊加度量; 默認(rèn)
若網(wǎng)絡(luò)中存在多臺(tái)邊界路由器,均進(jìn)行重發(fā)布行為,建議修改為類型1;
r9(config-router)#default-information originate metric-type 1
r9(config-router)#default-information originate always 強(qiáng)制向內(nèi)網(wǎng)發(fā)布缺省路由信息;
7類缺省–ASBR上通過(guò)其他協(xié)議學(xué)習(xí)到的缺省導(dǎo)入OSPF,同時(shí)所導(dǎo)入?yún)^(qū)域?yàn)镹SSA區(qū)域;
r12(config)#router ospf 1
r12(config-router)#area 2 nssa default-information-originate
注:若一臺(tái)設(shè)備同時(shí)學(xué)習(xí)多種缺省; 內(nèi)部?jī)?yōu)于外部 3類優(yōu)于5/7類;
若5類和7類相遇,先比度量,小優(yōu);若度量一致那么5類優(yōu)于7類;