張俊芳
摘要:網(wǎng)絡(luò)設(shè)備為應(yīng)對(duì)網(wǎng)絡(luò)攻擊報(bào)文對(duì)設(shè)備控制面的沖擊,通常會(huì)對(duì)業(yè)務(wù)報(bào)文做限速以保護(hù)正常業(yè)務(wù),每種業(yè)務(wù)報(bào)文通常有個(gè)默認(rèn)的限速值,但是當(dāng)前面臨的問(wèn)題是,默認(rèn)的限速值通常不能滿(mǎn)足不同業(yè)務(wù)場(chǎng)景需求,經(jīng)常需要人工調(diào)節(jié)報(bào)文的限速值。本文提出了一種系統(tǒng)動(dòng)態(tài)調(diào)整業(yè)務(wù)報(bào)文限速值的方法,可以匹配不同的場(chǎng)景,自動(dòng)調(diào)整報(bào)文限速值,減少人工干預(yù)。
關(guān)鍵字:網(wǎng)絡(luò)攻擊;動(dòng)態(tài)調(diào)整;報(bào)文限速;設(shè)備丟包
引言
隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,網(wǎng)絡(luò)攻擊者們對(duì)網(wǎng)絡(luò)中的設(shè)備進(jìn)行攻擊的成本極大降低。網(wǎng)絡(luò)攻擊的事件時(shí)時(shí)發(fā)生,其中拒絕服務(wù)即常說(shuō)的DoS(Deny of Service)會(huì)對(duì)設(shè)備系統(tǒng)和資源進(jìn)行攻擊,以達(dá)到破壞正常服務(wù)的目的。為了保護(hù)設(shè)備控制平面的安全,基本網(wǎng)絡(luò)中各個(gè)路由設(shè)備都具備一定的防攻擊能力,其中根據(jù)業(yè)務(wù)報(bào)文類(lèi)型對(duì)上送報(bào)文進(jìn)行限速是比較常見(jiàn)的一種,每種報(bào)文類(lèi)型都會(huì)根據(jù)經(jīng)驗(yàn)設(shè)置默認(rèn)的限速值。
但是應(yīng)用在網(wǎng)絡(luò)中,經(jīng)常會(huì)遇到默認(rèn)的設(shè)置不能夠滿(mǎn)足現(xiàn)網(wǎng)要求,需要人工進(jìn)行調(diào)節(jié)的情況。比如某類(lèi)業(yè)務(wù)丟包嚴(yán)重,導(dǎo)致業(yè)務(wù)嚴(yán)重受損,需要人工調(diào)高報(bào)文限速值;或者控制面繁忙,為防止業(yè)務(wù)報(bào)文對(duì)系統(tǒng)的攻擊,需要人工調(diào)低報(bào)文限速值;或者不同接口的限速值比較低,但是疊加后設(shè)備總的報(bào)文速率很高,導(dǎo)致控制面繁忙,需要人工調(diào)低限速值等等。不同的場(chǎng)景需要不同的操作,非常不智能,而且非??简?yàn)設(shè)備管理員的經(jīng)驗(yàn)。這種依賴(lài)人工的操作,及時(shí)性無(wú)法保證,一旦沒(méi)有及時(shí)發(fā)現(xiàn)設(shè)備異常,就會(huì)導(dǎo)致不同情況下的業(yè)務(wù)受損或者設(shè)備處理異常。
為了解決人工干預(yù)調(diào)節(jié)帶來(lái)的及時(shí)性和易用性問(wèn)題,設(shè)備動(dòng)態(tài)調(diào)整業(yè)務(wù)報(bào)文限速值的方案應(yīng)運(yùn)而生。動(dòng)態(tài)調(diào)整報(bào)文限速值是參考人工調(diào)節(jié)的模式,代替人工對(duì)設(shè)備進(jìn)行報(bào)文限速值的調(diào)整。根據(jù)設(shè)備的運(yùn)行情況,自動(dòng)識(shí)別和計(jì)算報(bào)文限速值,自動(dòng)進(jìn)行調(diào)節(jié)。
動(dòng)態(tài)調(diào)整業(yè)務(wù)模型:
動(dòng)態(tài)調(diào)整業(yè)務(wù)報(bào)文限速值,是有一個(gè)調(diào)整中樞負(fù)責(zé)監(jiān)測(cè)各種報(bào)文的丟包情況以及相關(guān)進(jìn)程的CPU運(yùn)行情況,根據(jù)策略對(duì)報(bào)文理想的限速值進(jìn)行計(jì)算,判斷是否需要調(diào)整,如果需要調(diào)整,則動(dòng)態(tài)調(diào)整當(dāng)前報(bào)文的限速值,系統(tǒng)按照調(diào)整之后的限速值生效。
動(dòng)態(tài)調(diào)整準(zhǔn)備:
1、劃分報(bào)文優(yōu)先級(jí)
將各種報(bào)文類(lèi)型根據(jù)業(yè)務(wù)的重要程度劃分為三種優(yōu)先級(jí):高優(yōu)先級(jí)、中優(yōu)先級(jí)、低優(yōu)先級(jí)。重要不能受損的業(yè)務(wù)報(bào)文優(yōu)先級(jí)為高優(yōu)先級(jí),次重要可以輕微受損業(yè)務(wù)的報(bào)文優(yōu)先級(jí)為中優(yōu)先級(jí),可以受損業(yè)務(wù)的報(bào)文優(yōu)先級(jí)為低優(yōu)先級(jí)。不同優(yōu)先級(jí)的報(bào)文制定不同的處置策略。在設(shè)備處理能力有限的時(shí)候,優(yōu)先降低低優(yōu)先級(jí)報(bào)文的限速值,保證高優(yōu)先級(jí)報(bào)文的處理。
2、劃分進(jìn)程狀態(tài)等級(jí)
將進(jìn)程的運(yùn)行狀態(tài)根據(jù)CPU的利用率情況劃分為三個(gè)等級(jí)。分別為安全狀態(tài)、預(yù)警狀態(tài)和危險(xiǎn)狀態(tài)。CPU空閑,可以承接更多的業(yè)務(wù)處理時(shí),進(jìn)程狀態(tài)為安全狀態(tài);CPU較忙,盡量不再承接更多的業(yè)務(wù)處理時(shí),進(jìn)程狀態(tài)為預(yù)警狀態(tài);CPU繁忙,已經(jīng)快到處理能力的極限,需要減壓時(shí),進(jìn)程狀態(tài)為危險(xiǎn)狀態(tài)。
可以設(shè)定預(yù)警閾值和危險(xiǎn)閾值,CPU利用率未到達(dá)預(yù)警閾值,進(jìn)程狀態(tài)為安全狀態(tài);當(dāng)CPU的利用率達(dá)到預(yù)警閾值時(shí),進(jìn)程狀態(tài)為預(yù)警狀態(tài);當(dāng)CPU的利用率達(dá)到危險(xiǎn)閾值,進(jìn)程狀態(tài)為危險(xiǎn)狀態(tài)。為防止?fàn)顟B(tài)震蕩,進(jìn)程狀態(tài)向更安全狀態(tài)躍遷時(shí),應(yīng)設(shè)置防震蕩閾值調(diào)整。當(dāng)進(jìn)程CPU利用率從危險(xiǎn)狀態(tài)下降到預(yù)警狀態(tài)時(shí),不立馬進(jìn)行狀態(tài)躍遷,而是再下降一個(gè)防震蕩調(diào)整值后再進(jìn)行狀態(tài)躍遷。從預(yù)警狀態(tài)到安全狀態(tài)的躍遷也一樣。如下圖所示。
調(diào)整中樞實(shí)時(shí)監(jiān)測(cè)各個(gè)進(jìn)程CPU的利用率情況,根據(jù)進(jìn)程不同的狀態(tài)執(zhí)行不同的調(diào)整策略。對(duì)于進(jìn)程的狀態(tài)監(jiān)測(cè),可以采用多次采樣然后取平均值的方式來(lái)減少擾動(dòng)。
3、繪制報(bào)文路徑圖
針對(duì)每一種報(bào)文類(lèi)型,繪制一張報(bào)文路徑圖,監(jiān)測(cè)報(bào)文路徑上的每一個(gè)進(jìn)程的運(yùn)行狀態(tài)。
動(dòng)態(tài)調(diào)整策略:
(1)進(jìn)程危險(xiǎn)狀態(tài)
當(dāng)控制面處理繁忙時(shí),需要對(duì)業(yè)務(wù)報(bào)文限速值進(jìn)行降低,保障進(jìn)程安全,同時(shí)保障高優(yōu)先級(jí)報(bào)文能夠正常處理以保障重要業(yè)務(wù)不受損。對(duì)于任何一個(gè)進(jìn)程繁忙時(shí),查詢(xún)報(bào)文路徑圖,對(duì)于流經(jīng)該路徑的所有報(bào)文執(zhí)行CPU保護(hù)策略,調(diào)整中樞根據(jù)報(bào)文優(yōu)先級(jí)動(dòng)態(tài)調(diào)整這些報(bào)文的限速值。
進(jìn)程處于危險(xiǎn)狀態(tài)時(shí),高優(yōu)先級(jí)報(bào)文應(yīng)以默認(rèn)限速值放行保障業(yè)務(wù),中優(yōu)先級(jí)報(bào)文稍微降低限速值,低優(yōu)先級(jí)報(bào)文調(diào)低限速值給高優(yōu)先級(jí)報(bào)文讓行。
但是如果某種報(bào)文類(lèi)型有持續(xù)丟包,則認(rèn)為此種報(bào)文類(lèi)型存在攻擊情況,導(dǎo)致了CPU沖高,應(yīng)將此種報(bào)文類(lèi)型的限速值調(diào)低,保障控制平面安全。
(2)進(jìn)程預(yù)警狀態(tài)
當(dāng)進(jìn)程處于預(yù)警狀態(tài)時(shí),如果高優(yōu)先級(jí)的報(bào)文有丟包,可以調(diào)高限速值以保障業(yè)務(wù),中優(yōu)先級(jí)報(bào)文調(diào)整為默認(rèn)值,低優(yōu)先級(jí)報(bào)文限速值微降以保障控制平面安全。
(3)進(jìn)程安全狀態(tài)
當(dāng)進(jìn)程處于安全狀態(tài)時(shí),如果報(bào)文有丟包,可以適當(dāng)調(diào)高報(bào)文的限速值,來(lái)保障業(yè)務(wù)正常運(yùn)行。高優(yōu)先級(jí)、中優(yōu)先級(jí)和低優(yōu)先級(jí)報(bào)文都可以調(diào)高限速值。
業(yè)務(wù)報(bào)文有丟包時(shí),取最近時(shí)間段的丟包計(jì)數(shù)和當(dāng)前的限速值,根據(jù)PID算法,計(jì)算報(bào)文理想速率,動(dòng)態(tài)調(diào)高業(yè)務(wù)報(bào)文的限速值,盡量減少丟包帶來(lái)的業(yè)務(wù)影響。但是需要設(shè)置調(diào)高的最大值限制,避免限速值過(guò)大。
如果連續(xù)多次的采樣,業(yè)務(wù)報(bào)文都沒(méi)有丟包,并且進(jìn)程都處于安全狀態(tài),就沒(méi)有必要維持調(diào)整的值,需要逐步回歸系統(tǒng)設(shè)定的默認(rèn)值。
(4)死區(qū)調(diào)節(jié)和防震蕩
由于數(shù)學(xué)運(yùn)算結(jié)果下,即使發(fā)生較小的偏差也會(huì)對(duì)報(bào)文限速值進(jìn)行重新計(jì)算和更新,但是報(bào)文的限速值實(shí)際上是不希望頻繁進(jìn)行更新的。所以需要設(shè)定調(diào)整的幅度,在計(jì)算出來(lái)的報(bào)文限速值變化較小未超過(guò)設(shè)定幅度時(shí),不進(jìn)行調(diào)整,防止報(bào)文限速值頻繁進(jìn)行更新。
由于丟包導(dǎo)致報(bào)文限速值需要調(diào)高,或者持續(xù)沒(méi)有丟包需要將報(bào)文限速值恢復(fù)默認(rèn)值時(shí),為防止報(bào)文限速值驟變影響業(yè)務(wù)或者影響進(jìn)程狀態(tài),限速值的調(diào)節(jié)需要謹(jǐn)慎一些。對(duì)報(bào)文限速值的向上和向下調(diào)整均采用步進(jìn)調(diào)節(jié)的方式,在每個(gè)調(diào)整周期控制調(diào)整幅度,一步一步平穩(wěn)調(diào)整到計(jì)算的值,防止限速值突然變化很大對(duì)系統(tǒng)或者業(yè)務(wù)的沖擊。
(5)人工干預(yù)
動(dòng)態(tài)調(diào)整是模擬人工代替人工調(diào)節(jié)的模式,對(duì)于有的報(bào)文類(lèi)型有人工配置了限速值的場(chǎng)景,則不進(jìn)行動(dòng)態(tài)調(diào)節(jié),優(yōu)先使用人工配置的數(shù)值,保證配置的數(shù)值可以生效。
動(dòng)態(tài)調(diào)整報(bào)文限速值主要有如下優(yōu)勢(shì):
(1)盡量保證業(yè)務(wù)正常
網(wǎng)絡(luò)中經(jīng)常有某類(lèi)業(yè)務(wù)由于限速丟包,導(dǎo)致業(yè)務(wù)受損。動(dòng)態(tài)調(diào)整報(bào)文限速值,可以在CPU資源有空余的時(shí)候,自動(dòng)識(shí)別各類(lèi)報(bào)文的丟包情況,根據(jù)報(bào)文的優(yōu)先級(jí),動(dòng)態(tài)調(diào)高報(bào)文限速值,保障某類(lèi)報(bào)文突發(fā)增長(zhǎng)時(shí),不因?yàn)閳?bào)文限速原因造成報(bào)文丟棄而影響該業(yè)務(wù)的正常運(yùn)行。
(2)高優(yōu)先級(jí)業(yè)務(wù)得到保障
對(duì)于某些特殊場(chǎng)景,比如業(yè)務(wù)割接,突然有大量新業(yè)務(wù)接入,導(dǎo)致設(shè)備CPU沖高,影響到已經(jīng)在線(xiàn)業(yè)務(wù)時(shí),可以根據(jù)不同業(yè)務(wù)報(bào)文的優(yōu)先級(jí),動(dòng)態(tài)調(diào)低新業(yè)務(wù)的報(bào)文限速值,保障已在線(xiàn)業(yè)務(wù)的正常運(yùn)行。
(3)保障控制平面安全
可以實(shí)時(shí)監(jiān)測(cè)控制面各個(gè)進(jìn)程的運(yùn)行情況,將控制面的狀態(tài)進(jìn)行等級(jí)劃分,根據(jù)不同的狀態(tài)等級(jí),執(zhí)行不同的策略,調(diào)整影響該進(jìn)程運(yùn)行的報(bào)文的限速值,以減輕控制面的處理壓力,防止控制面異常。
(4)設(shè)備調(diào)整更實(shí)時(shí)
實(shí)時(shí)監(jiān)測(cè)并動(dòng)態(tài)調(diào)整設(shè)備各種業(yè)務(wù)報(bào)文的限速值,應(yīng)對(duì)不同的業(yè)務(wù)場(chǎng)景或者攻擊手段,設(shè)備可以做到自適應(yīng)。減少人工干預(yù),而且可以更及時(shí)的發(fā)現(xiàn)并處理各種異常,保障異常情況下系統(tǒng)和業(yè)務(wù)的正常運(yùn)行。
結(jié)語(yǔ)
動(dòng)態(tài)調(diào)整設(shè)備的業(yè)務(wù)報(bào)文限速值,通過(guò)監(jiān)測(cè)系統(tǒng)運(yùn)行狀態(tài)與業(yè)務(wù)受損狀態(tài),利用PID算法,計(jì)算出業(yè)務(wù)報(bào)文的理想速率,根據(jù)業(yè)務(wù)的重要程度,采取不同的策略,將設(shè)備的業(yè)務(wù)報(bào)文限速值自動(dòng)調(diào)整到既保證控制面安全,又保障業(yè)務(wù)正常的參數(shù)。并且可以在設(shè)備狀態(tài)以及業(yè)務(wù)穩(wěn)定的場(chǎng)景,自動(dòng)回歸默認(rèn)設(shè)置。
通過(guò)設(shè)備的動(dòng)態(tài)調(diào)整機(jī)制,從整體上提高了系統(tǒng)的可靠性和穩(wěn)定性,解決了設(shè)備的默認(rèn)限速值參數(shù)無(wú)法滿(mǎn)足所有場(chǎng)景的問(wèn)題。一方面能夠保證攻擊場(chǎng)景下設(shè)備控制面的正常運(yùn)行,另一方面能夠在保證設(shè)備控制面正常的情況下識(shí)別業(yè)務(wù)受損場(chǎng)景,通過(guò)調(diào)節(jié)業(yè)務(wù)報(bào)文的限速值,保障業(yè)務(wù)報(bào)文的通行,使業(yè)務(wù)盡量不受損。
系統(tǒng)的自動(dòng)調(diào)節(jié)也讓設(shè)備更智能,將自身調(diào)整到最合適的運(yùn)行狀態(tài),降低了不同業(yè)務(wù)場(chǎng)景對(duì)人工的依賴(lài),也讓設(shè)備能夠更及時(shí)的應(yīng)對(duì)各種攻擊以及異常。