На коммутаторах и маршрутизаторах Huawei таблица MAC-адресов (FDB) просматривается через командную строку (CLI) командой display mac-address. Этот механизм работает на платформе VRP (Versatile Routing Platform), которая является основой для серий S, CE, CloudEngine и AR. В отличие от потребительских роутеров, где достаточно веб-интерфейса, корпоративное оборудование требует понимания режимов просмотра и типов записей — динамических, статических или blackhole.

Администраторы часто сталкиваются с необходимостью найти порт, за которым закреплен конкретный хост, или очистить устаревшие записи после переподключения устройств. Без знания ключей фильтрации вывод команды может содержать тысячи строк, что затрудняет диагностику петель, неавторизованного доступа или проблем с L2VPN. Ниже разобраны все сценарии: от базового просмотра до автоматизации через скрипты.

Основные команды CLI для работы с FDB

Базовая команда display mac-address без параметров выводит полную таблицу коммутации. В выводе присутствуют поля: MAC-адрес, VLAN ID, тип записи (Learned/Static/Blackhole), исходящий интерфейс и флаги. Для удобства анализа вывод разбивается на страницы — нажмите пробел для прокрутки или q для выхода.

Для оперативной диагностики чаще используются модифицированные версии команды. Ключ vlan ограничивает вывод конкретным VLAN, interface — конкретным портом, а mac-address ищет запись по конкретному адресу. Комбинация этих фильтров позволяет за секунды локализовать хост в сети из сотен портов.

☑️ Чек-лист быстрой диагностики MAC-таблицы

Выполнено: 0 / 5

Фильтрация вывода: VLAN, интерфейс и тип записи

Фильтрация по VLAN — самый частый сценарий в сетях с сегментацией. Команда display mac-address vlan 100 покажет только записи, относящиеся к VLAN 100. Это критично при расследовании широковещательных штормов в конкретном сегменте. Если известен физический порт, к которому подключен подозрительный девайс, используйте display mac-address interface GigabitEthernet0/0/1.

Тип записи определяет поведение коммутатора. Dynamic — самообученные адреса, устаревают по таймеру (по умолчанию 300 секунд). Static — настроены вручную, не устаревают, используются для серверов или безопасности (Port Security). Blackhole — трафик на этот MAC отбрасывается, настраивается для блокировки угроз. Security — созданы функцией Port Security или MAC Authentication. Фильтр по типу: display mac-address static или display mac-address blackhole.

⚠️ Внимание: На стеках коммутаторов (Stack/iStack) таблица MAC-адресов единая для всего стека, но интерфейсы в выводе содержат Slot ID (например, GE1/0/1, GE2/0/1). Всегда учитывайте Slot ID при поиске физического порта.

Просмотр ARP и таблицы соседей на потребительских устройствах

На ноутбуках Huawei MateBook, смартфонах и планшетах под управлением HarmonyOS / Windows нет классической L2-таблицы коммутации (FDB), так как это конечные узлы. Здесь используется ARP-таблица (IPv4) или Neighbor Discovery Protocol (NDP) таблица (IPv6), отображающая соответствие IP-адреса MAC-адресу для соседних узлов в одном L2-сегменте. В Windows откройте терминал и введите arp -a.

В Linux-терминале (доступен на MateBook через WSL или нативно) команда ip neigh show выдает более подробную информацию: состояние достижимости (REACHABLE, STALE, DELAY, PROBE) и используемый интерфейс. На смартфонах Huawei доступ к ARP-таблице требует root-прав или ADB-доступа: adb shell cat /proc/net/arp. Это полезно для диагностики проблем с Wi-Fi Direct, Cast или локальными сервисами.

💡

На маршрутизаторах серии AR (Enterprise) и домашних роутерах Huawei (WS5200, AX3 и др.) веб-интерфейс часто скрывает MAC-таблицу. В веб-морде домашних моделей ищите раздел"Список устройств" (Device List) — там отображаются IP, MAC и имя хоста, но нет VLAN/порт mapping.

📊 Каким способом вы чаще всего ищете MAC-адрес на Huawei?
CLI (display mac-address)
Веб-интерфейс (Device List)
ARP-таблица на ПК/ноутбуке
Скрипты/Ansible/SNMP

Особенности серий: S-серия, CloudEngine, NE и AR

На коммутаторах Campus-серии S (S5720, S5735, S6730) синтаксис команд единообразен. Однако на дата-центровых CloudEngine (CE6800, CE8800, CE12800) архитектура VRPv8 вводит различия: таблица может быть распределена по линейным картам (LPU), и команда display mac-address агрегирует данные с всех слот. Для просмотра локальной таблицы конкретного LPU используется display mac-address slot .

На транспортной платформе NE (OptiX, Metro) терминология отличается: используется понятие"MAC-адрес сервиса" (Service MAC) и таблицы привязки к EVPN/VPLS инстансам. Команды выглядят как display mac-address vsi . Маршрутизаторы корпоративной серии AR (AR6000) поддерживают полный набор L2-команд, если включен режим коммутации (Layer 2 License).

Скрытые параметры display mac-address

Команда поддерживает ключ verbose для вывода дополнительных полей: Aging Time, Configuration VLAN, Priority. Также доступен count — показывает только количество записей без самой таблицы, полезно для мониторинга заполненности TCAM. Пример: display mac-address vlan 10 count.

Типичные ошибки: пустой вывод, несоответствие порта, флаги Security

Если команда возвращает пустой результат, проверьте: 1) Находитесь ли вы в правильном VLAN (интерфейс может быть в Access другом VLAN или Trunk без разрешенного VLAN). 2) Не истек ли Aging Time — запись могла удалиться, если хост не передавал трафик 5 минут. 3) Не настроен ли MAC Address Flapping Detection, который переводит порт в Error-Down при дрожании MAC между портами.

Ситуация, когда MAC виден на не том порту, часто указывает на петлю L2 или некорректную топологию (два кабеля между одними коммутаторами без Eth-Trunk). Флаг Security в выводе означает, что запись создана функцией Port Security или 802.1X/MAB. Такие записи не удаляются стандартным aging-таймером и требуют ручной очистки или реавторизации клиента. Очистка динамических записей: reset mac-address dynamic (очищает все) или reset mac-address dynamic vlan 10 interface GE0/0/1 (селективно).

⚠️ Внимание: Команда reset mac-address dynamic без параметров сбрасывает ВСЕ динамические записи на устройстве. Это вызовет кратковременный флудинг (flooding) неизвестного unicast-трафика до повторного обучения. Выполняйте в обслуживаемом окне или с точечными фильтрами.

Автоматизация сбора данных: SNMP, NETCONF и Python

Для инвентаризации парков из сотен коммутаторов ручной CLI не подходит. Стандартный способ — SNMP OID 1.3.6.1.2.1.17.4.3.1.1 (dot1dTpFdbAddress) и связанные OID для порта и статуса. Huawei также поддерживает NETCONF/YANG модель huawei-l2mac, позволяющую получать структурированный JSON/XML. Это предпочтительнее SNMP для больших таблиц из-за отсутствия лимитов PDU.

Пример скрипта на Python с библиотекой ncclient для NETCONF: подключение к host:830, RPC get с фильтром mac-address-table. Парсинг XML дает список словарей: mac, vlan, interface, type. Для массового опроса используйте асинхронность (asyncio) или Ansible-модуль community.network.ce_mac_address_table (для CloudEngine) или cloudengine_mac_address_table. Всегда кэшируйте Aging Time, чтобы не переопрашивать чаще необходимого.

💡

Главный вывод: для точечной диагностики используйте CLI с фильтрами vlan/interface/mac; для инвентаризации парка — NETCONF/YANG или SNMP; на потребительских устройствах смотрите ARP/NDP таблицы, а не FDB.

Пример Ansible-таска для сбора MAC-таблицы

```yaml- name: Get MAC address table from Huawei CE cloudengine_mac_address_table: provider:"{{ cli }}" register: mac_table- name: Save to file copy: content:"{{ mac_table.stdout }}" dest:"./mac_tables/{{ inventory_hostname }}.json"```

Сравнение методов доступа к таблице адресов

Метод Применимость Детализация Автоматизация Сложность
display mac-address (CLI) Все управляемые свитчи/роутеры (VRP) Полная: VLAN, Port, Type, Aging Низкая (expect/ssh) Низкая
Web GUI (Device List) Домашние роутеры, AR (упрощенно) Только IP, MAC, Name, Online/Offline Нет Низкая
arp -a / ip neigh ПК, Ноутбуки (Win/Linux), Android (ADB) IP -> MAC mapping (L3 Neighbor) Средняя (скрипты) Низкая
SNMP (dot1dTpFdbTable) Любое SNMP-управляемое оборудование MAC, Port, Status Высокая (Zabbix, PRTG) Средняя
NETCONF/YANG S-серия (VRP8), CloudEngine, NE Структурированные данные, фильтры Высокая (Ansible, Python) Высокая
⚠️ Внимание: На коммутаторах с включенным MAC Address Flapping Detection (команда mac-address flapping detection) частая смена порта одним MAC переводит интерфейс в состояние Error-Down. Таблица при этом может показывать запись на старом порту до истечения aging-time или сброса. Проверяйте логи: display logbuffer.
FAQ: Частые вопросы по MAC-таблицам Huawei
Почему display mac-address не показывает мой девайс, хотя он пингуется?

Проверьте, что девайс передавал трафик недавно (aging time 300 сек по умолчанию). Если девайс молчит — запись удалена. Запустите пинг с коммутатора к IP хоста (ping -a ), чтобы принудительно обновить запись. Также убедитесь, что порт не в Error-Down и VLAN разрешен на транке.

Как добавить статический MAC-адрес для безопасности?

В системном представлении: mac-address static vlan interface . Это привяжет MAC к порту навсегда. Для блокировки используйте mac-address blackhole vlan . Статические записи имеют приоритет над динамическими.

Где посмотреть текущий aging-time и как его изменить?

Команда display mac-address aging-time показывает текущее значение (в секундах). Изменение: mac-address timer aging в системном представлении. Диапазон обычно 10-1000000 сек. Значение 0 отключает старение (не рекомендуется для динамических).

Можно ли выгрузить таблицу в файл на флеш-памяти?

Да. Используйте перенаправление вывода: display mac-address > flash:/mac_backup.txt. Работает в привилегированном режиме. Файл можно затем скачать по SFTP/TFTP. Для больших таблиц лучше использовать NETCONF.

В чем разница между MAC-таблицей на свитче и ARP-таблицей на роутере?

MAC-таблица (FDB) — L2: маппит MAC -> Исходящий порт (для коммутации кадров). ARP-таблица — L3: маппит IP -> MAC (для инкапсуляции пакетов в кадры). На L3-интерфейсах роутера (VLANIF) обе таблицы работают вместе: пакет ищет next-hop MAC в ARP, затем кадр коммутируется по FDB.