Агрегация канала EtherChannel
Описание 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, куда входили бы, например, 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.
Комментарии
007 (не проверено)
чт, 05/22/2014 - 23:33
Постоянная ссылка (Permalink)
2. Одинаковые настройки дуплекАса
bacek
вт, 06/10/2014 - 19:26
Постоянная ссылка (Permalink)
Vlad (не проверено)
вс, 01/03/2016 - 18:49
Постоянная ссылка (Permalink)
Т.е. од любого хоста к любому передаются данные, и они будут делится на 4 канала. И от любого ПК к любому данные будут передаться на скорости 400 Мбит/с???
Заранее благодарен за ответ!!!
bacek
пн, 01/04/2016 - 15:13
Постоянная ссылка (Permalink)
oklick007 (не проверено)
пт, 12/28/2018 - 11:44
Постоянная ссылка (Permalink)
А может из-за алгоритмов расчета при балансировке трафика, с большой вероятностью, данные 4 хоста не займут все 4 порта, а например только 3 порта из 4 и тогда, только 2 хоста будут работать на скорости 100Мбит/с, а 2 других поделят примерно по 50. Следовательно, один порт будет простаивать. Или вообще в вашем примере может возникнуть ситуация, при балансировке по дестинейшен мак-адресу, все хосты пошлют свой трафик в один порт (те же 25 на каждого).
Как вы понимаете Ваше утверждение не совсем корректно, а автор вводит в заблуждение, может это и не тема CCNA конечно, но оговорку на это сделать было нужно!
Знайте, что метод балансировки нагрузки повлияет на распределение трафика во всех EtherChannel, которые созданы на коммутаторе.
В зависимости от модели коммутатора, могут поддерживаться такие методы балансировки:
-по MAC-адресу отправителя или MAC-адресу получателя или учитывая оба адреса
-по IP-адресу отправителя или IP-адресу получателя или учитывая оба адреса
-по номеру порта отправителя или номеру порта получателя или учитывая оба порта
Пример вариантов на коммутаторе 3560:
sw1(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
oklick007 (не проверено)
пт, 12/28/2018 - 11:32
Постоянная ссылка (Permalink)
Автор вводит в заблуждение, когда утверждает следующее "один виртуальный линк, состоящий из четырёх физических, работающий со скоростью 400 Mbit". На самом деле это не так, точнее коммутатор конечно вам покажет на интерфейсе Port-channel суммарную производительность всех портов объединенных в общий канал (400 Мбит/с), но использовать все 400 один ПК никогла не сможет, даже если он будет подключен допустим к одному из этих свитчей на скорости 1Гбит/с. В силу вступают методы балансировки трафика на таких портах, которые отвечают какой именно трафик пойдет в какой физический порт. По факту мы получаем прирост производительности, но не суммирование этих портов в общую пропускную способность.
Т.е. когда идёт 2 потока данных между 2-мя парами ПК на скорости 100 Мбис/с каждый, то более вероятна ситуация, что 2 из 4 портов будут загружены по 100% (один порт на один поток), а может получится другая ситуация, что оба этих потока коммутатор при помощи алгоритмов балансировки попытается выпустить в один порт и получится 100 Мбит/с на 2 потока (т.е. каждый поток снизится до 50%), а 3 других порта просто будут не нагружены.
bacek
чт, 01/10/2019 - 09:05
Постоянная ссылка (Permalink)
Спасибо.
Это важное уточнение. Действительно, в CCNA они очень грубо упоминают эту тему. Так как написано в тексте (100*4=400) будет только при условии нормальной хорошо загруженной сети где одновременно много кто много с кем другим обменивается данными - в этом случе производительность будет близка к четырёхкратной. А если это какой-то частный случай вроде один сервер общается с одним клиентом через 4 линка, то вы вероятно правы на счёт скорости.
ftn453 (не проверено)
пт, 01/31/2020 - 18:02
Постоянная ссылка (Permalink)
Небольшое уточнение. Под 400 мбит/с имеется в виду КАНАЛЬНАЯ скорость виртуального интерфейса.
ftn453 (не проверено)
пт, 01/31/2020 - 17:57
Постоянная ссылка (Permalink)
"использовать все 400 один ПК никогла не сможет" - с этим можно поспорить. На сетевом интерфейсе ПК можно задать несколько IP адресов. Так что при определенных условиях (4 приложения с очень большой сетевой активностью используют разные IP адреса, балансировка включает в себя IP, правильно подобраны IP адреса), если ПК подключен как минимум к гигабитному каналу, возможна суммарная скорость вплоть до 400 Мбит/с для данного ПК.
porticols (не проверено)
пт, 04/24/2020 - 00:18
Постоянная ссылка (Permalink)
нужно чтоб через коммутаторы проходил трафик 20-и виланов, через агрегацию, соответсвенно вопрос таков, switchport mode должен быть trunk или access?
bacek
пт, 08/07/2020 - 14:34
Постоянная ссылка (Permalink)
Добавить комментарий