Настройка основных параметров у коммутаторов Huawei CloudEngine (на примере 6865)
Мы уже длительное время используем оборудование Huawei в продуктиве публичного облака. Недавно мы добавили в эксплуатацию модель CloudEngine 6865 и при добавлении новых устройств, появилась идея поделиться неким чек-листом или сборником базовых настроек с примерами.
В сети есть множество аналогичных инструкций для пользователей оборудования Cisco. Однако, для Huawei таких статей мало и иногда приходится искать информацию в документации или собрать из нескольких статей. Надеемся, будет полезно, поехали!
В статье опишем следующие пункты:
Первое подключение

Подключение к коммутатору через консольный интерфейс
По умолчанию коммутаторы Huawei поставляются без предварительных настроек. Без конфигурационного файла в памяти коммутатора, при включении запускается протокол ZTP (Zero Touch Provisioning). Не будем подробно описывать данный механизм, отметим лишь, что он удобен при работе с большим числом устройств или для осуществления настройки удалённо. Обзор ZTP можно посмотреть на сайте производителя.
Для первичной настройки без использования ZTP необходимо консольное подключение.
Параметры подключения (вполне стандартные)
Transmission rate: 9600
Data bit (B): 8
Parity bit: None
Stop bit (S): 1
Flow control mode: None
После подключения Вы увидите просьбу задать пароль для консольного подключения.
Задаем пароль для консольного подключения
An initial password is required for the first login via the console.
Continue to set it? [Y/N]: y
Set a password and keep it safe!
Otherwise you will not be able to login via the console.
Please configure the login password (8-16)
Enter Password:
Confirm Password:
Просто задайте пароль, подтвердите его и готово! Изменить пароль и прочие параметры аутентификации на консольном порту далее можно с помощью следующих команд:
Пример смены пароля
HUAWEI] user-interface console 0
[
HUAWEI-ui-console0] authentication-mode password
[
HUAWEI-ui-console0] set authentication password cipher <пароль>
[*HUAWEI-ui-console0] commit
Настройка стекирования (iStack)
После получения доступа к коммутаторам, при необходимости можно настроить стек. Для объединения нескольких коммутаторов в одно логическое устройство в Huawei CE используется технология iStack. Топология стека — кольцо, т.е. на каждом коммутаторе рекомендуется использовать минимум 2 порта. Количество портов зависит от желаемой скорости взаимодействия коммутаторов в стеке.
Желательно при стекировании задействовать аплинки, скорость которых обычно выше, чем у портов для подключения конечных устройств. Таким образом, можно получить большую пропускную способность при помощи меньшего количества портов. Также, для большинства моделей есть ограничения по использованию гигабитных портов для стекирования. Рекомендуется использовать минимум 10G порты.
Есть два варианта настройки, которые немного отличаются в последовательности шагов:
Предварительная настройка коммутаторов с последующим их физическим соединением.
Сначала установка и подключение коммутаторов между собой, потом их настройка для работы в стеке.
Последовательность действий для этих вариантов выглядит следующим образом:

Последовательность действий для двух вариантов стекирования коммутаторов
Рассмотрим второй (более длительный) вариант настройки стека. Для этого нужно выполнить следующие действия:
Планируем работы с учётом вероятного простоя. Составляем последовательность действий.
Осуществляем монтаж и кабельное подключение коммутаторов.
Настраиваем базовые параметры стека для master-коммутатора:
#
stack member 1 renumber X — где X — новый ID коммутатора в стэке. По умолчанию, >и для master-коммутатора можно оставить ID по умолчанию.
#
stack member 1 priority 150 — указываем приоритет. Коммутатор с наибольшим
приоритетом будет назначен master-коммутатором стека. Значение приоритета
по умолчанию: 100.
#
stack member < member-id | all >domain <domain-id> — назначить Domain ID для стека.
По умолчанию, domain ID не задан.
#
Пример:
<HUAWEI> system-view
[
HUAWEI] sysname SwitchA
[HUAWEI] commit
[
SwitchA-stack] stack member 1 priority 150
[SwitchA-stack] stack member 1 domain 10
[SwitchA-stack] quit
[SwitchA] commit
SwitchA] interface stack-port 1/1
[SwitchA-Stack-Port1/1] port member-group interface 10ge 1/0/1 to 1/0/4
Warning: After the configuration is complete,
1.The interface(s) (10GE1/0/1-1/0/4) will be converted to stack mode and be configured with the
port crc-statistics trigger error-down command if the configuration does not exist.
2.The interface(s) may go Error-Down (crc-statistics) because there is no shutdown configuration on the interfaces.Continue? [Y/N]: y
[SwitchA-Stack-Port1/1] commit
[
SwitchA-Stack-Port1/1] return
Далее, нужно сохранить конфигурацию и перезагрузить коммутатор:
<SwitchA> save
Warning: The current configuration will be written to the device. Continue? [Y/N]: y
<SwitchA> reboot
Warning: The system will reboot. Continue? [Y/N]: y
4. Выключаем порты для стекирования на master-коммутаторе (пример)
SwitchA] interface stack-port 1/1
[*SwitchA-Stack-Port1/1] shutdown
[*SwitchA-Stack-Port1/1] commit
HUAWEI] sysname SwitchB
[*HUAWEI] commit
[
SwitchB-stack] stack member 1 priority 120
[*SwitchB-stack] stack member 1 domain 10
[*SwitchB-stack] stack member 1 renumber 2 inherit-config
Warning: The stack configuration of member ID 1 will be inherited to member ID 2
after the device resets. Continue? [Y/N]: y
[*SwitchB-stack] quit
[*SwitchB] commit
Настраиваем порты для стекирования. Обратите внимание, что несмотря на то, что была введена команда “stack member 1 renumber 2 inherit-config”, member-id в конфигурации используется со значением “1” для SwitchB.
Так происходит, потому что member-id коммутатора будет изменён только после перезагрузки и до неё коммутатор по-прежнему имеет member-id, равный 1. Параметр “inherit-config” как раз нужен для того, чтобы после перезагрузки коммутатора все настройки стека сохранились для member 2, которым и будет коммутатор, т.к. его member ID был изменён со значения 1 на значение 2.
SwitchB] interface stack-port 1/1
[*SwitchB-Stack-Port1/1] port member-group interface 10ge 1/0/1 to 1/0/4
Warning: After the configuration is complete,
1.The interface(s) (10GE1/0/1-1/0/4) will be converted to stack
mode and be configured with the port crc-statistics trigger error-down command if the configuration does
not exist.
2.The interface(s) may go Error-Down (crc-statistics) because there is no shutdown configuration on the
interfaces.
Continue? [Y/N]: y
[*SwitchB-Stack-Port1/1] commit
[
SwitchB-Stack-Port1/1] return
<SwitchB> save
Warning: The current configuration will be written to the device. Continue? [Y/N]: y
<SwitchB> reboot
Warning: The system will reboot. Continue? [Y/N]: y
6. Включаем порты стекирования на master-коммутаторе. Важно успеть включить порты до завершения перезагрузки коммутатора B, т.к. если включить их после, коммутатор B снова уйдёт в перезагрузку.
SwitchA] interface stack-port 1/1
[
SwitchA-Stack-Port1/1] undo shutdown
[*SwitchA-Stack-Port1/1] commit
[
SwitchA-Stack-Port1/1] return
7. Проверяем работу стека командой “display stack”
Пример вывода команды после правильной настройки
<SwitchA> display stack
MemberID Role MAC Priority DeviceType Description
+1 Master 0004-9f31-d520 150 CE6850-48T4Q-EI
2 Standby 0004-9f62-1f40 120 CE6850-48T4Q-EI
+ indicates the device where the activated management interface resides.
8. Сохраняем конфигурацию стека командой “save”. Настройка завершена.
Настройка доступа
Выше мы работали через консольное подключение. Теперь к нашему коммутатору (стеку) нужно как-то подключаться по сети. Для этого ему нужен интерфейс (один или несколько ) с IP-адресом. Обычно для коммутатора адрес назначается на интерфейс в VLAN сети управления или на выделенный порт управления. Но тут, конечно же, всё зависит от топологии подключения и функционального назначения коммутатора.
Пример настройки адреса для интерфейса VLAN 1:
HUAWEI] interface vlan 1
[
HUAWEI-Vlanif1] ip address 10.10.10.1 255.255.255.0
[
HUAWEI-Vlanif1] commit
Предварительно можно явно создать Vlan и назначить ему имя, например:
Switch] vlan 1
[*Switch-vlan1] name TEST_VLAN (имя VLAN — необязательный элемент)
Есть маленький лайфхак в плане именования — писать имена логических структур заглавными буквами (ACL, Route-map, иногда имена VLAN), чтобы было легче находить их в конфигурационном файле. Можете взять “на вооружение” 😉
Итак, у нас есть VLAN, теперь “приземляем” его на какой-нибудь порт. Для описанного в примере варианта делать это не обязательно, т.к. все порты коммутатора по умолчанию находятся в VLAN 1. Если хотим настроить порт в другой VLAN, пользуемся соответствующими командами:
Настройка порта в режиме access:
Switch] interface 25GE 1/0/20
[
Switch-25GE1/0/20] port link-type access
[
Switch-25GE1/0/20] port access vlan 10
[
Switch-25GE1/0/20] commit
Switch] interface 25GE 1/0/20
[
Switch-25GE1/0/20] port link-type trunk
[
Switch-25GE1/0/20] port trunk pvid vlan 10 — указываем native VLAN (фреймы в этом VLAN не будут иметь тег в заголовке)
[
Switch-25GE1/0/20] port trunk allow-pass vlan 1 to 20 — разрешаем только VLAN с тегом от 1 до 20 (для примера)
[
Switch-25GE1/0/20] commit
С настройкой интерфейсов разобрались. Перейдём к конфигурации SSH.
Приведем только необходимый набор команд:
Назначаем имя коммутатору
HUAWEI] sysname SSH Server
[*HUAWEI] commit
SSH Server] rsa local-key-pair create //Generate the local RSA host and server key pairs.
The key name will be: SSH Server_Host
The range of public key size is (512
2048).
NOTE: Key pair generation will take a short while.
Input the bits in the modulus [default = 2048] : 2048
[*SSH Server] commit
SSH Server] user-interface vty 0 4
[
SSH Server-ui-vty0-4] authentication-mode aaa
[SSH Server-ui-vty0-4] user privilege level 3
[SSH Server-ui-vty0-4] protocol inbound ssh
[*SSH Server-ui-vty0-4] quit
[SSH Server] aaa
[SSH Server-aaa] local-user client001 password irreversible-cipher <password string>
[SSH Server-aaa] local-user client001 level 3
[SSH Server-aaa] local-user client001 service-type ssh
[SSH Server-aaa] quit
[SSH Server] ssh user client001 authentication-type password
SSH Server] stelnet server enable
[*SSH Server] commit
SSH Server] ssh user client001 service-type stelnet
[*SSH Server] commit
Настройка завершена. Если вы все сделали верно, то можно подключиться к коммутатору по локальной сети и продолжить работу.
Больше подробностей по настройке SSH можно найти в документации Huawei — первая и вторая статья.
Настройка базовых параметров системы
В этом блоке рассмотрим небольшое количество различных блоков команд для настройки наиболее популярных возможностей.
1. Настройка системного времени и его синхронизация по NTP.
Для настройки времени локально на коммутаторе можно использовать следующие команды:
clock timezone <time-zone-name> <offset>
clock datetime [ utc ] HH:MM:SS YYYY-MM-DD
Пример настройки времени локально
clock timezone MSK add 03:00:00
clock datetime 10:10:00 2020-10-08
Для синхронизации времени по NTP с сервером вводим следующую команду:
ntp unicast-server <ip-address сервера времени> [ version number | authentication-keyid key-id | source-interface interface-type
Пример команды для синхронищации времени по NTP
ntp unicast-server 88.212.196.95
commit
2. Для работы с коммутатором порой требуется настроить как минимум один маршрут — маршрут по умолчанию или default route. Для создания маршрутов используется следующая команда:
ip route-static ip-address
Пример команды для создания маршрутов:
system-view
ip route-static 0.0.0.0 0.0.0.0 192.168.0.1
commit
3. Настройка режима работы протокола Spanning-Tree.
Для корректного использования нового коммутатора в существующей сети важно уделить внимание выбору режима работы STP. Также, неплохо бы сразу настроить его. Надолго останавливаться здесь не будем, т.к. тема достаточно обширная. Опишем лишь режимы работы протокола:
stp mode < stp | rstp | mstp | vbst > — в этой команде выбираем нужный нам режим. Режим по умолчанию: MSTP. Он же является рекомендуемым режимом для работы на коммутаторах Huawei. Обратная совместимость с RSTP имеется.
system-view
stp mode mstp
commit
4. Пример настройки порта коммутатора для подключения конечного устройства.
Рассмотрим пример настройки acess-порта для обработки траффика в VLAN10
[SW] interface 10ge 1/0/3
[SW-10GE1/0/3] port link-type access
[SW-10GE1/0/3] port default vlan 10
[SW-10GE1/0/3] stp edged-port enable
[*SW-10GE1/0/3] quit
Обратите внимание на команду “stp edged-port enable” — она позволяет ускорить процесс перехода порта в состояние forwarding. Однако, не стоит использовать эту команду на портах, к которым подключены другие коммутаторы.
Также, может быть полезна команда “stp bpdu-filter enable”.
5. Пример настройки Port-Channel в режиме LACP для подключения к другим коммутаторам или серверам.
[SW] interface eth-trunk 1
[SW-Eth-Trunk1] port link-type trunk
[SW-Eth-Trunk1] port trunk allow-pass vlan 10
[SW-Eth-Trunk1] mode lacp-static (или можно использовать lacp-dynamic)
[SW-Eth-Trunk1] quit
[SW] interface 10ge 1/0/1
[SW-10GE1/0/1] eth-Trunk 1
[SW-10GE1/0/1] quit
[SW] interface 10ge 1/0/2
[SW-10GE1/0/2] eth-Trunk 1
[*SW-10GE1/0/2] quit
Не забываем про “commit” и далее уже работаем с интерфейсом eth-trunk 1.
Проверить состояние агрегированного линка можно командой “display eth-trunk”.
Мы описали основные моменты настройки коммутаторов Huawei. Конечно, в тему можно погрузиться еще глубже и ряд моментов не описан, но мы старались показать основные, наиболее востребованные команды для первичной настройки.
Надеемся что этот “мануал” поможет вам настроить коммутаторы немного быстрее.
Также будет здорово, если вы в комментариях напишите команды, которых, по вашему мнению, не хватает в статье, но они также могут упростить настройку коммутаторов. Ну и, как обычно, будем рады ответить на ваши вопросы.
stp edged-port
Use stp edged-port to configure a port as an edge port.
Use undo stp edged-port to configure a port as a non-edge port.
Syntax
stp edged-port
undo stp edged-port
Default
All ports are non-edge ports.
Views
Layer 2 Ethernet interface view, Layer 2 aggregate interface view
Predefined user roles
Usage guidelines
A port directly connecting to a user terminal rather than another device or a shared LAN segment can be configured as an edge port. In case the network topology changes, an edge port does not cause a temporary loop. You can enable the port to transit to the forwarding state rapidly by configuring it as an edge port. As a best practice, configure ports that directly connect to user terminals as edge ports.
Typically, configuration BPDUs from other devices cannot reach an edge port, because the edge port does not connect to any other device. When BPDU guard is disabled on a port configured as an edge port, the port acts as a non-edge port if it receives configuration BPDUs.
On a port, the loop guard feature and the edge port setting are mutually exclusive.
When the command is configured in Layer 2 Ethernet interface view, it takes effect only on that interface.
When the command is configured in Layer 2 aggregate interface view, it takes effect only on the aggregate interface.
When the command is configured on a member port in an aggregation group, it takes effect only after the port leaves the aggregation group.
eucariot
При настроенном на порту STP edged-port (аналог portfast у Cisco) через него продолжают передаваться STP BPDU.
Неочевидно это потому, что edge port предполагает подключение в него конечных хостов, а также то, что порт не будет получать STP BPDU и потому участвовать в построении топологии STP.
Это действительно так — не нужно каждый раз флудить по домену STP TC и заставлять ишачить все коммутаторы новую топологию, если дело только в том, что у кого-то компьютер перезагрузился. Компьютер опять же не будет генерировать STP BPDU, кроме случая злого умысла
Что если клиент закоротит на коммутаторе два порта? Допустим, случайно это сделать трудновато, но он ведь может и по злоботе душевной, затаив обиду на инженера провайдера, уволокшего на выпускном его девушку у него из под носа.
Для случая если петля окажется на одном порту у нас есть loopback-detect — он посылает в порт тестовый пакет и, если получит его обратно в этот же порт, то блокирует его (или уведомляет NMS). А вот для разных портов непонятно — Storm-control позволит ограничить широковещательный трафик, но CPU по-прежнему может быть под ударом.
И вот тут кажется совершенно логичным, чтобы Edge-port продолжал слать BPDU — если тот ревнивец закоротит два клиентских порта, то один из них получит BPDU и заблокируется — удобно.
Интересно, что в документации об этом нигде не говорится и пришлось проверить догадку на симуляторе ENSP.
Однако есть и ещё одна тонкость в работе Edged-port (portfast).
Вы можете надеяться, что за ним находится компьютер, но реальность такова, что там может оказаться что угодно, в том числе коммутатор. Просто так игнорировать BPDU коммутатор не имеет морального права.
На полученные BPDU может быть две реакции:
1) Заблокировать этот порт от греха подальше (если включет BPDU protection (он же BPDU Guard).
2) Перевести порт в режим non-edge и пересчитать топологию — это действие по умолчанию.
То есть мы заведомо считаем, что хакеров там нет, а новое подключение легитимное.
Portfast на циске работает аналогично, как меня заверила Наташа Самойленко.
Защита протокола STP на коммутаторах Huawei
Кроме этого можно включать режим на портах «edged port» (аналог port fast на коммутаторах Cisco Catalyst).
Edged port — функция, которая позволяет порту пропустить состояния listening и learning и сразу же перейти в состояние forwarding. Настраивается на портах уровня доступа, к которым подключены пользователи или сервера.
Цель функции Port Fast минимизировать время, которое необходимо для того чтобы порт перешел в состояние forward. Поэтому она эффективна только когда применена к портам, к которым подключены хосты. Если включить Port Fast на портах, которые соединены с другими коммутаторами, то есть риск создания петли. Включение этой функции, так же препятствует возникновению сообщений о изменении состояния порта TCN BPDU (topology change notification Bridge Protocol Data Unit) ©
Настройка:
Включается на определенных портах:
Функция включается на конечных коммутаторах доступа, к которым подключены пользователи. При включении данной функции рекомендуется включать функцию bpdu protection.
BPDU protection. При получении пакета bpdu на порту – порт выключается. Включается глобально на коммутаторе, но применяется для портов, на которых включена функция edged port.
Настройка
Глобально включается
Функция включается на конечных коммутаторах доступа, к которым подключены пользователи.
BPDU filtering. После включения функции, порт не принимает и не отправляет BPDU.
Настройка
Глобально включается
При включении данной функции глобально, она применится на портах с включенной функцией edged port.
Для включения на интерфейсе
Root protection. Если функция включена на интерфейсе, то при получении на нём BPDU лучшего, чем текущий корневой коммутатор, порт переходит в состояние root-inconsistent (эквивалентно состоянию listening). После того как порт перестает получать BPDU, он переходит в нормальное состояние ©
Настройка:
Функция включается на интерфейсе:
Данную функцию рекомендуется включать на портах корневого коммутаторе.
Loop protection. Одна из проблем с STP, это то что само оборудование которое его использует может быть причиной сбоя и быть причиной создания петли. Для предотвращения подобных сбоев и был создана команда Loop Guard. Loop Guard — обеспечивает дополнительную защиту на 2 уровне от возникновения петель. STP петля возникает когда блокированный порт в избыточной топологии ошибочно переводится в состояние forwarding(передачи). Это может возникнуть, например, когда блокированный STP порт перестаёт получать BPDU. Так как работа протокола STP полагается на постоянное присутствие BPDU пакетов в сети.(Designated (назначенный) порт постоянно должен передавать BPDU пакеты, а non-designated должен их получать). Как только на порт перестают поступать BPDU, STP понимает это как изменение топологии и исчезновение петли и переводит порт в состояние forwarding. В случае использования Loop Guard порт после прекращения получения пакетов BPDU переводится в состояние loop-inconsistent и остаются по прежнему блокированным. Как только на порт снова начинают поступать BPDU порт переводится в состояние согласно содержанию пакетов BPDU. ©