آموزش bonding کارت شبکه ها در لینوکس
Network Interface Bonding مکانیزمی و یا راهکاری است که در سرور های لینوکس به کار میرود که با استفاده از آن میتوان چندین کارت شبکه فیزیکی را باهم در ارتباط و در یک پکیج قرار داد. در این آموزش ادغام چندین کارت شبکه را با استفاده از قابلیت bonding باهم بررسی میکنیم.
پیکربندی
ابتدا با استفاده از دستور زیر از فعال بودن ماژول bonding اطمینان حاصل میکنیم :
sudo modprobe bonding
lsmod | grep bond
خروجی دستور دوم میبایست آن ماژول را نشان دهد.
حال باید پکیجی به نام ifenslave را نصب کنیم که با استفاده از آن میتوان چندین کارت شبکه را به هم متصل یا از هم جدا کرد. اگر این بسته به طور پیش فرض نصب نبود با استفاده از دستور زیر میتوانید آن را نضب کنید :
sudo apt install ifenslave
ایجاد یک bond
با استفاده از دستور زیر یک bond interface با نام دلخواه ایجاد میکنیم برای مثال من در این جا از نام OurBond0 استفاده میکنم :
sudo ip link add OurBond0 type mode 802.3ad
حالا برای اضافه کردن کارت شبکه های موجود به bond باید ابتدا با دستور زیر تمام کار شبکه های موجود را غیر فعال کنیم :
sudo ifdown eth
حالا باید کارت شبکه هایی را که میخواهیم به OurBond0 اضافه کنیم شناسیایی کنیم.
برای مثال در سرور من ۴ عدد کارت شبکه وجود دارند به نام های eth0 ,eth1 , eth2 , eth3 حالا با استفاده از دستورات زیر این کارت شبکه های موجود را با OurBond0 اضافه میکنیم :
sudo ip link set eth0 master OurBond0
sudo ip link set eth1 master OurBond0
sudo ip link set eth2 master OurBond0
sudo ip link set eth3 master OurBond0
پیکربندی Bond
برای پیکربندی و تنظیمات باند مورد نظر باید به مسیر زیر برویم :
sudo nano /etc/network/interfaces
همان طور که در فایل کانفیگ بالا مشاهده میکنید OurBond0 را با استفاده از خطوط بالا آدرس دستی میدهید.
نکته اگر میخواهیم ای پی به طور دستی داده شود باید مقدار را static قرار داده و تنظیمات مورد نظر خود را قرار دهیم :
address 192.168.2.100/25
geteway 192.168.1.2
netmask 255.255.255.0
dns-nameservers 8.8.8.8
و یا اگر میخواهیم از dhcp آیپی بگیریم باید مقدار را برابر با dhcp قراربدهیم :
iface OurBond0 dhcp
مانند تصویر زیر:
حال پارامتر های bond رو بررسی میکنیم ابتدا باید کارت شبکه هایی که اضافه کرده بودیم را در این فایل قرار دهیم .
خط slave بدین منظور قرار میگیرد و در جلوی آن تمامی کارت شبکه های در آن bond اضافه میشود.
سپس بر حسب نیازی که داریم پارامتر های زیر را قرار میدهیم :
bond_mode 0
bond-miimon 100
bond_downdelay 200
bound_updelay 200
بعداز اتمام کار تنظیمات خود را ذخیره کرده و سرویس networking را استارت میکنیم :
sudo systemctl restart networking
توضیحات bond_mode
Mode 0 (balance-rr) : در این روش Bonding به صورت Round-Robin عمل می کند. برای مثال اگر دو کارت شبکه با یکدیگر Bond شده باشند، پکت اول و دوم به ترتیب از کارت شبکه اول و دوم خارج خواهد شد و پکت سوم مجددا از کارت شبکه اول منتقل خواهد شد و به همین ترتیب انتقال پکت ها ادامه خواهد یافت.
Mode 1 (active-backup):در این حالت یکی از کارت شبکه ها را در حالت فعال قرار داده و فقط در صورتی که کارت شبکه های فعال به مشکل برخورد کند و یا خطا داشته باشند از بقیه slave ها استفاده میشود در واقع باقی slave ها به عنوان بکآپ و جایگزین عمل میکنند..
Mode 2 (balance-xor): همانند مود balance-rr میباشد با این تفاوت که ارسال و دریافتها بر اساس Mac آدرس فرستنده و گیرنده از یک اینترفیس خاص انجام میشود. همچنین جهت لودبالانسینگ و افزایش ضریب در دسترس بودن شبکه نیز استفاده میشود.
Mode 3 (broadcast):در این حالت تمامی پکت های دریافت شده را از تمام slave های موجود عبور میدهد.
Mode 4 (802.3ad): عملیات باندینگ را بر اساس استاندارد 802.3ad ایجاد کرده و قابلیت برقراری ارتباط با سایر تجهیزات تحت این استاندارد را فراهم میکند.
Mode 5 (balance-tlb): به این حالت متعادل کننده بار ترافیکی (Adaptive) گفته میشود.در این حالت ترافیک خروجی با توجه به بار فعلی در تمامی slave ها توزیع و پخش میشود.
Mode 6 (balance-alb): این حالت فقط در سیستم های x86 کار میکند. بسته های دریافت شده از طریق پروتکل (ARP) متعادل می شوند.این حالت تحمل خطا و تعادل بار را فراهم می کند.