Протокол DHCP является широковещательным (FAQ по протоколу DHCP) и по умолчанию его пакеты не пересылаются маршрутизаторами из одной сети в другую (маршрутизатор разбивает на части широковещательный домен). Однако это не означает, что в каждой подсети должен находиться отдельный DHCP сервер. Ведь, согласитесь, было бы нелогично в сложных и распределенных сетях со множеством подсетей размещать в каждой подсети с клиентами отдельный DHCP сервер (это неудобно с точки зрения управления и лишнего количества администрируемых единиц оборудования). Гораздо более изящнее и удобнее было бы иметь в сети один DHCP сервер, который будет можно централизованно администрировать, и кроме того, обеспечить его высокую доступность за счет кластеризации.
Что такое DHCP relay и зачем он нужен?
Выходом из подобной ситуации является размещение в сети агента-ретранслятора DHCP (relay agent). Relay agent представляет собой некое промежуточное устройство, которое может пересылать широковещательные DHCP-запросы между клиентом и сервером DHCP, находящихся в различных широковещательных доменах. Т.е. DHCP relay agent получает от клиента (в этом же сегменте сети) широковещательный пакет на поиск и получение DHCP-адреса и пересылает этот запрос определенному DHCP серверу (указывается в настройках ретранслятора). Далее ответы от DHCP-сервера будут направлены ретранслятору, который передаст их конечному хосту. Технология DHCP Relay Agent определена в стандарте RFC 1542 («Clarifications and Extensions for the Bootstrap Protocol.»).
В качестве DHCP Relay Agent обычно используют маршрутизаторы (большинство современных маршрутизаторов совместимы с RFC 1542 и могут работать в качестве Relay агента). В том случае, если настроить Relay на маршрутизаторе по каким-либо причинам невозможно, в качестве Relay агента можно настроить компьютер с серверной ОС Windows. Попробуем настроить DHCP Relay Agent на Windows Server 2012.
Настройка DHCP Relay на Windows Server 2012
Несколько требований, которые необходимо учитывать при настройке агентов DHCP relay на базе Windows Server:
- Отдельный агент-ретранслятор DHCP необходимо размещать в каждой IP подсети.
- На центральном DHCP сервер нужно создать отдельную DHCP область (Scope) для каждой из обслуживаемых подсетей.
- DHCP relay agent нельзя установить на сервере Windows Server с ролью DHCP, ICS (Internet connection sharing) или c включенной в автоматическом режиме трансляции адресов NAT (Network Address Translation)
DCHP Relay Agent является одной из функций службы Routing and Remote Access (RRAS). Поэтому предварительно необходимо установите роль RRAS (с дефолтными настройками), после чего запустить MMC оснастку Routing and Remote Access.
В оснастке RRAS разверните ветку IPv4, щелкните правой кнопкой мыши по элементу General и в контекстном меню выберите пункт New Routing Protocol, выберите DHCP Relay Agent и нажмите ОК.
Щёлкните ПКМ по элементу DHCP Relay Agent и выберите пункт New Interface, укажите сетевой интерфейс, на котором будет слушать Relay –агент.
Затем откройте окно свойств DHCP Relay Agent и укажите ip адрес DHCP сервера, на который нужно перенаправлять все DHCP запросы от клиентов.
На этом настройка DHCP-ретранслятора закончена и можно переходить к тестированию его работы.
Добрый день.
Т.е. получается, что нужно 2 NIC для сервера-ретранслятора? Одну в «listened» подсеть, а вторую в подсеть с DHCP-сервером? Или он всё-таки может как-то передавать DHCP-пакеты Unicast’om до действующего DHCP-сервера?
Доброго дня!
Не совсем так. Серверу ретранслятор достаточно иметь одну NIC, которая находится в одной подсети с dhcp клиентами. Второй интерфейс ему в обычной конфигурации не нужен. Служба DHCP relay перенаправляет запрос DHCPDiscover на unicas-ный адрес DHCP сервера в другой подсети.
А зачем это на винде поднимать если общепризнаной практикой это делают на сетевом оборудовании, у cisco это называется ip helper, у HP вроде так и называется DHCP relay. Просто тут не совсем понятен посыл, т.к. узкое место является сервер, который не задублированный, а сетевое оборудование обычно дублируется.
Ну насчет дублирования сетевого оборудования вы перегнули — это наверно только у провайдеров и в ЦОДах реализуется.
Безусловно, как стандарт DHCP relay (helper) реализуется на сетевой железке.
Все зависит от конкретной специфики и размера решения. Я на своей практике даже встречал машрутизаторы, сделанные из сервера под Windows Server с двумя сетевыми картами.
«DHCP relay agent нельзя установить на сервере Windows Server с ролью DHCP, ICS (Internet connection sharing) или c включенной в автоматическом режиме трансляции адресов NAT (Network Address Translation)» — а где лучше его установить?
Relay на Windows Server не самое лучшее решение с точки зрения расходования ресурсов. Обычно это включается на маршрутизаторах.