بعضا برای انتقال بیشتر اطلاعات و بالا بردن ترافیک انتقالی بین برخی از سوئیچ ها مخصوصا در قسمت های پر ترافیک مانند لایه core، سوئیچ ها را با دو یا تعداد بیتشری کابل (4، 8، 16) به همدیگر متصل میکنند. در این حالت STP به علت بوجود آمدن loop فقط یک لینک را اجازه فعال بودن میدهد و بقیه لینک ها را down میکند. برای رد شدن از STP بخاطر رسیدن به aggregation در این پورت ها میتوانیم از روشی یا تکنیکی به نام Port Aggregation یا Etherchannel استفاده کنیم.
در ابتدا باید پورتهایی را که میخواهیم aggregation داشته باشند را به trunk mode انتقال میدهیم. سپس، باید پورتهایی را که میخواهند کار aggregation را انجام دهند با دستور interface range انتخاب کنیم و سپس در محیط interface از دستور channel-group 1 mode ? استفاده کنیم و به mode دلخواه تغییر دهیم. همانطور که در شکل بالا نیز مشخص است، هر سوئیچ میتواند چندین گروه مختلف از پورت های به حالت Etherchannel ببرد. به همین علت برای گروه های مختلف شماره تعیین میکنیم.
برای عملکرد Etherchannel دو پروتکل به نامهای LACP (List Aggregation Control Protocol) (که استاندارد IEEE میباشد) و مدل PAgP (Port Aggregation Protocol) که انحصاراً متعلق به سیسکو است وجود دارد. هر کدام از این دو پروتکل دو mode دارند. پروتکل LACP، Active و Passive و پروتکل PAgP حالتهای Auto و Desirable دارد. مانند حالت پورت ها در سوئیچ که dynamic-auto و dynamic-desirable، در اینجا نیز این حالت ها همان حالتهای پورت ها میباشد. در حالت passive mode منتظر مذاکره است و active مذاکره را شروع میکند، برای PAgP، Auto منتظر شروع مذاکره از سمت desirable میماند. حالت on نیز بدون اینکه در نظر بگیرد چه نوعی است به صورت استاندارد etherchannel را فعال میکند و پروتکل آن را بعدا میتوانید تنظیم کنید.
در حال حاضر فقط etherchannel را در هر دو سوئیچ on میکنیم. پس از اعمال تغییرات دیگر هر دو پورت به عنوان یک پورت دیده میشود و ارتباط از هر دو لینک دیده برقرار میشود.
دستور channel-protocol این امکان را میدهد تا روی Interfaceها پروتکل را تعریف نماید.
Etherchannel Loadbalancing
پس از راه اندازی etherchannel، باید به تعیین کنیم تا ترافیک چگونه از لینک هایی که etherchannel کردهایم عبور کند. تقسیم ترافیک را بایستی براساس اطلاعات ترافیکی شبکه انجام میدهیم. برای این طراحی سرورهای پرترافیک، سرورهای با حساسیت سرعت پاسخگویی بالا و موارد مشابه لحاظ میشود. بر این اساس 9 روش loadbalancing داریم که 3 روش براساس پورت در تصویر زیر نمایش داده نشده است.
توضیح روش ها را با فرض اینکه دو سوئیچ توسط 4 لینک به هم متصل شده و سپس بین آنها etherchannel راه اندازی کردهایم انجام میدهیم:
در روش dst-mac تقسیم ترافیک بر اساس MAC-address مقصد انجام میشود. به این صورت که اگر 2 بیت آخر آدرس مقصد 0 باشد ترافیک از پورت (interface) 1، اگر 01 باشد از پورت 2، اگر 10 باشد از پورت 3 و اگر 11 باشد از پورت شماره 4 ترافیک عبور داده میشود.
در روش src-mac ترافیک را بر اساس MAC-address مبدایی که پکت را ارسال کرده به همان روش dst-MAC تقسیم میشود.
در روش src-dst-mac در ابتدا دو بیت آخر آدرس های مبدا و مقصد با هم XOR میشود و سپس براساس روش توضیح داده شده لینک مورد نظر برای عبور ترافیک انتخاب میشود.
روش های دیگر دقیقا همانند سه روش توضیح داده شده هستند با این تفاوت که قسمتی (MAC, IP, Port number) که بیت ها برای مشخص کردن لینک انتخابی استفاده میشود متفاوت است.
در سوئیچ های لایه 2 که ip را نمی فهمند روش های لایه های بالاتر (IP, Port number) پاسخگو نیست به همین دلیل اگر سوئیچ لایه سه داشته باشیم بهتر است زیرا میتوانیم بر اساس Ip که تنظیم آن در اختیارمان می باشد تنظیمات را انجام دهیم.
حال اگر etherchannel توسط دو لینک انجام شود فقط بیت آخر، اگر توسط 8 لینک انجام شده باشد توسط 3 بیت و … مشخص کردن لینک اتفاق میافتد.
نکته: در PAgP تا 8Port per Channel و در LACP تا 16Port per Channel سرویس دهی کند.
در صورتیکه بخواهیم Mode در Channel-group را از حالت on تغییر بدهیم و بخواهیم پروتکل های لینک را مشخص کنیم باید دقت داشته باشیم که دریک طرف بایستی ساختار را تعریف کنید و در طرف دیگر باید ساختار را تایید کند. به این معنی که دریک طرف active و در طرف دیگر بایستی passive باشد.
در تعریف کلی میتوان گفت که با تعریف Channel در ابتدا میتوانیم loop را از بین ببریم. در مرحله بعدی برای انجام بالانس کردن ترافیک عبور بایستی عمل ترافیک سنجی را انجام دهیم. در همین راستا توصیه میشود که از روش های براساس IP، بالانس کردن ترافیک انجام شود. در سری های Core سیسکو، این عملیات بالانس کردن بر اساس پورت هم قابل تنظیم است.