Saturday 12 September 2015

Route dampening

ရန်ကုန်တိုက်ခန်းအထပ်မြင့်တွေမှာ နေဖူးသူတွေတိုင်း ရေတင်ရတဲ့ ဒုက္ခကိုကြုံဖူးပါလိမ့်မယ်၊ အထပ်မြင့်လေပိုပြီးခက်ခဲလေပဲ။ ဒီကြားထဲမီးကလဲ ပြတ်သေးတယ်။ များသောအားဖြင့် ညဖက်မီးမှန်တဲ့အချိန်ကြမှ တင်ကြတာများပါတယ်။ ကျွန်တော်တို့နေခဲ့တဲ့ဖက်ဆိုရင် ညသန်းခေါင်မှတင်ရပါတယ်၊ ရေမလာလို့မဟုတ်ပဲ မီးကလာလိုက်ပြတ်လိုက်ဖြစ်နေလို့ပါ။ ဘယ်သူမှ မီးလာတာနဲ့ချက်ချင်းတင်လေ့မရှိကြပါဘူး၊ အနည်းဆုံးတော့ ၁၅မိနစ်လောက်စောင့်ပြီးတော့မှ တင်ကြပါတယ်။ တခါတလေ စိတ်မရှည်လို့ မီးလာတာနဲ့ ချက်ချင်းတင်လိုက်ရင် ၅မိနစ်လဲနေရာ ပြန်ပြတ်သွားလို့အလုပ်ရှုပ်တာပဲ အဖတ်တင်ပါတယ်။ ဒါကြောင့် စိတ်ချရအောင်အများစုအိပ်ချိန်လောက်ကြမှ တင်လေ့ရှိပါတယ်။ အဲဒါနဲ့ Network နဲ့ဘာဆိုင်လဲလို့ဆိုရင် ဘာမှမဆိုင်ပါဘူး ဒါပေမယ့် BGP Dampening ရဲ့လုပ်ဆောင်ပုံကိုဖတ်ကြည့်တဲ့အခါမှာတော့ အဲဒီ လုပ်ဆောင်ပုံကို တီထွင်ခဲ့တဲ့သူဟာ ရန်ကုန်မှာ အထပ်မြင့်နဲ့များနေခဲ့ဖူးသလားဆိုပြီး မဆီမဆိုင် လျှောက်တွေးဖြစ်မိသွားပါတယ်။  :)

ဘာကြောင့်လဲလို့ဆိုတာ နဲနဲလောက်လေ့လာကြည့်ကြတာပေါ့။ BGP ဟာ Neighbor တွေနဲ့ချိတ်ဆက်ပြီးတဲ့အခါမှာ သူမှာရှိတဲ့ Routes တွေကို ကိုယ်ကယူ၊ တခြားဖက်ကိုပြန်ပေး၊ ကိုယ့်ဖက်က Routes တွေကို Neighbor တွေကိုကြေညာ၊ ကိုယ့်ရဲ့ BGP table နဲ့ Routing table ကိုလဲ Update လုပ်၊ စသဖြင့်လုပ်ရပါတယ်။ ဒါဟာ မီးစလာတာနဲ့ ရေတင်ဖို့ ကိစ္စတွေ လုပ်ဆောင်ရသလိုပါပဲ၊ ရေစက်သော့ယူ၊ အောက်ထပ်ဆင်း၊ လိုရမယ်ရ ရေချူဖို့အတွက် ရေပုံးကလဲပါသလိုပေါ့၊ ဒီလိုပဲ Router ခမျာမှာလဲ သူ့အလုပ်နဲ့သူ ရှုပ်တာပေါ့။ ဖြစ်ချင်တော့ တဖက်က Neighbor ရဲ့ အတွင်းဖက်က အကြောင်းကြောင်းတခုခုကြောင့် သူရဲ့ Route တွေကိုပေးလိုက်၊ ပျောက်သွားလိုက်၊ Attribute တွေကိုဟိုပြောင်းလိုက် ဒီပြောင်းလိုက် ဖြစ်နေတဲ့အခါ ကိုယ့်ဖက်ကလဲ သူ့ကြောင့်အလုပ်ရှုပ်ရတော့တာပေါ့။ Best Routes ပြန်တွက်တာ၊ Route-map တွေပြန်အလုပ်လုပ်ရတာ နဲ့ Router resource တွေပိုသုံးရပါတယ်။ တစ်ခါနှစ်ခါလောက်ဆိုရင်တော့ မပြောသာပါဘူး။ ဒါပေမယ့် ခဏတာအတွင်းမှာ အဲဒီလိုမျိုးအကြိမ်များစွာဖြစ်လာရင်တော့ သိပ်မဟုတ်ချင်တော့ဘူး၊ တခုခုလုပ်မှဖြစ်တော့မပေါ့။ ဘာလုပ်ရမလဲဆိုတော့ BGP Dampening ကို အသုံးပြုပြီး ကိုယ့်ကိုကိုယ်ကာကွယ်ရတော့မှာပဲ။

Dampening ကဘာလုပ်ပေးလဲဆိုရင် အဲဒီလိုဖြစ်တဲ့ Routes တွေကို မှတ်ထားလိုက်တယ်၊ မပြောသေးဘူး ကြည့်နေတယ်ပေါ့၊ ဒီ Routes တွေဘာများထပ်ဖြစ်အုံးမလဲဆိုပြီးတော့၊ တစ်ခါပဲဖြစ်ချင်ဖြစ်မှာပေါ့၊ ဒါပေမယ့် Penalty 1000 အနေနဲ့ မှတ်ထားလိုက်တယ်။ Route Advertisement တွေဘာတွေလဲ ဘာမှအပြောင်းအလဲမလုပ်သေးဘူး။ ဖြစ်ချင်တော့ အဲဒီ Route ကထပ်ပြီးတော့ ပြဿနာတက်နေသေးတယ်ဆိုရင်တော့ Penalty ထပ်ပေးရင်းနဲ့ Suppress Limit (Default 2000) ကျော်သွားရင်တော့ အဲဒီ Route တွေကို Damp Route အနေနဲ့သတ်မှတ်ပြီး အချိန်အတိုင်းအတာတခုအတွင်းမှာ ဘယ်ကိုမှ Announcement မလုပ်တော့ဘူး။ တဖက်ကလည်း စောင့်ကြည့်နေပြီးတော့ ပြန်သုံးလို့ရအောင် Half-Life အချိန်အတွင်းမှာ Penalty ကိုပြန်လျော့ပေးပါတယ်။ Default half-life က ၁၅မိနစ်ဖြစ်ပါတယ်။ ဥပမာ မီးလာလိုက်ပြတ်လိုက်ဖြစ်နေတဲ့အချိန်မှာ မီးပြန်လာတာနဲ့ချက်ချင်းရေမတင်ပဲ စောင့်သလိုမျိုးပေါ့။ အခြေအနေကောင်းလောက်ပြီ စိတ်ချရပြီဆိုရင် တော့လုပ်ငန်းပြန်စကြတာပေါ့။ အပြင်မှာ လူကပဲ သူရဲ့အတွေ့အကြုံ ရပ်ကွက်ကမီးပေးတဲ့ အနေအထားကို ကြည့်ပြီး ကိုယ်တိုင်ဆုံးဖြတ်ပေမယ့် BGP မှာတော့ Reuse Limit ကိုပြန်ရောက်သွားတဲ့အချိန်ကြမှသာ Forwarding တွေ၊ Announcement တွေပြန်လုပ်ပါတယ်။ Default reuse limit ကတော့ 750 ပါ။ Cisco Presentation အဟောင်းတခုမှာ ပြထားတဲ့ အောက်ကပုံမှာကြည့်လိုက်ရင် ပိုပြီးမြင်သာပါလိမ့်မယ်။




အခုလို BGP Dampening သုံးလိုက်တဲ့အတွက် တဖက်ကပြဿနာဟာ ကိုယ့် Router ရဲ့ Route propagation/ Calculation တွေ၊ Forwarding/ Announcement ကိစ္စတွေမှာလာပြီးမထိခိုက်တော့ဘူးပေါ့၊ Configuration အနေနဲ့ သိပ်ပြီးတော့ရှုပ်ထွေးစရာမရှိပါဘူး ဒါပေမယ့်သူရဲ့ Dampening Factors တွေကိုစိတ်ကြိုက်ပြောင်းချင်တယ်ဆိုရင်တော့ အတွက်အချက်လေးနဲနဲလုပ်ကြည့်ရမှာပါ။

Router(config)# bgp dampening
Router(config)# bgp dampening half-life reuse suppress max-suppress [route-map map-name]

ဒီ Configuration မှာ Max_Penalty ကိုပေးမထားပေမဲ့ ဖော်မြူလာအရ တွက်လို့ရပါတယ်။ ဒီအတိုင်းတွက်လိုက်ရင် Default Value 12000 ရပါလိမ့်မယ်။
max_penalty = reuse_limit * 2 ^ (maximum_suppress_time / half_life_time)

R1#show ip bgp dampening parameters
 dampening 15 750 2000 60 (DEFAULT)
  Half-life time      : 15 mins       Decay Time       : 2320 secs
  Max suppress penalty: 12000         Max suppress time: 60 mins


Router ၃လုံးလောက်အသုံးပြုပြီး စမ်းသပ်ကြည့်လို့ရပါတယ်။ အောက်ကပုံမှာ Flap စတင်ဖြစ်တဲ့အချိန်မှာ History state ပြောင်းသွားပုံနဲ့ Penalty ဘယ်လိုပေးသွားသလဲဆိုတာ တွေ့ရပါလိမ့်မယ်။ အဲဒီကမှ Flap အရေအတွက်များလာတဲ့အခါမှာ Damp အဖြစ်ပြောင်းသွားတဲ့ အဆင့်ဆင့်ကိုပြထားပါတယ်။ ဒါပေမယ့် တခါတလေမှာ Flap ဖြစ်နေပေမဲ့ မဖြစ်မနေသုံးရတော့မယ်ဆိုရင်တော့ အဲဒီ Route ကို Damp state ကနေဖယ်ထုတ်ပေးရပါတယ်။ ဒါကိုတော့ Clear command ကိုအသုံးပြုရပါတယ်။

Router# clear ip bgp flap-statistics

























ကိုယ်တိုင် LAB လုပ်ပြီး Dampening Parameters တွေကိုပြောင်းကြည့်၊ Show command တွေနဲ့သူ့ရဲ့အလုပ်လုပ်ပုံအဆင့်ဆင့်ကိုကြည့်ချင်းအားဖြင့် ပိုပြီးနားလည်နိုင်ပါလိမ့်မယ်။

ကိုဖြိုး