закрыть меню
Перейти в раздел
Перейти в раздел
закрыть меню
Перейти в раздел
Перейти в раздел
Отправить
спецификацию
на расчет
назад

DHCP snooping на Huawei: как закрыть сеть от чужого DHCP

Механизм делит порты на доверенные и недоверенные и отбрасывает ответы DHCP-сервера, пришедшие с недоверенного порта. По умолчанию у Huawei недоверенными числятся все интерфейсы, поэтому включение без пометки серверного порта останавливает выдачу адресов сразу и всем. Порядок команд на работающей сети важнее самих команд.

  • По умолчанию интерфейс недоверенный. В таблице значений по умолчанию стоит Untrusted, в разделе про доверенный интерфейс это повторено фразой «By default, an interface is untrusted».
  • Недоверенный интерфейс отбрасывает DHCPACK, DHCPNAK и DHCPOFFER от сервера. Запросы клиентов пересылаются только через доверенный интерфейс.
  • Включение состоит из трёх команд: dhcp enable, dhcp snooping enable глобально и dhcp snooping enable в виде VLAN, bridge domain или интерфейса.
  • Вид bridge domain поддерживают только серии S6730-H-V2, S5755-H и S5732-H-V2.
  • Таблица привязок без резервного копирования теряется при перезагрузке, и пользователям приходится подключаться заново.
  • Защита разложена на пять разделов документации. Включение snooping закрывает один из них.
  • С BOOTP механизм не работает, поэтому бездисковым станциям нужны статические привязки командой user-bind static.

Что делает чужой DHCP-сервер в сегменте

Появление в сегменте второго сервера, например принесённого сотрудником домашнего роутера, заканчивается тем, что часть клиентов получает неверные адреса и параметры сети. Huawei называет две вещи: неверные адреса и неверные параметры сетевой конфигурации. Следствием названо нарушение связи, а масштаб зависит от того, сколько клиентов успело обратиться к чужому серверу раньше настоящего.

Задача механизма сформулирована в документации так: клиент получает адрес только от валидного DHCP-сервера, а поддельный сервер выдать адрес клиенту не может. Достигается это разделением интерфейсов на две роли и фильтрацией серверных сообщений по роли интерфейса, через который они пришли.

Роль интерфейса и судьба сообщений DHCP
РольDHCPACK, DHCPNAK, DHCPOFFER от сервераЗапросы клиентовГде применяется
Доверенный интерфейспринимаютсяпересылаются только через негопорт к валидному серверу или к релею
Недоверенный интерфейсотбрасываютсячерез него не пересылаютсявсе клиентские порты

Из таблицы следует граница применимости. Механизм работает с сообщениями DHCP, поэтому устройство со статически прописанным адресом остаётся вне его поля зрения: диалога с сервером оно не ведёт и в таблицу привязок не попадает. Эту часть задачи закрывают port security и 802.1X.

Доставка в Москву за 14 рабочих дней

Оборудование Huawei
со склада в Китае
Коммутаторы, Wi-Fi и маршрутизаторы в наличии

Открыть каталог

Доверенные и недоверенные порты

Доверенным помечается интерфейс, который прямо или косвенно ведёт к DHCP-серверу, которому доверяет администратор. Остальные остаются недоверенными. Huawei ставит здесь условие: динамические записи привязок устройство начинает формировать только после того, как доверенный интерфейс настроен.

Настроить доверенный порт можно в трёх видах, и они не равнодоступны. Вид bridge domain поддерживают только три серии, для остальных остаются вид интерфейса и вид VLAN. Для сети, где серверный сегмент описан через VLAN, второй вариант короче и меньше подвержен ошибке при добавлении портов.

Три вида настройки доверенного интерфейса
ВидКомандаОграничение по моделям
Вид интерфейсаdhcp snooping trustedнет
Вид VLANdhcp snooping trusted interface interface-type interface-numberнет
Вид bridge domaindhcp snooping trusted tunnelтолько S6730-H-V2, S5755-H и S5732-H-V2
Промежуток между двумя командами

Документация даёт порядок «включить, потом пометить». Из значения по умолчанию следует, что в промежутке между этими командами устройство отбрасывает ответы всех серверов, включая настоящий. Это вывод из умолчания, отдельной оговорки у вендора нет. На работающей сети промежуток убирают, помечая аплинк до включения snooping на клиентских портах.

Минимальная рабочая конфигурация

Включение состоит из трёх уровней, и пропуск любого означает, что механизм не заработает. Первый уровень это функциональность DHCP на устройстве, она выключена по умолчанию. Второй это глобальное включение snooping, тоже выключенное по умолчанию. Третий это включение на конкретном VLAN, bridge domain или интерфейсе.

Коммутатор доступа Huawei CloudEngine S5735-S24T4X, вид спереди
Коммутатор доступа CloudEngine S5735-S24T4X. Snooping включают на его клиентских портах, аплинк помечают доверенным.
system-view
dhcp enable
dhcp snooping enable
vlan 10
 dhcp snooping enable
 dhcp snooping trusted interface gigabitethernet 0/0/1
 quit

Тот же результат через вид интерфейса, если серверный порт удобнее описывать напрямую. Здесь порядок другой: сначала помечается аплинк к серверу, затем snooping включается на клиентских портах, и промежутка с отброшенными ответами не возникает.

system-view
dhcp enable
dhcp snooping enable
interface gigabitethernet 0/0/1
 dhcp snooping trusted
 quit
interface gigabitethernet 0/0/2
 dhcp snooping enable
 quit
Что упрощает работу на большой сети
  • Включить snooping сразу в нескольких VLAN можно из системного вида: dhcp snooping enable vlan 10 to 40.
  • Лицензия для DHCP snooping не нужна, в документации записано, что функция не под лицензионным контролем.
  • Механизм применяют на устройстве доступа или на первом релее.
  • Проверка после настройки: display dhcp snooping, display dhcp snooping configuration, display dhcp snooping statistics.

Таблица привязок и перезагрузка

Запись привязки устройство собирает из сообщения DHCPACK и добавляет к ней номер интерфейса и идентификатор VLAN. Получается четвёрка: IP-адрес, MAC-адрес, интерфейс, VLAN. На этой таблице стоят IP Source Guard, который сверяет адрес источника трафика, и Dynamic ARP Inspection, который проверяет ARP-пакеты.

Жизненный цикл записи привязки
СобытиеЧто происходит с записью
Клиент получил адрес, пришёл DHCPACKзапись создаётся
Истёк срок арендызапись стареет и удаляется
Клиент отправил DHCPRELEASEзапись удаляется автоматически
Перезагрузка без резервной копиизаписи теряются, клиентам нужно подключиться заново
Перезагрузка с резервной копиейзаписи восстанавливаются командой recover

Строка про перезагрузку взята из раздела резервного копирования дословно. Локальное автосохранение по умолчанию выключено, включается командой с именем файла и необязательной задержкой записи. Резервирование на удалённый SFTP-сервер требует скрипта на OPS API.

system-view
dhcp snooping user-bind autosave dhcp-snooping.tbl
quit

Восстановление после перезагрузки ручное, отдельной командой с тем же именем файла. Автоматического подъёма записей при старте этот раздел не описывает.

system-view
dhcp snooping user-bind recover dhcp-snooping.tbl

Числовой ёмкости таблицы привязок в руководстве по настройке нет, поэтому запас считают иначе. Потолок задаёт администратор командой max-number, а фактическую заполненность снимают с живого устройства командой display dhcp snooping. Модель для проекта подбирают по числу клиентов в обслуживаемых VLAN.

Пять разделов защиты вместо одной команды

Защита на базе DHCP snooping разложена в документации на пять отдельных разделов, и включаются они независимо. Одна команда включения закрывает подмену сервера и оставляет открытыми флуд, исчерпание пула и поддельные сообщения от имени клиента. Ни одна из пяти проверок вместе со snooping не включается.

Разделы защиты, команды и значения по умолчанию
РазделЧто закрываетКомандаПо умолчанию
Обнаружение DHCP-серверапишет данные чужого сервера в лог, фильтром не являетсяdhcp snooping server recordвыключено
Защита от флуда DHCPv4ограничивает скорость передачи сообщений на обработкуdhcp snooping check dhcp-rate enableвыключено, предел скорости 5000 pps
Защита от флуда DHCPv6то же самое для IPv6, отдельный разделdhcp snooping check dhcpv6-rate enableвыключено, предел скорости 100 pps
Защита от DoS на серверограничивает число привязок и проверяет поле CHADDRdhcp snooping user-bind max-numberпроверка CHADDR выключена
Защита от поддельных сообщенийсверяет сообщения клиента с таблицей привязокdhcp snooping check dhcp-request enableвыключено

Раздел про DoS полезен на сети с гостевым сегментом. Атакующий исчерпывает пул, запрашивая адреса с подменёнными значениями поля CHADDR, и легальные пользователи адресов не получают. Ограничение числа привязок на интерфейс ставит потолок числу онлайн-пользователей, а проверка CHADDR отсекает подмену.

Пороги тревоги, которые ставятся один раз
  • Нижний и верхний пороги заполнения таблицы привязок по умолчанию равны 50 и 100 процентам, команда dhcp snooping user-alarm percentage.
  • Тревога по числу отброшенных сообщений включается командой dhcp snooping alarm dhcp-rate.
  • Option 82 определён в RFC 3046 и передаёт серверу местоположение клиента, подопции Circuit ID и Remote ID.
  • Ограничение по VRRP в документации касается DHCPv6 snooping.

Port security и 802.1X сверху

DHCP snooping закрывает чужой DHCP-сервер и подделку сообщений. Подключение ноутбука со статическим адресом в свободную розетку он не останавливает, эту задачу закрывают два других механизма. Port security ограничивает число MAC-адресов на порту, а 802.1X не пропускает трафик до аутентификации и требует отдельного сервера с учётными записями.

Значения по умолчанию для port security
ПараметрЗначение по умолчанию
Функция port securityвыключена
Максимум защищённых MAC-адресов на интерфейсе1
Действие при нарушенииrestrict
Старение динамических защищённых адресоввыключено
Телефон с компьютером за ним отваливается в первый же день

Включённый без параметров port security оставляет на порту место ровно для одного устройства. Схема «IP-телефон, за ним компьютер» даёт на порту два MAC-адреса и перестаёт работать сразу. Число задаётся явно параметром maximum в той же команде включения.

system-view
interface gigabitethernet 0/0/10
 port-security enable maximum 2
 port-security mac-address sticky
 quit

Вторая команда переводит выученные адреса в разряд закреплённых. Разница описана в документации прямо: динамические защищённые адреса теряются при перезагрузке устройства или падении порта и учатся заново, закреплённые сохраняются и не стареют даже при заданном времени старения. Для мест с постоянной техникой берут закреплённые.

Три действия при нарушении и что за ними стоит
ДействиеПоведениеВозврат порта в работу
restrictотбрасывает неверные пакеты и поднимает тревогу, помечено как рекомендуемоене требуется
protectотбрасывает неверные пакеты молчане требуется
error-downотбрасывает пакеты, гасит интерфейс и поднимает тревогупо умолчанию только командой restart в виде интерфейса

Переход к 802.1X это уже проект, а не настройка порта. До старта у него два открытых вопроса: что делать с техникой без поддержки стандарта и что происходит при недоступности сервера аутентификации. Оба закрывают на бумаге заранее, потому что оба всплывают в первый день после включения.

DHCP-релей и четыре ошибки внедрения

DHCP-релей это устройство, которое принимает широковещательный запрос клиента и пересылает его юникастом серверу в другой подсети. Нужен он там, где сервер и клиенты разнесены по сегментам. Самый частый вопрос при внедрении: что делать, если релей стоит между клиентами и сервером. Ответ зависит от того, на каком устройстве включён snooping.

Два случая с DHCP-релеем
Где включён snoopingНужен ли доверенный интерфейсПочему
На самом релеенетрелей преобразует адреса и шлёт запрос юникастом валидному серверу, поэтому получаемые DHCPACK корректны по построению
На коммутаторе доступа, релей выше по схемедадля этого коммутатора релей это источник ответов на одном из портов, правило общее

Вторая ошибка это неверный порядок команд, она разобрана выше во врезке. Третья касается роста сети: к серверному сегменту добавляют второй аплинк для отказоустойчивости и пометить его забывают. Отказ проявится в момент переключения на резервный путь. Настройка в виде VLAN эту ошибку частично снимает. Смежный разбор проектных промахов собран в статье про пять ошибок проектирования мультивендорной сети.

Четвёртая ошибка: бездисковые станции

Huawei пишет прямо: DHCP snooping не поддерживает протокол BOOTP. Бездисковые рабочие станции используют именно этот протокол. Динамические записи привязок для них не появятся, поэтому IP Source Guard и Dynamic ARP Inspection по ним работать не будут. Лечение одно: статические привязки командой user-bind static.

Подбор самой модели под роль в сети это отдельная задача. Какие серии поддерживают DHCP snooping в нужной версии, перечислено в разделе требований руководства, а разбор имён серий Huawei разобран в статье про расшифровку серий коммутаторов и в расшифровке имени S5735.

Частые вопросы

Почему после включения DHCP snooping клиенты перестали получать адреса?

Первым делом проверьте, помечен ли доверенным порт в сторону настоящего сервера. По умолчанию все интерфейсы недоверенные, а недоверенный интерфейс отбрасывает DHCPACK, DHCPNAK и DHCPOFFER от любого сервера. Возвращает выдачу адресов пометка порта в сторону сервера: dhcp snooping trusted в виде интерфейса либо dhcp snooping trusted interface в виде VLAN.

Нужно ли настраивать доверенный интерфейс на DHCP-релее?

Если snooping включён на самом релее, доверенный интерфейс на нём настраивать не нужно. Релей преобразует адреса источника и назначения и отправляет сообщение юникастом валидному серверу, поэтому ответы приходят от валидного сервера по построению и таблица привязок формируется корректно без дополнительных команд.

Сколько записей помещается в таблицу привязок?

Числовой ёмкости в руководстве по настройке нет. Практический путь такой: поставить собственный потолок командой dhcp snooping user-bind max-number на интерфейс или VLAN, оставить пороги тревоги по умолчанию на 50 и 100 процентах и снимать фактическую заполненность командой display dhcp snooping.

Сохраняется ли таблица привязок при перезагрузке коммутатора?

Без резервного копирования записи теряются при перезагрузке, и всем пользователям приходится подключаться заново. Локальное автосохранение выключено по умолчанию и включается командой dhcp snooping user-bind autosave с именем файла. После перезагрузки таблица возвращается на место командой dhcp snooping user-bind recover с тем же файлом.

Сколько портов надо пометить доверенными?

Столько, сколько у коммутатора аплинков в сторону легитимного сервера или релея, включая резервные пути. Обычная цифра для этажного коммутатора это один или два порта. Каждый лишний доверенный порт пропускает ответы любого сервера, стоящего за ним, и тем самым отключает защиту на этом направлении.

Работает ли DHCP snooping с бездисковыми рабочими станциями?

Динамические привязки для них не создаются: такие станции используют протокол BOOTP, а DHCP snooping его не поддерживает. Для бездисковых машин настраивают статические привязки командой user-bind static, иначе IP Source Guard и Dynamic ARP Inspection по этим адресам работать не будут.

Заменяет ли port security эту настройку?

Задачи у них разные. DHCP snooping отсекает чужой DHCP-сервер, port security ограничивает число MAC-адресов на порту и останавливает ноутбук со статическим адресом. По умолчанию на интерфейсе разрешён ровно один защищённый MAC-адрес, поэтому связке телефона и компьютера нужен параметр maximum 2.


2 августа
Читайте также