Описание EtherChannel
Технология EtherChannel позволяет объединять несколько физических портов на коммутаторах в один логический. Чтобы сразу стало понятно, о чём идёт речь, приведу пример: пусть два коммутатора соединены между собой четырьмя проводами (на каждом используется по 4 порта по 100 Mbit каждый). В случае отсутствия EtherChannel – линки эти будут считаться петлями и протокол Spanning Tree заблокирует три из них. Работать будет только один и скорость обмена данными составит 100 Mbit, зато с тройным резервированием. В случае же объединения их с помощью EtherChannel (на обоих коммутаторах), между коммутаторами будет один виртуальный линк, состоящий из четырёх физических, работающий со скоростью 400 Mbit. Теперь, когда стало более или менее понятно, с чем мы имеем дело перейдём к описанию и настройке.
Технология EtherChanel изначально была предложена компанией Cisco, но в настоящий момент используются и у других производителей. Технология позволяет несколько физических портов в один виртуальный порт, именуемый PortChannel. Возможно создавать несколько отдельных PortChannel-ов на одном коммутаторе. Давайте подумаем, какие преимущества даёт эта технология:
- Главное преимущество – скорость, нет необходимости покупать новый коммутатор, если на старом только гигабитные порты, а нам надо более быстрый аплинк к следующему коммутатору, мы можем объединить, например, 8 портов и получить 8 гигабит.
- В плане надёжности Etherchannel отличается от использования протокола Spanning tree тем, что если в STP пропадает какой-то линк, то начинается пересчёт топологии, что занимает какое-то время, после чего, резервный канал вводится в строй, в случае же Etherchannel, топология не меняется, просто скорость канала в предыдущем примере станет не 8, а 7 гигабит. Иными словами, Etherchannel не избавляет от необходимости использовать Spanning Tree, но в случае, если линк пропадает именно на агрегированном участке, избавляет от необходимости пересчёта топологии.
- Ещё одно небольшое, но всё же преимущество – после создания интерфейса portchannel, большая часть настроек может проводиться на нём – нет необходимости отдельно настраивать входящие в него физические интерфейсы – все параметры будут транслироваться на них автоматически.
Для того, чтобы PortChannel мог существовать, необходимо, чтобы все входящие в него порты имели одинаковые параметры, а именно:
- Одинаковую скорость (нельзя создать portchannel, куда входили бы, например, FastEthernet0/1 и GigabitEthernet1/1 – либо все 10 Мбит, либо все 100, либо все – гигабит и т.д.)
- Одинаковые настройки дуплекса
- Одинаковые настройки VLAN-ов. В случае access портов – все порты должны быть в одном VLAN, в случае trunk портов – список разрешённых VLAN (команда switchport trunk allowed vlan) так же должен совпадать
Когда два коммутатора «договариваются» друг с другом об использовании между ними агрегированного канала, применяется один из двух протоколов: PAgP или LACP. PAgP – разрабатывался изначально cisco, а затем появился аналогичный открытый стандарт LACP, который был оформлен в виде спецификации IEEE и используется как на каталистах, так и на коммутаторах других производителей. Иными словами, в современных реалиях лучше всего использовать LACP, так как он совместим со всеми, в отличие от PAgP. В функциональном же плане протоколы аналогичные. PortChannel может быть настроен в одном из трёх режимов: On, Active и Passive (в LACP) или On, Auto, Desirable (в PAgP соответственно). Для того, чтобы между коммутаторами поднялся и заработал portchannel, необходимо, чтобы обе стороны были настроены в режиме On, либо одна была в режиме Active, а другая – Passive.
Конфигурация EtherChannel
Теперь, когда мы имеем представление об этой технологии, перейдём к её конфигурированию. Попробуем подключить друг к другу два коммутатора при помощи четырёх линков FastEthernet. Начнём с того, что просто запустим коммутаторы и воткнём четыре провода. Как и ожидалось, протокол Spanning Tree посчитал то что у нас получилось петлёй и заблокировал три из них на коммутаторе S1:

S1#show spanning-tree
VLAN0001
Spanning tree enabled protocol ieee
Root ID Priority 32769
Address 000C.CFDA.127B
Cost 19
Port 1(FastEthernet0/1)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 32769 (priority 32768 sys-id-ext 1)
Address 00E0.F7DB.0E61
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 20
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/1 Root FWD 19 128.1 P2p
Fa0/2 Altn BLK 19 128.2 P2p
Fa0/3 Altn BLK 19 128.3 P2p
Fa0/4 Altn BLK 19 128.4 P2p
Видно, что Fa0/1 стал корневым, а остальные порты – заблокированы. То есть, если мы сейчас начнём мерить скорость передачи между коммутаторами, она составит 100 Мбит, так как реально используется только один порт, а три других – в резерве, на случай выхода из строя первого.
Включаем интерфейсы с первого по четвёртый в Portchannel 5:
S1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
S1(config)#interface range Fa0/1-4
S1(config-if-range)#channel-group 5 mode on
Обратите внимание, мы выбрали режим On – принудительный Port Channel – в этом случае, он попытается подняться до того момента, как мы настроим на втором коммутаторе аналогичную конфигурацию. В реальных сетях это может привести к проблеме со Spanning Tree, поэтому имеет смысл использовать режимы active – на одном коммутаторе и passive – на втором.
Теперь аналогично сконфигурируем второй коммутатор, создадим там, например, интерфейс PortChannel 1 – специально, чтобы показать, что номер интерфейса не важен: на первом коммутаторе мы сделали Po5, на втором – Po1):
S2#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
S2(config)#interface range Fa0/1-4
S2(config-if-range)#channel-group 1 mode on
Creating a port-channel interface Port-channel 1
%LINK-5-CHANGED: Interface Port-channel 1, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface Port-channel 1, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to down
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/2, changed state to down
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/2, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/3, changed state to down
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/3, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/4, changed state to down
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/4, changed state to up
Давайте посмотрим, что теперь обо всём этом думает протокол STP:
S1#show spanning-tree
VLAN0001
Spanning tree enabled protocol ieee
Root ID Priority 32769
Address 000C.CFDA.127B
Cost 7
Port 27(Port-channel 5)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 32769 (priority 32768 sys-id-ext 1)
Address 00E0.F7DB.0E61
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 20
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Po5 Root FWD 7 128.27 Shr
Как мы видим, теперь с его точки зрения есть только один порт – Po5, а раз он один, то значит и петли нет и блокировать ничего не надо. Для просмотра состояния EtherChannel используется команда show etherchannel с разными продолжениями – можете воспользоваться контекстной справкой (?).
S1#show etherchannel summary
Flags: D - down P - in port-channel
I - stand-alone s - suspended
H - Hot-standby (LACP only)
R - Layer3 S - Layer2
U - in use f - failed to allocate aggregator
u - unsuitable for bundling
w - waiting to be aggregated
d - default port
Number of channel-groups in use: 1
Number of aggregators: 1
Group Port-channel Protocol Ports
------+-------------+-----------+----------------------------------------------
5 Po5(SU) - Fa0/1(P) Fa0/2(P) Fa0/3(P) Fa0/4(P)
Мы видим, что все четыре порта входят в группу 5. Давайте поэкспериментируем, как себя поведёт группа, в случае отказа одного из портов. Зайдём на удалённый коммутатор и потушим там Fa0/2.
S2#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
S2(config)#interface Fa0/2
S2(config-if)#shutdown
%LINK-5-CHANGED: Interface FastEthernet0/2, changed state to administratively down
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/2, changed state to down
Теперь посмотрим, работает ли наш канал:
S1#show etherchannel summary
Flags: D - down P - in port-channel
I - stand-alone s - suspended
H - Hot-standby (LACP only)
R - Layer3 S - Layer2
U - in use f - failed to allocate aggregator
u - unsuitable for bundling
w - waiting to be aggregated
d - default port
Number of channel-groups in use: 1
Number of aggregators: 1
Group Port-channel Protocol Ports
------+-------------+-----------+----------------------------------------------
5 Po5(SU) - Fa0/1(P) Fa0/2(D) Fa0/3(P) Fa0/4(P)
Как мы видим, всё продолжает работать, но по трём оставшимся портам, а Fa0/2 перешел в состояние Down. Если его включить, то всё вернётся к нормальному состоянию, но даже сейчас канал будет отлично работать на скорости 300 Мбит. Для переконфигурирования портов, нет необходимости заходить в каждый из FastEthernet-ов и менять там параметры – достаточно прописать их на вновь созданном интерфейса Port Channel 5.