صادق شعبانی
کارشناس ارشد سیسکو

بررسی پروتکل های ETHERCHANNEL و مباحث تکمیلی

در طراحی شبک های LAN تعدادی سوئیچ ACCESS ماننده 2950 ویا 2960 به یک سوئیچ DISTRIBUTION مانند 3750 متصل می شوند ، معمولا" سوئیچ های 2950 دارای 24 تا پورت 100MEG هستند ، به طور معمول بین سوئیچ های ACCESS و سوئیچ DISTRIBIUTE از لینک 1 GIG استفاده می شود.(البته این بستگی به شبکه نیز دارد ).

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران
1


2



اگر فرض کنید همه ی کامپیوترهای متصل به سوئیچ ACCESS ترافیکی با کل ظرفیت پهنای باند به سمت سرورها که به سوئیچ DISTRIBIUTION متصل است ارسال نمایند آنگاه لینکی به ظرفیت 2.4GIG بین سوئیچ ACCESS و DISTRIBUTE نیازمند هستیم.

2.4GIG=24*100 MEG
3



در صورتی که بین 2 سوئیچ ACCESS و DISTRIBUTE پهنای باند 1GIG داشته باشیم ، آنگاه گلوگاه ایجاد خواهد شد.اگر بخواهیم بین 2 سوئیچ فوق الذکر پهنای باند بیشتر ( و یا REDUNDANCY ) داشته باشیم نیازمند این هستیم که بین 2 سوئیچ بیشتر از 2 کابل بکشیم اما در این شرایط پروتکل STP اجازه نمی دهد که لینک اضافه ای بین سوئیچ ها وجود داشته باشد و لینک های اضافی را جهت ممانعت از ایجاد LOOP به وضعیت بلاک می برد.

4



مفهوم ETHERCHANNEL

با استفاده از توانمندی ETHERCHANNEL می توانیم چندین اتصال فیزیکی که بین سوئیچ ها است را در یک گروه منطقی (مجازی ) قرار دهیم و از ظرفیت کل پهنای باند در گروه منطقی استفاده کنید.توانمندی ETHERCHANNEL برای افزایش پهنای باند بین سوئیچ ها و یا سوئیچ روتر استفاده خواهد شد.در واقع برای استفاده همزمان از همه ی لینک های بین سوئیچ ها ، از پروتکل ETHERCHANNEL استفاده میکنیم که این پروتکل چندین لینک فیزیکی را یکی کرده ( AGGREGATE ) کرده و به یک لینک LOGICAL به نام PORT-CHANNEL تبدیل می کند و در چنین شرایطی پهنای باند بین 2 سوئیچ افزایش یافته و مشکل گلوگاه حل خواهد شد.


تعریف ETHERCHANNEL

ادغام چند لینک فیزیکی و ایجاد یک لینک مجازی ( تحت عنوان PORT-CHANNEL ) را ETHERCHANNEL گویند.کمپانی سیسکو واژه ETHERCHANNEL را به جای AGGREGATION به کار می برد.

5



وقتی لینک های فیزیکی را از طریق ETHERCHANNEL به یک لینک LOGICAL ( یا همان PORT-CHANNEL ) تبدیل میکنیم ، STP بین 2 سوئیچ فقط یک لینک به نام PORT-CHANNEL می بیند و آنرا بلاک نمی کند.

ETHERCHANNEL AND STP

هدف STP جلوگیری از ایجاد LOOP بود و لی حالا و با ایجاد لینک LOGICAL ایا مکانیزیمی جهت جلوگیری ازوجود LOOP وجود دارد یا اینکه STP تنها یک لینک می بینید؟

یک قانون ساده در ETHERCHANNEL تضمین میکند که LOOP بوجود نیاید بدین صورت که اگر روی یکی از لینک ها ETHERCHANNEL یا یک لینک فیزیکی ، ترافیکی ( BROADCAST AND MULTICAST )را گرفتی ( ترافیک برادکست ) ، آن ترافیک را روی مابقی لینک ها ارسال نکن.

پروتکل های ETHERCHANNEL

  • PAGP (( PORT AGGREGATION PROTOCOL
  • LACP (( LINK AGGREGATION CONTROL PROTOCOL


6

شرایط ایجاد ETHERCHANNEL

  • 1.سرعت و DUPLEX یکسان
  • 2.وضعیت ACCESS یا ترانک بودن و پروتکل TRUNKING در صورت TRUNK بودن
  • 3.NATIVE VLAN
  • 4.بحث VLAN های مجاز روی پورت
  • 5.لایه 2 یا لایه 3 ای بودن
  • 6.ویژگی های PORTSECURITY
  • 7.ویژگی های STP


چنانچه هر یک از موارد فوق بین پورتهاییکه قرار است ETHERCHANNEL شوند یکسان نباشد ، ETHERCHANNEL به درستی ایجاد نخواهد شد.

به دلیل نوع الگوریتم LOAD-BALANCING بهتر است تعداد پورتهایی که با یکدیگر ETHERCHANNEL شود توانی از 2 باشد یعنی تعداد لینک ها 2 و 4 و 8 لینک باشد که ما در گروه ETHERCHANNEL می توانیم از پورتهای FE , GIG , 10G استفاده نمائیم.

0.TABLE
بعد از ایجاد ETHERCHANNEL در بین سوئیچ ها ، بین آنها شاهد موارد زیر هستیم :
  • افزایش پهنای باند
  • LINK REDUNDANCY


آشنایی با مدهای پروتکل های LACP و PAGP و بررسی تفاوت هر کدام با یکدیگر

LACP
این پروتکل مربوط به شرکت سیسکونیست ولی توسط تجهیزات شرکت سیسکو و تجهیزات سایر شرکت ها پشتیبانی می شود و در صورتی که تجهیزات شما مربوط به شرکت های مختلفی باشد و می خواهید که ETHERCHANNEL را بین یک سوئیچ سیسکو و یک سوئیچ غیر سیسکوئی یا دو سوئیچ غیر سیسکو پیکره بندی کنید ، میتوانید از این پروتکل برای برقراری و مدیریت اتصال منطقی ETHERCHANNEL استفاده کنید.
در LACP تا 16 لینک را می توان معرفی کرد و تنها 8 لینک آن ACTIVE هستند و در صورت قطع شدن یکی از لینک های ACTIVE ، یکی از لینک های غیر فعال جایگزین میگردد.

0.1T2



PAGP
یک پروتکل اختصاصی مربوطه به شرکت سیسکو می باشد و در صورتی می توانید از این پروتکل استفاده کنید که تجهیزات 2 طرف اتصال شما CISCO باشند ، که در آن حداکثر 8 تا لینک قابل ETHERCHANNEL ( AGGREGATION ) هستند. وظیفه این پروتکل مدیریت و برقراری اتصال منطقی ETHERCHANNEL می باشد.

0.3


10


0.4






مدهای پروتکل LACP

1.	ACTIVE
2.	PASSIVE
3.	ON


مدهای پروتکل PAGP

1.	DESIRABLE
2.	AUTO
3.	ON

پروتکل PAGP

14



AUTO
در این مد هیچ پیام PAGP از طرف اینترفیس ارسال نمی شود ولی آماده پاسخگویی به پیام های PAGP از سوئیچ مقابل می باشدو قادر به آغاز پروسه PAGP NEGOTIATION نمی باشد به عبارت دیگر برای ETHERCHANNEL شدن خودش پیشنهاد نمی دهد و منتظر می ماند تا طرف مقابل به او پیشنهاد بهد که پس از دریافت درخواست آنرا قبول می کند.

DESIRABLE
در این مد اینترفیس پیام های PAGP را ایجاد و به سمت سوئیچ مقابل ارسال میکند و قادر به آغاز پروسه PAGP NEGOTIATION می باشد ، به عبارت دیگر در مذاکره و NEGOTIATION که انجام می دهد خودش به سمت مقابل پیشنهاد می دهد و یا اگر به خودش پیشنهاد داده شد قبول می کند تا ETHERCHANNEL شکل گرفته و PORT-CHANNEL ایجاد شود.


    • نحوه کانفیگ ETHERCHANNEL بصورت کلی
SW1(config)#INTerface RANGe FAstEthernet 0/1-4
SW1(config-if-range)#CHANNEL-PRotocol < LACP | PAGP >
SW1(config-if-range)#CHANNEL-GRoup 1 MODE < active | auto | desirable | passive | on >



20




    • ایجاد ETHERCHANNEL با استفاده از PAGP
SW1(config)#int range fa 0/1-4
SW1(config-if-range)#channel-protocol pagp
SW1(config-if-range)#channel-group 1 mode desirable 

sw2(config)#int range fa 0/1-4
sw2(config-if-range)#channel-protocol pagp
sw2(config-if-range)#channel-group 1 mode desirable


21




مانیتورینگ ETHERCHANNEL

    • کامندهای verification
!command 1- - show etherchannel --
!--------------------------------------------------------------
SW1#show ip int brief 
Interface              IP-Address      OK? Method Status                Protocol 
Port-channel 1         unassigned      YES manual up                    up 

!command 2- - show spanning-tree  --
!--------------------------------------------------------------
SW1#show spanning-tree 
Interface        Role Sts Cost      Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Po1              Root FWD 7         128.27   Shr




!command 3- - show etherchannel   --
!--------------------------------------------------------------
SW1#show etherchannel 
                Channel-group listing:
                ----------------------

Group: 1
----------
Group state = L2
Ports: 4 Maxports = 8
Port-channels: 1 Max Portchannels = 1
Protocol:   PAGP
SW1#



همچنین اگر مک آدرسی بخواهد یادبگیرد روی لینک های فیزیک یاد نمی گیرد بلکه روی port-channel یاد می گیرد.

SW1#show mac address-table 
          Mac Address Table
-------------------------------------------

Vlan    Mac Address       Type        Ports
----    -----------       --------    -----
   1    00e0.f733.c818    DYNAMIC     Po1
SW1#
SW1#


حالت non-silent در پروتکل pagp

پروتکل pagp بصورت دیفالت در حالت silent کار می کند یعنی اگر ما بین یک سوئیچ و یک ftp server ، ما etherchannel ایجاد کرده ایم و چون سرور نمی تواند negotiate کرده و پکت های pagp را متوجه شود ، در این شرایط اگراز یک طرف pagp کانفیگ شد و از سمت دیگر پکت های pagp نیامد ، etherchannel ایجاد شود.به عبارت دیگر اگر بعد از مدت 15 ثانیه از دستگاه مقابل هیچ پیام pagp دریافت نکرد ، بصورت اتوماتیک etherchannel فعال شود.

در حالت non-silent ی ، etherchannel به شرطی ایجاد می شود که pagp در دو طرف ، با یکدیگر negotiate کنند ، در واقع در این حالت ما مطمئن هستیم که تجهیزات دو طرف ، سوئیچ های بوده و حالا برای etherchannel شدن حتما" باید با یکدیگر مذاکره نمایند تا etherchannel تشکیل شود.اگر از دستگاه مقابل هیچ پیام pagp دریافت نشود ، به هیچ وجه etherchannel تشکیل نمی شود.

30



چک کردن silent یا non-silent

IOU1#show etherchannel 1 port-channel 
                Port-channels in the group: 
                ---------------------------

Port-channel: Po1
------------
Ports in the Port-channel: 

Index   Load   Port     EC state        No of bits
------+------+------+------------------+-----------
  0     00     Et0/0    Desirable-Sl       0
  0     00     Et0/1    Desirable-Sl       0

Time since last port bundled:    0d:00h:14m:07s    Et0/1

IOU1#


تغییر وضعیت به non-silent

IOU1(config)#int range ethernet 0/0-1
IOU1(config-if-range)#channel-protocol pagp
IOU1(config-if-range)#channel-group 1 mode desirable non-silent 

IOU2(config)#interface range ethernet 0/0-1
IOU2(config-if-range)#channel-protocol pagp
IOU2(config-if-range)#channel-group 1 mode auto non-silent



IOU2#SHOW ETHerCHannel SUMmary 
Flags:  D - down        P - bundled in port-channel
        I - stand-alone s - suspended
        H - Hot-standby (LACP only)
        R - Layer3      S - Layer2
        U - in use      N - not in use, no aggregation
        f - failed to allocate aggregator

        M - not in use, minimum links not met
        m - not in use, port not aggregated due to minimum links not met
        u - unsuitable for bundling
        w - waiting to be aggregated
        d - default port

        A - formed by Auto LAG


Number of channel-groups in use: 1
Number of aggregators:           1

Group  Port-channel  Protocol    Ports
------+-------------+-----------+-----------------------------------------------
1      Po1(SU)         PAgP      Et0/0(P)    Et0/1(P)    










IOU2#SHOW ETHerCHannel POrt-CHannel 
                Channel-group listing: 
                ----------------------

Group: 1 
----------
                Port-channels in the group: 
                ---------------------------

Port-channel: Po1
------------

Age of the Port-channel   = 0d:00h:03m:16s
Logical slot/port   = 16/0          Number of ports = 2
GC                  = 0x00010001      HotStandBy port = null
Port state          = Port-channel Ag-Inuse 
Protocol            =   PAgP
Port security       = Disabled

Ports in the Port-channel: 

Index   Load   Port     EC state        No of bits
------+------+------+------------------+-----------
  0     00     Et0/0    Desirable-NonSl    0
  0     00     Et0/1    Desirable-NonSl    0
          
Time since last port bundled:    0d:00h:03m:13s    Et0/1
          
IOU2#
IOU2#


پروتکل LACP

15



PASSIVE
در این مد هیچ پیام LACP از طرف اینترفیس ارسال نمی شود ولی آماده پاسخگویی به پیام های LACP از سمت سوئیچ مقابل می باشد و قادر به آغاز پروسه LACP NEGOTIATION نمی باَشد.

ACTIVE
در این مد اینترفیس پیام های LACP را ایجاد و به سمت سوئیچ مقابل ارسال میکند و قادر به آغاز پروسه LACP NEGOTIATION می باشد.

ایجاد ETHERCHANNEL با استفاده از LACP

    • نحوه کانفیگ ETHERCHANNEL بصورت کلی
SW1(config)#INTerface RANGe FAstEthernet 0/1-4
SW1(config-if-range)#CHANNEL-PRotocol < LACP | PAGP >
SW1(config-if-range)#CHANNEL-GRoup 1 MODE < active | auto | desirable | passive | on >


20



SW1(config)#INTerface RANGE FAstEthernet 0/1-4
SW1(config-if-range)#CHANNEL-PRotocol LACP
SW1(config-if-range)#CHANNEL-GRoup 1 MODE ACtive 

SW2(config)#INT RANge FAstEthernet 0/1-4
SW2(config-if-range)#CHANNEL-PRotocol LACP
SW2(config-if-range)#CHANNEL-GRoup 1 MODE PASSive


مانیتورینگ ETHERCHANNEL


SW1#SHOW SPANning-tree 
Interface        Role Sts Cost      Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Po1              Desg FWD 7         128.25   Shr

SW1#


SW1#SHOW IP INT BRief 
Interface              IP-Address      OK? Method Status                Protocol
 Port-channel 1         unassigned      YES manual up                    up
SW1#

SW1#SHOW ETherchannel PORT-channel 
Channel-group listing:
----------------------

Group: 1
----------
Port-channels in the group:
---------------------------

Port-channel: Po1 (Primary Aggregator)
------------

Age of the Port-channel = 00d:00h:08m:06s
Logical slot/port = 2/1 Number of ports = 4
GC = 0x00000000 HotStandBy port = null
Port state = Port-channel 
Protocol = LACP
Port Security = Disabled

Ports in the Port-channel:

Index Load Port EC state No of bits
------+------+------+------------------+-----------
0 00 Fa0/3 Active 0
0 00 Fa0/1 Active 0
0 00 Fa0/2 Active 0
0 00 Fa0/4 Active 0
Time since last port bundled: 00d:00h:07m:03s Fa0/4
SW1#
SW1#






    • معرفی 16 لینک در LACP ( system-priority و port-priority )

قبلا" گفته شد که در pagp می توانیم تا 8 لینک را etherchanel کنیم اما در پروتکل lacp که یک پروتکل استاندارد است میتوانیم تا 16 لینک را معرفی کنیم که فقط 8 تای آن active بوده و اگر یکی از این 8 لینک active از کار بیفتد و قطع شود یکی از لینک های standby جایگزین آن می شود.

40



این سوئیچ است که تصمیم می گیرد مدام پورتها ACTIVE باشدند و یا کدامیک STANDBY
در واقع زمانیکه قصد دارید بین 2 سوئیچ ETHERCHANNEL شکل دهید و از پروتکل LACP استفاده میکنید، یکی از سوئیچ های سمت ETHERCHANNEL تصمیم گیرنده یا DECISION MAKER است ، این سوئیچ دارای یکی از 2 شرط زیر است :
1.دارای PRIORITY کمتر باشد ( دیفالت 32768 که بین 1-65535 (
2.در صورت مساوی بودن PRIORITY ، سوئیچ با کمترین مک آدرس تصمیم گیرنده است.

حال که تکلیف سوئیچ تصمبم گیرنده مشخص شد ، این سوئیچ طبق پارامترهای زیر تصمیم می گیرد کدام لینک ها AVTIVE و کدامیک STANDBY باشند :
1.مقدار PRIORITY پورتهایی که می خواهد ACTIVE باشد را کمتر بگذارد.
2.مقدار PRIORITY پورتهایی که می خواهی در وضعیت STANDBY باشد را بیشتر می گذاری که مقدار دیفالت PRIORITY برابر با 32768 است که می تواند بین 1-65535 باشد.

توجه شود که مقدار PORT-PRIORITY را می توان در هر 2 سوئیچ تنظیم کرد

  • اما چیزی که مهم است این است که کدام سوئیچ تصمیم گیرنده است.*



41


sw1(config)#lacp system-priority 100

sw1(config)#int range ethernet 0/0-1
sw1(config-if-range)#channel-protocol lacp
sw1(config-if-range)#channel-group 1 mode active 
sw1(config-if-range)#lacp  port-priority 100

sw1(config-if-range)#exit
sw1(config)#int range ethernet 0/2-3
sw1(config-if-range)#channel-protocol lacp
sw1(config-if-range)#channel-group 1 mode active

این موضوع قابل تست در محیط gns و یا پکت تریسر نیست و کامند ها صرفا" جهت آشنایی آورده شد.

بررسی مد ON

  • EtherChannel Misconfiguration Guard


قبلا" صحبت شد که هر کدام از پروتکل های LACP یا PAGP دارای مد ON می باشد ، همچنین می دانیم که در سوئیچ های 2 طرف باید از یک پروتکل استفاده کنیم و مثلا" اگر از PAGP استفاده می کنیم ، مد سوئیچ در هر 2 طرف باید ON باشد.

تشریح مد ON
این مد باعث فعال شدن ETHECHANNEL بر روی اینترفیس بدون ارسال هیچ پیام LACP و یا PAGP می شود ، در صورتی پورت منطقی ETHERCHANNEL برقرار خواهد شد که اینترفیس های مقابل نیز در وضعیت ON باشد.یعنی کلا" NEGOTIATION انجام نمی شود و اگر یک سمت ON باشد ، طرف دیگر هر مدی غیر از ON باشد ETHERCHANNEL شکل نمی گیرد.

EtherChannel Misconfiguration Guard
سناریو ای مثل زیر را در نظر بگیرید ، برای ETHERCHANNEL از پروتکل PAGP و مد ON استفاده شد.در شرایطی که از مد ON استفاده می شود همانطور که قبلا" هم گفته شد ، هیچ NEGOTIATION بین 2 سوئیچ انجام نمی شود.قرار بر این است که پورتهای FA0/1-2 هر دو سوئیچ از طریق کابل به یکدیگر متصل شوند تا نهایتا" ETHERCHANNEL تشکیل شود اما اشتباها" در سوئیچ دوم ، کابل به پورت 1 و 3 به جای پورت های 1 و 2 متصل شود ، در شرایطی که این فیچر فعال باشد ، سوئیچی که بر روی آن کانفیگ مرتبط بصورت صحیح انجام شده است ، لاگ مربوط به این فیچر را داده و اینترفیس مجازی مربوطه به وضعیت ERROR-DISABLE می رود.

T1




به عبارت دیگر ، فیچر EtherChannel Guard جهت جلوگیری از ایجاد LOOP ، در صورتی که کابل به جای آنکه به پورت هایی که برای ETHERCHANNEL در نظر گرفته شده اند به پورتهای دیگر متصل شوند ، پورت های مربوط ( پورت اینترفیس منطقی که شامل اینترفیس های فیزیکی تحت عنوان PORT-CHANNEL است ) به وضعیت ERROR-DISABLE برود.


این فیچر بصورت پیش فرض فعال است.


IOU1#SHOW IP INT BRief 
Interface              IP-Address      OK? Method Status                Protocol
Ethernet0/0            unassigned      YES unset  down                  down    
Ethernet0/1            unassigned      YES unset  down                  down    
     
Port-channel1          unassigned      YES unset  down                  down    



بعنوان مثال ، همین سناریو در GNS3

MEC



نمایش لاگ های مربوطه

IOU1#
IOU1#
*May  1 08:36:29.459: %PM-4-ERR_DISABLE: channel-misconfig (STP) error detected on Po1, putting Et0/0 in err-disable state
*May  1 08:36:29.460: %PM-4-ERR_DISABLE: channel-misconfig (STP) error detected on Po1, putting Et0/1 in err-disable state
*May  1 08:36:29.489: %PM-4-ERR_DISABLE: channel-misconfig (STP) error detected on Po1, putting Po1 in err-disable state
*May  1 08:36:30.464: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet0/0, changed state to down
*May  1 08:36:30.464: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet0/1, changed state to down
IOU1#
*May  1 08:36:31.470: %LINK-3-UPDOWN: Interface Ethernet0/0, changed state to down
*May  1 08:36:31.520: %LINK-3-UPDOWN: Interface Port-channel1, changed state to down
*May  1 08:36:31.520: %LINK-3-UPDOWN: Interface Ethernet0/1, changed state to down
*May  1 08:36:32.533: %LINEPROTO-5-UPDOWN: Line protocol on Interface Port-channel1, changed state to down
IOU1#
IOU1#
IOU1#





مانیتورینگ این وضعیت

IOU1#SHOW IP INT BRief 
Interface              IP-Address      OK? Method Status                Protocol
Port-channel1          unassigned      YES unset  down                  down    


IOU1#SHOW INTerfaces PORT-CH
IOU1#SHOW INTerfaces PORT-CHannel 1
Port-channel1 is down, line protocol is down (err-disabled)

IOU1#SHOW ETHERCHannel SUMmary 
Flags:  D - down        P - bundled in port-channel
        I - stand-alone s - suspended
        H - Hot-standby (LACP only)
        R - Layer3      S - Layer2
        U - in use      N - not in use, no aggregation
        f - failed to allocate aggregator

        M - not in use, minimum links not met
        m - not in use, port not aggregated due to minimum links not met
        u - unsuitable for bundling
        w - waiting to be aggregated
        d - default port

        A - formed by Auto LAG


Number of channel-groups in use: 1
Number of aggregators:           1

Group  Port-channel  Protocol    Ports
------+-------------+-----------+-----------------------------------------------
1      Po1(SD)          -        Et0/0(D)    Et0/1(D)    

IOU1#




IOU1(config)#
IOU1(config)#INTER
IOU1(config)#INTERface PORT
IOU1(config)#INTERface PORT-CH
IOU1(config)#INTERface PORT-CHannel 1
IOU1(config-if)#SHU
IOU1(config-if)#SHUtdown 
IOU1(config-if)#NO SHUT
IOU1(config-if)#NO SHUTdown 
IOU1(config-if)#
*May  1 09:28:33.554: %LINK-5-CHANGED: Interface Ethernet0/0, changed state to administratively down
*May  1 09:28:33.554: %LINK-5-CHANGED: Interface Ethernet0/1, changed state to administratively down
*May  1 09:28:33.555: %LINK-5-CHANGED: Interface Port-channel1, changed state to administratively down
IOU1(config-if)#
IOU1(config-if)#
*May  1 09:28:36.152: %LINK-3-UPDOWN: Interface Port-channel1, changed state to up
*May  1 09:28:36.153: %LINK-3-UPDOWN: Interface Ethernet0/0, changed state to up
*May  1 09:28:36.177: %LINK-3-UPDOWN: Interface Ethernet0/1, changed state to up
*May  1 09:28:37.161: %LINEPROTO-5-UPDOWN: Line protocol on Interface Port-channel1, changed state to up
*May  1 09:28:37.161: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet0/0, changed state to up
*May  1 09:28:37.180: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet0/1, changed state to up
IOU1(config-if)#EXIT
IOU1(config)#
IOU1(config)#EXIT
IOU1#
IOU1#SHOW I
*May  1 09:28:43.762: %SYS-5-CONFIG_I: Configured from console by console
IOU1#SHOW INT
IOU1#SHOW INTerfaces PORT
IOU1#SHOW INTerfaces PORT-CH
IOU1#SHOW INTerfaces PORT-CHannel 1
Port-channel1 is up, line protocol is up (connected)



جهت فعال یا غیر فعال کردن این فیچر

IOU1(config) # (NO) SPANning-tree ETHERchannel GUard MISconfig

الگوریتم های LOAD-BALANCING

مبحث LOAD-BALANCING در ETHERCHANNEL با مفهوم برابری ترافیک در همه ی لینک ها متفاوت است و به عبارت دیگر ترافیک در همه ی لینک ها برابر نخواهد بود بلکه براساس تنظیمات انجام شده و الگوریتم سیسکو ، ترافیک بین لینک ها تقسیم می شود.
در واقع سوال این است که وقتی ، سوئیچ ترافیکی را روی یک لینک LOGICAL ارسال میکند ، آن ترافیک روی کدام پورت فیزیکی ارسال می شود.

S1


HASH ALGORITHM LOAD-BALANCE

همانطور که گفته شد مبحث LOAD-BALANCE در ETHRERCHANNEL با مفهوم برابری ترافیک در همه ی لینک ها متفاوت است و به عبارت دیگر در همه ی لینک ها برابر نخواهد بود بلکه براساس تنظیمات انجام شده و الگوریتم سیسکو ترافیک بین لینک ها تقسیم می شود.

در اصل سیسکو از یک HASH-ALGORITHM برای تقسیم ترافیک بین لینک ها استفاده می کند که نتیجه آن یک مقدار از 0 تا 7 و براساس میزان ترافیک تعیین می شود.

تعداد لینک ها و نسبت توازن
تعداد پورتهایی که در ETHERCHANNEL می توانند AGGREGATE شوند بهتر است توانی از 2 در نظر گرفته شوند.(2 و 4 و 8 لینک )

54


55


اگر تعداد لینک ها در etherchannel توانی از 2 باشد ( 2 لینک و 4 لینک و 8 لینک ) در اینصورت نسبت توازن بار بین لینک ها برابر است.

M1


57



همانطور که گفته شد هر کدام از این 8 تا لینک یک مقداری از این hash-algorithm ( 0 تا 7 ) اختصاص داده می شود ، به طور مثال برای 2 لینک

56


به ترتیب به لینک 1 ، H0 و به لینک دوم H1 ، به لینک سوم H 2 و همنطور تا لینک دوم H7 و اگر با دقت به HASH هایی که به لینک ها اختصاص پیدا کرد می بینیم که نسبت توازن بصورت مساوی و 4:4 شد.

پیشنهاد داده شد که تعداد لینک ها مساوی باشند ولی حالا اگر تعداد لینک ها مساوی نبانشد ، نسبت توازن مساوی نخواهد بود

58


به عنوان نمونه ما در اینجا 3 لینک بیم دو سوئیچ داریم که به ترتیب به هر لینک یک مقدار HASH داده شده است ، اما در کل می بیبیم که 2 لینک ابتدایی دارای 3 مقدار HASH نسبت به لینک سوم هستند که این یعنی توازن بین در بین 3 لینک بصورت NT=3:3:2 می باشد یا میتوان گفت روی 2 لینک ابتدایی نسبت به لینک سوم بار بیشتری وجود دارد.

59.1


حال سراغ الگوریتم های LOAD-BALANCING می رویم ، گفته شد مبحث LOAD-BALANCE در ETHRERCHANNEL با مفهوم برابری ترافیک در همه ی لینک ها متفاوت است و به عبارت دیگر در همه ی لینک ها برابر نخواهد بود بلکه براساس تنظیمات انجام شده و الگوریتم سیسکو ترافیک بین لینک ها تقسیم می شود.الگوریتم های LOAD-BALANCE بصورت زیر است

S3



1.SOURCE IP ADDRESS
2.DESTINATION IP ADDRESS
3.SOURCE-DESTINATION IP ADDRESS

4.SOURCE-MAC
5.DESTINATION-MAC
6.SOURCE-DESTINATION MAC ADDRESS

7.SOURCE PORT
8.DESTINATION PORT
9.SOURCE-DESTINATION PORT

فاکتورهای مهم در LOAD-BALANCING

در خصوص LOAD-BALANCING ما 2 فاکتور مهم داریم :
1.نواع الگوریتم
2.تعداد لینک ها

نوع الگوریتم
الگوریتم استفاده شده می تواند تکی ( SORCE IP DEST IP SOURCE MAC DEST MAC , … ) یا ترکیبی ( SORCE-SEXT-IPSOURCE-SEST-PORT/SOURCE-DEST-MAC ) که اگر ترکیبی باشد XOR خواهند شد.

تعداد لینک ها
همانطور که قبلا" گفته شد پیشنهاد می شود تعدادد لینکها توانی از 2 باشد تا توازن بار بین آنها یکسان باشد ، حال بیائید در قالب چند مثال بیشتر با این مفاهیم آشنا شویم .

بررسی الگوریتم های تکی

در این قسمت قصد داریم الگوریتم های تکی مثل SOURCE یا DESTINATION را جهت درک بیشتر بررسی کنیم.

مثال 1 :

70


ما بین 2 سوئیچ ETHERCHANNEL راه انداخته ایم ، تصور کنید که در SW1 نوع الگوریتم براساس SOURCE IP است و کامپیوتر ی که IP ی 192.168.1.7 را دارد ، بسته ای به سمت سرور با IP ی 192.168.1.14 ارسال می کند.

اول اینکه نوع الگوریتم براساس SOURCE IP است و ما با آی پی مبدا که ای پی کلاینت است سروکار داریم ، در راه اندازی ETHERCHANNEL ما از 2 لینک استفاده کرده ایم و طبق فرمول معروف 2^N ، مقدار N برابر با 1 خواهد شد.

SOURCE IP : 192.168.1.7
N = 1

اگر مقدار HOST ID ، یا همان OCTED آخر SOURCE IP را به باینری برگردانیم

 ( 7 ) 10 = ( 111 ) 2


در اینجا بخاطر N=1 تنها یک بیت را نگاه می کنیم که برابر با 1 است ، حالا طبق تصویر و HASH الگوریتم این بسته از لینک فیزیکی دوم عبور می کند.اگر SOURCE IP برابر با 8 بود آنگاه :

( 8 ) 10 = ( 1000 )2


به اولین بیتش که نگاه می کردیم برابر با 0 بود که از لینک اول استفاده میکرد.
مثال 2

تصور کنید در ETHERCHANNEL من از 4 لینک استفاده کرده ام

71



شرایط دراینجا به این صورت است که نوع الگوریتم من SOURCE IP است و کامپیوتر 192.168.1.2 می خواهد بسته ای به سمت 192.168.1.14 ارسال نماید و من از 4 لینک برای بحث ETHERCHANNEL استفاده کرده ام.

SOURCE IP : 192.168.1.2 
 4 LINK --> 2^N --> N= 2
( 2 ) 10 = ( 10 ) 2


طبق HASH-ALGORITHM سیسکو ، لینک سوم دارای مقدار HASH 2 که برابر با عدد در مبنای 2 می باشد استفاده می شود

یا اگر الگوریتم ما DESTINATION IP و به سمت سرور 192.168.1.13 می بود آنگاه

DESTINATION  IP : 192.168.1.13 
 4 LINK --> 2^N --> N= 2
( 13 ) 10 = ( 1101 ) 2

با توجه به 2 بیت سمت راست ( 01 ) که در مبنای 2 است ، این بسته از لینک دوم به سمت سرور ارسال می شد.
مثال سوم

تصور کنید در ETHERCHANNEL من از 8 لینک استفاده کرده ام

73



تصور کنید که کلاینت ای که دارای ای پی 192.168.1.5 است ، قصد دارد بسته ای به سمت سرور 192.168.1.16 ارسال نماید ، نوع الگوریتم در سوئیچ 1 ، SOURCE IP است

SOURCE IP : 192.168.1.5
8 LINK -- > 2^N , N = 3
( 5 ) 10 =  ( 101 ) 2


طبق HASH-ALGORITHM بسته از لینک 6 عبور میکند.
مثال چهارم

اگر ما طبق تصویر زیر 5 لینک در بحث ETHERCHANNEL داشته باشیم

74


اگر نوع الگوریتم SOURCE IP باشد و کامپیوتری که دارای IP ی 192.168.1.23 است بخواهد بسته ای به سمت سروری که دارای IP ی 192.168.1.17 است ارسال کند در اینصورت

SOURCE IP : 192.168.1.23
( 23 ) 10 = ( 10111 )2


همانطور که میبینیم اینجادیگر تعداد لینک ها توانی از N نیست ، درواقع نکته این است که ما 8 لینک داریم که هریک یک مقدار HASH بین 0 تا 7 دارند که یعنی 8 عدد که برای این عدد

8 = 2^3


ما 3 بیت سمت راست را در نظر می گیریم و نگاه میکنیم کدام لینک HASH 7 را دارد و طبق تصویر لینک سوم این مقدار HASH را در خود داردو لینک 3 را انتخاب میکند.در انتها باید این نکته را اضافه کرد که اکتد آخر آی پی مربوطه هر چه که باشد آنرا به مبنای 2 می بریم و حداکثر با 3 بیت سمت راست آن کار داریم که مجموع این 3 بیت اگر 1 باشد برابر با HASH 7 خواهند بود.

بررسی الگوریتم های ترکیبی

در قسمت قبل الگوریتم های تکی که تنها براساس SOURCE یا DESTINATION بود آورده شد و حالا در این قسمت قصد داریم با الگوریتم های ترکیبی مثل SOURCE-DEST-IP SOURCE-DEST-MAC SOURCE-DEST-PORT آشنا شویم ، اینجا هم ما همان فاکتورهای قبلی و بحث HASH-ALGORITHM را داریم.

2 فاکتور مهم داشتیم
1.نوع الگوریتم
2.تعداد لینک

در الگوریتم های ترکیبی ، خروجی XOR می شود ، بگذارید در یک مثال با این موضوع بیشتر اشنا شویم ) با فرض الگوریتم SOURCE-DEST-IP ) :

71.1


در سناریو ما برای ETHERCHANNEL از 4 لینک استفاه کرده ایم و کلاینتی که دارای ای پی 192.168.1.7 است بسته ای را به سمت 192.168.1.10 ارسال میکند.

SOURCE IP           :  192.168.1.7
DESTINATION IP : 192.168.1.10

SOURCE IP           :  192.168.1.7 -- > ( 7 ) 10 = (0111 )2
DESTINATION IP : 192.168.1.10 -- > ( 10 )10 = (1010)2
 4 LINK , 2^N , N = 2

(11)2 XOR (10)2 = ( 01)



17. تابع منطقی XOR


در تابع منطقی XOR خروجی زمانی برابر با 1 خواهد بود که ورودی ها مانند هم نباشند

S12


در هر لحظه تنها یکی از ورودی ها باید 1 باشند تا خروجی 1 باشد

80


طبق نتیجه خروجی بسته از لینکی که دارای HASH-CODE مذکور ( لینک 2 ) استفاده می کند.

81

کاربرد متدهای LOAD-BALANCING

سناریو زیر را در نظر بگیرید

83



در سناریو فوق ، بدون شک تمام کلاینت ها ترافیک خود را به سمت روتر ارسال میکنند پس یعنی اگر من نوع الگوریتم را در SW1 ، بصورت DESTINATION IP و یا ای پی روتر مقصد انتخاب کنم مسلما" تمام ترافیک از یک لینک عبور خواهد کرد یعنی

( 10 )10 = ( 1010 )2
2^N, N=2 
HASH CODE ( 10 )2 -- > LINK 3


در صورت انتخاب الگوریتم DESTINATION IP کل ترافیک ( درسمت SW1 ) از لینک 3 عبور خواهد کرد که این جالب نیست و از 3 لینک دیگر ترافیکی عبور نمی کند.در سناریوهایی به این صورت ، پیشنهاد می شود نوع الگوریتم بصورت SOURCE IP /SOURCE MAC باشد و در یک قاعده کلی

1.اگر پراکندگی در مبدا زیاد باشد از متدهایی که SOURCE هستند استفاده می کنیم.
2.اگر پراکندگی در مقصد زیاد باشد از متدهایی که DESTINATION هستند استفاده کنیم.
3.اگر پراکندگی در 2 طرف زیاد باشد از متدهای ترکیبی SOURCE-DESTINATION استفاده کنید.

عدم یکسان بودن الگوریتم در سوئیچ های 2 طرف

این امکان وجود دارد که الگوریتم ای که در 2 سمت ETHERCHANNEL استفاده میکنیم یکسان نباشد که در اینصورت ترافیک بصورت نامتقارن در 2 جهت رد وبدل می شود.


نکات کلیدی:
1.در متدهای LOAD-BALANCING ، متد IP به MAC اولویت دارد.
2.اگر الگوریتم خاصی را انتخاب نکنیم ، الگوریتم های زیر دیفالت خواهند بود:
در سوئیچ های لایه 2 متد SOURCE-MAC
در سوئیچ های لایه 3 متد SOURCE-DESTINATION-IP

Verify کردن الگوریتم های load-balancing

84


Switch#show etherchannel load-balance 
EtherChannel Load-Balancing Operational State (src-mac):

85


IOU2#show etherchannel load-balance 
EtherChannel Load-Balancing Configuration:
        src-dst-ip


تعیین الگوریتم load-balance

IOU1(config)#port-channel load-balance ?
  dst-ip       Dst IP Addr
  dst-mac      Dst Mac Addr
  src-dst-ip   Src XOR Dst IP Addr
  src-dst-mac  Src XOR Dst Mac Addr
  src-ip       Src IP Addr
  src-mac      Src Mac Addr



مثال :
در سناریو زیر نوع load-balance را طبق خواسته انجام دهید

86


IOU1(config)#port-channel load-balance src-ip
IOU1(config)#int range ethernet 0/1-2
IOU1(config-if-range)#channel-protocol pagp
IOU1(config-if-range)#channel-group 1 mode desirable 

IOU2(config)#port-channel load-balance dst-mac
IOU2(config)#int range ethernet 0/1-2
IOU2(config-if-range)#channel-protocol pagp
IOU2(config-if-range)#channel-group 1 mode auto

IOU1#show etherchannel load-balance 
EtherChannel Load-Balancing Configuration:
        src-ip

IOU2#show etherchannel load-balance 
EtherChannel Load-Balancing Configuration:
        dst-mac


بررسی میزان load ترافیک

برای این موضوع می توان از کامندهای زیر استفاده کرد

IOU2#show etherchannel port-channel 
IOU2#show interfaces port-channel 1 etherchannel


90



اگر اعدادی که نمایانگر میزان load هستند نزدیک به هم بودند اجازه دهیم کارشان را بکنند ولی اگه این اعداد خیلی متفاوت بودند بعد از 1-2 هفته نوع الگوریتم را عوض کنیم .

آشنایی با multichassis etherchannel

سناریوای مثل سناریو زیر را در نظر بگیرید

C1


سوئیچ MLS1 به 2 سوئیچ دیگر متصل است ، در چنین شرایطی نمی توان 4 پورت سوئیچ MLS را با یکدیگر BUNDLE کرد و ETHERCHANNEL شکل داد.

C2


در واقع در بحث ETHERCHANNEL پورت هایی که باید BUNDLE شوند باید سر آنها به 2 سوئیچ متصل باشند و نه به بیش از 2 سوئیچ.در تصویر فوق پورت هایی سوئیچ MLS 1 به جای اینکه به یک سوئیچ متصل شوند ، به 2 تا سوئیچ متصل شده اند که در این شرایط نمیتوان 4 تا پورت سوئیچ MLS1 را با یکدیگر BUNDLE کرد.

اما با استفاده از تکنولوژی هایی می توان کاری کرد که چندین سوئیچ در کنار هم ، یک سوئیچ به نظر برسد.به عنوان مثال ، با استفاده از همان تکنولوژی ها ، اینطور به نظر برسد که سوئیچ های MLS1 و MLS2 یک سوئیچ واحد به نام SW A است.

تکنولوژی هایی مثل

 STACKWISE 3750 , 2960
VSS 6500
VPC IN NEXUS SWITCH


C3



زمانی که چندین سوئیچ ، یک سوئیچ به نظر برسد آنوقت شما با 4 پورت با 2 سوئیچ ایجاد کنیم ، به نظر می رسد که PORT-CHANNEL با 4 پورت روی یک سوئیچ تشکیل شده است .

با استفاده از فیچر multichassis etherchannel سبب می شود ما نه تنها LINK REDUNDANCY داشته باشیم بلکه باعث ایجاد SWITCH REDUNDANCY هم برای ما خواهد شد.

در ETHERCHANNEL معمولی ، هدف ایجاد پهنای باند بود ولی به نوعی LINK-REDUNDANCY هم داشتیم و اگر از 4 لینک ، 3 لینک هم FAIL می شد اتفاقی نمی افتاد و STP وارد پروسه همگرایی نمیشد چرا یک از دید STP تنها یک لینک LOGICAL داشتیم که کار خودش را می کرد ولی عملا" در مقابل سوئیچ مقاوم نبود و اگر سوئیچ FAIL میشد عملا" ارتباط قطع میشد.

با استفاده از فیچر multichassis etherchannel ، ما بطور همزمان علاوه بر داشتن LINK REDUNDANCY ، SWITCH REDUNDANCY هم داریم و همانند شرایط ETHERCHANNEL معمولی ، در برابر قطع لینک مشکلی نداریم ، علا.ه بر آن اگر یکی از سوئیچ ها هم FAIL شودمشکلی برای PORT-CHANNEL ما ایجاد نمی شود و البته این مشروط به این است که با استفاده از تکنولوژی هایی ذکر شده ، عملا" کاری کرد که 2 سوئیچ ، بصورت یک سوئیچ دیده شود.

24.Etherchannel layer 2 and layer 3

در زمان ایجاد ETHERCHANNEL بین دو MLS چون تمام پورتهایش L2 هستند ، ETHERCHANNEL ما بصورت لایه 2 ای شکل می گیرد.

22


MLS1#SHOW ETHERchannel 
                Channel-group listing:
                ----------------------

Group: 1
----------
Group state = L2
Ports: 4 Maxports = 8
Port-channels: 1 Max Portchannels = 1
Protocol:   PAGP
MLS1#


در صورتی که بخواهیم ETHERCHAANEL ما بصورت لایه 3 ای باشد تا بتوانیم به PORT-CHANNEL خودمان IP بدهیم باید کامند NO SWITCHPORT را قبل از ایجاد ETHERCHANNEL بزنیم. ( در GNS3 )


مثال

30



IOU1(config)#INT RANGE ETH 0/0-1
IOU1(config-if-range)#NO switchport
IOU1(config-if-range)#channel-protocol pagp
IOU1(config-if-range)#channel-group 1 mode desirable

IOU2(config)#INT RANGE ETH 0/0-1
IOU2(config-if-range)#NO switchport
IOU2(config-if-range)#channel-protocol pagp
IOU2(config-if-range)#channel-group 1 mode auto





IOU1#show etherchannel 
                Channel-group listing: 
                ----------------------

Group: 1 
----------
Group state = L3 
Ports: 2   Maxports = 4
Port-channels: 1 Max Port-channels = 1
Protocol:   PAgP
Minimum Links: 0



IOU1#


IOU1(config)#interface port-channel 1
IOU1(config-if)#ip add 192.168.1.1 255.255.255.0
IOU1(config-if)#no shut

IOU2(config)#interface port-channel 1
IOU2(config-if)#ip address 192.168.1.2 255.255.255.0
IOU2(config-if)#no shut

IOU2#show ip int brief 
Interface              IP-Address      OK? Method Status                Protocol   
Port-channel1          192.168.1.2     YES manual up                    up      
IOU2#

IOU2#ping 192.168.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.1, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 7/8/10 ms
IOU2#




صادق شعبانی
صادق شعبانی

کارشناس ارشد سیسکو

صادق شعبانی ( هکر قانونمند ، مهندس مایکروسافت ، کارشناس ارشد سیسکو ) : انسانی که کنار میکشه هیچوقت پیروز نمیشه و انسانی که پیروز میشه هیچوقت کنار نمی کشه.

نظرات