Бывают ситуации, когда DHCP сервер по каким то причинам нельзя или некорректно размещать в том же broadcast домене, что и DHCP клиенты. В таких случаях приходится прибегать к DHCP relay. Т.е. на пути от DHCP клиента до DHCP сервера появляется еще, так называемый, DHCP ретранслятор. Это L3 хост, который перебрасывает запросы от клиента к серверу.
Я, как всегда, покажу на примере:
В данном случае клиентские устройства находятся в одном L2 сегменте c FW-2, а DHCP серверы находятся в другой точке планеты, так драмматичней, за другим фаерволом (FW-1) между ними построен VPN тоннель.
На FW-1 в сторону клиентов смотрит интерфейс vlan.10 на нем настроен IP 192.168.0.1:
vlan { unit 10 { description users_LAN; family inet { address 192.168.0.1/24; } } }
С этого адреса и будут прилетать запросы на DHCP сервер.
Итак, переходим к настройке DHCP relay:
- Для начала можно указать description (действие, как вы понимаете, не обязательное)
admin@FW-2# set forwarding-options helpers bootp description "Global DHCP relay service"
- Указываем адреса DHCP серверов, к которым будем обращаться, в нашем случае их два: 10.0.0.6 и 10.0.0.7:
admin@FW-2# set forwarding-options helpers bootp server 10.0.0.6 admin@FW-2# set forwarding-options helpers bootp server 10.0.0.7
- Указываем максимальное количество «прыжков» до DHCP сервера:
admin@FW-2# set forwarding-options helpers bootp maximum-hop-count 4
- Указываем, что на пути до сервера есть VPN туннель:
admin@FW-2# set forwarding-options helpers bootp vpn
- Указываем интерфейс на котором SRX будет слушать DHCP запросы, в нашем случае это интерфейс vlan unit 10
admin@FW-2# set forwarding-options helpers bootp interface vlan.10
соответственно, если бы это был какой то физический интерфейс так бы и указали, например ge-0/0/7.0
- Теперь нужно сказать устройству, что можно пропускать такой вид трафика на туннельном интерфейсе и интерфейсе в сторону пользователей, для понимания ниже приведу схему с обозначением интерфейсов:
туннельный интерфейс st0.0 интерфейс в сторону клиентской сети vlan.10, таким образом конфигурация следующая:admin@FW-2# set security zones security-zone trust interfaces vlan.10 host-inbound-traffic system-services dhcp
admin@FW-2# set security zones security-zone vpn interfaces st0.0 host-inbound-traffic system-services dhcp
- И наконец нужно убедиться, что есть политики безопасности из зоны trust в зону vpn и обратно для прохождения трафика между пользовательской сетью 192.168.0.0/24 и DHCP серверами. Если таковых нет, то добавляем и, после применения конфигурации (commit), проверяем работоспособность.
Можно рассмотреть более сложную ситуацию когда клиентов из одной сети нужно отправлять на один DHCP сервер а из другой сети на другой. Допустим сеть которую мы назвали clients продолжает ходить на DHCP сервер на другом конце планеты. А у нас появилась новая сеть, которая получила название VIPclients и в ней адреса должны раздаваться другим DHCP сервером, который стоит в соседнем здании:
В этом случае, нам нужно конкретизировать, что с этого интерфейса мы отправляем запросы на сервер DHCP-3 а все остальное на DHCP-1 и DHCP-2. Нам нужно прописать это в той же ветке конфигурации, но в контексте интерфейсов, вот так:
admin@FW-2# set forwarding-options helpers bootp interface ge-0/0/3.0 description VIPclients admin@FW-2# set forwarding-options helpers bootp interface ge-0/0/3.0 server 172.16.1.5
Соответственно если есть необходимость можно тюнить настройки DHCP relay не глобально а только для этого интерфейса увеличивать TTL включать vpn и т.д. Эти настройки будут работать только для конкретного интерфейса.
Для просмотра итоговой конфигурации выполним команду show forwarding-options:
helpers { bootp { description "Global DHCP relay service"; server 10.0.0.6; server 10.0.0.7; maximum-hop-count 4; vpn; interface { vlan.10; ge-0/0/3.0 { description VIPclients; server 172.16.1.5; } } } }
Если требуется так же нужно соответствующим образом настроить security policies и интерфейсы аналогично пункту 6 данной инструкции.
Не забываем commit и проверяем работоспособность.
Для просмотра статистики работы DHCP relay можно воспользоваться командой show system services dhcp relay-statistics из операционного режима (>) или подставить в начале команды «run» из конфигурационного режима (#).