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