Cisco CCNA · 200-301 v2.0

EtherChannel و Port-Channel

وقتی یک Uplink فیزیکی برای ظرفیت یا افزونگی کافی نیست، اتصال چند کابل موازی بین دو Switch بدون مکانیزم مناسب می‌تواند Loop Layer 2 ایجاد کند و Spanning Tree بعضی Linkها را Block کند. EtherChannel چند Link فیزیکی سازگار را در یک Link منطقی به نام Port-Channel گروه می‌کند. از دید STP و بسیاری از تنظیمات، مجموعه مانند یک Interface منطقی رفتار می‌کند. این درس قبل از LACP روی منطق، مزایا، محدودیت‌ها و نحوه Forwarding تمرکز دارد.

در پایان این درس باید بتوانی
  • تفاوت Link فیزیکی و Port-Channel منطقی را توضیح بدهی
  • بدانی EtherChannel چگونه ظرفیت و Redundancy را بهبود می‌دهد
  • علت نیاز به سازگاری Member Portها را بفهمی
  • تفاوت Aggregated Bandwidth با سرعت یک Flow را توضیح بدهی
  • خروجی show etherchannel summary را در سطح مقدماتی بخوانی

مسئله لینک‌های موازی

فرض کن بین SW1 و SW2 دو کابل 1Gbps وصل کرده‌ای. اگر هر دو Link مستقل Layer 2 باشند، توپولوژی Loop دارد. STP برای جلوگیری از Loop احتمالاً یکی را Blocking می‌کند. در این حالت کابل دوم ممکن است برای Failover مفید باشد اما Bandwidth فعال هم‌زمان را به شکل ساده دو برابر نمی‌کند. EtherChannel اجازه می‌دهد چند Link به‌عنوان یک Interface منطقی دیده شوند.

تفاوت منطقی
Without EtherChannel:
SW1 ===== Link1 ===== SW2
SW1 ===== Link2 ===== SW2
STP may block one path

With EtherChannel:
SW1 === [Po1: Link1 + Link2] === SW2

Port-Channel نام Interface منطقی حاصل است؛ مثلاً Port-channel1 یا Po1. Linkهای فیزیکی عضو Member Port نامیده می‌شوند. Configuration بسیاری از ویژگی‌ها روی Port-Channel اعمال می‌شود و Protocol تجمع، سازگاری Memberها را بررسی می‌کند.

EtherChannel علاوه بر جلوگیری از Block شدن مستقل Linkهای موازی توسط STP، مدیریت را نیز ساده می‌کند. STP به‌جای چند Member، Port-Channel را به‌عنوان یک Logical Port می‌بیند. این رفتار باعث می‌شود Topology Change ناشی از Failure یک Member الزاماً همان اثر Failure کل Uplink را نداشته باشد. با این حال اگر همه Memberها از دست بروند، Port-Channel Down می‌شود و STP/Routing باید مسیر جایگزین را فعال کند. بنابراین EtherChannel Redundancy داخل یک Logical Link را فراهم می‌کند، اما جای طراحی Redundancy بین دستگاه‌ها یا مسیرهای مستقل را نمی‌گیرد.

Bandwidth و Load Balancing

اگر دو Link یک‌گیگابیتی در EtherChannel باشند، ظرفیت Aggregate می‌تواند بیشتر از یک Link باشد، اما یک Flow مشخص لزوماً 2Gbps دریافت نمی‌کند. Switch برای جلوگیری از Out-of-Order شدن Packetها معمولاً یک Hash بر اساس فیلدهایی مثل Source/Destination MAC یا IP می‌سازد و هر Flow را روی یک Member قرار می‌دهد. چند Flow مختلف می‌توانند بین Memberها توزیع شوند.

Load distribution concept
Flow A -> member Gi1/0/23
Flow B -> member Gi1/0/24
Flow C -> member Gi1/0/23

Po1 = logical bundle of both links

این نکته در Performance Troubleshooting مهم است. اگر یک File Transfer واحد حدود 1Gbps سقف دارد، الزاماً EtherChannel خراب نیست. باید Load-Balancing method، تعداد Flowها و ظرفیت هر Member را بشناسی.

روش Load Balancing بر اساس Platform و Configuration متفاوت است. Hash ممکن است از Source/Destination MAC، IP یا ترکیب Fieldها استفاده کند. نتیجه Hash تعیین می‌کند یک Flow روی کدام Member برود. اگر تعداد Flowها کم باشد، توزیع ممکن است از نظر درصدی نامتقارن دیده شود؛ مثلاً یک Member 80% و دیگری ۲۰%. این الزاماً Fault نیست. برای ارزیابی باید Traffic Pattern و Hash Method را بدانیم. در ظرفیت‌سنجی نیز Aggregate Bandwidth را با Single-flow Throughput اشتباه نکن.

Redundancy و Failure Member

اگر یک Member Link از Po1 قطع شود و Member دیگری سالم بماند، Port-Channel می‌تواند Up بماند و Traffic از Memberهای باقی‌مانده عبور کند. این Failover یکی از مزیت‌های مهم EtherChannel است. اما ظرفیت Aggregate کاهش می‌یابد؛ بنابراین Monitoring باید هم وضعیت Po1 و هم Memberها را ببیند.

Member failure
Po1 members: Gi1/0/23 + Gi1/0/24

Before failure: 2 active members
Gi1/0/23 down
After failure:  1 active member, Po1 may remain up

اگر NMS فقط Port-Channel را Up/Down مانیتور کند، خرابی یک Member ممکن است دیده نشود. در عملیات حرفه‌ای Degraded State نیز مهم است چون Redundancy و Capacity کم شده است.

Failure یک Member باید به‌عنوان Degraded Service ثبت شود، حتی اگر کاربران هنوز Connectivity دارند. ظرفیت کمتر و نبود Redundancy یعنی Failure بعدی می‌تواند Outage کامل بسازد. Monitoring مناسب باید Number of Active Members، Interface Error/Utilization و وضعیت Po را جمع‌آوری کند. Alert فقط روی Po Down دیر است. در عملیات می‌توان Severity Member Loss را کمتر از Po Down تعریف کرد، اما آن را نادیده نگذاشت.

سازگاری Member Portها

Portهای عضو باید Configuration سازگار داشته باشند. برای Layer 2 EtherChannel، مواردی مثل Speed، Duplex، Access/Trunk Mode، Native VLAN و Allowed VLAN باید با قواعد Platform هماهنگ باشند. اگر یک Port Trunk و دیگری Access باشد یا Allowed VLANها ناسازگار باشند، Channel ممکن است تشکیل نشود یا Member در حالت Suspended/Standalone قرار گیرد.

نمونه سازگاری
Gi1/0/23: trunk, native 999, allowed 10,20,30
Gi1/0/24: trunk, native 999, allowed 10,20,30
                   ^ compatible members

اینجا دلیل مهمی برای Configuring Logical Port-Channel وجود دارد: به‌جای اعمال ویژگی Trunk به Memberها به‌صورت متفاوت، بعد از ساخت Bundle معمولاً ویژگی‌های منطقی را روی interface Port-channel تنظیم می‌کنی و Consistency را حفظ می‌کنی.

Compatibility Ruleها بسته به Platform جزئیات دارند، ولی اصل این است که Portهای یک Bundle باید از دید Switching/Routing رفتار مشابهی داشته باشند. اگر یک Member Access VLAN 10 و دیگری VLAN 20 باشد، یک Logical Link واحد نمی‌تواند تصمیم یکنواخت داشته باشد. اگر Trunk Allowed Listها متفاوت باشند، بخشی از Flowها ممکن بود روی Member نامعتبر بیفتند؛ بنابراین سیستم از Bundle شدن ناسازگار جلوگیری می‌کند. همین منطق پشت بسیاری از Suspended Stateها است.

خواندن show etherchannel summary

show etherchannel summary نمای سریع وضعیت Bundleها و Memberها را می‌دهد. باید بتوانی Group، Port-channel، Protocol و Flagهای Member را بخوانی. حرف P کنار Interface معمولاً یعنی Member در Port-Channel Bundle شده است. S یا R کنار Port-channel می‌تواند Layer 2 یا Layer 3 بودن را نشان دهد و U نشان‌دهنده in use است.

EtherChannel سالم
SW1# show etherchannel summary
Group  Port-channel  Protocol    Ports
------+-------------+-----------+-------------------------------
1      Po1(SU)       LACP        Gi1/0/23(P) Gi1/0/24(P)

Po1(SU) یعنی یک Layer 2 Port-Channel که در حال استفاده است و هر دو Member با P در Bundle هستند. اگر یکی از Portها I، s یا وضعیت دیگری داشته باشد، باید Legend همان Output را بخوانی و علت Bundle نشدن را بررسی کنی.

در show etherchannel summary همیشه Legend را بخوان. P معمولاً bundled in port-channel، D down، I stand-alone و s suspended را نشان می‌دهد، اما Flag Set می‌تواند با Platform متفاوت باشد. یک Po1(SU) به‌تنهایی کافی نیست؛ Member List را هم نگاه کن. اگر دو کابل طراحی شده ولی فقط یکی P است، Bundle Degraded است. همچنین Protocol ستون مهمی است: LACP، PAgP یا خالی/on به تو می‌گوید چه Negotiationی انتظار می‌رود.

سناریوی عملی

SW1 و SW2 با دو لینک یک‌گیگابیتی به Po1 متصل‌اند. Monitoring فقط Po1 را Up نشان می‌دهد، اما کاربران در ساعات شلوغ کندی دارند. show etherchannel summary نشان می‌دهد فقط Gi1/0/23(P) عضو فعال است و Gi1/0/24 در Bundle نیست. شبکه قطع نشده چون Po1 با یک Member کار می‌کند، اما Capacity و Redundancy نصف شده است. این مثال نشان می‌دهد «Up بودن سرویس» با «سالم بودن کامل Bundle» یکی نیست.

اشتباهات رایج

اشتباه‌های رایج و علت آن‌ها

  • انتظار اینکه EtherChannel سرعت یک Flow را دقیقاً جمع سرعت همه Memberها کند
  • مانیتور کردن فقط Port-Channel و ندیدن Member failure
  • گروه کردن Portهای با Trunk/Native/Allowed ناسازگار
  • فرض اینکه دو کابل موازی بدون EtherChannel حتماً هر دو Forwarding می‌شوند
تمرین عملی

تمرین عملی

  1. دو لینک بین دو Switch بساز و ابتدا بدون EtherChannel رفتار STP را ببین
  2. Po1 با دو Member بساز و show etherchannel summary را ذخیره کن
  3. یکی از Memberها را Shutdown کن و وضعیت Po1 و Traffic را بررسی کن
  4. سه Flow مختلف را شبیه‌سازی کن و مفهوم Hash-based Load Distribution را توضیح بده

نکته‌هایی که باید با خودت ببری

  • EtherChannel چند Link فیزیکی را به یک Port-Channel منطقی تبدیل می‌کند
  • STP معمولاً Port-Channel را به‌عنوان یک Link منطقی می‌بیند
  • Aggregate Capacity به معنی جمع شدن سرعت برای هر Flow منفرد نیست
  • Memberها باید Configuration سازگار داشته باشند
  • show etherchannel summary سریع‌ترین نمای Bundle و Memberها را می‌دهد
خودسنجی

خودسنجی

چرا دو Link مستقل Layer 2 بین دو Switch مشکل Loop ایجاد می‌کنند؟

چون Spanning Tree دو مسیر موازی مستقل را به‌عنوان Redundant Layer 2 Links می‌بیند و برای جلوگیری از Loop معمولاً یکی را Block می‌کند. EtherChannel آن‌ها را به یک Logical Link تبدیل می‌کند.

اگر یک Member از دو Member قطع شود، چه چیزی ممکن است همچنان Up بماند؟

خود Port-Channel ممکن است Up بماند، چون Member دیگر هنوز فعال است. در این حالت Redundancy حفظ شده ولی ظرفیت Aggregate کاهش پیدا کرده است.

چرا یک Flow ممکن است فقط سرعت یک Member را ببیند؟

چون EtherChannel معمولاً هر Flow را بر اساس Hash روی یک Member مشخص می‌فرستد؛ یک Flow واحد بین چند Link به شکل قطعه‌قطعه تقسیم نمی‌شود.

P کنار Member در show etherchannel summary معمولاً چه مفهومی دارد؟

حرف P معمولاً یعنی آن Physical Interface با موفقیت داخل Port-Channel Bundle شده و به‌عنوان Member فعال استفاده می‌شود.

منابع رسمی

منابع مرجع این درس

مطالعه همیشه آزاد است

برای ذخیره پیشرفت وارد حساب شو

حساب کاربری برای آزمون و ثبت مرحله‌ها استفاده می‌شود

ورود یا ثبت‌نام