Сложно ли настраивать устройства Huawei? Часть 2. Коммутаторы.
К. Кряженков, А. Степушин.
Центр сетевого управления и телекоммуникаций МГТУ МИРЭА
В этот раз мы снова вернемся к коммутаторам от компании Huawei и
посмотрим, как настраиваются некоторые необходимые функции и протоколы.
Напомним, модель наших устройств Quidway S3928P-SI, которые имеют по 24 Ethernet порта 10/100 и 4
слота под sfp-модули.

В этот раз мы постараемся выполнить следующие задачи:
- Создание БД VLAN
- Протокол обнаружения соседей
- Настройка управляющего VLAN
- Настройка портов доступа и магистральных
- Распространение информации о VLAN на все коммутаторы
- Настройка порт-секьюрити
- Настройка голосовогоVLAN
- Настройка STP
На помощь нам придут мануалы, доступные для просмотра и скачивания здесь:
Дальнейшие эксперименты будем проводить в нашей системе удаленного доступа к оборудованию TermILab. Эта статья будет посвящена коммутации. Давайте посмотрим, как же на коммутаторах Huawei создаются VLAN, как они распространяются между коммутаторами, как настраиваются порты для подключения рабочих станций, IP телефонов и создаются магистральные соединения, а также механизмы обеспечения безопасности на уровне доступа и борьба с петлями на 2 уровне.
Первоначальную настройку устройств Hyawei мы уже приводили в первой статье. Поэтому, вопросы, как настроить пароли, баннеры и удаленное взаимодействие с устройствами по протоколу telnet в этой статье не рассматриваются.
Местами сравнение будем проводить с коммутаторами Cisco 3550.
Итак, начнем. Для начала убедимся, что все устройства соединены правильно. На коммутаторах Cisco для этого используем возможности протокола cdp. А как быть с коммутаторами Huawei? Обращаемся к документации. В файле 29-ClusterCommand нашли возможность определения соседей и предоставления информации о них по протоколу ndp (Neighbor discovery protocol).
| Устройство Huawei | Устройство Cisco |
|---|---|
[LabSw]display ndp
Interface: Ethernet1/0/24
Status: Enabled, PktsSnd: 35, PktsRvd: 32, Pkts Err: 0
Neighbor 1: Aging Time: 177(s)
MAC Address : 000f-e275-98d8
Host Name : Quidway
Port Name : Ethernet1/0/24
Software Ver: Release 1602P11
Device Name : QuidwayS3928P-SI
Port Duplex : AUTO
Product Ver : 3900-SI-1602P11
BootROMVer : 514
|
|
Выводимая информация протокола NDP примерно такая же как, как и у CDP. Только у CDP есть еще возможность отобразить информацию кратко и полностью. По умолчанию оба протокола активны на своих коммутаторах. Каждый из них можно отключить как полностью на устройствах, так и на каждом интерфейсе в отдельности. Итак, основываясь на выводе протоколов обнаружения соседних устройств, мы можем понять, что схема соединений корректна.
Идем дальше. Современные локальные сети немыслимы без виртуализации на канальном уровне. Поэтому, приступим к созданию VLAN. Создадим VLAN5 – Staff, VLAN8 – Test, VLAN10 – Native.
Настраиваем БД VLAN на одном коммутаторе Huawei и Cisco. На коммутаторе Huawei переходим в режим system-view, а на коммутаторе Ciscoв -- режим configure-terminal. Для наполнения БД VLAN этих режимах конфигурации вводим следующие последовательности команд:
| Устройство Huawei | Устройство Cisco |
|---|---|
[LabSw]vlan 5 [LabSw -vlan5]name Staff [LabSw -vlan5]vlan 8 [LabSw -vlan8]name Test [LabSw -vlan8]vlan 10 [LabSw -vlan10]name Native |
Switch#conf t Enter configuration commands, one per line. End with CNTL/Z. Switch(config)#vlan 5 Switch(config-vlan)#name Staff Switch(config-vlan)#vlan 8 Switch(config-vlan)#name Test Switch(config-vlan)#vlan 10 Switch(config-vlan)#name Native |
Чтобы посмотреть созданные VLAN используем следующие команды:
| Устройство Huawei | Устройство Cisco |
|---|---|
[LabSw]display vlan Total 4 VLAN exist(s). The following VLANs exist: 1(default), 5, 8, 10 |
Switch#show vlan |
Коммутатор Cisco предоставляет более детальную информацию о том какие идентификаторы и имена VLAN существуют, какие порты коммутатора в каком VLAN находятся и некоторая другая информация. На коммутаторах Huawei вывод достаточно скуп. Только общее число VLAN и их идентификаторы. А как быть, если нужно увидеть и vid и его имя и уж, тем более, порты? Ставим ? после display vlan и выбираем параметр all на коммутаторе Huawei.
| Устройство Huawei |
|---|
[LabSw]display vlan all VLAN ID: 1 VLAN Type: static Route Interface: not configured Description: VLAN 0001 Name: VLAN 0001 Tagged Ports: none Untagged Ports: Ethernet1/0/1 Ethernet1/0/2 Ethernet1/0/3 Ethernet1/0/4 Ethernet1/0/5 Ethernet1/0/6 Ethernet1/0/7 Ethernet1/0/8 Ethernet1/0/9 Ethernet1/0/10 Ethernet1/0/11 Ethernet1/0/12 Ethernet1/0/13 Ethernet1/0/14 Ethernet1/0/15 Ethernet1/0/16 Ethernet1/0/17 Ethernet1/0/18 Ethernet1/0/19 Ethernet1/0/20 Ethernet1/0/21 Ethernet1/0/22 Ethernet1/0/23 Ethernet1/0/24 GigabitEthernet1/1/1 GigabitEthernet1/1/2 GigabitEthernet1/1/3 GigabitEthernet1/1/4 VLAN ID: 5 VLAN Type: static Route Interface: not configured Description: VLAN 0005 Name: Staff Tagged Ports: none Untagged Ports: none VLAN ID: 8 VLAN Type: static Route Interface: not configured Description: VLAN 0008 Name: Test Tagged Ports: none Untagged Ports: none VLAN ID: 10 VLAN Type: static Route Interface: not configured Description: VLAN 0010 Name: Native Tagged Ports: none UntaggedPorts: none |
Теперь информации побольше. И vid, и его имя. И что самое главное – порты, которые находятся в этой VLAN. Глаз зацепился за параметр Description в выводе VLAN. Этот избыточный параметр позволяет сделать еще и дополнительное описание для VLAN, в котором можно отразить более детально ее принадлежность.
Хорошо, БД VLAN мы настроили на одном коммутаторе, но не будем же мы утруждать себя ручной настройкой этих VLAN и на другом. Попробуем распространить их и на соседнее устройство. На коммутаторах Cisco для этого есть протокол VTP. А что же есть на коммутаторах Huawei для упрощения администрирования VLAN? Для этих целей у коммутаторов Huawei есть протокол, который называется GVRP и является частным случаем протокола GARP (Generic Attribute Registration Protocol). Сам по себе GARP служит механизмом для распространения между коммутаторами информации о vlan’ах и мультикастовых группах. Частное его применение GVRP (GARP Vlan Registration Protocol) служит для распространения информации исключительно о vlan. GVRP использует 3 типа сообщения: Join, Leave и LeaveAll. Если на GVRP-устройстве добавляется новый vlan, то отправляется join-сообщение, если удаляется – отправляется leave-сообщение. LeaveAll сообщение может отправлятся в некоторых случаях, когда коммутатор хочет удалить с соседних устройств информацию о всех своих локальных vlan’ах, созданных вручную непосредственно на данном коммутаторе.
Для поддержания данных о vlan в домене на каждом устройстве работают GARP таймеры. Их 4 типа: hold, join, leave и leaveall. Таймеры измеряются в сентисекундах (100 сентисекунд соответствуют 1 секунде) и по умолчанию равны:
GARP join 20 centiseconds
GARP leave 60 centiseconds
GARP hold 10 centiseconds
GARP leaveall 20 centiseconds
Важно, чтобы внутри домена все устройства были настроены с одинаковыми таймерами.
Возвращаясь к GVRP, необходимо отметить, что протокол включается глобально и на интерфейсах (по умолчанию выключен), причем интерфейс обязательно должен работать в режиме trunk. Последовательность действий следующая:
- Включить GVRP глобально.
- *Опционально. Проверить или настроить GARP таймеры одинаково на всех коммутаторах домена.
- Настроить необходимые порты в режиме trunk 802.1Q.
- Разрешить на транках все vlan.
- Включить GVRP на интерфейсах.
- Выбрать режим работы GVRP на интерфейсе.
GVRP на интерфейсах может работать в трех режимах:
- Normal. Этот режим выбирается интерфейсом по умолчанию. В таком режиме коммутатор распространяет информацию о своих vlan и автоматически добавляет информацию о vlan в свою базу от других коммутаторов домена.
- Fixed. В данном режиме коммутатор распространяет информацию о своих vlan, однако не добавляет в свою базу информацию о vlan соседних устройств. Данный режим подходит для коммутаторов уровня ядра и распределения, поскольку никакие устройства уровня доступа не могут повлиять на их базу vlan. Если порт коммутатора какое-то время работал в режиме normal, а затем был переведен в режим fixed, то все vlan, о которых коммутатор узнал через этот порт будут удалены.
- Forbidden. В данном режиме коммутатор не распространяет информацию о своих vlan и не принимает информацию о vlan от других устройств. Более того, если порт коммутатора какое-то время работал в режиме normal, а затем был переведен в режим forbidden, то все vlan, о которых коммутатор узнал через этот порт будут удалены, а также на соседнем коммутаторе будут удалены все записи о vlan, настроенных вручную на forbidden-коммутаторе.
Теперь посмотрим, как настраивать trunk-порты. Основные задачи здесь – это включить на порту режим trunk; описать vlan’ы, которые можно через него пропускать; и задать vlan, с которым ассоциировать нетегированные кадры (аналог cisco native vlan).
Перейдем к командам. Режим trunk влючается на интерфейсе командой port link-type trunk. Разрешенные vlan’ы описываются командой port trunk permit vlan vlan-id. Vlan по умолчанию настраивается командой port trunk pvid vlan vlan-id. Инкапсуляция на транках по умолчанию 802.1Q, и другого режима инкапсуляции не предусмотрено.
Пример, как настроить trunk-порт на нашем коммутаторе:
[LabSw]interface Ethernet 1/0/24 [LabSw-Ethernet1/0/24]port link-type trunk [LabSw-Ethernet1/0/24]port trunk pvid vlan 10 [LabSw-Ethernet1/0/24]port trunk permit vlan 1 5 8 10 |
Результат:

На коммутаторах Huawei можно перечислить только определенные vid через пробел, либо указать их диапазон используя связку <vid_1> to <vid_n>. На коммутаторах Cisco это делается через запятую, а диапазон указывается через тире.
Вернемся к проблеме распространения БД vlan между коммутаторами. Несмотря на всю кажущуюся сложность, настроить GVRP достаточно легко. К 24 порту нашего коммутатора подключим второй коммутатор Quidway S3928P-SI, на котором по умолчанию есть только 1 vlan. Для начала настроим на нем транк и разрешим в транке все vlan’ы.
[LabSW_2]interface Ethernet 1/0/24 [LabSW_2-Ethernet1/0/24]port link-type trunk [LabSW_2-Ethernet1/0/24]port trunk permit vlan all Please wait........................................... Done. |
Теперь на обоих коммутаторах запустим GVRP, включим его на trunk-итерфейсах, и выберем режим на первом коммутаторе Normal, а на втором Fixed.
[LabSw]gvrp GVRP is enabled globally. [LabSw]interface Ethernet 1/0/24 [LabSw-Ethernet1/0/24]gvrp GVRP is enabled on port Ethernet1/0/24. [LabSw-Ethernet1/0/24]gvrp registration normal Please wait... Done. |
[LabSw_2]gvrp GVRP is enabled globally. [LabSW_2]interface Ethernet 1/0/24 [LabSW_2-Ethernet1/0/24]gvrp GVRP is enabled on port Ethernet1/0/24. [LabSW_2-Ethernet1/0/24]gvrp registration fixed Please wait........................................... Done. |
Посмотрим на вывод команды display vlan на каждом коммутаторе.
[LabSw]display vlan Total 4 VLAN exist(s). The following VLANs exist: 1(default), 5, 8, 10 |
[LabSW_2]display vlan Total 1 VLAN exist(s). The following VLANs exist: 1(default) |
Кажется, что ничего не изменилось, и появляются сомнения, что GVRP вообще работает корректно. Однако вывод команды display garp statistics показывает, что GVRP запущен и работает между коммутаторами.
[LabSw]display garp statistics interface Ethernet 1/0/24 GARP statistics on port Ethernet1/0/24 Number Of GVRP Frames Received : 75 Number Of GVRP Frames Transmitted : 85 Number Of Frames Discarded : 0 |
[LabSW_2]display garp statistics interface Ethernet 1/0/24 GARP statistics on port Ethernet1/0/24 Number Of GVRP Frames Received : 89 Number Of GVRP Frames Transmitted : 70 Number Of Frames Discarded : 0 |
Теперь создадим на коммутаторе LabSW_2 пару дополнительных vlan’ов и посмотрим на изменения базы vlan коммутатора LabSW.
[LabSw]display vlan Total 6 VLAN exist(s). The following VLANs exist: 1(default), 5, 8, 10, 50, 70 |
[LabSW_2]vlan 50 [LabSW_2-vlan50]vlan 70 [LabSW_2-vlan70] [LabSW_2]display vlan Total 3 VLAN exist(s). The following VLANs exist: 1(default), 50, 70 |
Как мы видим, коммутатор LabSw добавил в свою базу новые vlan’ы (50 и 70), созданные на LabSw_2. В свою очередь, коммутатор LabSw_2 так и ведет свою локальную базу vlan независимо от соседа. Таким образом, мы не только настроили протокол GVRP на соседних коммутаторах, но и проверили сразу 2 режима работы: normal и fixed.
Теперь можно переходить к настройке портов доступа и управляющего интерфейса. Распределим их следующим образом: 10 порт поместим в 10 vlan и сделаем его управляющим на коммутаторе, порты с 11 по 15 переведем в режим доступа в 5 vlan.
Чтобы исключить macflood и обеспечить элементарную безопасность на уровне доступа, сразу разрешим только по одному mac адресу для каждого порта доступа. На коммутаторе Huawei нужно в режиме system-view включить механизм port-security, а затем настроить его на каждом порту.
| Устройство Huawei | Устройство Cisco |
|---|---|
[LabSw]port-security enable [LabSw -Ethernet1/0/10]port-security max-mac-count 1 [LabSw -Ethernet1/0/10]port-security port-mode autolearn [LabSw -Ethernet1/0/10]port-security intrusion-mode blockmac |
Switch(config-if)#switchport port-security maximum 1 Switch(config-if)#switchport port-security violation restrict Switch(config-if)#switchport port-security mac-address sticky |
К сожалению, на коммутаторах Huawei нельзя сразу настроить диапазон портов. Однако есть возможность скопировать настройки одного порта на другие. Сделаем это:
[LabSw]copy configuration source Ethernet 1/0/10 destination Ethernet 1/0/11 to Ethernet 1/0/15 |
Просмотрим полученную конфигурацию одного из портов:
| Устройство Huawei | Устройство Cisco |
|---|---|
[LabSw -Ethernet1/0/10]display this # interface Ethernet1/0/10 port-security max-mac-count 1 port-security port-mode autolearn port-security intrusion-mode blockmac # return |
Switch#sh running-config interface fa0/1 ! interface FastEthernet0/1 switchport mode access switchport port-security mac-address sticky switchport port-security violation restrict ! |
Теперь поместим порты в необходимые vlan’ы и настроим управляющий интерфейс:
< LabSw > < LabSw >system-view System View: return to User View with Ctrl+Z. [LabSw]interface Vlan-interface 10 [LabSw-Vlan-interface10]ip address 192.168.1.10 24 [LabSw-Vlan-interface10]quit [LabSw]interface Ethernet 1/0/10 [LabSw-Ethernet1/0/10]port link-type access [LabSw-Ethernet1/0/10]port access vlan 10 [LabSw-Ethernet1/0/10]quit *[LabSw]vlan 5 [LabSw-vlan5]port ethernet1/0/11 to ethernet1/0/15 |
Проверим доступен ли нам управляющий интерфейс коммутатора, используя команду ping:

Современные Enterprise сети являются конвергентными, поэтому использование в них IP телефонии стало стандартом де-факто. Как известно, трафик IP телефонии необходимо отделить от трафика передачи данных, да к тому же нужно экономить порты на коммутаторах. Так как же создать голосовой VLAN на коммутаторах и подать его на нужные порты? По сути, голосовой VLAN создается точно также в БД VLAN как и VLAN для передачи данных. В качестве голосового будем использовать vlan 8.
[LabSw]vlan 8 [LabSw-vlan8]name voice_vlan [LabSw-vlan8]quit |
Vlan создан, теперь устройству необходимо сообщить, какой vlan использовать в качестве голосового. Команда voice vlan vlan-id enable настраивает определенный vlan в качестве голосового и включает его глобально на устройстве. Узнать в дальнейшем, какой vlan является голосовым на устройстве, можно с помощью display voice vlan status. Для того, чтобы коммутатор добавлял к кадрам телефонов тег голосового vlan’а необходимо еще завести на устройстве OUI list мак-адресов. Мак-адреса наших телефонов выглядят так: 000d.28xx.xxxx. OUI list для них описывается командой [LabSw]voice vlan mac-address 000d-2800-0000 mask ffff-ff00-0000 description IPphone.
Теперь можно перейти к настройке портов.
Как стало понятно из мануалов, чтобы осуществить задуманное, нужно перевести порты в режим Hybrid. Работает он достаточно интересно. В нашем случае необходимо, чтобы коммутатор не только добавлял тег к нетегированным кадрам, поступающим от рабочих станций, но и сбрасывал тег vlan’а в обратном случае, когда кадры нужно передать с порта на рабочие станции. Что касается голосового vlan’a, то его достаточно просто включить на выбранном интерфейсе.
Настроим коммутатор таким образом, чтобы порты с 1 по 9 были настроены для поддержки телефонов на 8 vlan и для пользователей на 5 vlan.
Выполняем задуманное и настраиваем один из интерфейсов:
[LabSw]voice vlan 8 enable [LabSw]voice vlan mac-address 000d-2800-0000 mask ffff-ff00-0000 description IPphone [LabSw]interface Ethernet 1/0/9 [LabSw-Ethernet1/0/9]port link-type hybrid [LabSw-Ethernet1/0/9]port hybrid pvid vlan 5 [LabSw-Ethernet1/0/9]port hybrid vlan 5 untagged [LabSw-Ethernet1/0/9]voice vlan enable [LabSw-Ethernet1/0/9]voice vlan mode auto |
Посмотрим, что получилось:

Как мы уже отмечали, на коммутаторах Huawei нельзя сразу настроить диапазон портов, зато можно скопировать настройки одного порта на другие. Сделаем это:
[LabSw]copy configuration source Ethernet 1/0/9 destination Ethernet 1/0/1 to Ethernet 1/0/8 |
Теперь порты с 1 по 9 настроены для работы и рядовых пользователей, и ip-телефонов.
Стремясь обеспечить надежность сети, многие сетевые инженеры и администраторы искусственно вводят избыточные связи, которые ведут к образованию петель на канальном уровне. Также петли могут образоваться и из-за ошибочных или злонамеренных действий пользователей. Чтобы их ликвидировать производители в свои коммутаторы внедряют алгоритм STP. Соединим избыточной связью коммутаторы LabSW и LabSw_2, чтобы создать петлю. Осталось только узнать, какие протоколы STP поддерживаются на коммутаторах Huawei, и как они настраиваются. Нажав символ ? после команды stp, можно увидеть эти протоколы. Будем настраивать на нашем коммутаторе протокол RSTP (по умолчанию stp выключен глобально).
[LabSw]stp mode rstp [LabSw]stp enable %Apr 1 23:56:24:990 2000 LabSw MSTP/3/STPSTART:- 1 -STP is now enabled on the device. |
[LabSw_2]stp mode rstp [LabSw_2]stp enable %Apr 1 23:57:20:990 2000 LabSw_2 MSTP/3/STPSTART:- 1 -STP is now enabled on the device. |
Посмотрим на выводы команды display stp brief и display stp, чтобы определить какие порты заблокировал stp, и кто их коммутаторов стал root’ом :
[LabSw]display stp brief MSTID Port Role STP State Protection 0 Ethernet1/0/1 DESI FORWARDING NONE 0 Ethernet1/0/23 DESI FORWARDING NONE 0 Ethernet1/0/24 DESI FORWARDING NONE [LabSw]display stp -------[CIST Global Info][Mode RSTP]------- CIST Bridge :32768.000f-e274-cafe Bridge Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20 CIST Root/ERPC :32768.000f-e274-cafe / 0 CIST RegRoot/IRPC :32768.000f-e274-cafe / 0 CIST RootPortId :0.0 BPDU-Protection :disabled TC-Protection :enabled / Threshold=6 Bridge Config Digest Snooping :disabled TC or TCN received :208 Time since last TC :0 days 0h:11m:18s |
[LabSw_2]display stp brief MSTID Port Role STP State Protection 0 Ethernet1/0/1 DESI FORWARDING NONE 0 Ethernet1/0/23 ROOT FORWARDING NONE 0 Ethernet1/0/24 ALTE DISCARDING NONE [LabSw_2]display stp -------[CIST Global Info][Mode RSTP]------- CIST Bridge :32768.000f-e275-98d8 Bridge Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20 CIST Root/ERPC :32768.000f-e274-cafe / 200 CIST RegRoot/IRPC :32768.000f-e275-98d8 / 0 CIST RootPortId :128.23 BPDU-Protection :disabled TC-Protection :enabled / Threshold=6 Bridge Config Digest Snooping :disabled TC or TCN received :8 Time since last TC :0 days 0h:10m:48s |
Как мы видим, протокол запустился. Root’ом стал LabSw, так как его BridgeID 32768.000f-e274-cafe меньше чем у соседнего LabSw_2 (BridgeID 32768.000f-e275-98d8). На это косвенно указывает и то, что все порты LabSw работают в режиме designated. На коммутаторе LabSw_2 порт Ethernet 1/0/24 попал в режим alternative, т.е. не пересылает кадры. Это нас не утраивает, потому что через этот порт работает GVRP, который мы ранее настроили. Заставим коммутатор LabSw_2 заблокировать порт Ethernet 1/0/23, а 1/0/24 перевести в режим designated. Сделать это можно, поменяв cost на интерфейсе. По умолчанию все порты коммутатора имеют cost 200. Чем меньше это значение, тем приоритетнее порт. Поменяем это значение на 20 и посмотрим на результат:
[LabSw_2]interface Ethernet 1/0/24 [LabSw_2-Ethernet1/0/24]stp cost 20 [LabSw_2-Ethernet1/0/24]display stp brief MSTID Port Role STP State Protection 0 Ethernet1/0/1 DESI FORWARDING NONE 0 Ethernet1/0/23 ALTE DISCARDING NONE 0 Ethernet1/0/24 ROOT FORWARDING NONE |
Поставленной цели мы добились, и теперь наша связка коммутаторов работает должным образом.
На этом закончим наш очередной обзор. Продолжение следует.