قصد داریم در چند پست قابلیت Network Bonding که از آن در برخی سیستم عاملها با نام Network Teaming یاد می شود را در لینوکس بررسی کنیم. درایور Bonding در کرنل لینوکس امکان مجتمع شدن چند کارت شبکه و استفاده از آن ها به صورت یک کارت شبکه واحد را فراهم می کند. روش های مختلفی برای این کار وجود دارد و بسته به نیاز میتوان روش یا مد Bonding را تغییر داد که از جمله این نیازها می توان به افزایش پهنای باند، ایجاد Redundancy و توزیع بار اشاره کرد.
?روش اول: Mode 0 (balance-rr)
در این روش Bonding به صورت Round-Robin عمل می کند. اگر دو کارت شبکه با یکدیگر Bond شده باشند، پکت اول و دوم به ترتیب از کارت شبکه اول و دوم خارج خواهد شد و پکت سوم مجددا از کارت شبکه اول منتقل خواهد شد و به همین ترتیب انتقال پکت ها ادامه خواهد یافت.
?روش دوم: Mode 1 (active-backup)
در این روش فقط یک Slave مشغول به فعالیت است و به صورت Active قرار دارد.بقیه پورتها زمانی Active خواهند شد که پورت Active Slave تغییر وضعیت دهد و Down شود.
?روش سوم: Mode 2 (balance-xor)
اساس انتقال در این روش براساس XOR کردن Source MAC و Destination MAC صورت میگیرد. در این روش یک کارت شبکه برای هر مقصد با مک آدرس آن انتخاب می گردد.
?روش چهارم: Mode 3 (broadcast)
این روش انتقال همه بسته ها بر روی همه Interface ها را در دستور کار خود قرار خواهد داشت و فقط ویزگی Fault Tolerance را بهمراه خواهد داشت.
?روش پنجم: Mode 4 (802.3ad)
این روش استاندارد 802.3ad است که به صورت Dynamic Link Aggregation فعالیت میکند.این نوع به LACP نیز مشهور است. یک گروه تجمیع شده از کارت های شبکه ایجاد می کند که سرعت و Duplex برابر را با یکدیگر به اشتراک می گذارند. در تنظیمات سوییچ لازم است که 802.3ad تنظیم شده باشد.
?روش ششم: Mode 5 (balance-tlb)
نام کامل این روش Adaptive transmit load balancing است که در آن انتقال داده ها و توزیع آنها با توجه به بار و صف موجود بر روی هر Interface انجام می گیرد. ترافیک خروجی بر اساس بار جاری(محاسبه شده نسبت به سرعت) در هر Slave منتشر خواهد شد و برای ترافیک ورودی بر اساس Current Slave عمل خواهد کرد .
?روش هفتم: Mode 6 (balance-alb)
این روش خود شامل روش balance-tlb به همراه receive load balancing (rlb) است. Receive load balancing از طریق ARP negotiation انجام می شود. درایور Bonding در پکت های ARP Reply خروجی، مک آدرس Source را با مک ادرس یکی از Slave ها جایگزین می کند در نتیجه هر یک از کلاینت ها با یکی از Slave ها در ارتباط می باشند. این روش کاملا مستقل است و نیاز به سوئیچ با قابلیت خاصی ندارد.
خوب حالا که با انواع روش های bonding کارت شبکه آشنا شدیم قصد مراحل اجرا و پیاده سازی یکی از انواع آن را به طور نمونه بررسی کنیم:
فرض کنید که دو کارت شبکه با نام هاي eth0 و eth1 داریم و میخواهیم آن ها را به صورت Master/Slave (یعنی Mode 0) Bond کنیم و نام آن را bond0 قرار دهیم. تنظیمات eth0 و eth1 به صورت زیر خواهد بود:
cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE="eth0" TYPE=Ethernet ONBOOT="yes" BOOTPROTO="none" USERCTL=no MASTER=bond0 SLAVE=yes
cat /etc/sysconfig/network-scripts/ifcfg-eth1 DEVICE="eth1" TYPE=Ethernet ONBOOT="yes" BOOTPROTO="none" USERCTL=no MASTER=bond0 SLAVE=yes
در مسیر /etc/sysconfig/network-scripts/ فایل پیکربندی مربوط به bond0 را با نام ifcfg-bond0 ایجاد نمائید که تنظیمات آن به صورت زیر خواهد بود:
DEVICE=bond0 ONBOOT=yes IPADDR=192.168.246.130 NETMASK=255.255.255.0 BONDING_OPTS="mode=0 miimon=100"
سرویس شبکه را restart کنید و با دستور ifconfig و یا ip addr show وضعیت کارت هاي شبکه و bond را مشاهده نمایید.