Поиск по этому блогу

15.07.2009

Транки и etherchannel

Многие возможно знают про логическую агрегацию нескольких физических линков между коммутаторами. Она настраивается достаточно просто. Например:
sw-01

interface GigabitEthernet1/0/21
description to gi1/0/1 sw-02
switchport trunk encapsulation dot1q
switchport mode trunk
channel-group 1 mode active

interface GigabitEthernet1/0/22
description to gi1/0/2 sw-02
switchport trunk encapsulation dot1q
switchport mode trunk
channel-group 1 mode active

sw-02

interface GigabitEthernet1/0/1
description to gi1/0/21 sw-01
switchport trunk encapsulation dot1q
switchport mode trunk
channel-group 1 mode active

interface GigabitEthernet1/0/1
description to gi1/0/22 sw-01
switchport trunk encapsulation dot1q
switchport mode trunk
channel-group 1 mode active



При этом на каждом коммутаторе автоматически после введения команды "channel-group" создастся логический интерфейс Port-channel с тем же номером группы и вообще без настроек. Настройки на нем следует сделать идентичные портам, которые он объединяет.
interface Port-channel1
switchport trunk encapsulation dot1q
switchport mode trunk

Проверка:
sw-01#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 Gi1/0/21(P) Gi1/0/22(P)


Иногда в транковых портах есть необходимость ограничить vlan'ы.
Допустим, что на sw-01 появились подобные настройки в портах Po1,Gi1/0/21,Gi1/0/22 и они идентичны:
switchport trunk allowed vlan 100

Вопрос заключается в том, как будут реагировать порты на изменение конфигурации? Какова последовательность редактирования этих трех портов? Вот пример:
sw-01(config)#interface GigabitEthernet1/0/21
sw-01(config-if)#switchport trunk allowed vlan add 101
sw-01(config-if)#^Z
sw-01#show run int gi1/0/21
Building configuration...

Current configuration : 190 bytes
!
interface GigabitEthernet1/0/21
description to gi1/0/1 sw-02
switchport trunk encapsulation dot1q
switchport trunk allowed vlan 100,101
switchport mode trunk
channel-group 1 mode active
end

sw-01#show run int gi1/0/22
Building configuration...

Current configuration : 184 bytes
!
interface GigabitEthernet1/0/22
description to gi1/0/2 sw-02
switchport trunk encapsulation dot1q
switchport trunk allowed vlan 100
switchport mode trunk
channel-group 1 mode active
end

sw-01#conf t
Enter configuration commands, one per line. End with CNTL/Z.
sw-01(config)#interface GigabitEthernet1/0/22
sw-01(config-if)#switchport trunk allowed vlan add 101
Connection closed by foreign host.

Что же произошло? Смотрим логи
%PARSER-5-CFGLOG_LOGGEDCMD: User:tester  logged command:interface GigabitEthernet1/0/21 
%EC-5-CANNOT_BUNDLE2: Gi1/0/21 is not compatible with Gi1/0/22 and will be suspended (vlan mask is different)
%PARSER-5-CFGLOG_LOGGEDCMD: User:tester logged command:switchport trunk allowed vlan add 101
%LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet1/0/21, changed state to down
%SYS-5-CONFIG_I: Configured from console by tester on vty0 ()
%PARSER-5-CFGLOG_LOGGEDCMD: User:tester logged command:interface GigabitEthernet1/0/22
%EC-5-CANNOT_BUNDLE2: Gi1/0/21 is not compatible with Po1 and will be suspended (vlan mask is different)
%EC-5-CANNOT_BUNDLE2: Gi1/0/21 is not compatible with Po1 and will be suspended (vlan mask is different)
%EC-5-CANNOT_BUNDLE2: Gi1/0/22 is not compatible with Po1 and will be suspended (vlan mask is different)
%PARSER-5-CFGLOG_LOGGEDCMD: User:tester logged command:switchport trunk allowed vlan add 101
%LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet1/0/22, changed state to down
%LINEPROTO-5-UPDOWN: Line protocol on Interface Port-channel1, changed state to down
%LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan100, changed state to down

Худшее, что можно придумать - это настраивать транки на etherchannel'е на "удаленной" стороне. Ошибка изначально заключалась в том, что изменения следовало начать с логического интерфейса Po1. Но и тут не все так просто. Я не стану приводить далее логи и команды последующих тестов и расскажу на словах.
При добавлении vlan'а в транк на Po1 не происходит ничего. Можно спокойно добавить vlan в оставшиеся физические интерфейсы. При удалении vlan'а из Po1 происходит длительное выключение физических интерфейсов из etherchannel'а, что неудобно и неприемлимо.
Итого:
- лучше отказаться от редактирования транков в etherchannel'е.
- если отказаться нельзя - редактировать на "ближней" стороне.
- при редактировании желательно вывести логирование на экран командой terminal monitor, чтобы своевременно обнаружить неполадки.

UPDATE: В разных IOS реакция на редактирование логического интерфейса Po разная. Так в некоторых достаточно настаивать только его, а все настройки будут автоматически копироваться в конфигурацию физических интерфейсов