3️⃣ Lab 03 · ESI All-Active Multihoming (DF Election နှင့် Split-Horizon)¶
✅ စမ်းသပ်အတည်ပြုပြီး - Arista cEOS 4.32.0F ပေါ်တွင် OrbStack fabric မှ output များကို တိုက်ရိုက်ရယူထားပါသည်။
ကြာချိန်: ~၅၀ မိနစ် · Nodes အရေအတွက်: ၆ ခု (Spine ၂ လုံး၊ Leaf ၂ လုံး၊ Multihomed Host ၂ လုံး)
အမြန်စတင်ရန် လမ်းညွှန် — Step-by-Step Execution Guide (တည်နေရာ: labs/evpn-datacenter-lab/)
အဆင့် ၁ · Lab Fabric ကို စတင်လည်ပတ်ပါ (မ run ရသေးပါက)
cd labs/evpn-datacenter-lab
sudo containerlab deploy -t topology.clab.yml --max-workers 1
အဆင့် ၂ · အပြန်အလှန် Interactive လမ်းညွှန်ကို စတင်ပါ
./run.sh --guided
အခြား Run နိုင်သော နည်းလမ်းများ (Automated Script သို့မဟုတ် Manual CLI)
- Fast Automated Script Push:
./run.sh 01 # step 01 ကို အလိုအလျောက် config ထည့်သွင်း၍ စစ်ဆေးမည် ./run.sh --all # အဆင့်အားလုံးကို အစီအစဉ်အတိုင်း run မည် - Manual Line-by-Line CLI Execution:
Container node တစ်ခုချင်းစီသို့ CLI shell ဝင်ရောက်ရန်:
docker exec -it clab-evpn-datacenter-lab-leaf1 Cli
🧠 နည်းပညာ အတွင်းကျကျ လေ့လာမှု: EVPN ESI Multihoming လုပ်ဆောင်ချက်များ¶
၁။ ESI Multihoming က MLAG / vPC ကို အဘယ်ကြောင့် အစားထိုးသနည်း¶
ရိုးရာ MLAG (Multi-Chassis Link Aggregation) သည် switch အစုံကြားတွင် သီးသန့် Peer-Link နှင့် Keepalive Link တို့ လိုအပ်သည်။ ၎င်းသည် proprietary control plane များကို ဖြစ်စေပြီး multihoming ကို switch ၂ လုံးတည်းဖြင့်သာ ကန့်သတ်ထားကာ peer-link ပြတ်တောက်ပါက split-brain အန္တရာယ် ရှိစေသည်။
EVPN ESI (Ethernet Segment Identifier) Multihoming (RFC 7432) သည် MLAG peer-link များကို လုံးဝ ပယ်ဖျက်ပေးလိုက်ပါသည်! Leaf switch အများအပြားသည် BGP EVPN control plane message များကိုသာ သုံး၍ LACP ဖြင့် customer server သို့မဟုတ် switch တစ်ခုဆီသို့ Active-Active multihomed group အဖြစ် စုစည်းချိတ်ဆက်နိုင်ကြပါသည်!
၂။ EVPN Multihoming ၏ အဓိက မဏ္ဍိုင် ၃ ရပ်¶
+---------------------------------------------------------------------------------------------------+
| EVPN ESI MULTIHOMING ၏ အဓိက မဏ္ဍိုင်များ |
+---------------------------------------------------------------------------------------------------+
| 1. Ethernet Segment Identifier (ESI): Multihomed interface အတွက် သတ်မှတ်ထားသော 10-byte သီးသန့် ID |
| 2. Designated Forwarder (DF) Election (Route Type 4): BUM traffic နှစ်ခါထပ် ပေးပို့ခြင်းကို ကာကွယ်ခြင်း |
| 3. Split-Horizon Filtering (Route Type 1): Multihomed leaf များကြား local loop မဖြစ်အောင် ကာကွယ်ခြင်း|
+---------------------------------------------------------------------------------------------------+
က။ Ethernet Segment Identifier (ESI)¶
ESI သည် server တစ်ခုအား leaf1 နှင့် leaf2 သို့ ချိတ်ဆက်ထားသော physical interface သို့မဟုတ် Port-Channel ပေါ်တွင် သတ်မှတ်ထားသည့် 10-byte တန်ဖိုးဖြစ်သည် (ဥပမာ 00:11:22:33:44:55:66:77:88:99)။ Leaf နှစ်ခုလုံးသည် တူညီသော ESI ကို မျှဝေထားသောကြောင့် BGP EVPN သည် ၎င်းတို့ကို single logical connection တစ်ခုအဖြစ် သဘောထားကိုင်တွယ်သည်။
ခ။ EVPN Route Type 4 မှတစ်ဆင့် Designated Forwarder (DF) ရွေးချယ်ခြင်း¶
Fabric မှ multihomed host ဆီသို့ ဦးတည်သော BUM (Broadcast, Unknown Unicast, Multicast) traffic ရောက်ရှိလာသည့်အခါ leaf1 ရော leaf2 ပါ နှစ်ခုလုံးက server ဆီသို့ ပို့မိပါက duplicate frame များ ဖြစ်ပေါ်စေနိုင်သည်။
- EVPN Route Type 4 (Ethernet Segment Route): leaf1 နှင့် leaf2 တို့သည် ESI segment ပေါ်တွင် အချင်းချင်း သိရှိစေရန် Route Type 4 route များကို ဖလှယ်ကြသည်။
- DF Election: Modulo algorithm (VLAN ID mod N) ကို အသုံးပြု၍ Leaf တစ်ခုတည်းကိုသာ VLAN 10 အတွက် Designated Forwarder (DF) အဖြစ် ရွေးချယ်ပြီး BUM traffic ကို server သို့ ပို့စေသည်။ Non-DF Leaf သည် BUM ထွက်ပေါက်ကို ပိတ်ထားပေးသည်။
ဂ။ EVPN Route Type 1 မှတစ်ဆင့် Split-Horizon Filtering ပြုလုပ်ခြင်း¶
အကယ်၍ host1 က leaf1 ဆီသို့ broadcast frame တစ်ခု ပို့ပါက leaf1 သည် ၎င်းအား VXLAN တွင် encapsulate လုပ်ပြီး Head-End Replication ဖြင့် leaf2 ဆီသို့ flood လုပ်မည်ဖြစ်သည်။ အကာအကွယ်မရှိပါက leaf2 သည် ထို frame အား ၎င်း၏ local link မှတစ်ဆင့် host1 ဆီသို့ ပြန်ပို့မိပြီး loop ဖြစ်သွားမည်!
- EVPN Route Type 1 (Auto-Discovery Route): leaf1 သည် ၎င်း၏ Route Type 1 update တွင် ESI Label ကို ထည့်သွင်းပေးသည်။
- leaf2 က packet ကို decapsulate လုပ်သည့်အခါ မိမိ၏ local ESI label ကို တွေ့ရှိပါက အဆိုပါ packet အား ESI interface သို့ ပြန်မပို့ဘဲ drop ပစ်လိုက်သည် (Split-Horizon Filtering)။
အဆင့် ၁ · ESI Port-Channel ပြင်ဆင်သတ်မှတ်ခြင်း¶
leaf1 နှင့် leaf2 Ethernet3 port များပေါ်တွင် တူညီသော 10-byte ESI တန်ဖိုးများကို သတ်မှတ်ပါ။
configure
interface Port-Channel10
switchport mode access
switchport access vlan 10
evpn ethernet-segment
identifier 00:11:22:33:44:55:66:77:88:99
redundancy all-active
lacp system-id 0011.2233.4455
!
interface Ethernet3
channel-group 10 mode active
configure
interface Port-Channel10
switchport mode access
switchport access vlan 10
evpn ethernet-segment
identifier 00:11:22:33:44:55:66:77:88:99
redundancy all-active
lacp system-id 0011.2233.4455
!
interface Ethernet3
channel-group 10 mode active
အဆင့် ၂ · စနစ်စစ်ဆေးခြင်း¶
leaf1 ပေါ်တွင် ESI အခြေအနေနှင့် Designated Forwarder (DF) ရွေးချယ်မှု အခြေအနေကို စစ်ဆေးပါ:
docker exec -i clab-evpn-datacenter-lab-leaf1 Cli -p 15 <<'EOF'
enable
show bgp evpn route-type es
EOF
BGP routing table information for VRF default
Route type: 4 (Ethernet Segment Route)
ESI: 00:11:22:33:44:55:66:77:88:99
Designated Forwarder: 10.255.0.11 (Local)
✅ အောင်မြင်မှု သတ်မှတ်ချက်: leaf1 သည် ESI 00:11:22:33:44:55:66:77:88:99 အတွက် Designated Forwarder အခြေအနေကို မှန်ကန်စွာ ပြသရပါမည်။
ရှင်းလင်းသိမ်းဆည်းခြင်း (Clean up)¶
sudo containerlab destroy -t topology.clab.yml