Ошибка разбора DHCP Option 43: исправление Vendor-Specific Information
- Точки доступа Wi-Fi (Cisco Aironet/Catalyst, Aruba AP, Huawei) получают IP по DHCP, но не могут обнаружить WLC-контроллер.
- В консоли AP появляется ошибка
Option 43 parse failed: invalid sub-option lengthилиController IP discovery timeout. - IP-телефоны (Avaya, Polycom, Cisco) не получают адрес Provisioning-сервера.
- В сетевом дампе Wireshark видно, что Option 43 передается строкой вместо массива шестнадцатеричных байт (Type-Length-Value).
1. Анализ проблемы формата Option 43
DHCP Option 43 передает вендор-специфичные параметры в бинарной структуре TLV (Type-Length-Value). Большинство сетевых устройств требуют шестнадцатеричного (HEX) представления IP-адресов контроллеров, а не ASCII-строк.
2. Корректное преобразование IP-адресов в HEX (Cisco WLC)
Для контроллеров Cisco Aironet структура Option 43: Sub-option Type = f1, Length = 04 (для 1 IP) или 08 (для 2 IP), Value = шестнадцатеричные октеты IP.
Пример для WLC с IP 192.168.10.5 и 192.168.10.6:
- Type:
f1 - Length:
08(2 IP по 4 байта = 8 байт) - IP 1 (192.168.10.5):
c0.a8.0a.05 - IP 2 (192.168.10.6):
c0.a8.0a.06 - Итоговая HEX-строка:
f108c0a80a05c0a80a06
3. Конфигурация DHCP-сервера на Cisco IOS
ip dhcp pool AP_POOL
network 192.168.100.0 255.255.255.0
default-router 192.168.100.1
dns-server 192.168.1.10
option 43 hex f108.c0a8.0a05.c0a8.0a064. Конфигурация в ISC-DHCP-Server / Kea
# /etc/dhcp/dhcpd.conf
class "Cisco-AP" {
match if option vendor-class-identifier = "Cisco AP c3800";
option space Cisco_LWAPP_AP;
option Cisco_LWAPP_AP.server-address code 241 = array of ip-address;
vendor-option-space Cisco_LWAPP_AP;
option Cisco_LWAPP_AP.server-address 192.168.10.5, 192.168.10.6;
}5. Проверка захвата пакетов на DHCP Relay / сервере
tcpdump -envvi eth0 port 67 or port 68 -X Частые вопросы (FAQ)
Почему точка доступа игнорирует Option 43 в текстовом формате ASCII?
Большинство вендоров реализуют парсер опции 43 в соответствии со спецификацией RFC 2132 как упакованные бинарные TLV-субопции. Текстовая строка '192.168.1.1' воспринимается как некорректный суб-код Type 0x31 и отбрасывается.
Что означает префикс f1 в начале hex-строки для Cisco AP?
Префикс 0xF1 (десятичное 241) — это суб-код (Sub-option code), стандартизированный Cisco для передачи адресов контроллеров беспроводной сети (WLC Management IP).
Как проверить, какую Option 43 получает клиент, через консоль точки доступа?
На точке доступа Cisco выполните команду 'debug capwap client dhcp' или 'show capwap client config' для отображения спарсенных IP-адресов контроллеров.
Как передать несколько контроллеров WLC в Windows Server DHCP?
В консоли DHCP Windows Server откройте свойства опции 043 в пуле и выберите тип Binary. Введите значение вручную: f1, затем длина (количество IP * 4 в hex, например 08 для двух IP) и байты адресов.