မာတိကာ သို့ သွားရန်

၃ · Best-Path ရွေးချယ်မှု စည်းမျဉ်း

BGP တွင် prefix တစ်ခုတည်းဆီသို့ လမ်းကြောင်းများစွာ ရှိနေသည့်အခါ ၎င်းတို့အနက် တိတိကျကျ တစ်ခုတည်းကိုသာ အကောင်းဆုံး (best) အဖြစ် ရွေးချယ်သည် — ယင်းသည် routing table တွင် ထည့်သွင်းမည့် တစ်ခုတည်းသော လမ်းကြောင်းဖြစ်ပြီး အခြားသူများထံ ဆက်လက်ကြေညာမည့် တစ်ခုတည်းသော လမ်းကြောင်းလည်း ဖြစ်သည်။

၎င်းသည် BGP အင်တာဗျူးများတွင် အမေးအများဆုံးသော ခေါင်းစဉ်တစ်ခု ဖြစ်သည်။ အစဉ်လိုက်ကို ကျက်မှတ်ရုံသာမက အဆင့်တစ်ခုစီသည် ထိုနေရာတွင် အဘယ်ကြောင့် ရှိနေရသည်ဆိုသည့် အကြောင်းပြချက် ကို နားလည်သဘောပေါက်ရန် ပိုမိုအရေးကြီးပါသည်။


Algorithm အဆင့်ဆင့်

အထက်မှ အောက်သို့ တစ်ဆင့်ပြီးတစ်ဆင့် နှိုင်းယှဉ်သွားသည်။ ကွဲပြားခြားနားမှုကို စတင်ဖြစ်ပေါ်စေသည့် ပထမဆုံး အဆင့်က အနိုင်အရှုံးကို ဆုံးဖြတ်သည် — ထိုအဆင့်၏ အောက်တွင် ရှိသောအရာများကို စစ်ဆေးတွက်ချက်ခြင်းပင် မပြုတော့ပါ။

# အဆင့် (Step) အနိုင်ရသူ (Wins) ဤနေရာတွင် ရှိနေရသည့် အကြောင်းပြချက်
၁ Weight တန်ဖိုး အမြင့်ဆုံး Purely local ဖြစ်သော override သတ်မှတ်ချက်; ပြင်ပသို့ မကြေညာပါ
၂ Local preference တန်ဖိုး အမြင့်ဆုံး မိမိ AS ၏ မူဝါဒဆုံးဖြတ်ချက် — ပြင်ပအချက်အားလုံးထက် သာလွန်သည်
၃ Locally originated Self > Learned မိမိကိုယ်တိုင် ဖန်တီးသော route က ပြင်ပမှ ပြန်လည်ရောက်ရှိလာသော route ကို အနိုင်ရသည်
၄ AS path length အတိုဆုံး BGP တွင် အကွာအဝေး (distance metric) နှင့် အနီးစပ်ဆုံး တိုင်းတာချက်
၅ Origin IGP < EGP < Incomplete network statement သည် redistribute ပြုလုပ်ထားခြင်းထက် ပိုမိုယုံကြည်စိတ်ချရသည်
၆ MED တန်ဖိုး အနည်းဆုံး အိမ်နီးချင်း၏ အကြံပြုချက် — မိမိကိုယ်ပိုင် policy များ စစ်ဆေးပြီးမှသာ စဉ်းစားသည်
၇ eBGP over iBGP eBGP AS ကို ဖြတ်သန်းသွားလာခြင်းထက် AS ပြင်ပသို့ တိုက်ရိုက်ထွက်ခွာခြင်းက ပိုမိုမြန်ဆန်သည်
၈ Next hop ဆီသို့ IGP metric တန်ဖိုး အနည်းဆုံး Hot-potato routing — အနီးဆုံး ထွက်ပေါက်ကို ရွေးချယ်ခြင်း
၉ Oldest path သက်တမ်း အရှည်ဆုံး တည်ငြိမ်မှု tiebreak- အကြောင်းမဲ့ churn မဖြစ်စေရန်
၁၀ Lowest router ID တန်ဖိုး အနည်းဆုံး အငြင်းပွားဖွယ်မရှိသော ပုံသေ tiebreak
၁၁ Lowest neighbour IP တန်ဖိုး အနည်းဆုံး အဆုံးစွန် နောက်ဆုံး tiebreak

အလွယ်တကူ မှတ်သားနည်း

Weight · Local-pref · Originate · AS-path · Origin · MED · eBGP · IGP metric · Oldest · Router-ID · Neighbour-IP.

သို့သော် အက္ခရာကောက်နှုတ်ချက်ထက် ယေဘုယျ ပုံစံသဘောတရားက ပိုမိုအရေးကြီးပါသည် — မိမိ၏ ကိုယ်ပိုင် Policy က အရင် (အဆင့် ၁–၃)၊ ထို့နောက် Path ၏ အချက်အလက်များ (အဆင့် ၄–၆)၊ ထို့နောက် ထွက်ပေါက်ရွေးချယ်မှု (အဆင့် ၇–၈)၊ ထို့နောက် အနိုင်အရှုံးမပေါ်သဖြင့် ရွေးချယ်ရသော Tiebreaks များ (အဆင့် ၉–၁၁)။ ဤဖွဲ့စည်းပုံသဘောတရားကို နားလည်ထားပါက အစဉ်လိုက်စာရင်းကို အလွယ်တကူ ပြန်လည်တည်ဆောက်နိုင်မည် ဖြစ်သည်။


လက်တွေ့တွင် အမှန်တကယ် အသုံးပြုမည့် အဓိက ၄ ချက်

အဆင့် ၉ မှ ၁၁ အထိသည် ရည်ရွယ်ချက်ရှိရှိ ရောက်ရှိရန် ကြိုးပမ်းခဲသော tiebreaks များ ဖြစ်ကြသည်။ လက်တွေ့လုပ်ငန်းခွင်တွင် ဆုံးဖြတ်ချက်များကို အောက်ပါနေရာများ၌သာ အဆုံးအဖြတ် ပြုလုပ်လေ့ရှိသည် -

အဆင့် ၂ — Local preference။ "Provider A ကို အမြဲတမ်း ဦးစားပေးမည်" ဟူသော ရည်ရွယ်ချက်အတွက် အဓိကမောင်းတံ ဖြစ်သည်။ ၎င်းသည် AS path ကိုပင် အနိုင်ရသောကြောင့် local-pref 200 ရှိသော 5-hop path သည် local-pref 100 သာရှိသော 1-hop path ကို အနိုင်ရသည်။ ၎င်းမှာ ရည်ရွယ်ချက်ရှိရှိ ပြုလုပ်ထားခြင်းဖြစ်သည်- မိမိတို့၏ စီးပွားရေးဆိုင်ရာ သဘောတူညီချက်သည် ကွန်ရက် topology ထက် သာလွန်ပါသည်။

အဆင့် ၄ — AS path length။ Policy သတ်မှတ်မထားသည့်အခါ default အပြုအမူဖြစ်ပြီး prepending က ၎င်းကို ပြောင်းလဲကစားသည်။

အဆင့် ၆ — MED။ Default အားဖြင့် တူညီသော neighbouring AS ထံမှ လာသည့် paths များအချင်းချင်းကြားတွင်သာ နှိုင်းယှဉ်သည်။

အဆင့် ၈ — IGP metric။ Hot-potato routing ဖြစ်သည်- အခြားအရာအားလုံး သရေကျနေပါက အနီးဆုံးထွက်ပေါက်သို့ traffic ကို လွှဲပြောင်းပေးလိုက်ပြီး အခြား AS အား ဆက်လက်သယ်ဆောင်စေသည်။ မိမိအတွက် ကုန်ကျစရိတ် အသက်သာဆုံး ဖြစ်သည်။


အစဉ်လိုက်သဘောတရားသည် အလွတ်ကျက်ခြင်းထက် အဘယ်ကြောင့် သာလွန်သနည်း

10.0.0.0/8 ဆီသို့ လမ်းကြောင်း ၂ ခု ရှိသည်ဆိုပါစို့ -

လမ်းကြောင်း A လမ်းကြောင်း B
Local pref 200 100
AS path 65001 65002 65003 (၃ ခု) 65004 (၁ ခု)
MED 500 50

လမ်းကြောင်း A က အနိုင်ရပါသည်၊ အဆင့် ၂ တွင် ဆုံးဖြတ်ချက် ပြီးသွားသည်။ လမ်းကြောင်း B ၏ များစွာ ပိုမိုတိုတောင်းသော path နှင့် ပိုမိုကောင်းမွန်သော MED တို့ကို လုံးဝ ထည့်သွင်းနှိုင်းယှဉ်ခွင့် မရတော့ပါ၊ အကြောင်းမှာ local preference က ဆုံးဖြတ်ပြီးသွားသောကြောင့် ဖြစ်သည်။

၎င်းသည် လက်တွေ့လောကတွင် အဖြစ်အများဆုံး အံ့အားသင့်ရသည့် အချက်ဖြစ်သည် — "ပိုတိုတဲ့ လမ်းကြောင်းကို ဘာလို့ မသုံးတာလဲ။" အမြဲတစေနီးပါး၊ ပိုရှည်သော လမ်းကြောင်းပေါ်တွင် တစ်စုံတစ်ယောက်က local-pref ကို မြှင့်တင်သတ်မှတ်ထားခဲ့သောကြောင့် ဖြစ်သည်။

ယခု ထိုလမ်းကြောင်းနှစ်ခုလုံးတွင် local-pref က 100 တူညီနေသည်ဆိုပါစို့ -

ထိုအခါ လမ်းကြောင်း B က အနိုင်ရပါမည်၊ အဆင့် ၄ ရှိ တိုတောင်းသော AS path ကြောင့် ဖြစ်သည်။ MED ကို ဆက်လက်နှိုင်းယှဉ်ရန် မလိုသေးပေ။


Device ပေါ်တွင် ဖတ်ရှုစစ်ဆေးခြင်း

show ip bgp 172.16.30.0/24
BGP routing table entry for 172.16.30.0/24
 Paths: 1 available
  65002
    10.0.13.3 from 10.0.13.3 (3.3.3.3)
      Origin IGP, metric 0, localpref 100, IGP metric 0, weight 0, tag 0
      Received 00:29:38 ago, valid, external, best

အဆုံးရှိ စကားလုံး ၃ လုံးသည် အဆုံးအဖြတ် ရလဒ်ဖြစ်သည် -

  • valid — Next hop ကို resolve လုပ်၍ ရရှိသည်။ ဤအချက်မပြည့်စုံပါက လုံးဝ စဉ်းစားမည် မဟုတ်ပါ။
  • external — eBGP မှတစ်ဆင့် သင်ယူရရှိသည် (အဆင့် ၇ အတွက် သက်ဆိုင်သည်)။
  • best — ဤလမ်းကြောင်းက အနိုင်ရရှိသည်။

လမ်းကြောင်းများစွာ ရှိနေပါက စာရင်းအတိုင်း attribute တစ်ခုချင်းစီကို ထိပ်ဆုံးမှ အောက်သို့ နှိုင်းယှဉ်သွားပါ၊ ပထမဆုံး ကွဲပြားမှုသည် သင်၏ အဖြေဖြစ်လိမ့်မည်။ show ip bgp တွင် > သည် အကောင်းဆုံး best path ကို ညွှန်ပြပြီး * သည် valid ဖြစ်သော paths များကို ညွှန်ပြသည်။

အကောင်းဆုံး Best Path တစ်ခုတည်းကိုသာ ကြေညာသည်

BGP သည် အနိုင်ရရှိသော လမ်းကြောင်းတစ်ခုတည်းကိုသာ အိမ်နီးချင်းများထံ ကြေညာပြီး အခြားမည်သည့်အရာကိုမျှ မကြေညာပါ၊ ထို့ကြောင့် လမ်းကြောင်းတစ်ခုသည် အလွန်ကောင်းမွန်နေသော်လည်း downstream router များအတွက် လုံးဝ မမြင်ရဘဲ ဖြစ်နေနိုင်သည်။ အိမ်နီးချင်း router က သင်မြင်နေရသော prefix တစ်ခုကို "လက်မခံရရှိပါ" ဟု ပြောလာပါက သင့် router ပေါ်တွင် ထိုလမ်းကြောင်းသည် ရိုးရိုးရှိနေရုံသာမက အမှန်တကယ် best ဖြစ်နေသလား စစ်ဆေးကြည့်ပါ။

၎င်းသည် BGP အနေဖြင့် အင်တာနက်ကွန်ရက်ကြီးတစ်ခုလုံးအား ညီညွတ်သော မြင်ကွင်းတစ်ခုကို ပြသပေးနိုင်သည့် အကြောင်းရင်းလည်း ဖြစ်သည် — Router တိုင်းသည် prefix တစ်ခုအတွက် လမ်းကြောင်းတစ်ခုတည်းကိုသာ ကြေညာပေးသည်။


Multipath အသုံးပြုခြင်း

Default အားဖြင့် BGP သည် တူညီစွာ ကောင်းမွန်သော လမ်းကြောင်းများစွာ ရှိနေလျှင်ပင် လမ်းကြောင်းတစ်ခုတည်းကိုသာ routing table တွင် ထည့်သွင်းပေးသည်။ Provider တစ်ခုတည်းဆီသို့ တူညီသော links နှစ်ခု ရှိနေသည့်အခါ ၎င်းသည် အလဟဿ ဖြစ်စေသည်။

router bgp 65001
 maximum-paths 4

လမ်းကြောင်းများ multipath အဖြစ် ရွေးချယ်ခံရရန်အတွက် IGP metric အထိ အရာအားလုံး သရေကျနေရမည်ဖြစ်ပြီး တူညီသော AS path length ရှိရမည် — ထို့အပြင် eBGP အတွက် default အားဖြင့် တူညီသော neighbouring AS ဖြစ်ရပါမည်။ မတူညီသော ASes များဆီသို့ တူညီသော links များ ရှိနေပါက as-path multipath-relax က ထိုနောက်ဆုံး ကန့်သတ်ချက်ကို ဖြေလျှော့ပေးသည်။

Best path ကို ပုံမှန်အတိုင်း ဆက်လက်ရွေးချယ်ဆဲဖြစ်ပြီး; Multipath သည် တူညီသော အခြားလမ်းကြောင်းများကို ၎င်းနှင့်အတူ ယှဉ်တွဲ၍ routing table ထဲ ထည့်သွင်းပေးခြင်းသာ ဖြစ်သည်။ အကောင်းဆုံး best path တစ်ခုတည်းကိုသာ အခြားသူများထံ ဆက်လက်ကြေညာပေးသည်။


Deterministic နှင့် Oldest-Path နှိုင်းယှဉ်ချက်

အဆင့် ၉ — သက်တမ်းအရှည်ဆုံး path ကို ရွေးချယ်ခြင်း — သည် တည်ငြိမ်မှုအတွက် ဖြစ်သော်လည်း ၎င်းသည် ရလဒ်ကို ရောက်ရှိလာသည့် အချိန်အစဉ်လိုက် (arrival order) အပေါ် မူတည်စေသည်။ တူညီသော tables များရှိသည့် router နှစ်ခုသည် မတူညီသော အချိန်အစဉ်အတိုင်း routes များကို လက်ခံရရှိခဲ့သဖြင့် မတူညီသော လမ်းကြောင်းများကို ရွေးချယ်မိနိုင်ပြီး debug လုပ်ရန် အလွန်စိတ်ပျက်ဖွယ် ကောင်းသည်။

bgp deterministic-med နှင့် ဆက်စပ် settings များသည် အနည်းငယ် churn ဖြစ်နိုင်သော်လည်း နှိုင်းယှဉ်မှုကို ရောက်ရှိသည့် အချိန်အပေါ် မမှီခိုအောင် ပြုလုပ်ပေးနိုင်သည်။ Default စနစ်သည် တိကျသေချာမှုထက် တည်ငြိမ်မှုကို ရွေးချယ်ထားကြောင်းနှင့် ၎င်းသည် "ဤ router နှစ်ခု ဘာကြောင့် သဘောထားကွဲလွဲနေသနည်း" ဟူသော ပြဿနာ၏ လက်တွေ့အကြောင်းရင်းတစ်ခု ဖြစ်ကြောင်း သိထားသင့်သည်။


ပြဿနာရှာဖွေ ဖြေရှင်းနည်း (Troubleshooting method)

မှားယွင်းသော လမ်းကြောင်းက အနိုင်ရနေသည့်အခါ စာရင်းအတိုင်း အစဉ်လိုက် စစ်ဆေးသွားပြီး ပထမဆုံး ကွဲပြားသည့် နေရာတွင် ရပ်တန့်ပါ -

show ip bgp <prefix>                    # paths အားလုံးနှင့် attributes အားလုံးကို ကြည့်ရှုရန်
show ip bgp <prefix> detail             # best မဖြစ်ရသည့် အကြောင်းရင်း အပါအဝင် အသေးစိတ် ကြည့်ရှုရန်

၁။ Weight ကွဲပြားနေသလား။ ဤ router တွင်သာ သက်ဆိုင်သည် — မေ့ကျန်ခဲ့သော override ရှိမရှိ စစ်ဆေးပါ။ ၂။ Local-pref ကွဲပြားနေသလား။ အမြဲတစေနီးပါး ဤအဆင့်က အဖြေဖြစ်သည် — Route-map ကို ရှာဖွေစစ်ဆေးပါ။ ၃။ AS path length ကွဲပြားနေသလား။ ပုံမှန် အပြုအမူဖြစ်သည် — Prepending လုပ်ထားသလား စစ်ဆေးပါ။ ၄။ Origin ကွဲပြားနေသလား။ တစ်ဖက်က redistribute လုပ်ထားသည် (?)။ ၅။ MED ကွဲပြားနေသလား။ တူညီသော neighbour AS အတွင်း၌သာ နှိုင်းယှဉ်သည်။ ၆။ သရေကျနေဆဲလား။ IGP metric နှင့် အခြား tiebreaks များဆီသို့ ရောက်ရှိသွားပြီ ဖြစ်သည်။

အခြားအရာအားလုံးထက် အဆင့် ၁–၂ ကို အရင်ဆုံး စစ်ဆေးပါ။ "BGP က လမ်းကြောင်းမှား ရွေးနေတယ်" ဟူသော ပြဿနာများ၏ အစိတ်အပိုင်း အများစုသည် တစ်စုံတစ်ယောက် သတ်မှတ်ခဲ့သော local preference အတိုင်း တိကျစွာ အလုပ်လုပ်နေခြင်းသာ ဖြစ်သည်။


နောက်တစ်ခု: Policy နှင့် filtering → — ဤ attributes များကို မည်သို့ သတ်မှတ်ထိန်းချုပ်မည်နည်း။