Каталог Поиск 0 Сравнить 0 Закладки 0 Корзина Войти
Каталог
105082, Москва, ул. Фридриха Энгельса, 75с21, БЦ Бауманский ИТКОЛ
Пн - Пт: с 09-00 до 18-00 Сб: с 10-00 до 18-00 Вс: выходной
Страницы: 1
RSS
Защита Rogue DHCP? Запутался, как это реализовать, когда задействованы ретрансляторы., UniFi Network
 
Итак, у меня есть два DHCP-сервера. Они находятся в VLAN 10 (192.168.10.10 и 192.168.10.11). EdgeRouter выполняет функцию DHCP relay на 6 VLAN (20, 30, 40, 50, 60, 70). Когда я настраиваю DHCP Guarding в UniFi, каких DHCP «серверов» мне нужно включить в список доверенных? Должен ли я указать только реле (то есть IP-адрес EdgeRouter), или также нужно добавить реальные IP двух DHCP-серверов? Какое здесь ожидаемое поведение? Если я не включаю IP реле, UniFi помечает его как сторонний (rogue) DHCP-сервер.
 
После долгих экспериментов мне наконец-то удалось запустить guarding и relay на всех моих VLANах. Хотя я сам не могу это объяснить. Зашёл в CLI, отключил relay на серверном интерфейсе, перезагрузил, включил его обратно, затем снова включил guarding с теми же настройками (2 сервера + relay IP), и всё стало работать.
 
Я пытался включить защиту в локальной сети сервера с двумя DHCP-серверами и IP 192.168.1.1 — результат тот же. Несмотря на то, что ретрансляция для этого VLAN отключена, всё равно ругается на 192.168.10.1 как на "нелегитимный сервер". Даже с отключённой ретрансляцией. Очень странно. Трафика с 10.1 там вообще не должно быть.
 
Я буквально уже почти два года задаю этот вопрос, и никто не может дать внятного ответа. Похоже, что для каждой VLAN нужно настроить DHCP guarding, указав «настоящие» IP-адреса DHCP-серверов и реле в ЭТОЙ VLAN. Причина в том, что не весь DHCP-трафик — это широковещательный трафик. Часть из него — это уникаст. Например, обновления DHCP. В таких случаях IP клиента известен, и DHCP-сервер может отправить маршрутизируемый уникаст UDP-пакет напрямую этим клиентам в разных подсетях, не привлекая DHCP-реле вообще. Если «настоящие» IP DHCP-серверов явно не заданы, это вызовет предупреждение DHCP guarding.

Так что если твои DHCP-серверы — 192.168.10.10/24 и 192.168.10.11/24, их нужно указать для ВСЕХ VLAN. Кроме того, для каждой VLAN нужно также указать Relay IP для ЭТОЙ VLAN.

Если это правда, то UniFi довольно сильно ограничен по количеству поддерживаемых DHCP-серверов и реле.

Немного поразмышляю... Может я и ошибаюсь: как тест можно попробовать заблокировать UDP-трафик на портах 67 и 68 на файрволе. Это должно заставить реле быть ЕДИНСТВЕННЫМ способом для клиентов связываться с DHCP-серверами. Тогда в DHCP guarding нужно будет указывать только DHCP-реле.
 
Все верно. Все устройства Unifi управляются одним и тем же контроллером. Контроллер находится в сети 192.168.1. Я попробую эту конфигурацию и посмотрю, что получится. Скорее всего, это будет не раньше вечера. Ещё раз спасибо за помощь.
 
Думаю, я могу путать вашу сетевую конфигурацию с конфигурацией автора темы. Пожалуйста, проверьте, правильно ли я понял вашу схему:  
VLAN 10, 192.168.10.0/24, шлюз 192.168.10.1  
VLAN 20, 192.168.20.0/24, шлюз 192.168.20.1  
DHCP-серверы: 192.168.10.2 и 192.168.10.3.  
DHCP Relay включен на 192.168.20.1 и ретранслирует на 192.168.10.2 (или .3)  
DHCP Guard включён на коммутаторе для VLAN 10 и 20  
На VLAN 20 всё работает нормально с DHCP Guard  
На VLAN 10 с DHCP Guard не работает  
В использовании только коммутаторы Unifi, все настроены одним контроллером.  
Это верно?  
Если да, то в вашем контроллере Unifi, какой сетевой адрес главной сети? Это должен быть неразмеченный (untagged) сеть. Это 192.168.1.1?  
Если да, отключите DHCP Relay в сети 10. Включите DHCP Guard для сети 10 со следующими DHCP-серверами (хотя это и кажется странным, попробуйте):  
192.168.10.2, 192.168.10.3, 192.168.1.1
 
У меня не включён relay на серверной VLAN 10. Если включить защиту и добавить 192.168.10.1, DHCP ломается, и USG жалуется на DHCP-серверы 10.2 и 10.3. Если добавить все три IP-адреса, DHCP опять ломается, но жалоб нет. Я пробовал включить relay для 10 (хотя это кажется ненужным), и в этом случае всё работает без включения защиты. Включение DHCP guarding в такой конфигурации даёт те же результаты, что и полный запрет DHCP для VLAN 10.
 
Активирована ли ретрансляция DHCP для вашей сети 10? Вы подождали несколько минут после повторного конфигурирования коммутатора, чтобы проверить это? (Я видел, как контроллер иногда ждет пару минут перед началом конфигурирования.) Похоже, что просто добавив 192.168.10.1 в список DHCP-серверов в настройках DHCP guard, вы решите свою проблему. Пусть ошибки «зловредного» DHCP вас направляют. Когда вы сделаете это и всё заработает, было бы интересно сделать захват пакетов (wireshark и т. п.) в этой сети, чтобы понять, почему это вообще нужно. Если на сети 10 включена ретрансляция DHCP, это может вызывать проблему. Или же коммутатор с DHCP guard неправильно интерпретирует пакеты ретрансляции DHCP, где ретранслятор общается с настоящим DHCP-сервером.
 
Спасибо за информацию. Я всё равно не смог заставить это нормально работать. Вот моя очень простая настройка. В этой конфигурации все серверы находятся на виртуальных машинах, которые расположены в управляющей сети с отключенным DHCP.  
VLAN 1 — управляющая сеть с хостами ESX (192.168.1.10, 192.168.1.11) — DHCP выключен, сервер и ретрансляция отключены.  
VLAN 10 — DHCP серверы 192.168.10.2, 192.168.10.3 — сервер и ретрансляция отключены, защитник включён только для этих двух IP-адресов.  
VLAN 20 — клиентская сеть — ретрансляция включена, защитник включён для 192.168.10.2, 192.168.10.3, 192.168.20.1.  

В этой ситуации VLAN 20 работает с включённым ретранслятором и защитником. Но VLAN 10 не работает, если защитник включён. Как только я его отключаю, IP-адрес удаётся получить. Возможно, я что-то упускаю в этой настройке? Важно ли, что DHCP-серверы виртуальные?  

Когда защитник включён для VLAN 10, у меня появляются ошибки о постороннем DHCP-сервере на 192.168.10.1, что звучит довольно странно.
 
У меня всё работает в домашней сети (использую роутер USG-Pro4). Мой DHCP-сервер (Windows Server) находится в VLAN 3, IP 192.168.3.100. У меня несколько VLAN (1 — для управления, 2, 3, 4, 5). На USG включён DHCP relay на всех VLAN, кроме 3. В списке доверенных DHCP-серверов я указываю реальный IP DHCP-сервера (192.168.3.100) для всех сетей, а для каждой сети на VLAN, который не 3, добавляю IP роутера в этой VLAN.

Например, VLAN 4 использует сеть 192.168.4.0/24 и имеет два DHCP-сервера: 192.168.3.100 (реальный DHCP-сервер) и 192.168.4.1 (IP DHCP relay, видимый для устройств в VLAN 4).

В примере из сообщения автора я бы сделал так:
10: 192.168.10.10, 192.168.10.11  
20: 192.168.10.10, 192.168.10.11, 192.168.20.130  
30: 192.168.10.10, 192.168.10.11, 192.168.30.140  
40: 192.168.10.10, 192.168.10.11, 192.168.40.150  
50: 192.168.10.10, 192.168.10.11, 192.168.50.160  
60: 192.168.10.10, 192.168.10.11, 192.168.60.170  
70: 192.168.10.10, 192.168.10.11, 192.168.70.1  

Скорее всего, для VLAN, отличных от 10, не нужно указывать «настоящие» DHCP-серверы, так как с точки зрения коммутатора (который выполняет функцию DHCP guard) DHCP-пакеты не приходят с того IP. Я просто настроил, как в своём примере, и потом не парился менять—поэтому не уверен, будет ли работать по-другому. Конечно, это ещё зависит от того, как настроен DHCP relay и как он «оборачивает» DHCP-пакеты. На моём USG оставил всё по умолчанию.

После такой настройки обычно появляются 1–2 предупреждения в логах, пока provisioning не вступит в силу.
 
Сегодня столкнулся с той же проблемой. Релей работает нормально, пока не включаю функцию guarding. Тогда клиенты не могут получить IP-адрес. Я пробовал добавить свои два DHCP-сервера и IP-адрес USG в три предусмотренных поля. Всё равно без результата. DHCP работает только если полностью отключить guarding.
 
Поднимаю свой пост, потому что всё ещё ищу ответ.
 
Мне тоже интересен ответ на это.
Страницы: 1
Читают тему (гостей: 1)