نیاز به سرعت بیشتر، مقولهای است که در بسیاری از سازمانها، مخصوصا دیتاسنترها، از با اهمیتترین دغدغههای هر نهاد است. همیشه پیش از ایجاد هزینههای سنگین، مانند خرید دستگاههای پرسرعتتر، تکنولوژیهایی مانند etherchannel وجود دارند که تاحدی میتوانند نیازهایی از جمله تامین سرعت بیشتر در شبکه را برطرف کنند. برای درک و راهاندازی Etherchannel و بطور کل، بکارگیری تکنولوژیهای مختلف، باید بدانیم آنها را کجا استفاده کنیم. بیشترین نیاز برای مدیریت و انتقال سریعتر بار ترافیکی، به صورت فیزیکی، در دیتاسنترها، جایی که مقصد سرویس دهی داخلی است، وجود دارد. برای مشخص کردن logical محل بکارگیری etherchannel، نیاز به مستندات traffic flow داریم. با استفاده از traffic flow دقیقا دستگاههای پرتردد و با حجم ترافیک بالا، مشخص میشوند.
در این دستگاهها میتوان پورتهای ارتباطی را از یک پورت، تا 8 پورت افزایش داد تا دستگاهها بنا بر قدرت پردازششان، در لحظه توانایی عبور بار ترافیکی بیشتری را داشته باشند.
زمانی که دو سوئیچ را با بیشتر از یک پورت به همدیگر متصل کنیم، یکی از پورتها به دلیل ایجاد loop و فعال بودن STP غیرفعال میشود. برای اینکه بتوان در لحظه از تمام ارتباطات بین دو سوئیچ بهرهمند شویم، از etherchannel استفاده میکنیم.
میتوان پورتهای بین دو سوئیچ را به وسیله 2، 4، 6 و 8 لینک etherchannel نمود. در این صورت، تمامی ارتباطات به صورت یک پورت تبدیل میشود و دیگر برای پروتکل STP حلقه یا loop محسوب نخواهد شد.
به طور معمول، etherchannel در لایههای distribution و core انجام میشود.
نحوه عبور ترافیک بروی etherchannel
زمانی که ترافیک به ارتباطی که etherchannel شده میرسد، باید انتخاب کند به صورت فیزیکی از کدم یکی از پورتها عبور کند. در این حالت، سوئیچ براساس روش مشخص شده در تنظیمات، نحوه عبور ترافیک را براساس یکی از روشهای توضیح داده شده زیر، بروی ارتباط etherchannel را مشخص میکند.
1- Source MAC: سوئیچ با توجه به آدرس MAC ارسال کننده در فریم بررسی میکند، تا متوجه شود، بیت آخر آدرس ارسال کننده ترافیک، زوج است یا فرد، اگر صفر باشد از پورت اول و اگر 1 باشد از پورت دوم عبور میدهد. اگر چهار پورت باهم etherchannel شده باشند، با استفاده از دو بیت آخر آدرس مبدا، چهار حالت به وجود میآید.
این روش نمیتواند در تعادل ترافیک نقش موثری داشته باشد و بیشتر تقسیم ترافیک به صورت اتفاقی انجام میشود.
اکثرا این تصور پیش میآید که توانایی عبور ترافیک ضربدر تعداد لینکهای etherchannel شده میشود. اما توجه داشته باشید، از etherchannel کردن دو پورت 100Mbps یک پورت 200Mbps بدست نمی آید بلکه ترافیک end-userها، بین دو پورت 100Mbps تقسیم میشود. به عبارت دیگر، تقسیم ترافیک برمبنای درخواست است نه حجم ترافیک. ترافیک end-user1 تا اتمام کار، پورت انتخاب شده در لینک عبور داده خواهد شد.
حال، در نظر بگیرید، دو کاربر، میخواهند فایل سنگینی را دانلود کنند. در این وضعیت، اگر ترافیک کاربر1 از پورت 1 و ترافیک درخواستی کاربر2 از پورت 2 عبور داده شود، میزان حجم ترافیک عبوری بین دو دستگاه، تقریبا دو برابر خواهد شد.
2- Destination MAC: در این روش آدرس مقصد در فریم، مشابه روش اول بررسی میشود.
3- Exclusive OR (XOR) source and destination MAC: در این روش برای مشخص شدن عبور ترافیک از روی لینک ها با توجه به تعداد لینک های موجود (برای 2 لینک از یک بیت، برای 4 لینک از دو بیت و …) از XOR بیت های کم ارزش (آخر) مبدا و مقصد، خط عبور مشخص میشود.
در این روش با توجه به اینکه هر دو آدرس مبدا و مقصد درگیر هستند نسبت به دو روش ابتدایی بهتر است.
نکته: در etherchannel هیچ گاه لینک ارسال ترافیک در صورت زیاد شدن به لینک دیگر انتقال نمی یابد.
برای loadbalancing در etherchannel به طور کلی 9 حالت وجود دارد که توسط تمام سوئیچها پشتیبانی نمیشود. در صورتیکه در سوئیچهایی که هر 9 روش را پشتیبانی نمیکنند از دستور port-channel load-balance ? استفاده کنیم فقط 6 حالت نمایش داده میشود.
جدول تمام روشهای load-balancing در etherchannel
روش های src-port، dst-port و src-dst-port در سوئیچهای سری 4500 به بالا پشتیبانی میشود.
روش پیش فرض load-balancing در سوئیچهای لایه 2 ایی XOR است و در سوئیچهای لایه 3 ایی source-ip است.
قطع شدن یکی از لینکهای etherchannel
در صورت قطع شدن یکی از لینک های etherchannel ترافیک بروی لینک بعدی ارسال میشود و وجود مکانیزم failover باعث میشود ترافیک از بین نرود.
به عنوان مثال، اگر سوئیچی با ارتباط etherchannelی متشکل از چهار پورت داشته باشیم، که یکی از آنها قطع شده است، ارتباط جدید، به صورت یک ارتباط etherchannel متشکل از دو پورت و یک پورت مجزا تبدیل میشود. در این حالت باز هم به علت ایجاد loop یکی از لینک ها (بین تک پورت و لینک etherchannel) قطع خواهد شد. در این سناریو، محاسبه ارزش (cost) etherchannel را نسبت به تک لینک (به دلیل تجمیع پهنای باند دو لینک) کمتر در نظر می گیرد تا لینک تکی بلاک شود.
علت شمارهگذاری لینکهای etherchannel
سه سوئیچ به شکل زیر به همدیگر متصل شده و بین آنها etherchannel راهاندازی شده است. با توجه به اینکه در سوئیچ سمت چپ با دو سوئیچ ارتباط etherchannel جداگانه راهاندازی شده است، برای جلوگیری از سردرگمی بین لینک های etherchannel ها برای آنها شماره گروه قرار می دهند.
برای گروه بندی بین پورتها به داخل محیط interface رفته و دستور channel-group را وارد میکنیم
با این دستور interface های 1و 2 در گروه 1 قرار گرفته و مود آنها on میشود. پس از انجام این تنظیمات اگر از سوئیچ show spanning-tree بگیریم گروه ایجاد شده را در قسمت interface ها با عنوان Po1 اگر در گروه 1 باشد نمایش میدهد. به این interface، portchannel interface به شماره گروهی که در آن قرار گرفته است گفته میشود.
همانگونه که در تصویر بالا نیز مشخص است cost برای پورت etherchannel شده 9 که حدودا معادل نصف 19 پورت fast است. این interface با دستور show running-config نیز نمایش داده میشود.
موارد با اهمیت در مورد پورتهایی که etherchannel می شوند
1- از نظر trunk یا access بودن باید همگی یک حالت (یا trunk یا access) باشند. به بیان دیگر یک پورت trunk را با یک پورت access نمیتوان port-channel نمود.
2- تمام تنظیمات پورتها باید یکی باشد. به عنوان مثال اگر access هستند باید در یک VLAN باشند، اگر trunk اند باید نوع trunk یکسان باشد، در سوئیچ native vlan اشان یکی باشد، allowed vlan ها یکی باشد.
3- از لحاظ نوع مدیا باید یکسان باشند، پورت فیبر با مس etherchannel نمیشود.
4- سرعت دو پورت بایستی یکسان باشد.
نکته: loadbalancing در هر سوئیچ از یک ارتباط etherchannel میتواند یک روش خاص باشد و الزامی به یکسان بودن روش loadbalancing در هر دو سوئیچ نیست.
راهاندازی etherchannel با دستور mode on، کار میکند، اما برای بهینهتر شدن نیاز به انجام تنظیمات بیشتری دارد.
پروتکلهای راهاندازی etherchannel
برای اینکه دو سوئیچ بتوانند با همدیگر مذاکره کنند تا متوجه بشوند که سوئیچ مقابل آماده ایجاد etherchannel است یا خیر، دو پروتکل درست شده است:
1- PAgP (Port Aggrigation Protocol) که پیش از پروتکلهای دیگر توسط شرکت سیسکو ساخته شد.
2- LACP (Link Aggrigation Control Protocol) پروتکل دیگری است که استاندارد میباشد. دو پروتکل شبیه همدیگرند و در موارد جزئی اختلافاتی با همدیگر دارند.
در پروتکل LACP پورتها در دو حالت Active و Passive و در پروتکل PAgP پورتها در دو حالت Auto و Desirable تنظیم میشوند. این دستورات برای این است که مشخص کنیم پورت، شروع کننده، یا در انتظار شروع مذاکره باشد.
دستور show etherchannel summary برای بررسی etherchannel بسیار کاربردی است.
چنانچه در نمایش دستور show etherchannel summary جلوی پورتهای etherchannel شده علامت (P) وجود داشته باشد، ارتباط etherchannel ایجاد شده و تنظیمات درست است.
وضعیت (I) در بررسی وضعیت etherchannel به معنی مشخص نبودن وضعیت است.
اگر تنظیمات فقط در یک سوئیچ انجام شود
اگر شرایطی پیش بیاید که در هنگام انجام تنظیمات etherchannel بین دو سوئیچ یک طرف etherchannel بماند و طرف دیگر نباشد (مثلا بروی دو سوئیچ که تنظیم انجام شده بروی یکی از سوئیچها دستور write وارد نشده باشد و برق برود و تنظیمات به حالت قبل از etherchannel برود)، سیستمی که etherchannel نیست از ترافیک ارسالی از سمت مقابل چیزی را متوجه نمیشود. در این حالت، سوئیچ پورت را قطع و در حالت error disable قرار میدهد. این مشکل در حالتی پیش می آید که قابلیت مذاکره وجود ندارد.
انجام تنظیمات پروتکلهای قابل مذاکره
در ابتدا پروتکل را در interfaceهایی که باید در etherchannel باشند، مشخص میکنیم (به صورت پیش فرض pagp است)
سپس mode را مشخص میکنیم.
برای انجام تنظیمات پروتکل LACP
زمانی که پورتی داخل channel-group ایی قرار داده میشود نمیتوان تنظیمات آنرا مانند mode تغییر داد. در صورت عوض کردن mode پیغام خطایی با عنوان command rejected دریافت میشود. اگر بخواهیم تنظیمات را تغییر دهیم، باید تمامی تنظیمات قبلی پاک شود تا پورت از گروه در بیاید. پس از آن میتوان mode را تغییر داد. اگر باز هم تغییر نکرد، از دستور no interface portchannel استفاده شود.
از تفاوت های pagp با lacp
زمانی که میخواهیم بین دو سوئیچ etherchannel راهاندازی شود حداکثر 8 پورت را میتوان bondle نمود. در lacp میتوان تا 16 پورت را در یک etherchannel قرار دهیم اما از 16 پورت ماکزیمم، فقط 8 پورت کار میکنند. بقیه پورتهایی که داخل گروه etherchannel قرار داد حالت standby را به خود می گیرد.
سوئیچی که lacp system priority اش کمتر باشد مشخص میکند کدام پورتها استفاده شود. این عدد به صورت پیش فرض 32768 است و میتواند بین 0 تا 65535 باشد.
نکته: زمانی که پورتهایی را که میخواهیم etherchannel کنیم دستور no switchport را بروی آنها اعمال کرده باشیم، پس از show etherchannel summary گرفتن Port-channel به صوتر RU نمایش داده میشود که نشان دهنده لایه 3 بودن لینک است.
نکته: زمانیکه بین دو شبکه ترافیک لایه 3 ایی بسته میشود تداخل VLAN نخواهیم داشت، یعنی vlan 200 یک سمت لایه 3 با vlan 200 طرف دیگر متفاوت است چون هنگام عبور ترافیک از سوئیچ لایه 3، VLAN TAG کنده میشود.