NIC Bonding

NIC Bonding ဆိုတာကတော့ Network Card 2 ခု (သို့)2 ခုထပ်ပိုသော Physical Network Card တွေကိုပေါင်းစပ် ပြီးတော့ Logical Network Interface တစ်ခုအနေနဲ့ ဖန်တီးလိုက်ခြင်းပြဖြစ်ပါတယ်။ NIC Bonding ကိုတစ်နည်း အားဖြင့် NIC Teaming လို့လဲခေါ်ပါသေးတယ်။NIC Bonding လုပ်ရတယ့်ရည်ရွက်ချက်က Redundancy လိုချင်လို့ပဲဖြစ်ပါတယ်။ ပုံပါအတိုင်း Physical Network Interface နှစ်ခုကို ပေါင်းစပ်လိုက်ပြီး Logical Network Interface Card တစ်ခုအဖြစ် ဖန်တီးလိုက်ခြင်းပဲဖြစ်ပါသည်။Bonding လုပ်ထားခြင်းဖြင့် Physical Network Card တစ်ခုမှ Network Cable Unplugged ဖြစ်သွားသည့်အခါမျိုးမှာ Connection မပျက်သွား အောင်ထိန်းပေးထားတာပဲဖြစ်ပါတယ်။NIC Bonding လုပ်ခြင်းဖြင့် Bandwidth လဲတိုးပွားစေသလို Physical Network Card တစ်ခုပျက်သွားခဲ့ရင်တောင် ကျန်သေးသည့်နောက် Physical Network Card တစ်ခုနှင့် ထပ်မံ အလုပ်လုပ်နေမည်ဖြစ်သည်။NIC Bonding မလုပ်ထားခဲ့ဘူးဆိုရင်တော့ Network Cable Unplugged ဖြစ်သွားတာနဲ့ Connection Down သွားမှာပဲဖြစ်ပါတယ်။

အရင်ဆုံးအနေနဲ့ ကျွန်တော်တို့ရဲ့ Server ထဲမှာ Physical Network Card နှစ်ခု (or) နှစ်ခု ထပ်ပို၍စိုက်ထားရပါ မယ်။ အခုပုံပါအတိုင်း ကျွန်တော် physical Network Card နှစ်ခုက enp0s3 , enp0s8 ပဲဖြစ်ပါတယ်။ nmcli device status ကတော့ Network Card ကို စစ်ဆေးသည့် Command ပဲဖြစ်ပါတယ်။

နောက်ထပ် Active ဖြစ်နေသည့် Network Connection တွေရဲ့ UUID ကိုပါမြင်နေရပြီဖြစ်ပါသည်။

အဲလိုစစ်ပြီးသွားရင်တော့ NIC Bonding လုပ်ရန် Network Interface 2ခု ရဲ့ UUID တွေကိုဖျက်ချပြီးတော့ logical link တစ်ခုဖန်တီးပါမယ်။Network Connection ကိုဖျက်ချဖို့အတွက် Command ကတော့

$ nmcli connection delete UUID

UUID ဖြည့်သည့်နေရာမှာ စာလုံးအပြည့်ရိုက်စရာမလိုဘဲ UUID Name ရဲ့ 3လုံးလောက်ရိုက်ပြီးတာနဲ့ Tab Key တွန်းလိုက်လို့ရပါတယ်။ ဖြတ်တာအောင်မြင်ရင်တော့ ပုံပါအတိုင်း Connection ‘enp0s3’ UUID Successfully deleted ဆိုပြီးပြမှာဖြစ်ပါတယ်။

Delete လုပ်ပြီးသွားရင်ဆိုရင်တော့ အခြေအနေလေးသိရအောင် Network Device Status ကို ပြန် စစ်ဆေးပါမယ်။Command ကတော့ $ nmcli device status ဆိုပြီးရိုက်ရပါမယ်။စစ်လိုက်တာနဲ့ Network Connection နှစ်ခုလုံးက disconnected ဖြစ်သွားပီဆိုတာပြပါလိမ့်မည်။

အခုလက်ရှိ nic bonding လုပ်ပြီးLogical Link ဖန်တီးဖို့အတွက်Network Interface နှစ်ခုကို Team Interface အနေဖြင့်တစ်ခုတည်းဖြစ်အောင်ဖန်တီးရပါတော့မယ်။ဖန်တီးဖို့အတွက်Commandကတော့

$ nmcli connection add type team con-name bond0 ifname bond0 config ‘{“runner”: {“name”: “activebackup”}}’

ပုံပါအတိုင်း ဖန်တီးတာအောင်မြင်သွားရင်တော့ successfully added ဆိုပြီးမြင်ရပါမယ်။

အခု ကျွန်တော်ဖန်တီးထားတဲ့ connection ဖြစ်သည့် bond0 ကိုစစ်ဆေးကြည့်ပါမယ်။ဒါဆိုရင်တော့ Name ကပေးထားတဲ့အမည်နဲ့ UUID အသစ်တစ်ခုဖန်တီးလိုက်ပြီးဖြစ်ပြီး TYPE နေရာမှာ အရင်လို Ethernet မပြတော့ပဲ team ဆိုပြီးပြနေ ပြီး Device နေရာမှာလဲ bond0 ဆိုပြီး မိမိပေးလိုက်သည့် Name နဲ့ပြနေမည်ဖြစ်ပါသည်။

ဆက်လက်ပြီး bond0 ဆိုသည့် Network Interface ကို IP Configuration လုပ်ရပါမယ်။

$ nmcli con mod bond0 ipv4.address 192.168.25.100/24
$ nmcli con mod bond0 ipv4.gateway 192.168.25.1
$ nmcli con mod bond0 ipv4.dns 8.8.8.8
$ nmcli con mod bond0 ipv4.method manual
$ nmcli con mod bond0 connection.autoconnect yes

Bond0 ကို IP Config လုပ်ပြီးသွားရင်တော့ သူရဲ့ slave Interface အဖြစ် physical Network Card 2 ခုကိုဖန်တီးတော့ bond0 အောက်ထဲကိုထည့်ရမှာဖြစ်ပါတယ်။

$ nmcli con add type team-slave con-name bond0-slave0 ifname enp0s3 master bond0
$ nmcli con add type team-slave con-name bond0-slave1 ifname enp0s8 master bond0

slave Interface လုပ်တာအောင်မြင်တော့ Connection Successfulyy added ဆိုပြီးပြပါလိမ့်မယ်။

ပြီးသွားရင်တော့ network connection ကို စစ်လိုက်တာနဲ့ slave interface နှစ်ခုပါ ပြနေမည် ဖြစ်ပါ သည်။ဒါဆိုရင်တော့ slave connectionနှစ်ခုကို activates ဖြစ်အောင်လို့ interface bond0 ကို down ပြီး‌တော့ up ပြန်လုပ်ပါမယ်။

အခုဆက်ပြီးတော့ active port ကို စစ်ပြပါမယ်။ command ကတော့

# teamdctl bond0 state

ဆိုပြီးစစ်လိုက်သည့် runner.active port ဆိုသည့် နေရာမှာ enp0s3 Network Interface က active ဖြစ်နေမည်ဖြစ်ပါသည်။

အခုဆက်ပြီးတော့ Network Redundancy စမ်းမှာဖြစ်သည့်အတွက် active ဖြစ်နေသည့် enp0s3 Interface ကိုdown လိုက်ပါမယ်။အဲ့လို down လိုက်မယ်ဆိုရင် ပုံပါအတိုင်း enp0s8 network interface က ဆက်ပြီးတော့ runနေမှာပဲဖြစ်ပါတယ်။ enp0s3 ကို ‌disconnect လုပ်ဖို့ command ကတော့

$ nmcli device disconnect enp0s3

ပြီးသွားရင်တော့ bond0 ရဲ့ interface state ကိုပြန်စစ်ဆေးပါမယ်။ ပုံပါအတိုင်း enp0s3 network interface down သွားသော်လည်း enp0s8 interface ဆက်လက်၍အလုပ်လုပ်နေပါသည်။

Delete NIC Bonding

NIC Bonding လုပ်ထားတာကို ပြန်ဖြုတ်ချင်ရင်တော့ အရင်ဆုံး ဖန်တီးထားသည့် Logical Interface ဖြစ်သည့် bond0 connection ကိုအရင်ဆုံး down ရပါမယ်။

$ nmcli connection down bond0

Bond0 connection ကို down ပြီးသွားရင်တော့ slave interface တွေကိုအရင် delete လုပ်ရပါမယ်။

$ nmcli connection delete bond0-slave0 bond0-slave1

Slave Interface တွေကိုဖြတ်ပြီးမှသာ bond0 ဆိုသည့် Logical Interface ကိုဖျက်ရပါမယ်။

အဲ့လိုဖျက်ပြီးသွားရင်တော့ physical Interface တွေဖြစ်သည့် enp0s3 နဲ့ enp0s8 ကိုပြန် upရပါမယ်။

$ ifconfig enp0s3 up
$ ifconfig enp0s8 up

ပြီးသွားရင် တော့ Network ကို restart လုပ်ပေးရပါမည်။

# systemctl restart NetworkManager

ဒါဆိုရင်တော့NIC Bonding မဖြစ်တော့ပဲ ပုံမှန်အတိုင်းပဲအလုပ်လုပ်တော့မည်ဖြစ်ပါသည်။

Last updated