Настройка опций 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)>optionUsage 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.