Как я могу настроить свой DHCP-сервер для распределения IP-маршрутов?
У меня есть сервер DHCP (Linux, IPCop, dnsmasq), работающий на моем сервере шлюза по умолчанию 192.168.0.1. У меня есть конечная точка VPN на другом сервере в сети (192.168.0.4). Можно ли настроить DHCP-сервер таким образом, чтобы он отправлял не только шлюз по умолчанию, но и информацию о маршрутизации для VPN (192.168.1.*) DHCP-клиентам, когда они запрашивают IP-адрес? Клиенты DHCP работают под управлением Windows и Linux.
Я пытался найти что-то в официальной документации ( http://www.ipcop.org/2.0.0/en/admin/html/custom-dnsmasq-local.html), но не смог. Существование RFC3442 указывает на то, что это может быть как-то возможно.
2 ответа
Это можно сделать, добавив следующие строки в dhcpd.conf
:
option rfc3442-classless-static-routes code 121 = array of integer 8;
option rfc3442-classless-static-routes 24, 192, 168, 1, 192, 168, 0, 4;
option ms-classless-static-routes code 249 = array of integer 8;
option ms-classless-static-routes 24, 192, 168, 1, 192, 168, 0, 4;
Это распределяет запись маршрута для сети 192.168.1.0/24 с использованием шлюза 192.168.0.4.
Значение байтов (в скобках значение из приведенного выше примера):
WW, D1, D2, D3, R1, R2, R3, R4
WW = destination network mask width (24)
D1..D3 = destination network address (192.168.1.*)
R1..R4 = router address (192.168.0.4)
Примечание: количество D1..DN
байты варьируются в зависимости от маски сети. См. RFC3442 для деталей.
Синтаксис опции RFC 3442 немного необычен. Это представление ответа Блеронтина в более графической форме, которую некоторым может быть легче понять.
option rfc3442-classless-static-routes code 121 = array of integer 8;
option ms-classless-static-routes code 249 = array of integer 8;
# Route to 192.168.1.0/24 through 192.168.0.4;
# ┌───────────────┘
# | | | |
option rfc3442-classless-static-routes 24, 192,168,1, 192,168,0,4;
option ms-classless-static-routes 24, 192,168,1, 192,168,0,4;