Настройка опций DHCP
В KeeneticOS имеется возможность настройки опций DHCP. Эта настройка доступна только через интерфейс командной строки (CLI) роутера и позволяет настроить следующие опции:
2 (Time Offset),
4 (Time Server),
26 (MTU),
42 (NTP Servers),
43 (Vendor Specific Information),
44 (NetBIOS Servers),
60/66 (TFTP Server Name),
67 (Bootfile-Name),
72 (World Wide Web Server),
121 (Classless Static Routes),
249 (MS Routes).
Настройка для всего DHCP-сервера:
(config)> ip dhcp pool {name} option
Usage template:
option ({2..254} hex {data}) | ({2..254} ascii {data}) | (4 {address[,address]*}) | (6 {address[,address]*}) | (42 {address[,address]*}) | (44 {address[,address]*}) | (26 {mtu}) | (121 {address/{0..32},gateway},*) | (249 {address/{0..32},gateway},*)
Настройка для конкретного class id:
(config)>ip dhcp pool _WEBADMIN class test
(config-dhcp-pool-class)>option
Usage template: option ({2..254} hex {data}) | ({2..254} ascii {data}) | (4 {address[,address]*}) | (6 {address[,address]*}) | (42 {address[,address]*}) | (44 {address[,address]*}) | (26 {mtu}) | (121 {address/{0..32},gateway},*) | (249 {address/{0..32},gateway},*)
Рассмотрим работу DHCP-опций на примере option 121 (раздача статических маршрутов по DHCP). Для этого настроим раздачу маршрутов на подсети 192.168.0.0/24
и 192.168.10.0/24
через шлюз 192.168.222.2
для всех DHCP-клиентов и на подсети 192.168.1.0/24
и 192.168.11.0/24
через шлюз 192.168.222.3
для DHCP-клиентов с class id test.
Настройка будет выглядеть следующим образом:
(config)>ip dhcp pool _WEBADMIN_HOME option 121 ascii 192.168.0.0/24,192.168.222.2,192.168.10.0/24,192.168.222.2
(config)>ip dhcp class test
(config-dhcp-class)>option 60 ascii "MSFT 5.0"
(config-dhcp-class)>exit
(config)>ip dhcp pool _WEBADMIN_HOME class test
(config-dhcp-pool-class)>option 121 ascii 192.168.1.0/24,192.168.222.3,192.168.11.0/24,192.168.222.3
(config-dhcp-pool-class)>exit
(config)>system configuration save
Теперь можно подключить клиента, у которого не указан class id и посмотреть, получит ли он указанные маршруты. После получения IP-адреса выполните в командной строке операционной системы Windows команду route print:

Также в дампе сетевых пакетов при общении DHCP-клиента и DCHP-сервера видно, что сервер передает эту информацию в поле option:

Далее зададим клиенту class id и посмотрим, что получит он. Для Windows class id задается с помощью утилиты ipconfig:
ipconfig /setclassid "wlan" test
где wlan — это имя сетевого подключения.

Значение текущего class id клиента DHCP хранится в реестре Windows в открытом виде и расположено по следующему пути: Computer\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters\Interfaces
для каждого из интерфейсов. Искомый параметр имеет название DhcpClassId
и тип REG_SZ
.

После получения IP-адреса выполните в командной строке операционной системы Windows команду route print
:

Также в дампе сетевых пакетов при общении DHCP-клиента и DCHP-сервера видно, что сервер передает эту информацию в поле option:

Удалить класс можно командой:
(config)> no ip dhcp class test
Вместе с ним удалятся и все опции для этого класса в настройках всех DHCP-серверов.
Конкретную опцию в классе можно удалить:
(config)>ip dhcp pool _WEBADMIN_HOME class test
(config-dhcp-pool-class)>no option 121 ascii 192.168.1.0/24,192.168.222.3,192.168.11.0/24,192.168.222.3
Все опции для конкретного класса в рамках одного DHCP-сервера можно удалить:
(config)> ip dhcp pool _WEBADMIN_HOME no class test
Общую опцию (не для класса) можно удалить:
ip dhcp pool _WEBADMIN_HOME no option 121 ascii 192.168.0.0/24,192.168.222.2,192.168.10.0/24,192.168.222.2
Дополнительная информация по настройке DHCP-опции 15 (DNS Domain Name) представлена в статье Настройка DHCP Option 15.