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

၅ · iBGP ကို ချဲ့ထွင်ခြင်း (Scaling iBGP)

iBGP တွင် စည်းမျဉ်းတစ်ခု ရှိသည်- iBGP peer တစ်ခုထံမှ သင်ယူရရှိသော route ကို အခြား iBGP peer တစ်ခုထံ ဘယ်တော့မှ ထပ်မံကြေညာခွင့် မရှိပါ (never re-advertised)။

၎င်းသည် Loop ကာကွယ်ရေး ယန္တရားဖြစ်သည် — iBGP သည် AS path ကို prepend မလုပ်သောကြောင့် eBGP ကဲ့သို့ loops များကို ရှာဖွေဖော်ထုတ်နိုင်စွမ်း မရှိပေ။ ဤစည်းမျဉ်း၏ အပေးအယူပေးဆပ်မှုမှာ iBGP router တိုင်းသည် route တိုင်းကို တိုက်ရိုက် ကြားသိနေရမည် ဖြစ်သည်။


Full-Mesh ပြဿနာ

Router တိုင်းသည် အခြား router တိုင်းနှင့် အပြန်အလှန် peer ဖွဲ့စည်းရသည်: n(n−1)/2 sessions လိုအပ်သည်။

Routers အရေအတွက် Sessions အရေအတွက်
၅ ၁၀
၁၀ ၄၅
၂၀ ၁၉၀
၅၀ ၁,၂၂၅
၁၀၀ ၄,၉၅၀

Session အရေအတွက် များပြားခြင်းတစ်ခုတည်း မဟုတ်ပါ။ Router အသစ်တစ်ခု ထပ်မံထည့်သွင်းတိုင်း ရှိပြီးသား router တိုင်းကို ဝင်ရောက် configure လုပ်ရသည် — ကွန်ရက် ကြီးထွားလာသည်နှင့်အမျှ change window ကာလ ပိုမိုရှည်လျားလာပြီး config အမှားတစ်ခုတည်းဖြင့် sessions များ ပြုတ်ကျနိုင်သော protocol တစ်ခုအတွက် အလွန်အန္တရာယ်များသည်။

ဖြေရှင်းနည်း ၂ သွယ် ရှိသည်။ တစ်ခုကို နေရာတိုင်းတွင် အသုံးပြုကြပြီး အခြားတစ်ခုမှာမူ သမိုင်းဝင်အဖြစ်သာ ကျန်ရစ်တော့သည်။


Route Reflectors

Route Reflector (RR) သည် စည်းမျဉ်းကို ချိုးဖောက်ခွင့်ရှိသည်- ၎င်းသည် iBGP routes များကို မိမိ၏ clients များထံ ပြန်လည်ကြေညာပေးခွင့် ရှိသည်။

graph TD
    RR["Route Reflector"]
    C1["Client 1"] --- RR
    C2["Client 2"] --- RR
    C3["Client 3"] --- RR
    classDef r fill:#2e7d32,stroke:#a5d6a7,color:#ffffff,stroke-width:2px,font-size:14px;
    classDef c fill:#1565c0,stroke:#90caf9,color:#ffffff,stroke-width:2px,font-size:14px;
    class RR r; class C1,C2,C3 c;

Clients များသည် reflector နှင့်သာ peer ဖွဲ့ကြသည်။ Sessions အရေအတွက်သည် n(n−1)/2 မှသည် ခန့်မှန်းခြေ n ခုအထိ ကျဆင်းသွားသည်။

! on the reflector
router bgp 65001
 neighbor 2.2.2.2 remote-as 65001
 neighbor 2.2.2.2 route-reflector-client

Reflector ပေါ်တွင်သာ configure လုပ်ရန် လိုအပ်သည် — Client သည် သာမန် iBGP speaker တစ်ခုသာဖြစ်ပြီး မိမိကိုယ်ကို client ဖြစ်မှန်းပင် မသိရှိပေ။ ဤအချက်က route reflection ကို ကွန်ရက်မပြတ်တောက်စေဘဲ အဆင့်ဆင့် တပ်ဆင်အသုံးပြုနိုင်စေခြင်း (deployable incrementally) ဖြစ်သည်။

Reflection စည်းမျဉ်းများ

Reflector က မည်သို့ဆောင်ရွက်မည်ဆိုသည်မှာ route မည်သည့်နေရာမှ လာသည်အပေါ် မူတည်သည် -

သင်ယူရရှိသော နေရာ မည်သူ့ထံ ပြန်လည် ထင်ဟပ်ကြေညာပေးသနည်း (Reflected to)
Client အခြား clients များ နှင့် Non-clients များထံသို့
Non-client Clients များထံသို့သာလျှင်
eBGP လူတိုင်းထံသို့

အလယ်အဆင့်သည် အရေးကြီးပါသည်- Non-client ထံမှ ရရှိသော routes များကို အခြား non-clients များထံ ပြန်လည်မပေးပို့ပါ။ ထို့ကြောင့် Non-clients အချင်းချင်းကြားတွင်မူ full mesh ဆက်လက် လိုအပ်နေဆဲ ဖြစ်သည်။

AS Path မပါဘဲ Loop ကာကွယ်ခြင်း

Reflection ပြုလုပ်ခြင်းသည် full-mesh စည်းမျဉ်းက ကာကွယ်ပေးထားသော loop ဖြစ်နိုင်ခြေကို ပြန်လည်ခေါ်ဆောင်လာသဖြင့် ၎င်းအစား attributes နှစ်ခုဖြင့် အစားထိုးကာကွယ်သည် -

Attribute လုပ်ဆောင်ချက် (Job)
ORIGINATOR_ID ဤ route ကို စတင်ကြေညာခဲ့သော router ၏ router ID ဖြစ်သည်။ မိမိကိုယ်ပိုင် ID ပါဝင်နေသော route ကို လက်ခံရရှိသည့်အခါ router က ထို route ကို ပယ်ဖျက်သည်။
CLUSTER_LIST Route ဖြတ်သန်းခဲ့သော cluster IDs များ စာရင်းဖြစ်သည်။ မိမိကိုယ်ပိုင် cluster ID ကို တွေ့ရှိသော reflector သည် ထို route ကို ပယ်ဖျက်သည်။

နှစ်ခုစလုံးသည် Optional non-transitive ဖြစ်ကြသည် — မိမိ AS အတွင်း၌သာ တည်ရှိပြီး ပြင်ပသို့ ဘယ်တော့မှ မပေါက်ကြားပါ။

Cluster IDs ဖြင့် Redundancy တည်ဆောက်ရာတွင် သတိထားရန်

Reflector တစ်လုံးတည်း ထားရှိခြင်းသည် single point of failure ဖြစ်စေသောကြောင့် နှစ်လုံး ထားရှိလေ့ရှိသည်။ ထို့နောက် အောက်ပါတို့ကို ဆုံးဖြတ်ရမည် -

နှစ်လုံးစလုံးတွင် တူညီသော Cluster ID သတ်မှတ်ခြင်း — Reflector များသည် တစ်ခု၏ reflected routes များကို အခြားတစ်ခုက လျစ်လျူရှုကြသည် (Cluster-list စစ်ဆေးမှု အလုပ်လုပ်ခြင်း ဖြစ်သည်)။ Clients များသည် လမ်းကြောင်းအားလုံးကို reflectors နှစ်ခုစလုံးမှတစ်ဆင့် ရရှိနေဆဲဖြစ်ပြီး memory သုံးစွဲမှု သက်သာသည်။ သို့သော် client တစ်ခုသည် reflector တစ်ခုနှင့် session ပြတ်တောက်သွားပါက paths အချို့ ဆုံးရှုံးသွားနိုင်သည်။

မတူညီသော Cluster IDs များ သတ်မှတ်ခြင်း — Reflector တစ်ခုစီသည် အခြားတစ်ခု၏ routes များကို အသစ်အဖြစ် မှတ်ယူသဖြင့် clients များထံတွင် paths ပိုမိုများပြားစွာ ရှိနေပြီး redundancy ပိုမိုခိုင်မာသည်၊ သို့သော် memory ပိုမိုသုံးစွဲပြီး ကြေညာချက်များ နှစ်ဆဖြစ်စေသည်။

ခေတ်သစ်ကွန်ရက်များတွင် မတူညီသော Cluster IDs ကို ပိုမိုရွေးချယ်ကြသည်; ကွန်ရက်ပြတ်တောက်ခြင်းထက် memory ကုန်ကျမှုက ပိုမိုသက်သာသောကြောင့် ဖြစ်သည်။

Reflection ၏ ကုန်ကျစရိတ်

လမ်းကြောင်း ကွဲပြားစုံလင်မှု လျော့နည်းခြင်း (Path diversity)။ Reflector သည် clients များထံသို့ ၎င်း၏ ကိုယ်ပိုင် best path တစ်ခုတည်းကိုသာ ကြေညာပေးသည်။ Full mesh တွင် router တိုင်းသည် ရွေးချယ်စရာ paths အားလုံးကို မြင်တွေ့ရသော်လည်း၊ Route reflection တွင်မူ clients များသည် reflector က ရွေးချယ်ပေးလိုက်သော လမ်းကြောင်းတစ်ခုတည်းကိုသာ မြင်တွေ့ရသည် — ထို reflector ၏ IGP တည်နေရာသည် client နှင့် မတူညီနိုင်ပေ။

၎င်းသည် အကောင်းဆုံးမဟုတ်သော လမ်းကြောင်းရွေးချယ်မှု (sub-optimal routing) ကို ဖြစ်ပေါ်စေနိုင်သည်၊ အကြောင်းမှာ အဆင့် ၈ (Next hop ဆီသို့ IGP metric) ကို client ၏ အမြင်မှ မဟုတ်ဘဲ reflector ၏ အမြင်မှ တွက်ချက်ထားသောကြောင့် ဖြစ်သည်။

add-path သည် reflector အား prefix တစ်ခုအတွက် paths များစွာ ကြေညာခွင့်ပေးခြင်းဖြင့် ဤပြဿနာကို သက်သာစေသော်လည်း memory နှင့် update volume ကို ပိုမိုတိုးပွားစေသည်။


Confederations

AS ကြီးတစ်ခုတည်းကို sub-ASes အသေးစားများစွာအဖြစ် ခွဲခြမ်းလိုက်ခြင်း ဖြစ်သည်။ Sub-AS တစ်ခုချင်းစီအတွင်း full mesh ပြုလုပ်ပြီး; Sub-ASes အချင်းချင်းကြားတွင်မူ iBGP attributes များကို ထိန်းသိမ်းထားသော eBGP ပုံစံ peering ဖြင့် ချိတ်ဆက်သည်။

router bgp 65100
 bgp confederation identifier 65001
 bgp confederation peers 65101 65102

ပြင်ပကမ္ဘာသည် 65001 ကိုသာ မြင်တွေ့ရသည်; အတွင်းပိုင်းတွင်မူ AS-path အခြေခံ loop prevention ပါရှိသော sub-ASes များ ရှိနေသည်။

၎င်းသည် အလုပ်ဖြစ်သော်လည်း ယခုအခါ မည်သူမျှ မရွေးချယ်ကြတော့ပေ။ Confederations သည် မိမိ၏ AS numbering စနစ်တစ်ခုလုံးကို အသစ်ပြန်လည်ဒီဇိုင်းဆွဲရန် လိုအပ်ပြီး စတင်ပြောင်းလဲချိန်တွင် အလွန်အနှောင့်အယှက်များစေသည်; Route reflection မှာမူ အဆင့်ဆင့် တိုးချဲ့နိုင်သည် — Reflector တစ်လုံး configure လုပ်ပါ၊ clients များကို ၎င်းဆီ ညွှန်ပြပါ၊ ပြီးစီးသွားပြီ။ Confederations သည် စောစီးစွာကတည်းက စတင်တပ်ဆင်ခဲ့သော ကွန်ရက်အဟောင်းကြီးများတွင်သာ အဓိက ကျန်ရစ်တော့သည်။

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


နှိုင်းယှဉ်ချက် (Comparison)

Route Reflectors Confederations
Sessions အရေအတွက် ~n Sub-AS တစ်ခုစီအလိုက် full mesh
Loop ကာကွယ်ရေး ယန္တရား ORIGINATOR_ID + CLUSTER_LIST Sub-ASes များအကြား AS path
ဖြန့်ကျက်တပ်ဆင်မှု တစ်ဆင့်ချင်း ပြုလုပ်နိုင်သည် (incremental) AS တစ်ခုလုံး အသစ်ပြန်ဆွဲရသည်
Config ပြုလုပ်ရမှု ဝန်ထုပ်ဝန်ပိုး Reflector ပေါ်တွင်သာ Router တိုင်းပေါ်တွင်
ယနေ့ခေတ် အသုံးများမှု ဟုတ်ကဲ့၊ အဓိက လွှမ်းမိုးထားသည် ရှားပါးသည်၊ အမွေအနှစ်ဟောင်းဖြစ်သည်

ဤအရာကို နောက်ထပ် မည်သည့်နေရာတွင် တွေ့ရမည်နည်း

Route reflection သည် သီးခြားနည်းပညာတစ်ခု မဟုတ်ပါ — ခေတ်သစ် fabric တိုင်းနီးပါးကို ဤနည်းလမ်းဖြင့်သာ တည်ဆောက်ထားကြသည် -

  • Phase 4 · EVPN တွင် spines များကို iBGP-EVPN overlay အတွက် route reflectors များအဖြစ် အသုံးပြုသည်။ Leaves များသည် spines များနှင့်သာ peer ဖွဲ့ကြပြီး အထက်ပါ စံပုံစံအတိုင်း အတိအကျ ဖြစ်သည်။
  • Phase 3 · MPLS L3VPN တွင် PEs များအကြား VPNv4 routes များကို ဤနည်းလမ်းဖြင့်ပင် reflect ပြုလုပ်ပေးသည်။

Phase 4 lab တွင် ၎င်းကို လက်တွေ့ အသုံးပြုထားပြီးဖြစ်သည် — ယခုအခါ စည်းမျဉ်းများကို သဘောပေါက်နားလည်သွားပြီဖြစ်ရာ ၎င်း၏ overlay configuration ကို ပြန်လည်ဖတ်ရှုသင့်ပါသည်။


နောက်တစ်ခု: အင်တာဗျူး မေးခွန်းများ →