Представьте: утро понедельника, офис, все приходят на работу — и никто не может подключиться к сети. Ноутбуки получают адреса из диапазона 192.168.100.x, хотя у вас давно настроен 10.0.0.x. Шлюз ведёт в никуда. Интернета нет. Люди злятся. Телефон директора уже разрывается. Вы судорожно смотрите в консоль и понимаете: в вашей сети завёлся Rogue DHCP сервер.
Один DHCP-сервер в сети — порядок. Два DHCP-сервера — начинаются приключения, которые обычно заканчиваются вашим незапланированным дежурством до полуночи.
Именно для таких случаев придуман DHCP Snooping — механизм защиты на уровне коммутатора, который отфильтрует левый DHCP ещё до того, как он успеет испортить вам рабочий день. В этом гайде разберём: что такое DHCP Snooping, как он работает, как настроить его на Cisco, D-Link, Huawei, Eltex и MikroTik, и какие грабли вас ждут на пути. Пристегнитесь.
Что такое DHCP Snooping и зачем он нужен
DHCP Snooping — это механизм безопасности на уровне L2-коммутатора, который инспектирует весь DHCP-трафик в сети и разрешает DHCP-ответы только с портов, которые вы явно пометили как доверенные (trusted). Все остальные порты считаются недоверенными (untrusted) и не имеют права слать DHCPOFFER, DHCPACK и DHCPNAK.
Простыми словами: DHCP Snooping — это фейсконтроль для DHCP-трафика. Ваш легитимный сервер стоит за доверенным портом — заходи, дорогой. Ноутбук вашего коллеги, случайно включившего раздачу Wi-Fi с DHCP — стоп, не пройдёшь.
От чего защищает DHCP Snooping
- Rogue DHCP сервер (Мошеннический DHCP) — любое устройство, которое начало отвечать на DHCP-запросы вместо вашего сервера. Это может быть ноутбук с включённой точкой доступа, виртуалка с неправильно настроенным сетевым адаптером, или целенаправленная атака.
- DHCP Spoofing — атака, при которой злоумышленник намеренно поднимает DHCP-сервер и выдаёт клиентам свой шлюз и DNS, перехватывая весь трафик (man-in-the-middle).
- DHCP Starvation — атака исчерпания пула: атакующий засыпает сервер запросами с поддельными MAC-адресами и выжирает весь диапазон адресов, после чего поднимает свой DHCP.
Без DHCP Snooping ваша сеть абсолютно беззащитна перед всем этим. С ним — у вас есть надёжный привратник на каждом порту коммутатора.
Как работает DHCP Snooping: механика без воды
Когда клиент запрашивает IP-адрес, происходит классический обмен DORA: Discover → Offer → Request → Ack. DHCP Snooping встраивается в этот процесс на уровне коммутатора и действует по следующей логике:
- Клиент на untrusted-порту отправляет DHCPDISCOVER — коммутатор пропускает его, это запрос, не ответ.
- С untrusted-порта приходит DHCPOFFER (ответ с предложением адреса) — коммутатор дропает пакет. Не доверяем.
- С trusted-порта приходит DHCPOFFER — пропускаем, всё по протоколу.
- Клиент получает адрес — коммутатор записывает в Binding Table запись: IP + MAC + VLAN + Port + время аренды.
Именно эта таблица привязок становится фундаментом для двух других механизмов безопасности: Dynamic ARP Inspection (DAI) и IP Source Guard. Но об этом в отдельных статьях.
DHCP Snooping Binding Table — сердце механизма
Таблица привязок (Binding Table) — это живой журнал, который коммутатор ведёт в реальном времени. Она хранит следующую информацию по каждому клиенту:
| Поле | Описание |
|---|---|
| IP Address | Выданный DHCP-адрес |
| MAC Address | MAC клиента |
| VLAN | VLAN, в котором находится клиент |
| Interface | Порт коммутатора, к которому подключён клиент |
| Lease Time | Время аренды адреса |
Посмотреть таблицу на Cisco можно командой:
show ip dhcp snooping binding
Пример вывода:
MacAddress IpAddress Lease(sec) Type VLAN Interface ------------------ --------------- ---------- ------------- ---- -------------------- AA:BB:CC:DD:EE:01 10.0.10.101 86400 dhcp-snooping 10 GigabitEthernet0/2 AA:BB:CC:DD:EE:02 10.0.10.102 86400 dhcp-snooping 10 GigabitEthernet0/3
Эта таблица — не просто лог. На её основе работают дополнительные проверки: если с порта GigabitEthernet0/2 вдруг полетит трафик с IP 10.0.10.200 вместо 10.0.10.101 — IP Source Guard заблокирует его мгновенно.
Важный момент про сохранение таблицы. По умолчанию на многих платформах Binding Table хранится в оперативной памяти и теряется при перезагрузке. После ребута коммутатора все клиенты должны переполучить адреса, чтобы таблица восстановилась. На Cisco можно включить сохранение на диск:
ip dhcp snooping database flash:dhcp-snooping.db
Trusted и Untrusted порты: логика разделения
Это ключевая концепция, без понимания которой настройка DHCP Snooping превратится в хаос. Запоминайте как мантру:
По умолчанию все порты — untrusted. Это не баг, это фича. Безопасная позиция по умолчанию: никому не доверяем, пока явно не разрешим.
Какие порты делаем trusted
- Порт, к которому подключён легитимный DHCP-сервер — очевидно.
- Uplink-порты (транки до вышестоящих коммутаторов) — если ваш DHCP-сервер находится за другим коммутатором, uplink должен быть trusted, иначе ответы сервера будут дропаться.
- Порты DHCP relay агентов — если используете ip helper-address на маршрутизаторе, порт в его сторону — trusted.
Какие порты остаются untrusted
- Все клиентские порты — рабочие станции, ноутбуки, телефоны, принтеры.
- Порты точек доступа (если AP не является DHCP relay).
- Любой порт, за которым может оказаться неконтролируемое устройство.
Типичная ошибка новичка: поставить весь транк как untrusted «для безопасности» — и получить жалобы, что половина VLANов больше не получает адреса. Trusted ≠ незащищённый. Trusted = «DHCP-ответы с этого порта разрешены».
DHCP Snooping и VLAN: почему включают по VLAN
DHCP Snooping работает не глобально для всей сети, а пер-VLAN. Это важно. Вы включаете глобально snooping на коммутаторе, но затем явно указываете, для каких VLAN он активен.
Зачем такая гранулярность? В реальных сетях десятки VLAN с разной логикой. Например, в management VLAN у вас может быть свой отдельный DHCP, в VLAN для гостей — другой. Не всегда нужно включать snooping везде. Вы контролируете, где именно стоит защита.
На практике для enterprise-сети рекомендация простая: включайте DHCP Snooping на всех пользовательских VLAN без исключений.
DHCP Snooping и DHCP Relay: не забудьте про uplink
Очень частая ситуация в корпоративных сетях: DHCP-сервер стоит централизованно (Windows Server, ISC DHCP), а клиенты разбросаны по разным VLAN и L3-сегментам. В этом случае на маршрутизаторе (или L3-коммутаторе) настраивается DHCP relay — ip helper-address, который перенаправляет DHCP-запросы к серверу.
Как это взаимодействует с DHCP Snooping:
- Клиент шлёт DHCPDISCOVER на широковещательный адрес.
- L3-устройство с ip helper-address перехватывает и пересылает unicast’ом на DHCP-сервер.
- DHCP-сервер отвечает через тот же L3-агент.
- L3-агент пересылает ответ клиенту через uplink-порт коммутатора.
Вот тут и засада: если uplink к L3-агенту не помечен как trusted — DHCP Snooping дропнет ответ сервера. Клиенты не получат адреса. Все будут смотреть на вас с немым вопросом.
Правило: Всегда помечайте uplink в сторону DHCP relay/сервера как trusted.
Общая схема настройки DHCP Snooping
Независимо от вендора, алгоритм настройки выглядит одинаково:
- Глобально включить DHCP Snooping на коммутаторе.
- Указать VLAN, на которых он активен.
- Пометить нужные порты как trusted.
- Проверить таблицу привязок после того, как клиенты получат адреса.
- Убедиться, что легитимный DHCP работает, а левый — нет.
Теперь — к конкретным командам для каждого вендора.
Настройка DHCP Snooping на Cisco
Cisco — классика жанра. DHCP Snooping здесь реализован наиболее полно, и именно на примере Cisco проще всего объяснить концепцию. Работает на IOS и IOS-XE, включая коммутаторы серий Catalyst 2960, 3560, 3750, 9200, 9300.
Включение DHCP Snooping на Cisco: пошаговая настройка
! Шаг 1: Глобально включить DHCP Snooping ip dhcp snooping ! Шаг 2: Включить для нужных VLAN ip dhcp snooping vlan 10 ip dhcp snooping vlan 20,30 ! Шаг 3: Отключить option 82 если не нужен (часто вызывает проблемы с некоторыми серверами) no ip dhcp snooping information option ! Шаг 4: Пометить trusted-порты (uplink, порт DHCP-сервера) interface GigabitEthernet0/1 description Uplink to Core / DHCP Server ip dhcp snooping trust ! Шаг 5: Опционально — ограничить rate на клиентских портах interface GigabitEthernet0/2 description Client Port ip dhcp snooping limit rate 15
Проверка настройки на Cisco
! Общий статус show ip dhcp snooping ! Таблица привязок show ip dhcp snooping binding ! Статистика по дропнутым пакетам show ip dhcp snooping statistics
Вывод show ip dhcp snooping должен показать:
Switch DHCP snooping is enabled DHCP snooping is configured on following VLANs: 10,20,30 Insertion of option 82 is disabled Interface Trusted Allow option Rate limit (pps) ------------------------- ------- ------------ ---------------- GigabitEthernet0/1 yes yes unlimited GigabitEthernet0/2 no no 15
Сохранение Binding Table на Cisco:
ip dhcp snooping database flash:snooping.db ip dhcp snooping database write-delay 300
Про option 82 на Cisco
По умолчанию Cisco вставляет DHCP Option 82 (relay agent information) в пакеты. Это полезно для некоторых сценариев, но если ваш DHCP-сервер не настроен её принимать — он будет дропать запросы и клиенты останутся без адресов. Поэтому в большинстве случаев рекомендуется выполнить no ip dhcp snooping information option.
Настройка DHCP Snooping на D-Link
D-Link — народный коммутатор малого и среднего бизнеса. DHCP Snooping здесь есть, настраивается через Web UI или CLI. Разберём оба варианта на примере серии DGS-1210/DGS-3000.
Через Web-интерфейс D-Link
- Заходим в Security → DHCP Snooping → DHCP Snooping Settings.
- Переводим DHCP Snooping State в Enabled.
- В разделе DHCP Snooping VLAN Settings добавляем нужные VLAN.
- Переходим в DHCP Snooping Port Settings и помечаем uplink-порты как Trusted.
- Сохраняем конфигурацию.
Через CLI на D-Link
# Включить DHCP Snooping глобально enable dhcp_snooping # Включить для VLAN config dhcp_snooping vlan 10 state enable # Настроить trusted порт config dhcp_snooping ports 1 state trusted # Проверить show dhcp_snooping show dhcp_snooping binding_entries
На D-Link особенность: нумерация портов идёт как 1, 2, а не в формате GigabitEthernet0/1. Не путайтесь.
Настройка DHCP Snooping на Huawei
Коммутаторы Huawei серии S (S5700, S6700 и другие) используются в корпоративных сетях. DHCP Snooping здесь называется так же, команды немного отличаются от Cisco, но логика та же.
# Войти в системный вид system-view # Включить DHCP Snooping глобально dhcp snooping enable # Включить на интерфейсе VLAN vlan 10 dhcp snooping enable quit # Настроить trusted порт (в представлении интерфейса) interface GigabitEthernet0/0/1 dhcp snooping trusted quit # Проверка display dhcp snooping user-bind all display dhcp snooping configuration
На Huawei есть нюанс: DHCP Snooping включается сначала глобально командой dhcp snooping enable, затем дополнительно включается в каждом VLAN. Если забыть второй шаг — не заработает. Классические грабли.
Также на Huawei можно настроить проверку соответствия опций в DHCP-пакете:
interface GigabitEthernet0/0/2 dhcp snooping check dhcp-chaddr enable dhcp snooping check dhcp-request enable
Настройка DHCP Snooping на Eltex
Eltex — российский вендор, набирающий популярность. Коммутаторы MES серии широко применяются в телекоме и enterprise. Команды во многом похожи на Cisco IOS, что упрощает жизнь.
! Включить DHCP Snooping глобально ip dhcp snooping ! Включить для VLAN ip dhcp snooping vlan 10 ip dhcp snooping vlan 20 ! Отключить Option 82 (если не нужен) no ip dhcp snooping information option ! Настроить trusted порт interface gigabitethernet 1/0/1 ip dhcp snooping trust ! Ограничение rate на клиентских портах interface gigabitethernet 1/0/2 ip dhcp snooping limit rate 15 ! Проверка show ip dhcp snooping show ip dhcp snooping binding
Настройка на Eltex максимально приближена к Cisco. Если вы знаете Cisco — освоитесь за пять минут. Синтаксис практически идентичен, разве что нумерация интерфейсов отличается.
DHCP Snooping на MikroTik: альтернативный подход
Вот тут начинается особый разговор. MikroTik не имеет классического механизма DHCP Snooping в том виде, как он реализован у Cisco, Huawei или Eltex. Это надо принять и двигаться дальше.
Однако похожая функциональность реализуется несколькими способами:
Способ 1: DHCP Alert
MikroTik умеет оповещать об обнаружении чужого DHCP-сервера:
/ip dhcp-client add interface=ether1 disabled=no /ip dhcp-server alert add interface=bridge1 valid-server=AA:BB:CC:DD:EE:FF alert-timeout=1m
Здесь valid-server — MAC вашего легитимного DHCP-сервера. Если на интерфейсе появится ответ с другого MAC — MikroTik отправит уведомление (и может выполнить скрипт).
Способ 2: Bridge Filter
Более жёсткий вариант — блокировать DHCP-ответы (порт 67/68) с конкретных портов через Bridge Filter:
/interface bridge filter
add chain=forward in-interface=ether2 mac-protocol=ip \
ip-protocol=udp dst-port=68 src-port=67 action=drop \
comment="Block DHCP Offers from untrusted ports"
Это правило дропает DHCP-ответы (src-port 67), приходящие с порта ether2 (клиентский порт). Trusted-порт (ether1, например) такого правила не имеет — его ответы пропускаются.
Способ 3: IP/Firewall + ARP статика
В небольших сетях на MikroTik можно использовать комбинацию статических ARP-записей и firewall-правил для привязки IP к MAC и блокировки несанкционированных назначений. Это не DHCP Snooping в чистом виде, но для маленьких офисов работает.
Вывод по MikroTik: Если вам важна именно защита от Rogue DHCP на уровне коммутатора — лучше использовать MikroTik как маршрутизатор в связке с управляемым коммутатором (Cisco, Eltex, Huawei), где DHCP Snooping реализован нативно. MikroTik как L2-коммутатор в enterprise — не лучший выбор с точки зрения безопасности.
5 практических примеров из жизни администратора
Пример 1: Как поймать Rogue DHCP сервер в офисе
Ситуация: Часть клиентов получает адреса из неправильного диапазона. Жалобы на отсутствие интернета.
Диагностика без DHCP Snooping:
# На клиенте Windows — смотрим кто выдал адрес ipconfig /all | findstr "DHCP Server" # На клиенте Linux ip route | grep default cat /var/lib/dhclient/dhclient.leases | grep "dhcp-server-identifier"
Нашли подозрительный IP? Теперь находим порт в таблице MAC на коммутаторе:
show mac address-table | include [MAC-адрес злоумышленника]
Решение: Включаем DHCP Snooping — и проблема исчезает автоматически. Рогового сервера больше нет, его ответы дропаются на уровне коммутатора.
Пример 2: IP-телефоны перестали получать адреса после включения Snooping
Ситуация: Включили DHCP Snooping на коммутаторе. Компьютеры работают, IP-телефоны Cisco не получают адрес из VLAN Voice (VLAN 20).
Причина: Забыли добавить VLAN 20 в список защищаемых VLAN для snooping, или не добавили uplink в trusted для этого VLAN.
# Проверяем какие VLAN защищены show ip dhcp snooping # Добавляем VLAN для телефонов ip dhcp snooping vlan 20 # Если uplink уже trusted - всё должно заработать # Проверяем binding после перезапроса адреса на телефоне show ip dhcp snooping binding
Пример 3: DHCP работает в одном VLAN и не работает в другом
Ситуация: VLAN 10 — всё отлично. VLAN 30 — клиенты не получают адреса. DHCP-сервер один, централизованный, через relay.
Причина чаще всего одна из двух:
- DHCP Snooping не включён для VLAN 30:
ip dhcp snooping vlan 30— не выполнялось. - Uplink к relay-агенту не trusted для данного коммутатора.
# Диагностика show ip dhcp snooping statistics ! Смотрим на строку "Packets dropped" — если растёт, пакеты дропаются # Включаем debug (осторожно на production!) debug ip dhcp snooping packet
Пример 4: Как посмотреть Binding Table и проверить всё ли ОК
Задача: Убедиться, что все клиенты корректно отражены в таблице привязок.
# Cisco show ip dhcp snooping binding # Фильтрация по VLAN show ip dhcp snooping binding vlan 10 # Huawei display dhcp snooping user-bind all # Eltex show ip dhcp snooping binding # D-Link show dhcp_snooping binding_entries
Если таблица пустая после включения Snooping — это нормально до момента, когда клиенты заново запросят адреса. Можно на Windows-клиентах выполнить ipconfig /renew, на Linux — dhclient -r && dhclient eth0.
Пример 5: Классика — забыли trust на uplink и получили полный хаос
Ситуация: Включили DHCP Snooping на всех коммутаторах в офисе. Через 10 минут звонки: «Интернет не работает!» У половины пользователей адреса есть, у половины — нет.
Причина: На access-коммутаторах не пометили trunk-порт в сторону distribution-коммутатора как trusted. DHCP-ответы от центрального сервера приходят через trunk, коммутатор их дропает.
# Срочная диагностика show ip dhcp snooping statistics ! Видим огромный счётчик dropped packets # Лечение interface GigabitEthernet0/24 description Trunk to Distribution ip dhcp snooping trust
Урок: перед включением DHCP Snooping на продакшн — нарисуйте схему сети и отметьте на ней все trusted-порты. Это займёт 15 минут и сэкономит несколько часов нервотрёпки.
DHCP Snooping не работает — разбираем частые ошибки
| Симптом | Вероятная причина | Решение |
|---|---|---|
| Клиенты не получают адреса после включения Snooping | Uplink не помечен как trusted | ip dhcp snooping trust на uplink-порту |
| Только часть VLAN работает | DHCP Snooping не включён для всех нужных VLAN | ip dhcp snooping vlan X для каждого VLAN |
| DHCP через relay не работает | Порт в сторону relay не trusted | Пометить интерфейс к L3-агенту как trusted |
| После перезагрузки коммутатора все клиенты теряют связь | Binding Table не сохраняется | Настроить ip dhcp snooping database |
| Сервер отбрасывает DHCP-запросы | Вставляется Option 82, сервер его не принимает | no ip dhcp snooping information option |
| На Huawei snooping включён, но не работает | Не включён на уровне VLAN (только глобально) | Войти в VLAN и выполнить dhcp snooping enable |
Debug и диагностика
# Cisco — статистика по дропам show ip dhcp snooping statistics # Cisco — детальный debug (использовать осторожно!) debug ip dhcp snooping packet debug ip dhcp snooping event # Не забудьте отключить debug после диагностики! undebug all
Сравнение DHCP Snooping у разных вендоров
Если вы выбираете коммутаторы для новой сети или расширяете существующую, вот краткая сравнительная таблица реализации DHCP Snooping:
| Вендор | Наличие Snooping | CLI / Web UI | Сохранение Binding Table | Сложность настройки |
|---|---|---|---|---|
| Cisco (IOS/IOS-XE) | ✅ Полная поддержка | CLI + Web (на новых) | ✅ Flash/TFTP | Средняя |
| Huawei (VRP) | ✅ Полная поддержка | CLI + eSight | ✅ | Средняя |
| Eltex (MES) | ✅ Полная поддержка | CLI + Web UI | ✅ | Низкая (как Cisco) |
| D-Link (DGS) | ✅ Есть | CLI + Web UI | ⚠️ Зависит от модели | Низкая |
| MikroTik (RouterOS) | ⚠️ Нет нативного | CLI + Winbox | N/A | Высокая (через workaround) |
Для корпоративных сетей, где безопасность критична, рекомендуем управляемые коммутаторы с нативной поддержкой DHCP Snooping: Cisco Catalyst, Huawei S-серии или отечественный Eltex MES. Последний особенно актуален в условиях импортозамещения.
Профилактика и лучшие практики
Чеклист перед включением DHCP Snooping в production
- ☑️ Нарисована схема сети с обозначением всех DHCP-серверов и relay-агентов.
- ☑️ Определены все trusted-порты (uplink, серверные порты).
- ☑️ Составлен список всех VLAN, на которых нужен Snooping.
- ☑️ Проверен вопрос с Option 82 (нужен ли вашему серверу).
- ☑️ Настроено сохранение Binding Table на энергонезависимое хранилище.
- ☑️ Запланировано окно обслуживания для включения (Snooping может кратковременно прервать DHCP).
- ☑️ Под рукой консольный доступ на случай если что-то пойдёт не так.
Связка DHCP Snooping с другими механизмами безопасности
DHCP Snooping — это фундамент. На его основе строятся два более мощных механизма:
- Dynamic ARP Inspection (DAI) — использует Binding Table для проверки ARP-пакетов. Защищает от ARP Spoofing и отравления ARP-таблиц.
- IP Source Guard — разрешает трафик с порта только с тем IP-адресом, который зафиксирован в Binding Table. Полная защита от IP Spoofing на уровне L2.
Включение всех трёх механизмов вместе — это золотой стандарт безопасности для клиентских портов в корпоративной сети. Никаких посторонних DHCP, никакого ARP-спуфинга, никаких поддельных IP. Как на скриншоте ниже — схема защиты по уровням.
Регулярный аудит Binding Table
Не забывайте периодически просматривать Binding Table — это полезный срез состояния сети. Видите незнакомый MAC на порту? Это повод для расследования.
# Скрипт для периодического экспорта Binding Table (для EEM на Cisco) event manager applet DHCP_SNOOPING_BACKUP event timer cron cron-entry "0 */6 * * *" action 1.0 cli command "enable" action 2.0 cli command "show ip dhcp snooping binding | redirect tftp://10.0.0.100/snooping-backup.txt"
Итог: что мы сделали и что получили
Итак, подведём диагноз и рецепт в одном флаконе. DHCP Snooping — это обязательный механизм безопасности для любой управляемой корпоративной сети. Не факультативная опция, не «можно сделать потом», а базовая гигиена, которая:
- Устраняет угрозу Rogue DHCP — главного источника хаоса в плоских сетях.
- Защищает от DHCP Spoofing и man-in-the-middle атак через подмену шлюза.
- Формирует Binding Table как основу для DAI и IP Source Guard.
- Настраивается за 5-10 минут на любом управляемом коммутаторе.
Мы разобрали настройку на Cisco, D-Link, Huawei, Eltex и MikroTik. Разобрали 5 реальных кейсов из практики. Составили таблицу типичных ошибок. Теперь у вас есть всё, чтобы настроить это в своей сети сегодня, не откладывая.
Есть вопросы по настройке на конкретном оборудовании? Столкнулись с нестандартным поведением? Пишите в комментарии — разберём вместе. Подпишитесь на телеграм-канал, чтобы не пропустить следующие рецепты из IT-Аптеки.
Оставайтесь на связи
Рецепты от IT-боли. Без воды, без рекламы, без маркетинговой шелухи.
Подписаться на IT-Аптеку →



