Агрегирование каналов
Материал из Xgu.ru
- Автор: Наташа Самойленко
- Короткий URL: link_aggregation
Агрегирование каналов (агрегация каналов, англ. link aggregation) — технология, которая позволяет объединить несколько физических каналов в один логический. Такое объединение позволяет увеличивать пропускную способность и надежность канала. Агрегирование каналов может быть настроено между двумя коммутаторами, коммутатором и маршрутизатором, между коммутатором и хостом.
Для агрегирования каналов существуют другие названия:
- Port Trunking (в Cisco trunk'ом называется тегированный порт, поэтому с этим термином путаницы больше всего),
- EtherChannel (в Cisco так называется агрегирование каналов, это может относиться как к настройке статических агрегированных каналов, так и с использованием протоколов LACP или PAgP)
- И еще множество других: Ethernet trunk, NIC Teaming, Port Channel, Port Teaming, LAG (link aggregation), Link Bundling, Multi-Link Trunking (MLT), DMLT, SMLT, DSMLT, R-SMLT, NIC bonding, Network Fault Tolerance (NFT), Fast EtherChannel.
[править] Общая информация об агрегировании каналов
Агрегирование каналов позволяет решить две задачи:
- повысить пропускную способность канала
- обеспечить резерв на случай выхода из строя одного из каналов
Большинство технологий по агрегированию позволяют объединять только параллельные каналы. То есть такие, которые начинаются на одном и том же устройстве и заканчиваются на другом.
Если рассматривать избыточные соединения между коммутаторами, то без использования специальных технологий для агрегирования каналов, передаваться данные будут только через один интерфейс, который не заблокирован STP. Такой вариант позволяет обеспечить резервирование каналов, но не дает возможности увеличить пропускную способность.
|
Без использования STP такое избыточное соединение создаст петлю в сети. |
Технологии по агрегированию каналов позволяют использовать все интерфейсы одновременно. При этом устройства контролируют распространение широковещательных фреймов (а также multicast и unknown unicast), чтобы они не зацикливались. Для этого коммутатор, при получении широковещательного фрейма через обычный интерфейс, отправляет его в агрегированный канал только через один интерфейс. А при получении широковещательного фрейма из агрегированного канала, не отправляет его назад.
Хотя агрегирование каналов позволяет увеличить пропускную способность канала, не стоит рассчитывать на идеальную балансировку нагрузки между интерфейсами в агрегированном канале. Технологии по балансировке нагрузки в агрегированных каналах, как правило, ориентированы на балансировку по таким критериям: MAC-адресам, IP-адресам, портам отправителя или получателя (по одному критерию или их комбинации).
То есть, реальная загруженность конкретного интерфейса никак не учитывается. Поэтому один интерфейс может быть загружен больше, чем другие. Более того, при неправильном выборе метода балансировки (или если недоступны другие методы) или в некоторых топологиях, может сложиться ситуация, когда реально все данные будут передаваться, например, через один интерфейс.
Некоторые проприетарные разработки позволяют агрегировать каналы, которые соединяют разные устройства. Таким образом резервируется не только канал, но и само устройство. Такие технологии в общем, как правило, называются распределенным агрегированием каналов (у многих производителей есть своё название для этой технологии).
На этой странице рассматривается в основном агрегирование параллельных каналов. Для распределенного агрегирования выделен отдельный раздел в котором указаны соответствующие технологии некоторых производителей. Распределенное агрегирование в коммутаторах HP (ProCurve) рассмотрено более подробно.
[править] Агрегирование каналов в Cisco
Для агрегирования каналов в Cisco может быть использован один из трёх вариантов:
- LACP (Link Aggregation Control Protocol) стандартный протокол
- PAgP (Port Aggregation Protocol) проприетарный протокол Cisco
- Статическое агрегирование без использования протоколов
Так как LACP и PAgP решают одни и те же задачи (с небольшими отличиями по возможностям), то лучше использовать стандартный протокол. Фактически остается выбор между LACP и статическим агрегированием.
Статическое агрегирование:
- Преимущества:
- Не вносит дополнительную задержку при поднятии агрегированного канала или изменении его настроек
- Вариант, который рекомендует использовать Cisco
- Недостатки:
- Нет согласования настроек с удаленной стороной. Ошибки в настройке могут привести к образованию петель
Агрегирование с помощью LACP:
- Преимущества:
- Согласование настроек с удаленной стороной позволяет избежать ошибок и петель в сети.
- Поддержка standby-интерфейсов позволяет агрегировать до 16ти портов, 8 из которых будут активными, а остальные в режиме standby
- Недостатки:
- Вносит дополнительную задержку при поднятии агрегированного канала или изменении его настроек
[править] Терминология и настройка
При настройке агрегирования каналов на оборудовании Cisco используется несколько терминов:
- EtherChannel — технология агрегирования каналов. Термин, который использует Cisco для агрегирования каналов.
- port-channel — логический интерфейс, который объединяет физические интерфейсы.
- channel-group — команда, которая указывает какому логическому интерфейсу принадлежит физический интерфейс и какой режим используется для агрегирования.
Эти термины используются при настройке, в командах просмотра, независимо от того, какой вариант агрегирования используется (какой протокол, какого уровня EtherChannel).
На схеме, число после команды channel-group указывает какой номер будет у логического интерфейса Port-channel. Номера логических интерфейсов с двух сторон агрегированного канала не обязательно должны совпадать. Номера используются для того чтобы отличать разные группы портов в пределах одного коммутатора.
[править] Общие правила настройки EtherChannel
LACP и PAgP группируют интерфейсы с одинаковыми:
- скоростью (speed),
- режимом дуплекса (duplex mode),
- native VLAN,
- диапазон разрешенных VLAN,
- trunking status,
- типом интерфейса.
Настройка EtherChannel:
- Так как для объединения в EtherChannel на интерфейсах должны совпадать многие настройки, проще объединять их, когда они настроены по умолчанию. А затем настраивать логический интерфейс.
- Перед объединением интерфейсов лучше отключить их. Это позволит избежать блокирования интерфейсов STP (или перевода их в состояние err-disable).
- Для того чтобы удалить настройки EtherChannel достаточно удалить логический интерфейс. Команды channel-group удалятся автоматически.
Создание EtherChannel для портов уровня 2 и портов уровня 3 отличается:
- Для интерфейсов 3го уровня вручную создается логический интерфейс командой interface port-channel
- Для интерфейсов 2го уровня логический интерфейс создается динамически
- Для обоих типов интерфейсов необходимо вручную назначать интерфейс в EtherChannel. Для этого используется команда channel-group в режиме настройки интерфейса. Эта команда связывает вместе физические и логические порты
После того как настроен EtherChannel:
- изменения, которые применяются к port-channel интерфейсу, применяются ко всем физическим портам, которые присвоены этому port-channel интерфейсу
- изменения, которые применяются к физическому порту влияют только на порт на котором были сделаны изменения
[править] Синтаксис команды channel-group
Синтаксис команды channel-group:
sw(config-if)# channel-group <channel-group-number> mode <<auto [non-silent] | desirable [non-silent] | on> | <active | passive>>
Параметры команды:
- active — Включить LACP,
- passive — Включить LACP только если придет сообщение LACP,
- desirable — Включить PAgP,
- auto — Включить PAgP только если придет сообщение PAgP,
- on — Включить только Etherchannel.
Комбинации режимов при которых поднимется EtherChannel:
|
|
[править] Интерфейсы в состоянии suspended
Если настройки физического интерфейса не совпадают с настройками агрегированного интерфейса, он переводится в состояние suspended. Это будет видно в нескольких командах.
Просмотр состояния интерфейсов:
sw1#sh int status Port Name Status Vlan Duplex Speed Type ... Fa0/9 notconnect 1 auto auto 10/100BaseTX Fa0/10 notconnect 1 auto auto 10/100BaseTX Fa0/11 connected trunk a-full a-100 10/100BaseTX Fa0/12 connected trunk a-full a-100 10/100BaseTX Fa0/13 suspended 1 a-full a-100 10/100BaseTX Fa0/14 connected trunk a-full a-100 10/100BaseTX ... Po1 connected trunk a-full a-100
Просмотр информации о EtherChannel:
sw1#sh 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 f - failed to allocate aggregator M - not in use, minimum links not met 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 ------+-------------+-----------+----------------------------------------------- 1 Po1(SU) LACP Fa0/11(P) Fa0/12(P) Fa0/13(s) Fa0/14(P)
[править] Команды просмотра информации
sw# show etherchannel summary
sw1#sh etherchannel port-channel
Подробная информация:
sw1#sh etherchannel detail
[править] Настройка EtherChannel 2го уровня
[править] Настройка статического EtherChannel 2го уровня
Перед настройкой агрегирования лучше выключить физические интерфейсы. Достаточно отключить их с одной стороны (в примере на sw1), затем настроить агрегирование с двух сторон и включить интерфейсы.
Настройка EtherChannel на sw1:
sw1(config)# interface range f0/11-14 sw1(config-if-range)# shutdown sw1(config-if-range)# channel-group 3 mode on Creating a port-channel interface Port-channel 3
Настройка EtherChannel на sw2:
sw2(config)# interface range f0/11-14 sw2(config-if-range)# channel-group 3 mode on Creating a port-channel interface Port-channel 3
Включение физических интерфейсов на sw1:
sw1(config-if-range)# no sh
[править] Просмотр информации
Суммарная информация о состоянии Etherchannel:
sw1# sh 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 f - failed to allocate aggregator M - not in use, minimum links not met 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 ------+-------------+-----------+----------------------------------------------- 3 Po3(SU) - Fa0/11(P) Fa0/12(P) Fa0/13(P) Fa0/14(P)
Информация о port-channel на sw1:
sw1# sh etherchannel port-channel Channel-group listing: ---------------------- Group: 3 ---------- Port-channels in the group: --------------------------- Port-channel: Po3 ------------ Age of the Port-channel = 0d:00h:00m:51s Logical slot/port = 1/0 Number of ports = 4 GC = 0x00000000 HotStandBy port = null Port state = Port-channel Ag-Inuse Protocol = - Port security = Disabled Ports in the Port-channel: Index Load Port EC state No of bits ------+------+------+------------------+----------- 0 00 Fa0/11 On 0 0 00 Fa0/12 On 0 0 00 Fa0/13 On 0 0 00 Fa0/14 On 0 Time since last port bundled: 0d:00h:00m:44s Fa0/14
[править] Настройка EtherChannel 2го уровня с помощью LACP
Перед настройкой агрегирования лучше выключить физические интерфейсы. Достаточно отключить их с одной стороны (в примере на sw1), затем настроить агрегирование с двух сторон и включить интерфейсы.
Настройка EtherChannel на sw1:
sw1(config)# interface range f0/11-14 sw1(config-if-range)# shutdown sw1(config-if-range)# channel-group 1 mode active Creating a port-channel interface Port-channel 1
Настройка EtherChannel на sw2:
sw2(config)# interface range f0/11-14 sw2(config-if-range)# channel-group 1 mode passive Creating a port-channel interface Port-channel 1
Включение физических интерфейсов на sw1:
sw1(config)# interface range f0/11-14 sw1(config-if-range)# no shutdown
[править] Просмотр информации
Суммарная информация о состоянии Etherchannel:
sw1# 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 f - failed to allocate aggregator M - not in use, minimum links not met 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 ------+-------------+-----------+----------------------------------------------- 1 Po1(SU) LACP Fa0/11(P) Fa0/12(P) Fa0/13(P) Fa0/14(P)
Информация о port-channel на sw1:
sw1#sh etherchannel port-channel Channel-group listing: ---------------------- Group: 1 ---------- Port-channels in the group: --------------------------- Port-channel: Po1 (Primary Aggregator) ------------ Age of the Port-channel = 0d:00h:14m:21s Logical slot/port = 1/0 Number of ports = 4 HotStandBy port = null Port state = Port-channel Ag-Inuse Protocol = LACP Port security = Disabled Ports in the Port-channel: Index Load Port EC state No of bits ------+------+------+------------------+----------- 0 00 Fa0/11 Active 0 0 00 Fa0/12 Active 0 0 00 Fa0/13 Active 0 0 00 Fa0/14 Active 0 Time since last port bundled: 0d:00h:01m:49s Fa0/13 Time since last port Un-bundled: 0d:00h:04m:20s Fa0/14
Информация о port-channel на sw2:
sw2#sh etherchannel port-channel Channel-group listing: ---------------------- Group: 1 ---------- Port-channels in the group: --------------------------- Port-channel: Po1 (Primary Aggregator) ------------ Age of the Port-channel = 0d:00h:13m:49s Logical slot/port = 2/1 Number of ports = 4 HotStandBy port = null Port state = Port-channel Ag-Inuse Protocol = LACP Port security = Disabled Ports in the Port-channel: Index Load Port EC state No of bits ------+------+------+------------------+----------- 0 00 Fa0/11 Passive 0 0 00 Fa0/12 Passive 0 0 00 Fa0/13 Passive 0 0 00 Fa0/14 Passive 0 Time since last port bundled: 0d:00h:03m:48s Fa0/13 Time since last port Un-bundled: 0d:00h:06m:18s Fa0/14
Информация LACP о локальном коммутаторе:
sw1#sh lacp 1 internal Flags: S - Device is requesting Slow LACPDUs F - Device is requesting Fast LACPDUs A - Device is in Active mode P - Device is in Passive mode Channel group 1 LACP port Admin Oper Port Port Port Flags State Priority Key Key Number State Fa0/11 SA bndl 32768 0x1 0x1 0xC 0x3D Fa0/12 SA bndl 32768 0x1 0x1 0xD 0x3D Fa0/13 SA bndl 32768 0x1 0x1 0x16 0x3D Fa0/14 SA bndl 32768 0x1 0x1 0x17 0x3D sw1#
Информация LACP об удаленном коммутаторе:
sw1#show lacp 1 neighbor Flags: S - Device is requesting Slow LACPDUs F - Device is requesting Fast LACPDUs A - Device is in Active mode P - Device is in Passive mode Channel group 1 neighbors Partner's information: LACP port Admin Oper Port Port Port Flags Priority Dev ID Age key Key Number State Fa0/11 SP 32768 000a.b8ab.eb80 5s 0x0 0x1 0x10E 0x3C Fa0/12 SP 32768 000a.b8ab.eb80 13s 0x0 0x1 0x10F 0x3C Fa0/13 SP 32768 000a.b8ab.eb80 5s 0x0 0x1 0x110 0x3C Fa0/14 SP 32768 000a.b8ab.eb80 16s 0x0 0x1 0x111 0x3C sw1#
Счетчики LACP:
sw1# show lacp 1 counters LACPDUs Marker Marker Response LACPDUs Port Sent Recv Sent Recv Sent Recv Pkts Err --------------------------------------------------------------------- Channel group: 1 Fa0/11 13 11 0 0 0 0 0 Fa0/12 13 10 0 0 0 0 0 Fa0/13 25 22 0 0 0 0 0 Fa0/14 13 11 0 0 0 0 0
LACP system ID:
sw1# sh lacp sys-id 32768, 0012.0111.e580
[править] Standby-интерфейсы
LACP позволяет агрегировать до 16ти портов, 8 из которых будут активными, а остальные в режиме standby.
Перед настройкой агрегирования лучше выключить физические интерфейсы. Достаточно отключить их с одной стороны (в примере на sw1), затем настроить агрегирование с двух сторон и включить интерфейсы.
Настройка EtherChannel на sw1:
sw1(config)# interface range f0/11-20 sw1(config-if-range)# shutdown sw1(config-if-range)# channel-group 1 mode active Creating a port-channel interface Port-channel 1
Настройка EtherChannel на sw2:
sw2(config)# interface range f0/11-20 sw2(config-if-range)# channel-group 1 mode passive Creating a port-channel interface Port-channel 1
Включение физических интерфейсов на sw1:
sw1(config-if-range)# no sh
Суммарная информация о состоянии Etherchannel (интерфейсы fa0/19, fa0/20 в режиме standby):
sw1#sh 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 f - failed to allocate aggregator M - not in use, minimum links not met 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 ------+-------------+-----------+----------------------------------------------- 1 Po1(SU) LACP Fa0/11(P) Fa0/12(P) Fa0/13(P) Fa0/14(P) Fa0/15(P) Fa0/16(P) Fa0/17(P) Fa0/18(P) Fa0/19(H) Fa0/20(H)
Информация о port-channel на sw1 (интерфейсы fa0/19, fa0/20 в режиме standby):
sw1#sh etherchannel port-channel Channel-group listing: ---------------------- Group: 1 ---------- Port-channels in the group: --------------------------- Port-channel: Po1 (Primary Aggregator) ------------ Age of the Port-channel = 0d:00h:03m:08s Logical slot/port = 1/0 Number of ports = 8 HotStandBy port = Fa0/19 Fa0/20 Port state = Port-channel Ag-Inuse Protocol = LACP Port security = Disabled Ports in the Port-channel: Index Load Port EC state No of bits ------+------+------+------------------+----------- 0 00 Fa0/11 Active 0 0 00 Fa0/12 Active 0 0 00 Fa0/13 Active 0 0 00 Fa0/14 Active 0 0 00 Fa0/15 Active 0 0 00 Fa0/16 Active 0 0 00 Fa0/17 Active 0 0 00 Fa0/18 Active 0 Time since last port bundled: 0d:00h:00m:57s Fa0/18 Time since last port Un-bundled: 0d:00h:00m:59s Fa0/19
Информация LACP о локальном коммутаторе (интерфейсы fa0/19, fa0/20 в режиме standby)
sw1#sh lacp internal Flags: S - Device is requesting Slow LACPDUs F - Device is requesting Fast LACPDUs A - Device is in Active mode P - Device is in Passive mode Channel group 1 LACP port Admin Oper Port Port Port Flags State Priority Key Key Number State Fa0/11 SA bndl 32768 0x1 0x1 0xC 0x3D Fa0/12 SA bndl 32768 0x1 0x1 0xD 0x3D Fa0/13 SA bndl 32768 0x1 0x1 0x16 0x3D Fa0/14 SA bndl 32768 0x1 0x1 0x17 0x3D Fa0/15 SA bndl 32768 0x1 0x1 0x18 0x3D Fa0/16 SA bndl 32768 0x1 0x1 0x19 0x3D Fa0/17 SA bndl 32768 0x1 0x1 0xE 0x3D Fa0/18 SA bndl 32768 0x1 0x1 0xF 0x3D Fa0/19 SA hot-sby 32768 0x1 0x1 0x10 0x5 Fa0/20 SA hot-sby 32768 0x1 0x1 0x11 0x5
Информация LACP об удаленном коммутаторе:
sw1#sh lacp neighbor Flags: S - Device is requesting Slow LACPDUs F - Device is requesting Fast LACPDUs A - Device is in Active mode P - Device is in Passive mode Channel group 1 neighbors Partner's information: LACP port Admin Oper Port Port Port Flags Priority Dev ID Age key Key Number State Fa0/11 SP 32768 000a.b8ab.eb80 27s 0x0 0x1 0x10E 0x3C Fa0/12 SP 32768 000a.b8ab.eb80 25s 0x0 0x1 0x10F 0x3C Fa0/13 SP 32768 000a.b8ab.eb80 27s 0x0 0x1 0x110 0x3C Fa0/14 SP 32768 000a.b8ab.eb80 6s 0x0 0x1 0x111 0x3C Fa0/15 SP 32768 000a.b8ab.eb80 26s 0x0 0x1 0x112 0x3C Fa0/16 SP 32768 000a.b8ab.eb80 27s 0x0 0x1 0x113 0x3C Fa0/17 SP 32768 000a.b8ab.eb80 25s 0x0 0x1 0x114 0x3C Fa0/18 SP 32768 000a.b8ab.eb80 27s 0x0 0x1 0x115 0x3C Fa0/19 SP 32768 000a.b8ab.eb80 2s 0x0 0x1 0x116 0x4 Fa0/20 SP 32768 000a.b8ab.eb80 2s 0x0 0x1 0x117 0x4
Интерфейсы в режиме standby не передают трафик, поэтому по CDP сосед не виден через эти порты:
sw1#sh cdp neighbors Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone Device ID Local Intrfce Holdtme Capability Platform Port ID sw2 Fas 0/18 123 R S I WS-C3560- Fas 0/18 sw2 Fas 0/15 179 R S I WS-C3560- Fas 0/15 sw2 Fas 0/14 179 R S I WS-C3560- Fas 0/14 sw2 Fas 0/12 179 R S I WS-C3560- Fas 0/12 sw2 Fas 0/16 178 R S I WS-C3560- Fas 0/16 sw2 Fas 0/17 178 R S I WS-C3560- Fas 0/17 sw2 Fas 0/11 178 R S I WS-C3560- Fas 0/11 sw2 Fas 0/13 178 R S I WS-C3560- Fas 0/13 sw2 Fas 0/1 147 R S I WS-C3560- Fas 0/1
[править] Настройка EtherChannel 2го уровня с помощью PAgP
Перед настройкой агрегирования лучше выключить физические интерфейсы. Достаточно отключить их с одной стороны (в примере на sw1), затем настроить агрегирование с двух сторон и включить интерфейсы.
Настройка EtherChannel на sw1:
sw1(config)# interface range f0/11-14 sw1(config-if-range)# shutdown sw1(config-if-range)# channel-group 2 mode desirable Creating a port-channel interface Port-channel 2
Настройка EtherChannel на sw2:
sw2(config)# interface range f0/11-14 sw2(config-if-range)# channel-group 2 mode auto Creating a port-channel interface Port-channel 2
Включение физических интерфейсов на sw1:
sw1(config)# interface range f0/11-14 sw1(config-if-range)# no shut
[править] Просмотр информации
Суммарная информация о состоянии Etherchannel:
sw1#sh 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 f - failed to allocate aggregator M - not in use, minimum links not met 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 ------+-------------+-----------+----------------------------------------------- 2 Po2(SU) PAgP Fa0/11(P) Fa0/12(P) Fa0/13(P) Fa0/14(P)
Информация о port-channel на sw1:
sw1#sh etherchannel port-channel Channel-group listing: ---------------------- Group: 2 ---------- Port-channels in the group: --------------------------- Port-channel: Po2 ------------ Age of the Port-channel = 0d:00h:01m:20s Logical slot/port = 1/0 Number of ports = 4 GC = 0x00020001 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 Fa0/11 Desirable-Sl 0 0 00 Fa0/12 Desirable-Sl 0 0 00 Fa0/13 Desirable-Sl 0 0 00 Fa0/14 Desirable-Sl 0 Time since last port bundled: 0d:00h:00m:59s Fa0/14 Time since last port Un-bundled: 0d:00h:01m:02s Fa0/14
Информация PAgP о локальном коммутаторе:
sw1#sh pagp internal Flags: S - Device is sending Slow hello. C - Device is in Consistent state. A - Device is in Auto mode. d - PAgP is down Timers: H - Hello timer is running. Q - Quit timer is running. S - Switching timer is running. I - Interface timer is running. Channel group 2 Hello Partner PAgP Learning Group Port Flags State Timers Interval Count Priority Method Ifindex Fa0/11 SC U6/S7 H 30s 1 128 Any 30 Fa0/12 SC U6/S7 H 30s 1 128 Any 30 Fa0/13 SC U6/S7 H 30s 1 128 Any 30 Fa0/14 SC U6/S7 H 30s 1 128 Any 30
Информация PAgP об удаленном коммутаторе:
sw1#sh pagp neighbor Flags: S - Device is sending Slow hello. C - Device is in Consistent state. A - Device is in Auto mode. P - Device learns on physical port. Channel group 2 neighbors Partner Partner Partner Partner Group Port Name Device ID Port Age Flags Cap. Fa0/11 sw2 000a.b8ab.eb80 Fa0/11 26s SAC 20001 Fa0/12 sw2 000a.b8ab.eb80 Fa0/12 4s SAC 20001 Fa0/13 sw2 000a.b8ab.eb80 Fa0/13 18s SAC 20001 Fa0/14 sw2 000a.b8ab.eb80 Fa0/14 14s SAC 20001
Счетчики PAgP:
sw1#sh pagp counters Information Flush PAgP Port Sent Recv Sent Recv Err Pkts --------------------------------------------------- Channel group: 2 Fa0/11 8 9 0 0 0 Fa0/12 35 6 0 0 0 Fa0/13 50 8 0 0 0 Fa0/14 24 12 0 0 0
[править] Настройка EtherChannel 3го уровня
Настройка EtherChannel 3го уровня очень мало отличается от настройки EtherChannel 2го уровня. Поэтому в этом разделе показан только один пример настройки, с использованием LACP. Остальные варианты настраиваются аналогично, с изменением режима агрегирования. Команды просмотра аналогичны, их можно посмотреть в предыдущих разделах.
Для EtherChannels 3го уровня IP-адрес присваивается логическому интерфейсу port-channel, а не физическим интерфейсам.
Перед настройкой агрегирования лучше выключить физические интерфейсы. Достаточно отключить их с одной стороны (в примере на sw1), затем настроить агрегирование с двух сторон и включить интерфейсы.
Настройка логического интерфейса на sw1:
sw1(config)# int port-channel 2 sw1(config-if)# no switchport sw1(config-if)# ip address 192.168.12.1 255.255.255.0
Настройка физических интерфейсов на sw1:
sw1(config)# int ran fa0/11 - 14 sw1(config-if-range)# shutdown sw1(config-if-range)# no switchport sw1(config-if-range)# channel-group 2 mode active
Создание логического интерфейса на sw2:
sw2(config)# int port-channel 2 sw2(config-if)# no switchport sw2(config-if)# ip address 192.168.12.2 255.255.255.0
Настройка физических интерфейсов на sw2:
sw2(config)# int ran fa0/11 - 14 sw2(config-if-range)# no switchport sw2(config-if-range)# channel-group 2 mode active
Включение физических интерфейсов на sw1:
sw1(config)# int ran fa0/11 - 14 sw1(config-if-range)# no shutdown
[править] Просмотр информации
Суммарная информация о состоянии Etherchannel:
sw1# 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 f - failed to allocate aggregator M - not in use, minimum links not met u - unsuitable for bundling w - waiting to be aggregated d - default port Number of channel-groups in use: 2 Number of aggregators: 2 Group Port-channel Protocol Ports ------+-------------+-----------+----------------------------------------------- 2 Po2(RU) LACP Fa0/11(P) Fa0/12(P) Fa0/13(P) Fa0/14(P)
[править] Настройка агрегирования каналов на маршрутизаторе
Особенности настройки агрегирования на маршрутизаторе:
- Поддерживается только статическое агрегирование, без использования протоколов
- Можно создать только 2 агрегированных интерфейса
- Максимальное количество интерфейсов в EtherChannel -- 4
- Метод балансировки использует IP-адреса отправителя и получателя, включен по умолчанию и не может быть изменен
- Агрегировать можно только те интерфейсы, которые находятся на модулях одинакового типа
Создание агрегированного интерфейса на маршрутизаторе:
R1(config)# interface port-channel 1 router(config-if)# ip address 10.0.1.101 255.255.255.0
Добавление физических интерфейсов в EtherChannel:
R1(config)# interface range fa0/0 - 1 R1(config-if-range)# channel-group 1 FastEthernet0/0 added as member-1 to port-channel1 FastEthernet0/1 added as member-2 to port-channel1
[править] Пример настройки агрегирования каналов между коммутатором и маршрутизатором
Конфигурация R1:
interface FastEthernet0/0 channel-group 1 ! interface FastEthernet0/1 channel-group 1 ! interface Port-channel1 ip address 10.0.1.101 255.255.255.0 ! interface Port-channel1.10 encapsulation dot1Q 10 ip address 10.0.10.101 255.255.255.0 ! interface Port-channel1.20 encapsulation dot1Q 20 ip address 10.0.20.101 255.255.255.0
Конфигурация sw1:
interface FastEthernet0/3 switchport mode trunk channel-group 1 mode on ! interface FastEthernet0/5 switchport mode trunk channel-group 1 mode on ! interface Port-channel1 switchport mode trunk
Информация о etherchannel на sw1:
sw2#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 f - failed to allocate aggregator M - not in use, minimum links not met 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 ------+-------------+-----------+----------------------------------------------- 1 Po1(SU) - Fa0/3(P) Fa0/5(P)
r1#sh int port-channel 1 Port-channel1 is up, line protocol is up Hardware is FEChannel, address is 001b.d4f0.1098 (bia 001b.d4f0.1098) Internet address is 10.0.1.101/24 MTU 1500 bytes, BW 200000 Kbit, DLY 100 usec, reliability 255/255, txload 1/255, rxload 1/255 Encapsulation 802.1Q Virtual LAN, Vlan ID 1., loopback not set Keepalive set (10 sec) ARP type: ARPA, ARP Timeout 04:00:00 No. of active members in this channel: 2 Member 0 : FastEthernet0/0 , Full-duplex, 100Mb/s Member 1 : FastEthernet0/1 , Full-duplex, 100Mb/s No. of Non-active members in this channel: 0 Last input never, output never, output hang never Last clearing of "show interface" counters never Input queue: 0/150/0/0 (size/max/drops/flushes); Total output drops: 0 Queueing strategy: fifo Output queue: 0/80 (size/max) 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute output rate 0 bits/sec, 0 packets/sec 0 packets input, 0 bytes Received 0 broadcasts, 0 runts, 0 giants, 0 throttles 0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored 0 watchdog 0 input packets with dribble condition detected 9 packets output, 564 bytes, 0 underruns 0 output errors, 0 collisions, 0 interface resets 0 babbles, 0 late collision, 0 deferred 0 lost carrier, 0 no carrier 0 output buffer failures, 0 output buffers swapped out
[править] Балансировка нагрузки
Метод балансировки нагрузки повлияет на распределение трафика во всех 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
При выборе метода балансировки, необходимо учитывать топологию сети, каким образом передается трафик.
Например, на схеме, все устройства находятся в одном VLAN. Шлюз по умолчанию маршрутизатор R1.
Если коммутатор sw2 использует метод балансировки по MAC-адресу отправителя, то балансировка выполняться не будет, так как у всех фреймов MAC-адрес отправителя будет адрес маршрутизатора R1:
Аналогично, если коммутатор sw1 использует метод балансировки по MAC-адресу получателя, то балансировка выполняться не будет, так как у всех фреймов, которые будут проходить через агрегированный канал, MAC-адрес получателя будет адрес маршрутизатора R1:
Определение текущего метода балансировки:
sw1# show etherchannel load-balance
[править] Тестирование балансировки нагрузки
Для того чтобы проверить через какой интерфейс, при настроенном методе балансировки, пойдет конкретный пакет или фрейм, можно использовать команду test etherchannel load-balance.
Проверка при задании IP-адресов:
sw1# test etherchannel load-balance int port-channel 1 ip 192.168.1.1 192.168.1.2 Would select Fa0/11 of Po1
Пример тестирования при задании MAC-адресов:
sw2# test etherchannel load-balance int po 3 mac 0000.0001.0601 0000.0002.0005 Would select Fa0/12 of Po3 sw2# test etherchannel load-balance int po 3 mac 0000.0001.0600 0000.0002.0005 Would select Fa0/11 of Po3 sw2# test etherchannel load-balance int po 3 mac 0000.0001.0800 0000.0002.0005 Would select Fa0/14 of Po3 sw2# test etherchannel load-balance int po 3 mac 0000.0001.1800 0000.0002.0005 Would select Fa0/11 of Po3
[править] Взаимодействие Etherchannel с другими функциями
- Dynamic Trunking Protocol (DTP) и Cisco Discovery Protocol (CDP) отправляют и получают пакеты через физические интерфейсы в EtherChannel.
- Trunk ports отправляют и получают PAgP и LACP PDU через VLAN с наименьшим номером.
- Spanning tree отправляет пакеты через первый интерфейс в EtherChannel.
- MAC-адрес EtherChannel 3го уровня это MAC-адрес первого порта в port-channel.
- PAgP отправляет и получает PAgP PDU только с интерфейсов на которых PAgP включен в режиме auto или desirable.
- LACP отправляет и получает LACP PDU только с интерфейсов на которых LACP включен в режиме active или passive.
[править] Агрегирование каналов в ProCurve
Общая информация об агрегировании каналов:
- Количество портов в агрегированном канале (4 или 8) и количество агрегированных каналов зависит от модели коммутатора;
- Если один из портов в агрегированном канале выходит из строя, агрегированный канал работает. Он остается работоспособным до тех пор пока есть хотя бы один порт;
- Динамическое агрегирование каналов с помощью LACP поддерживает standby порты, которые позволяют настраивать резервные порты, на случай если один из портов в агрегированном канале выйдет из строя;
- Так как без агрегирования порты образуют петлю в коммутируемой сети, то, до тех пор пока не настроено агрегирование каналов, соответствующие порты должны быть или выключены или не соединены физически;
- Коммутаторы не поддерживают агрегирование каналов через промежуточные устройства, такие как хаб;
- Порты, которые объединяются в агрегированный канал должны быть с одинаковыми:
- типом среды передачи,
- скоростью,
- duplex,
- режим flow control.
[править] Статическое агрегирование каналов без использования протоколов
Настройка статического транка:
sw(config)# trunk 21-25 trk1 trunk
После того как порты добавлены в транк, в настройках фигурирует имя транка (например, trk1). Например, если необходимо чтобы порты в транке передавали тегированный трафик, то добавлять в соответствующие VLAN надо транк.
Удалить порты из транка:
sw(config)# no trunk 21-25
Статический транк не использует протокол для агрегирования портов. С другой стороны транка может быть использован любой вариант статического транка.
Однако коммутатор работает с данными полученными через порты, как-будто они получены из транка, независимо от того настроен ли транк с другой стороны.
[править] Статическое агрегирование каналов с помощью LACP
Статическое агрегирование каналов с помощью LACP стоит использовать в таких ситуациях:
- когда устройство с другой стороны настроено для работы в режиме static LACP,
- когда необходимо настроить IGMP или STP для агрегированного канала с настройками не по умолчанию,
- когда необходимо чтобы агрегированный канал принадлежал не только VLAN 1, а GVRP должен быть отключен,
- когда необходимо зеркалировать трафик с агрегированного канала.
Статический транк LACP будет установлен, если с другой стороны настроен транк:
- Active LACP
- Passive LACP
- статический транк (trunk)
Настройка статического агрегированного канала с помощью LACP:
sw(config)# trunk 21-25 trk1 lacp
После того как порты добавлены в транк, в настройках фигурирует имя транка (например, trk1). Например, если необходимо чтобы порты в транке передавали тегированный трафик, то добавлять в соответствующие VLAN надо транк.
Этот вариант настройки транка очень мало отличается от статического транка. Доступны все преимущества, что и в статическом транке. Кроме того, LACP отслеживает состояние транка.
[править] Динамическое агрегирование каналов с помощью LACP
Динамическое агрегирование каналов с помощью LACP стоит использовать в таких ситуациях:
- когда устройство с другой стороны настроено для работы в режиме active или passive LACP,
- когда существует необходимость чтобы в агрегированном канале было максимальное количество портов (например, 8) постоянно. LACP позволяет некоторым портам работать в режиме standby и в случае, если один из портов в агрегированном канале выйдет из строя, поднимать standby порт вместо него.
Перевод портов в режим active для динамического агрегирования каналов:
sw(config)# interface 21-25 lacp active
Менять режим LACP для портов можно только, если порты не находятся с рабочем агрегированном канале.
Если порты находятся в рабочем агрегированном канале, то их необходимо сначала удалить оттуда, а потом поменять режим:
sw(config)# no int 21-25 lacp sw(config)# int 21-25 lacp passive
Недостатки динамического транка:
- динамический транк находится в VLAN 1. Для того чтобы добавить его в другие VLAN, необходимо настраивать GVRP.
[править] Балансировка нагрузки
Все методы агрегирования каналов в коммутаторах ProCurve используют одни и те же методы балансировки нагрузки.
[править] Балансировка нагрузки по MAC-адресам или IP-адресам
По умолчанию используется этот метод балансировки.
Если метод был изменен на балансировку по портам, то можно включить его:
sw(config)# trunk-load-balance L3-based
Балансировка выполняется для исходящего трафика на основании пары адресов отправителя/получателя (SA/DA). По значению хеш от SA/DA определяется через какой порт агрегированного канала передать данные.
Такой метод балансировки не всегда дает хорошие результаты.
Например, если есть два коммутатора, которые соединены между собой транком из 4 портов, и к каждому из коммутаторов будет подключен только один компьютер, то балансировки не будет. Потому что каждый коммутатор выберет для данной пары адресов один порт для передачи данных. И использоваться будет один порт.
Каждый коммутатор независимо от других решает по какому порту передавать данные. То есть, в приведенном примере, есть вероятность, что коммутаторы выберут разные порты. И трафик идущий от A к B будет идти, например, по первому порту, а трафик от B к A по 3му.
Чем больше хостов с разных сторон транка, тем лучше будет балансировка. То есть, трафик будет распределяться равномернее между портами транка.
Выбор метода балансировки:
- Для IP-пакетов в которых нет информации о портах, использовать балансировку по IP-адресам;
- Для остальных пакетов, использовать балансировку по MAC-адресам.
[править] Балансировка нагрузки по портам
Изменение метода балансировки на балансировку по портам применит его ко всем транкам на коммутаторе.
Балансировка нагрузки с учетом портов работает только для не фрагментированного трафика. Для фрагментированного будет использоваться балансировка по MAC-адресам.
Порядок выбора метода балансировки:
- Для IP-пакетов в которых есть информация о портах, использовать балансировку по портам;
- Для IP-пакетов в которых нет информации о портах, использовать балансировку по IP-адресам;
- Для остальных пакетов, использовать балансировку по MAC-адресам.
Включение балансировки по портам:
sw(config)# trunk-load-balance L4-based
[править] Тестирование балансировки
Тестирование балансировки (команда появилась в версии K.15.06):
sw# show trunks load-balance interface trk2 mac 00a345-b637a1 00a365-b627a5 inbound-port a23 Traffic in this flow will be forwarded out port 7 based on the configured L2 load balancing.
Порт не может быть определен если:
- все порты в транке в состоянии down,
- задан MAC-адрес состоящий из всех 0,
- MAC-адрес отправителя широковещательный или мультикаст
[править] Просмотр информации об агрегированных каналах
Проверить работу транков LACP (статических и динамических):
sw# sh lacp
sw# sh lacp local
sw# sh lacp peer
sw# sh lacp counters
Проверить работу транков (статических без протокола и статических LACP):
sw# sh trunks
[править] Взаимодействие с другими функциями
[править] Spanning-Tree
С точки зрения протоколов STP, все физические порты в транке воспринимаются как один логический. Если транк статический, то для логического порта можно менять параметры STP. Для динамического транка все параметры будут принимать настройки по умолчанию.
[править] VLAN
|
После того как порты добавлены в транк они все в default vlan'е. Надо добавить trunk group в нужный vlan |
sw# show vlans 1 sw# show vlans 12
Добавить trunk group в нужный vlan:
sw(config)# vlan 10 tagged trk1
GVRP
[править] Port Security
На физических портах, которые объединены в транк или на логическом порту, нельзя настроить port security.
[править] Распределенное агрегирование (Distributed Trunking)
В коммутаторах HP серий 5400, 3500, 8200, поддерживается распределенное агрегирование портов. Распределенное агрегирование позволяет объединять порты, которые находятся на разных коммутаторах. С помощью сообщений проприетарного протокола, пара коммутаторов согласовывает настройки и для остальных устройств распределенный транк выглядит как транк с одним коммутатором.
На каждом из пары коммутаторов, между которыми настраивается распределенный транк должны быть настроены два специальных интерфейса:
- ISC-интерфейс (InterSwitch-Connect) — через этот интерфейс коммутаторы обмениваются информацией для того чтобы пара коммутаторов для других устройств выглядела как один коммутатор. Это может быть один физический интерфейс или транк.
- Keepalive-интерфейс — интерфейс 3го уровня, который используется для передачи сообщений keepalive при падении ISC-интерфейса, для того чтобы определить вышел из строя ISC-интерфейс или весь коммутатор.
Ограничения распределенного агрегирования:
- распределенный транк можно настроить только между двумя коммутаторами
- на каждом из коммутаторов в одном распределенном транке может быть не более 4 портов
- распределенный транк может быть настроен только как статический транк: LACP или без протокола.
Для того чтобы распределенный транк работал корректно, должны быть согласованы такие настройки коммутаторов:
- У коммутаторов должны быть одинаковые версии ОС
- ISC-интерфейс должен быть настроен на обоих коммутаторах с одинаковыми VLAN
- Все интерфейсы, которые объединяются в распределенный транк должны быть настроены с одинаковыми VLAN
- Имя транка и тип транка должны быть одинаковыми
- Настройки DHCP snooping на коммутаторах должны быть одинаковыми. ISC-интерфейс должен быть доверенным на обоих коммутаторах. Время должно быть синхронизировано
- Настройки IGMP snooping должны быть одинаковыми
- Настройки loop protection должны быть одинаковыми
[править] Правила работы
Терминология:
- DT-коммутаторы (distributed trunking switch) -- коммутаторы участвующие в организации распределенного транка.
- DT-интерфейсы -- интерфейсы, которые принадлежат распределенному транку
- DTD (distributed trunking device) -- устройства, которые подключаются к распределенному транку (коммутаторы, сервера)
DT-коммутаторы выбирают между собой основное устройство и вторичное. Тот коммутатор у которого меньше системный MAC-адрес становится основным устройством. Эти роли определяются для того, чтобы определить какое устройство будет передавать трафик, если ISC-интерфейс отключен.
Если ISC-интерфейс падает, каждый коммутатор запускает таймер hold. В это время не передаются сообщения keepalive. Когда таймер заканчивается, оба коммутатора начинают обмениваться keepalive-сообщениями. Если в течении интервала timeout сообщения keepalive не пришли, коммутатор считает, что сосед не работоспособен и передает трафик самостоятельно.
Если после падения ISC-интерфейса, на вторичный коммутатор пришли сообщения keepalive от основного, то вторичный коммутатор отключает все DT-интерфейсы. Основной коммутатор всегда передает трафик, независимо от того получил он keepalive-сообщения от вторичного или нет.
При восстановлении ISC-интерфейса, коммутаторы восстанавливают нормальный режим работы.
[править] ISC-интерфейс
ISC-интерфейс (InterSwitch-Connect) — интерфейс через который коммутаторы обмениваются информацией для того чтобы пара коммутаторов для других устройств выглядела как один коммутатор. Через ISC-интерфейс могут передаваться обычные данные сети.
ISC-интерфейсом можно назначить:
- физический интерфейс
- статический транк
- статический LACP-транк
Настройка ISC-интерфейса:
switch(conf)# switch-interconnect <port|trk>
[править] Keepalive-интерфейс
Keepalive-интерфейс — интерфейс 3го уровня, который используется для передачи сообщений keepalive при падении ISC-интерфейса, для того чтобы определить вышел из строя ISC-интерфейс или весь коммутатор. Если ISC-интерфейс работает нормально, то сообщения keepalive не передаются.
Правила настройки keepalive-интерфейса:
- На VLAN, который используется как keepalive-интерфейс, должен быть назначен IP-адрес. Этот адрес должен быть настроен как получатель сообщений keepalive на соседнем коммутаторе
- В выбранном VLAN передаются только сообщения keepalive. Данные или информация для синхронизации коммутаторов, не передаются.
- На keepalive-интерфейсе не работает STP
- В VLAN для keepalive может быть только один порт
- Порт не может принадлежать VLAN для keepalive и обычному VLAN
- DEFAULT VLAN не может быть VLAN для keepalive
Настройка keepalive-сообщений:
switch(conf)# distributed-trunking [hold-timer <3-10>] [peer-keepalive <destination <ip-address>> | vlan <vid>> [interval <400-10000>] [timeout <3-20>] [udp-port <1024-49151>]]
Параметры команды distributed-trunking для настройки сообщений keepalive:
- hold-timer <3-10> — время ожидания после падения ISC-интерфейса. От 3 до 10 секунд. По умолчанию 3 секунды
- peer-keepalive:
- destination — IP-адрес, который используется коммутатором для отправки keepalive-сообщений
- vlan <vid> — номер VLAN, который будет использоваться только для приема и отправки keepalive
- interval <400-10000> — интервал между сообщениями keepalive в миллисекундах. По умолчанию 1000 миллисекунд
- timeout <3-20> — таймаут для сообщений keepalive. По умолчанию 5 секунд
- udp-port <1024-49151> — UDP-порт, который используется для отправки сообщений keepalive
[править] Передача трафика через распределенный транк
В распределенном транке STP отключен:
- на DT-интерфейсах
- на keepalive-интерфейсах
Unicast на известные адреса получателя может передаваться по всем портам без ограничений. Передача конкретного фрейма зависит от того на какой порт попал фрейм при балансировке нагрузки и где находится хост (через какой порт коммутатор выучил его MAC-адрес).
На схеме изображена передача unicast фреймов:
- От хоста D к хосту A:
- sw3 использовал свой метод балансировки нагрузки для того чтобы определить через какой порт передать фрейм
- В данном примере фрейм попал на порт, который ведет на коммутатор SW2
- SW2 передал фрейм через ISC-интерфейс коммутатору SW1
- SW1 передал фрейм хосту A
- От хоста C к хосту A
- От хоста D к хосту E
При передаче multicast, broadcast или unknown unicast действуют такие правила:
- если фрейм был получен из распределенного транка, то он передается на все интерфейсы, в том числе и на ISC, кроме того, из которого был получен
- если фрейм был получен из ISC-интерфейса, то он не передается в интерфейсы распределенного транка. Фрейм передается только на порты не участвующие в распределенном транке
- Исключение: если распределенный транк на соседнем устройстве отключен. Тогда фрейм полученный из ISC-интерфейса передается в соответствующий транк
[править] Настройка распределенного агрегирования
Настройка будет выполняться на примере сети изображенной на схеме. Конфигурации коммутаторов выложены в конце этого раздела.
Перед настройкой лучше отключить интерфейсы, которые будут объединены в транк.
Настройки коммутаторов HP1 и HP2 выполняются одинаково, отличия только в номерах портов и адресах.
Настройка ISC-интерфейса:
HP1(conf)# switch-interconnect a9
Настройка статического распределенного транка LACP:
HP1(conf)# trunk a1-a4 trk10 dt-lacp
Подготовка VLAN для настройки keepalive:
HP1(conf)# vlan 100 untagged A10 HP1(conf)# vlan 100 ip address 10.0.100.1/24
Настройка интерфейса для keepalive:
HP1(conf)# distributed-trunking peer-keepalive vlan 100 HP1(conf)# distributed-trunking peer-keepalive destination 10.0.100.2
На коммутаторе sw3400 настраивается статический транк LACP:
sw3400(conf)# trunk 1-8 trk10 lacp
На коммутаторе sw3400 транк выглядит как одно целое:
sw3400# show lacp PORT LACP TRUNK PORT LACP LACP NUMB ENABLED GROUP STATUS PARTNER STATUS ---- ------- ------- ------- ------- ------- 1 Active Trk10 Up Yes Success 2 Active Trk10 Up Yes Success 3 Active Trk10 Up Yes Success 4 Active Trk10 Up Yes Success 5 Active Trk10 Up Yes Success 6 Active Trk10 Up Yes Success 7 Active Trk10 Up Yes Success 8 Active Trk10 Up Yes Success 9 Passive 9 Down No Success 10 Passive 10 Down No Success 11 Passive 11 Up No Success 12 Passive 12 Down No Success 13 Passive 13 Down No Success .....
[править] Просмотр информации
Просмотр информации о LACP транках:
HP2(config)# show lacp LACP LACP Trunk Port LACP Admin Oper Port Enabled Group Status Partner Status Key Key ---- ------- ------- ------- ------- ------- ------ ------ A5 Active Trk10 Up Yes Success 0 299 A6 Active Trk10 Up Yes Success 0 299 A7 Active Trk10 Up Yes Success 0 299 A8 Active Trk10 Up Yes Success 0 299
Информация о распределенном транке на коммутаторе HP1:
HP1# show lacp distributed Distributed LACP Local Port Status: LACP Trunk Port LACP Admin Oper Port Enabled Group Status Partner Status Key Key ---- ------- ------- ------- ------- ------- ------ ------ A1 Active Trk10 Up Yes Success 0 0 A2 Active Trk10 Up Yes Success 0 0 A3 Active Trk10 Up Yes Success 0 0 A4 Active Trk10 Up Yes Success 0 0 Remote Port Status: LACP Trunk Port LACP Oper Port Enabled Group Status Partner Status Key ---- ------- ------- ------- ------- ------- ------ A5 Active Trk10 Up Yes Success 61 A6 Active Trk10 Up Yes Success 61 A7 Active Trk10 Up Yes Success 61 A8 Active Trk10 Up Yes Success 61
Информация о распределенном транке на коммутаторе HP2:
HP2(config)# show lacp distributed Distributed LACP Local Port Status: LACP Trunk Port LACP Admin Oper Port Enabled Group Status Partner Status Key Key ---- ------- ------- ------- ------- ------- ------ ------ A5 Active Trk10 Up Yes Success 0 0 A6 Active Trk10 Up Yes Success 0 0 A7 Active Trk10 Up Yes Success 0 0 A8 Active Trk10 Up Yes Success 0 0 Remote Port Status: LACP Trunk Port LACP Oper Port Enabled Group Status Partner Status Key ---- ------- ------- ------- ------- ------- ------ A1 Active Trk10 Up Yes Success 61 A2 Active Trk10 Up Yes Success 61 A3 Active Trk10 Up Yes Success 61 A4 Active Trk10 Up Yes Success 61
Информация
HP2(config)# show lacp local LACP Local Information. System ID: 0017a4-814b00 LACP Tx Rx Timer Port Trunk Mode Aggregated Timer Expired ---- ------ -------- ----------- ------ -------- A5 Trk10 Active Yes Slow No A6 Trk10 Active Yes Slow No A7 Trk10 Active Yes Slow No A8 Trk10 Active Yes Slow No
HP2(config)# show lacp peer LACP Peer Information. System ID: 0017a4-814b00 Local Local Port Oper LACP Tx Port Trunk System ID Port Priority Key Mode Timer ------ ------ -------------- ----- --------- ------- -------- ----- A5 Trk10 001560-ea4e00 5 0 61 Active Slow A6 Trk10 001560-ea4e00 6 0 61 Active Slow A7 Trk10 001560-ea4e00 7 0 61 Active Slow A8 Trk10 001560-ea4e00 8 0 61 Active Slow
Информация об ISC-интерфейсе,
HP1(config)# show switch-interconnect Port : A9 Status : Up Active VLANs : 1,10,2100
Информация о keepalive:
HP2(config)# show distributed-trunking peer-keepalive Distributed Trunking peer-keepalive parameters Destination : 10.0.100.1 VLAN : 100 UDP Port : 1024 Interval(ms) : 1000 Timeout(sec) : 5
Статистика по keepalive:
HP2(config)# show distributed-trunking statistics peer-keepalive DT peer-keepalive Status : Up DT peer-keepalive Statistics --------------------------------- Tx Count : 31 Rx Count : 10
Статистика по ISC-интерфейсу:
HP2(config)# show distributed-trunking statistics switch-interconnect Switch Interconnect Port : 9 Switch Interconnect Status : Up Switch Interconnect Statistics --------------------------------- Protocol Packets Sent : 411 Protocol Packets Received : 285 MAC Learns Sent : 7 MAC Learns Received : 7 MAC Age-Outs Sent : 11 MAC Age-Outs Received : 10
[править] Команды отладки (debug)
HP2(config)# debug distributed-trunking events Display DT event debug messages iscp Display DT ISC protocol debug messages keepalive Display DT-KeepAlive debug messages.
[править] Проверка согласованности настроек
HP2(config)# show distributed-trunking consistency-parameters global Local Peer ----- ---- Image Version K.15.06.0006 K.15.06.0006 IP Routing Disabled Disabled Peer-keepalive interval 1000 1000 IGMP enabled VLANs on Local : IGMP enabled VLANs on Peer : DHCP-snooping enabled VLANs on Local : DHCP-snooping enabled VLANs on Peer : Loop-protect enabled VLANs on Local : Loop-protect enabled VLANs on Peer :
HP2(config)# show distributed-trunking consistency-parameters trunk trk10 Allowed VLANs on Local : 1 Allowed VLANs on Peer : 1 Name Local Value Peer Value ---- ----------- ---------- Loop Protect Disabled Disabled
[править] Распределенное агрегирование и маршрутизация
|
Начиная с ОС версии 15.05 поддерживается одновременная работа распределенного агрегирования и маршрутизации. Поддерживаются такие функции и протоколы: статические IPv4 маршруты, RIP, OSPF, IGMP snooping, DHCP snooping, VRRP. |
[править] Пример настройки
Конфигурация коммутатора HP1:
; J8697A Configuration Editor; Created on release #K.15.06.0006 ; Ver #01:0d:0c hostname "HP1" switch-interconnect A9 trunk A1-A4 Trk10 dt-lacp interface Trk10 unknown-vlans Disable exit vlan 1 name "DEFAULT_VLAN" untagged A5-A9,A11-A24,B1-B24,Trk10 ip address dhcp-bootp no untagged A10 exit vlan 100 name "VLAN100" untagged A10 ip address 10.0.100.1 255.255.255.0 exit distributed-trunking peer-keepalive vlan 100 distributed-trunking peer-keepalive destination 10.0.100.2
Конфигурация коммутатора HP2:
; J8697A Configuration Editor; Created on release #K.15.06.0006 ; Ver #01:0d:0c hostname "HP2" switch-interconnect A9 trunk A5-A8 Trk10 dt-lacp interface Trk10 unknown-vlans Disable exit vlan 1 name "DEFAULT_VLAN" untagged A1-A4,A9,A11-A24,Trk10 ip address 192.168.100.2 255.255.255.0 no untagged A10 exit vlan 100 name "VLAN100" untagged A10 ip address 10.0.100.2 255.255.255.0 exit distributed-trunking peer-keepalive vlan 100 distributed-trunking peer-keepalive destination 10.0.100.1
Конфигурация коммутатора 3400:
; J4906A Configuration Editor; Created on release #M.10.68 hostname "sw3400" ! trunk 1-8 Trk10 LACP ! vlan 1 name "DEFAULT_VLAN" untagged 9-48,Trk10 ip address 192.168.100.7 255.255.255.0 exit spanning-tree Trk10 priority 4
[править] Агрегирование каналов в ExtremeXOS
- Основная страница: Link Aggregation в ExtremeXOS
[править] Агрегирование каналов в UNIX/Linux-системах
[править] Агрегирование каналов в Linux
- Основная страница: Linux_Bonding
Дополнительная информация:
Статья "На пути повышения надёжности и скорости: Linux bonding"
[править] Агрегирование каналов в FreeBSD
- Основная страница: FreeBSD_Port_Trunking
В FreeBSD агрегирование каналов обеспечивается специальным модулем ядра, который называется lagg (Link Aggregation and Failover).
Модуль поддерживает несколько режимов агрегирования:
- Failover -- работает один канал, если он упал, тогда второй;
- Cisco FastEtherchannel;
- LACP;
- Round Robin.
Пример настройки канала в режиме LACP.
На FreeBSD (одна сторона):
# ifconfig lagg0 create # ifconfig lagg0 up laggproto lacp laggport fxp0 laggport fxp1
На Cisco (другая сторона):
interface FastEthernet0/1 channel-group 1 mode active channel-protocol lacp ! interface FastEthernet0/2 channel-group 1 mode active channel-protocol lacp
Подробнее:
- Link Aggregation and Failover (англ.)
- lagg(4) (англ.)
[править] Агрегирование каналов в NetBSD
- Основная страница: NetBSD_Port_Trunking
В ядро NetBSD входит драйвер agr, который обеспечивает поддержку протокола LACP (802.3ad).
Для того чтобы использовать этот драйвер, нужно откомпилировать ядро с ним. В конфигурации ядра должно быть:
pseudo-device agr
После этого нужно настроить агрегированный интерфейс. Это можно сделать обычным способом, который используется для всех остальных сетевых интерфейсов. Пример конфигурационного файла /etc/ifconfig.agr0:
create agrport sip0 agrport sip1 inet 10.0.0.50 netmask 0xffffff00
Подробнее:
[править] Агрегирование каналов в OpenBSD
- Основная страница: OpenBSD_Port_Trunking
# ifconfig rl0 up # ifconfig rl1 up # ifconfig trunk0 trunkport rl0 up # ifconfig trunk0 trunkport rl1 up # ifconfig trunk0 trunkproto roundrobin 10.14.15.27 netmask 255.255.255.0 up
Для того чтобы результаты сохранялись после перезагрузки:
# echo "up" > /etc/hostname.rl0 # echo "up" > /etc/hostname.rl1 # echo "trunkproto roundrobin trunkport rl0 trunkport rl1 10.14.15.27 netmask 255.255.255.0" > /etc/hostname.trunk0 # shutdown -r +0
Конфигурация сетевых интерфейсов после этого:
# ifconfig -a lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33208 groups: lo inet 127.0.0.1 netmask 0xff000000 inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4 rl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500 lladdr 00:11:2f:34:7d:a5 trunk: trunkdev trunk0 media: Ethernet autoselect (100baseTX full-duplex) status: active inet6 fe80::211:2fff:fe34:7da5%rl0 prefixlen 64 scopeid 0x1 rl1: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500 lladdr 00:11:2f:34:7d:a5 trunk: trunkdev trunk0 media: Ethernet autoselect (100baseTX full-duplex) status: active inet6 fe80::2c0:26ff:feac:5c63%rl1 prefixlen 64 scopeid 0x2 enc0: flags=0<> mtu 1536 trunk0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 lladdr 00:11:2f:34:7d:a5 trunk: trunkproto roundrobin trunkport rl1 active trunkport rl0 master,active groups: trunk egress media: Ethernet autoselect status: active inet6 fe80::211:2fff:fe34:7da5%trunk0 prefixlen 64 scopeid 0x5 inet 10.14.15.27 netmask 0xffffff00 broadcast 10.14.15.255
Подробнее:
[править] Агрегирование каналов в Mac OS X
- Основная страница: Mac_OS_X_port_trunking
Mac OS X поддерживает агрегирование каналов с помощью протокола LACP.
Для того чтобы создать агрегированный канал в Mac OS X[1]:
- Подключиться к серверу с правами администратора.
- Открыть System Preferences.
- Открыть Network.
- Нажать на кнопку Gear и выбрать Manage Virtual Interfaces в всплывающем меню.
- Нажать на кнопку Add (+) и выбрать New Link Aggregate в всплывающем меню. (Замечание: опция видна, только если в системе есть более одного Ethernet-интерфейса).
- В поле Name нужно ввести имя агрегированного интерфейса.
- Выбрать порты, которые должны быть агрегированы, из списка.
- Нажать Create.
- Нажать Done.
По умолчанию система даёт агрегированным интерфейсам имя bond<num>, где число <num> указывает на то, какой по счёту агрегированный интерфейс этот интерфейс в системе. Нумерация начинается с нуля. Первый интерфейс будет называться bond0, второй — bond1 и так далее.
После этого в выводе ifconfig -a должен появиться новый интерфейс:
% ifconfig bond0 bond0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet6 fe80::2e0:edff:fe08:3ea6 prefixlen 64 scopeid 0xc inet 10.0.0.12 netmask 0xffffff00 broadcast 10.0.0.255 ether 00:e0:ed:08:3e:a6 media: autoselect (100baseTX <full-duplex>) status: active supported media: autoselect bond interfaces: en1 en2 en3 en4
[править] Агрегирование каналов в Solaris
- Основная страница: Solaris_Port_Trunking
Просмотреть информацию об интерфейсах канального уровня:
# dladm show-link vsw0 type: non-vlan mtu: 1500 device: vsw0 e1000g0 type: non-vlan mtu: 1500 device: e1000g0 e1000g1 type: non-vlan mtu: 1500 device: e1000g1 e1000g2 type: non-vlan mtu: 1500 device: e1000g2
Просмотреть свойства интерфейсов:
# dladm show-linkprop LINK PROPERTY VALUE DEFAULT POSSIBLE vsw0 zone -- -- -- e1000g0 zone -- -- -- e1000g1 zone -- -- -- e1000g2 zone -- -- --
Создать агрегированный канал (в данном случае создать канал LACP):
# dladm create-aggr -l passive -d e1000g0 -d e1000g1 -d e1000g2 1 # ifconfig aggr1 plumb
Просмотреть свойства агрегированного канала:
# dladm show-aggr key: 1 (0x0001) policy: L4 address: XX:XX:XX:XX:XX (auto) device address speed duplex link state e1000g0 XX:XX:XX:XX:XX 0 Mbps half unknown standby e1000g1 <unknown> 0 Mbps half unknown standby e1000g2 <unknown> 0 Mbps half unknown standby
Удалить один из интерфейсов из канала:
# dladm remove-aggr -d e1000g2 1
Удалить сам канал:
# dladm delete-aggr 1
Дополнительная информация:
- Link Aggregation and Logical Interfaces (англ.)
- Solaris : Link Aggregation : dladm (англ.)
- Active-Passive bonding on Solaris 10 (англ.) -- как сделать изменения постоянными
[править] Агрегирование каналов в Windows
- Основная страница: Windows_Port_Trunking
В Windows Server 2012 эта функция называется NIC Teaming и настраивается с помощью мастера настройки NIC Teaming либо с помощью PowerShell.
Например:
New-NetLbfoTeam –Name Team1 –TeamMembers NIC1,NIC2
Данная команда создает агрегированный интерфейс с именем Team1 из сетевых интерфейсов NIC1 и NIC2.
Или вот еще пример:
Set-NetLbfoTeam -Name Team1 –TeamingMode LACP
Данная команда изменяет режим работы агрегированного интерфейса Team1 на режим LACP.
Информация по командам PowerShell для NIC Teaming тут [1]
Больше информации о Microsoft NIC Teaming тут [2]
В Windows младше версии 2012 нет встроенной поддержки агрегирования каналов. Однако, есть программное обеспечение, которое позволяет объединять несколько сетевых адаптеров в один.
[править] Пример агрегирования для серверов HP
Агрегирование называется NIC teaming. Это понятие немного шире, чем обычное агрегирование, так как допускает также варианты в которых одна сетевая служит для другой резервом, а не используются обе. Кроме того, не все варианты используют подключение к одному коммутатору.
Два общих варианта:
- Fault tolerance — режимы которые обеспечивают автоматическую избыточность. Если основная сетевая выйдет из строя, то вторая автоматически её заменит.
- Load Balancing — режимы, которые обеспечивают балансировку нагрузки между сетевыми картами.
До настройки NIC teaming, необходимо проверить следующее:
- установлены как минимум две сетевые карты
- сетевые карты должны быть в одной и той же сети
- сетевые карты должны быть настроены на получение адреса по DHCP, не должен быть указан DNS-сервер
- режим дуплекса и скорость сетевых карт должна быть установлена в значения по умолчанию
|
Утилита для агрегирования сетевых карт может работать нестабильно, если статические IP-адреса, подсети, адреса DNS были установлены до агрегирования. |
[править] Типы NIC teaming
Типы NIC teaming:
- Automatic (Recommended) — это не самостоятельный тип настройки. Этот тип выбирает между Transmit Load Balancing (TLB) или 802.3ad Dynamic:
- Если все порты присоединены к коммутатору, который поддерживает IEEE 802.3ad LACP, и все порты установили связь с с коммутатором по LACP, тогда будет выбран режим 802.3ad Dynamic.
- Если коммутатор не поддерживает LACP или если один из портов в team, не установил связь с коммутатором по LACP, то будет выбран режим TLB.
- Network Fault Tolerance Only (NFT) — в режиме NFT от двух до восьми портов объединены вместе. Однако только один порт (primary port) используется для приема и передачи данных. Остальные порты находятся в режиме standby. Если основной порт выходит из строя, то другой порт заменяет его. Этот режим работает во всех остальных типах NIC teaming.
- Network Fault Tolerance Only with Preference Order Network — аналогичен типу NFT. Единственное отличие заключается в том, что этот тип позволяет административно назначить порядок в котором порты будут становиться основными.
- Switch-assisted Load Balancing with Fault Tolerance (SLB) — позволяет балансировать нагрузку для входящего и исходящего трафика. SLB работает только при условии, что коммутатор поддерживает какой-то вариант агрегирования портов (EtherChannel, MultiLink Trunking, статическое агрегирование без использования протоколов и др.). Этот вариант требует чтобы все сетевые интерфейсы сервера были подключены к одному коммутатору.
- 802.3ad Dynamic with Fault Tolerance — идентичен типу SLB, но коммутатор должен поддерживать LACP. На портах коммутатора, к которым подключены сетевые интерфейсы сервера, должен быть включен LACP.
- Transmit Load Balancing with Fault Tolerance (TLB) — позволяет серверу балансировать исходящий трафик. TLB не зависит от коммутатора и позволяет портам в team быть подключенными к разным коммутаторам в одной и той же сети. Входящий трафик не балансируется. Основной (primary) порт в team отвечает за получение входящего трафика. В случае выхода из строя основного порта, механизм NFT отвечает за то что будет выбран другой порт на эту роль.
- Transmit Load Balancing with Fault Tolerance and Preference Order — аналогичен типу TLB. Единственное отличие заключается в том, что этот тип позволяет административно назначить порядок в котором порты будут становиться основными.
[править] Методы балансировки нагрузки
Методы балансировки нагрузки для исходящего трафика:
- Automatic (Recommended) — метод балансировки, который сохраняет порядок фреймов. Этот метод балансирует нагрузку на основании самого высокого уровня информации во фрейме. Например, если в фрейме есть TCP-заголовок со значениями портов TCP, то фрейм будет балансироваться по TCP-сессии. Если в фрейме есть IP заголовок с IP-адресом, но нет TCP-заголовка, тогда фрейм балансируется по IP-адресу получателя. Если в фрейме нет IP заголовка, то он балансируется по MAC-адресу получателя. Этот метод эквивалентен типу TCP Connection.
- TCP Connection — метод балансировки, который сохраняет порядок фреймов. Этот метод балансирует нагрузку на основании информации о TCP портах в заголовке TCP. Метод комбинирует TCP порты отправителя и получателя для идентификации TCP-сессии. Если в фрейме есть IP заголовок с IP-адресом, но нет TCP-заголовка, тогда фрейм балансируется по IP-адресу получателя. Если в фрейме нет IP заголовка, то он балансируется по MAC-адресу получателя. Алгоритм по которому выбирается какой интерфейс сервера использовать для конкретной сессии, аналогичен алгоритмам в методах балансировки по IP-адресу и MAC-адресу.
- Destination IP Address — метод балансировки, который пытается сохранять порядок фреймов. Этот метод балансирует нагрузку на основании IP-адреса получателя. Последние три бита IP-адреса получателя используются для того чтобы определить какой интерфейс сервера использовать для передачи фрейма. IP-адрес получателя это адрес хоста, который получит фрейм. Если в фрейме нет IP заголовка, то он балансируется по MAC-адресу получателя.
- Destination MAC Address — метод балансировки, который пытается сохранять порядок фреймов. Этот метод балансирует нагрузку на основании MAC-адреса получателя. MAC-адрес получателя это MAC-адрес следующего сетевого устройства, которое получит фрейм. Это может быть и конечный хост (если хост и сервер в одной сети) и промежуточное устройство, например, маршрутизатор, который используется для передачи фрейма получателю. Последние три бита MAC-адреса получателя используются для того чтобы определить какой интерфейс сервера использовать для передачи фрейма.
- Round Robin (Packet order not guaranteed) — метод балансировки, который не сохраняет порядок фреймов. Этот метод балансирует нагрузку по фреймам. Каждый следующий исходящий фрейм передается через другой рабочий интерфейс сервера. Все порты в team используются как равнозначные.
Дополнительная информация:
[править] Дополнительная информация
Cisco:
- EtherChannel Configuration Examples (англ.) — примеры настройки EtherChannel на сайте Cisco.
- EtherChannel Troubleshooting TechNotes (англ.)
- Understanding EtherChannel Load Balancing and Redundancy on Catalyst Switches (англ.) — подробное описание методов балансировки на разных моделях коммутаторов Cisco
- The Scaling Limitations of Etherchannel -or- Why 1+1 Does Not Equal 2 (англ.)
Распределенное агрегирование:
- Cisco VSS (англ.) — хорошая презентация о технологии VSS.
- HP Distributed Trunking - Technical white paper (PDF) (англ.)
[править] Примечания
ProCurve | ||
---|---|---|
Основы | ProCurve Adaptive Edge | ProCurve ProActive Defense | ProCurve Network Access Control | ProCurve Wireless | |
Программы | ProCurve Manager | ProCurve Identity Driven Manager | ProCurve Network Immunity Manager | ProCurve Mobility Manager | |
Устройства | ProCurve Switch | ProCurve Router | ProCurve ONE Module | ProCurve TMS Module | ProCurve NAC 800 | ProCurve Access Point | ProCurve WESM | |
Настройка | ||
Безопасность | ProCurve Security | Доступ к коммутатору ProCurve | DHCP snooping | Dynamic ARP Protection | IP Source Guard | Port security | Аутентификация при доступе к сети | 802.1X в ProCurve | Web-аутентификация в ProCurve | MAC-аутентификация в ProCurve | |
Канальный уровень | CDP | LLDP | VLAN в ProCurve | GVRP | STP в ProCurve | ProCurve Mesh | Агрегирование каналов | Зеркалирование трафика | QinQ | |
Сетевой уровень | RIP в ProCurve | OSPF в ProCurve | VRRP в ProCurve | XRRP в ProCurve | QoS в ProCurve | Multicast в ProCurve | PIM в ProCurve | |
Разное | Опция 82 DHCP | SNMP в ProCurve |