1. 程式人生 > >BGP懲罰機制

BGP懲罰機制

RoCE 直連 ... 特性 接口 mark 模式 引入 原因

寫在前面:絕對是因為無聊才寫下這個。
編制背景:公司內訓現場,安全內訓,簡單。

一、BGP懲罰實驗演示
接下來,說說BGP的場景:BGP網絡比較龐大,信息量大,如果網絡出現抖動,由於BGP的增量觸發更新特性,則會造成大量的頻繁路由更新情況造成網絡帶寬的大量占用。所以這裏介紹可以利用BGP懲罰機制來合理規避這一點。
BGP懲罰機制類似於GLBP的AVF能力值調整規律,現在我們來話癆下這個BGP懲罰機制。這裏使用一個簡單的場景來解釋BGP懲罰機制,用兩臺BGP路由器直連拓撲,如下拓撲R1和R2使用物理接口建立EBGP鄰居關系,R1network環回口路由進BGP,拓撲如下:
技術分享圖片
1、此時的R2 BGP的LOC-RIB有1.1.1.1/32路由,如下:

技術分享圖片
2、為了提高BGP可靠性,防止路由抖動而BGP觸發更新造成的帶寬占用,現在R2上開啟BGP路由懲罰機制(默認BGP懲罰是關閉的)
R2(config)#router bgp 200
R2(config-router)#bgp dampening
懲罰機制開啟之後的設備R2就會開始監聽路由的穩定性。
3、現在手動shutdown R1的Loop0接口來制造路由抖動,在R1的Loopback0做一次shutdown和no shutdown模擬一次抖動,之後再R2查看明細的1.1.1.1/32可以看到多出一行關於BGP懲罰和抖動的描述,如下:
技術分享圖片

所以,這裏引入第一個值是BGP懲罰值( Penalty),即開啟懲罰的BGP路由器檢測到一次路由抖動後,會將該BGP條目的懲罰值加上1000,第二次抖動再累加1000,以此類推。

但是懲罰值也不可能無限增加,所以這裏引入第二個概念,叫做最大抑制閾值(Max suppress penalty),默認是12000,即BGP懲罰累加最大到12000
4、接下來,這個累加的懲罰值到底有什麽用呢?首先,我們看看剛才我們抖動一次後,R2上看到的路由懲罰閾值加到了1000,此時可以看到是BGP的LOC-RIB顯示的是H,即history entry:
技術分享圖片

如上圖可以看到還是路由還是沒有被抑制的,現在我們在R1上把環回口做3-5次的抖動操作之後我們在R2上查看懲罰閾值如下:
技術分享圖片
發現此時該路由已經被抑制了,去查看BGP的LOC-RIB可以發現前面被備註了D。這是因為此時的懲罰值累加超過了抑制閾值(Suppress penalty)

,抑制閾值默認2000。
5、但是我們會發現懲罰值會隨著時間推移而慢慢減小的,這是有一個半衰期的原因

二、BGP懲罰總結
1、首先幾個概念
1)Reuse penalty:使用閾值,默認750,低於750懲罰值的路由一定可使用
2)Suppress penalty:抑制閾值,默認2000,懲罰值超過2000的條目被抑制
3)Penalty:懲罰閾值,整個路由抖動時候默認1000,如果屬性變動則500,即每抖動一次增加的閾值
4)Max suppress penalty:最大抑制閾值,默認12000即默認只能最大到12000
5)Max suppress time:最大抑制時間,默認60s;即某條路由最長被抑制的時間
6)Half-life time:半衰期,默認四分之一的最大抑制時間,即15s,半衰期時間過後BGP懲罰值被衰減到原來的1/2

2、BGP懲罰工作模式圖示如下:
技術分享圖片
1)如圖示,初始情況路由的懲罰閾值為0,此時路由正常加表可使用
2)如果發生一次抖動,則條目的懲罰值上升的1000,超過了使用閾值750,但是此時不影響路由的使用。
3)如果持續的抖動則懲罰值會超過抑制閾值2000,此時BGP條目被標記D,即被抑制不可用
4)任何時候的BGP懲罰值都會隨著時間推移而衰減,經過一個半衰期(默認15分鐘)其懲罰值減少到原來的一半。
5)最長抑制時間為60min,最大閾值增長到12000

技術分享圖片

author:年輕的鐘老頭
QQ:821240807
臨場發揮,如有疑問,歡迎垂詢....

BGP懲罰機制