Ospf動(dòng)態(tài)調(diào)整鏈路負(fù)載的方法
【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明涉及OSPF協(xié)議技術(shù)領(lǐng)域,尤其是涉及一種OSPF動(dòng)態(tài)調(diào)整鏈路負(fù)載的方法。
【背景技術(shù)】
[0002]動(dòng)態(tài)路由協(xié)議的出現(xiàn),極大的簡(jiǎn)化了網(wǎng)絡(luò)配置以及減輕了網(wǎng)絡(luò)管理員的負(fù)擔(dān),使原先出現(xiàn)問(wèn)題需要大量人力去定位、分析、解決的網(wǎng)絡(luò)可以在短時(shí)間內(nèi)自動(dòng)的完成路由收斂。眾所周知,OSPF(Open Shortest Path First,開放式最短路徑優(yōu)先)協(xié)議是目前因特網(wǎng)中應(yīng)用最為廣泛的一種采用鏈路狀態(tài)算法的IGP(Inter1r Gateway Protocol,內(nèi)部網(wǎng)關(guān)協(xié)議)動(dòng)態(tài)路由協(xié)議。
[0003]標(biāo)準(zhǔn)的OSPF協(xié)議中,當(dāng)?shù)竭_(dá)同一目的地址有多條鏈路時(shí),會(huì)根據(jù)SPF(ShortestPath First,最短路徑優(yōu)先)算法選擇COST (鏈路開銷)值最小的鏈路進(jìn)行傳輸。
[0004]但是,現(xiàn)有OSPF協(xié)議在選擇COST值最小的鏈路進(jìn)行傳輸時(shí),并不會(huì)考慮鏈路負(fù)載情況。如果COST值最小的鏈路已經(jīng)擁塞而其它能夠到達(dá)目的地的鏈路沒有流量或者流量很小,數(shù)據(jù)傳輸依然只選擇COST值最小的鏈路。這就造成了鏈路資源的浪費(fèi)。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的在于克服現(xiàn)有技術(shù)的缺陷,提供一種OSPF動(dòng)態(tài)調(diào)整鏈路負(fù)載的方法,對(duì)OSPF鏈路選擇算法進(jìn)行優(yōu)化,在OSPF度量值優(yōu)化算法中引入負(fù)載的概念,當(dāng)OSPF默認(rèn)優(yōu)選的鏈路上如果帶寬占用超過(guò)一定的閾值后引導(dǎo)流量到另外的鏈路進(jìn)行負(fù)載分擔(dān),以充分利用、合理調(diào)度網(wǎng)絡(luò)資源。
[0006]為實(shí)現(xiàn)上述目的,本發(fā)明提出如下技術(shù)方案:一種OSPF動(dòng)態(tài)調(diào)整鏈路負(fù)載的方法,包括:監(jiān)控本地路由器或交換機(jī)接口的縱向負(fù)載變化,判斷所述縱向負(fù)載變化是否超出預(yù)先設(shè)定的閾值,根據(jù)判斷結(jié)果對(duì)應(yīng)改變接口的COST值,根據(jù)改變后的COST值觸發(fā)OSPF重新計(jì)算度量值并選擇度量值最小的接口作為所述路由器或交換機(jī)的出接口。
[0007]優(yōu)選地,在采樣周期內(nèi),每隔一段時(shí)間采樣所述本地路由器或交換機(jī)接口的負(fù)載值,監(jiān)控其當(dāng)前采樣點(diǎn)和上一次采樣點(diǎn)之間的負(fù)載變化。
[0008]優(yōu)選地,在采樣過(guò)程中,采用一次指數(shù)平滑法來(lái)計(jì)算各采樣點(diǎn)的負(fù)載值。
[0009]優(yōu)選地,所述一次指數(shù)平滑法的計(jì)算過(guò)程包括:
[0010]確定指數(shù)平滑法的初始值以及設(shè)置其抑制周期,所述初始值為η個(gè)采樣點(diǎn)的采樣平均值load average,其中,η為大于O小于采樣周期的整數(shù);
[0011]判斷采樣點(diǎn)的個(gè)數(shù)是否小于等于η,若是,貝Ij load(t) = load average;否則,load(t) = a*cur_load+(l-a)*load(t_l),其中,load(t)表示當(dāng)前采樣點(diǎn)的負(fù)載值,a表示平滑系數(shù),cur_l0ad表示抑制周期內(nèi)的采樣平均值,load(t-l)表示上一次采樣點(diǎn)的負(fù)載值。
[0012]優(yōu)選地,根據(jù)所述抑制周期內(nèi)的采樣平均值CUr_load和所述上一次采樣點(diǎn)的負(fù)載值load(t-l)的差值絕對(duì)值I cur_load-load(t_l) I,來(lái)確定所述平滑系數(shù)a。
[0013]優(yōu)選地,確定所述平滑系數(shù)a的過(guò)程為:
[0014]若0< I cur_load_load(t_l) I < = 10%,則 a = 50% ;
[0015]若10%< I cur_load_load(t_l) | < = 20%,則 a = 55% ;
[0016]若20%< I cur_load_load(t_l) I < = 30%,則 a = 60% ;
[0017]若30%< I cur_load_load(t_l) I < = 40%,則 a = 65% ;
[0018]若40%< I cur_load_load(t_l) I < = 50%,則 a = 70% ;
[0019]若50%< I cur_load_load(t_l) I < = 60%,則 a = 75% ;
[0020]若60%< I cur_load-load(t_l) I,則 a = 80% ο
[0021]優(yōu)選地,若監(jiān)控的當(dāng)前采樣點(diǎn)和上一次采樣點(diǎn)之間的負(fù)載變化超出預(yù)先設(shè)定的閾值,則產(chǎn)生一個(gè)中斷,上報(bào)所述OSPF進(jìn)程,并記錄當(dāng)前采樣點(diǎn)的負(fù)載值。
[0022]優(yōu)選地,所述度量值的計(jì)算公式為:
[0023]metric = (REF_BW/PORT_BW) * (load (t)/m);
[0024]其中,metric表示OSPF度量值,REF_BW表示基準(zhǔn)帶寬,P0RT_BW表示接口帶寬,m表示負(fù)載差異變化值。
[0025]優(yōu)選地,根據(jù)判斷結(jié)果對(duì)應(yīng)改變接口的COST值的過(guò)程包括:若所述縱向負(fù)載變化超出預(yù)先設(shè)定的閾值,則對(duì)應(yīng)增大接口的COST值;若所述縱向負(fù)載變化小于預(yù)先設(shè)定的閾值,則對(duì)應(yīng)減小接口的COST值。
[0026]本發(fā)明的有益效果是:
[0027]1、本發(fā)明使OSPF路由協(xié)議選擇的路徑可以根據(jù)鏈路負(fù)載進(jìn)行實(shí)時(shí)的動(dòng)態(tài)調(diào)整,有效的避免網(wǎng)絡(luò)擁塞的產(chǎn)生,更高效的利用鏈路帶寬。
[0028]2、本發(fā)明采用指數(shù)平滑法進(jìn)行負(fù)載計(jì)算以及采用中斷的方式觸發(fā)OSPF進(jìn)程,可以確保在充分有效利用網(wǎng)絡(luò)資源的同時(shí)減少對(duì)網(wǎng)絡(luò)穩(wěn)定性的破壞。
【附圖說(shuō)明】
[0029]圖1是本發(fā)明實(shí)現(xiàn)OSPF鏈路負(fù)載調(diào)整的網(wǎng)絡(luò)不意圖;
[0030]圖2是本發(fā)明OSPF動(dòng)態(tài)調(diào)整鏈路負(fù)載的算法原理示意圖;
[0031]圖3是本發(fā)明OSPF動(dòng)態(tài)調(diào)整鏈路負(fù)載的方法的流程示意圖;
【具體實(shí)施方式】
[0032]下面將結(jié)合本發(fā)明的附圖,對(duì)本發(fā)明實(shí)施例的技術(shù)方案進(jìn)行清楚、完整的描述。
[0033]如圖1所示,為本發(fā)明實(shí)現(xiàn)OSPF鏈路負(fù)載調(diào)整的網(wǎng)絡(luò)示意圖,圖中包括多個(gè)用戶(用戶A、用戶B、用戶C……)、路由器Rl?R5、Internet網(wǎng)絡(luò)和服務(wù)器群。以路由器Rl舉例來(lái)說(shuō),路由器Rl有多條路徑可以訪問(wèn)服務(wù)器群,如:路由器Rl —路由器R2 —路由器R4 — Internet —路由器R5,或者路由器Rl —路由器R3 —路由器Internet —路由器R5,再或者路由器Rl —路由器R4 — Internet —路由器R5等等。但是OSPF協(xié)議只會(huì)選擇一條最短路徑來(lái)轉(zhuǎn)發(fā)報(bào)文,假設(shè)現(xiàn)在選擇的路徑是:路由器Rl —路由器R3 — Internet —路由器R5,此時(shí)下游用戶訪問(wèn)服務(wù)器群的流量全部通往該路徑,此時(shí)容易發(fā)生擁塞。
[0034]本發(fā)明為解決這一問(wèn)題,通過(guò)監(jiān)控路由器或交換機(jī)接口的負(fù)載變化,動(dòng)態(tài)調(diào)整鏈路COST值,從而動(dòng)態(tài)調(diào)整OSPF的最優(yōu)鏈路選擇。具體地,結(jié)合圖1?圖3所示,本發(fā)明揭示的一種OSPF動(dòng)態(tài)調(diào)整鏈路負(fù)載的方法,包括以下步驟:
[0035]步驟SI,監(jiān)控本地路由器或交換機(jī)接口的縱向負(fù)載變化,判斷縱向負(fù)載變化是否超出預(yù)先設(shè)定的閾值。
[0036]具體地,在采樣周期內(nèi),每隔一段時(shí)間采樣本地路由器或交換機(jī)接口的負(fù)載值,監(jiān)控其當(dāng)前采樣點(diǎn)和上一次采樣點(diǎn)之間的負(fù)載變化。這里的當(dāng)前采樣點(diǎn)和上一次采樣點(diǎn)之間的負(fù)載變化即為縱向負(fù)載變化。
[0037]但是,眾所周知的是,由于快速收斂和防抖動(dòng)是兩個(gè)相背的特性,如果要快速收斂(也就是說(shuō)負(fù)載的變化很快就能反映到路由選擇上來(lái)),那么就需要把負(fù)載的采樣周期設(shè)置的比較短,但這就會(huì)造成抖動(dòng)比較大,一個(gè)瞬間的峰值切換就會(huì)造成網(wǎng)絡(luò)的路由重計(jì)算。如果把采樣周期設(shè)置長(zhǎng)了,那么抖動(dòng)確實(shí)減小了,但是負(fù)載的變化反映到路由選擇上,就會(huì)有延遲。
[0038]因此,為了確保在充分有效利用網(wǎng)絡(luò)資源的同時(shí)減少對(duì)網(wǎng)絡(luò)穩(wěn)定性的破壞,我們不能采用低效的polling(輪詢)方式(即每隔一段時(shí)間查詢一次鏈路帶寬),本發(fā)明優(yōu)選采用中斷方式,并使用一次指數(shù)平滑法來(lái)抑制抖動(dòng)。
[0039]具體地,本發(fā)明實(shí)施例設(shè)置3分鐘的加權(quán)平均作為一個(gè)采樣周期,且每5s采樣一次,這樣總共是36個(gè)采樣點(diǎn)。指定平滑法的初始值為30s內(nèi)的總共6個(gè)點(diǎn)的采樣平均值,且其抑制周期為15s,則采樣點(diǎn)的負(fù)載計(jì)算公式為:
[0040]if (采樣點(diǎn)數(shù)量小于等于6個(gè))
[0041]load (t) = load average
[0042]else
[0043]load(t) = a*cur_load+(l_a)*load(t_l),其中,load average 表不初始值,load(t)表示當(dāng)前采樣點(diǎn)的負(fù)載值,a表示平滑系數(shù),cur_load表示抑制周期15s內(nèi)的采樣平均值,load(t-l)表示上一次采樣點(diǎn)的負(fù)載值。
[0044]平滑系數(shù)a根據(jù)抑制周期15s內(nèi)的采樣平均值CUr_load和上一次采樣點(diǎn)的負(fù)載值load(t-l)的差值絕對(duì)值I cur_load-load(t_l) |來(lái)確定,具體如下: