Задать параметры поставщика (код 125) в ISC DHCPd 4.3 не удается

0

Я пытаюсь настроить свой сервер Ubuntu 16.04 LTS Xenial для запуска DHCP-сервера, который предоставляет необходимую информацию для очень конкретного устройства.

Это устройство представляет собой ТВ-декодер от Orange ISP (французским поставщиком является Sagem), и оно работает только в том случае, если IP-адрес назначен Livebox 3 Orange (TM) (того же поставщика). Это ограничение позволяет избежать использования DHCP-сервера, отличного от предоставляемого Orange.

Если я хочу использовать свой собственный DHCP-сервер, работающий в Ubuntu 16.04, чтобы избежать работы на Livebox (это дерьмо), мне нужно адаптировать свою конфигурацию.

Протокол начальной загрузки (ACK) с использованием TV Decoder и DHCP, оба из Sagem

Message type: Boot Reply (2)
Hardware type: Ethernet (0x01)
Hardware address length: 6
Hops: 0
Transaction ID: 0x35139a37
Seconds elapsed: 0
Bootp flags: 0x8000, Broadcast flag (Broadcast)
Client IP address: 0.0.0.0
Your (client) IP address: 192.168.1.153
Next server IP address: 192.168.1.1
Relay agent IP address: 0.0.0.0
Client MAC address: Sagemcom_37:a1:9a (f0:82:61:37:a1:9a)
Client hardware address padding: 00000000000000000000
Server host name not given
Boot file name not given
Magic cookie: DHCP
Option: (53) DHCP Message Type (ACK)
    Length: 1
    DHCP: ACK (5)
Option: (54) DHCP Server Identifier
    Length: 4
    DHCP Server Identifier: 192.168.1.1
Option: (51) IP Address Lease Time
    Length: 4
    IP Address Lease Time: (843s) 14 minutes, 3 seconds
Option: (58) Renewal Time Value
    Length: 4
    Renewal Time Value: (421s) 7 minutes, 1 second
Option: (59) Rebinding Time Value
    Length: 4
    Rebinding Time Value: (737s) 12 minutes, 17 seconds
Option: (1) Subnet Mask
    Length: 4
    Subnet Mask: 255.255.255.0
Option: (6) Domain Name Server
    Length: 4
    Domain Name Server: 192.168.1.1
Option: (15) Domain Name
    Length: 4
    Domain Name: home
Option: (28) Broadcast Address
    Length: 4
    Broadcast Address: 192.168.1.255
Option: (3) Router
    Length: 4
    Router: 192.168.1.1
Option: (125) V-I Vendor-specific Information
    Length: 41
    Enterprise: The Broadband Forum (formerly 'ADSL Forum') (3561)
        Length: 36
        Option 125 Suboption: (4) GatewayManufacturerOUI
            Length: 6
            GatewayManufacturerOUI: 307CB2
        Option 125 Suboption: (5) GatewaySerialNumber
            Length: 15
            GatewaySerialNumber: AN16XXXXXXXXXX
        Option 125 Suboption: (6) GatewayProductClass
            Length: 9
            GatewayProductClass: Livebox 3
Option: (255) End
    Option End: 255

Чтобы эмулировать то же поведение с моего собственного ISC DHCP-сервера в Убунти, я настроил его, основываясь на найденной документации и опциях.

По сути, дело в том, чтобы отправлять только на декодер телевизора следующие дополнительные коды:

  • Код 15: Доменное имя
  • Код 72: сервер World Wide Web по умолчанию.
  • Код 125: Информация о поставщике VI

На основе документации ISC DHCP-сервера существуют три кода, которые можно легко отправить, добавив удобные параметры:

  • текст доменного имени
  • IP-адрес www-сервера
  • строка с параметрами поставщика

Во-первых, я попробовал так:

/etc/dhcp/dhcpd.conf

# Create an option namespace called orangetv
option space orangetv code width 1 length width 1;
option orangetv.GatewayManufacturerOUI code 4 = text;
option orangetv.GatewaySerialNumber code 5 = text;
option orangetv.GatewayProductclass code 6 = text;

# Linux Router
subnet 192.168.1.0 netmask 255.255.255.0 {
    option domain-name-servers 192.168.1.1;
    option broadcast-address 192.168.1.255;
    option subnet-mask 255.255.255.0;
    option routers 192.168.1.5;
    range 192.168.1.100 192.168.1.199;    
    class "sagem-vendor-classes" {
    match if substring(option vendor-class-identifier, 0, 5) = "sagem";        
    option domain-name "home";        
    option www-server 193.253.67.89;
    vendor-options-space orangetv;
    option orangetv.GatewayManufacturerOUI "307CB2";
    option orangetv.GatewaySerialNumber "AN16XXXXXXXXXXX";
    option orangetv.GatewayProductclass "Livebox 3";                       
    }

}

После сохранения новой конфигурации я проверил синтаксис конфигурации, выполнив: sudo dhcpd -t -cf /etc/dhcp/dhcpd.conf

Затем я перезапустил сервер DHCP, чтобы перезагрузить новую конфигурацию (ISC DHCP 4.3 иногда не удается перезапустить и перезагрузить новую конфигурацию. Это как-то связано с сервером Apache2. Поэтому я предлагаю форсировать его):

sudo -i
service dhcp restart
service isc-dhcp-server restart
service isc-dhcp-server6 restart
service apache2 restart

Теперь я перезагрузил телевизор Decoded и снова проследил сеть с помощью Wireshark. Результат Bootstrap ACK был

Message type: Boot Reply (2)
Hardware type: Ethernet (0x01)
Hardware address length: 6
Hops: 0
Transaction ID: 0x70907f18
Seconds elapsed: 0
Bootp flags: 0x8000, Broadcast flag (Broadcast)
Client IP address: 0.0.0.0
Your (client) IP address: 192.168.1.153
Next server IP address: 192.168.1.5
Relay agent IP address: 0.0.0.0
Client MAC address: Sagemcom_37:a1:9a (f0:82:61:37:a1:9a)
Client hardware address padding: 00000000000000000000
Server host name not given
Boot file name not given
Magic cookie: DHCP
Option: (53) DHCP Message Type (ACK)
    Length: 1
    DHCP: ACK (5)
Option: (54) DHCP Server Identifier
    Length: 4
    DHCP Server Identifier: 192.168.1.5
Option: (51) IP Address Lease Time
    Length: 4
    IP Address Lease Time: (843s) 14 minutes, 3 seconds
Option: (1) Subnet Mask
    Length: 4
    Subnet Mask: 255.255.255.0
Option: (3) Router
    Length: 4
    Router: 192.168.1.5
Option: (6) Domain Name Server
    Length: 4
    Domain Name Server: 192.168.1.1
Option: (15) Domain Name
    Length: 4
    Domain Name: home
Option: (28) Broadcast Address
    Length: 4
    Broadcast Address: 192.168.1.255
Option: (72) Default WWW Server
    Length: 4
    Default WWW Server: 193.253.67.89
Option: (255) End
    Option End: 255
Padding: 0000000000000000

Как вы заметили, опции 15 и 72 были правильно проанализированы, так как опция 125 отсутствует. Итак, я попытался использовать инкапсулированные параметры поставщика, как рекомендовано в руководстве. Я использовал

option vendor-encapsulated-options 7d:29:00:00:0d:XXXXXXXX:20:33

вместо метода vendor-options-space, но снова не удалось.

Я использовал другой обходной путь для отправки кода 125, как описано в [ https://lists.isc.org/pipermail/dhcp-users/2012-July/015793.html][1]

/etc/dhcp/dhcpd.conf

# Create an option namespace called orangetv
option space orangetv code width 1 length width 1;
option orangetv.GatewayManufacturerOUI code 4 = text;
option orangetv.GatewaySerialNumber code 5 = text;
option orangetv.GatewayProductclass code 6 = text;

# Package the orangetv namespace into option 125
option space vivso code width 4 length width 1;
option vivso.orangetv code 3561 = encapsulate orangetv;
option vivso.iana code 0 = string;
option op125 code 125 = encapsulate vivso;

# Linux Router
subnet 192.168.1.0 netmask 255.255.255.0 {
    option domain-name-servers 192.168.1.1;
    option broadcast-address 192.168.1.255;
    option subnet-mask 255.255.255.0;
    option routers 192.168.1.5;
    range 192.168.1.100 192.168.1.199;    
    class "sagem-vendor-classes" {
    match if substring(option vendor-class-identifier, 0, 5) = "sagem";        
    option domain-name "home";        
    option www-server 193.253.67.89;
    option vivso.iana 01:01:01;
    option orangetv.GatewayManufacturerOUI "307CB2";
    option orangetv.GatewaySerialNumber "AN16XXXXXXXXXXX";
    option orangetv.GatewayProductclass "Livebox 3";                       
    }

}

Несмотря на эти конфигурации, DHCP-сервер не отправляет код 125, выигрывает специфика поставщика.

Любое другое предложение?

Jaime
источник

Ответы:

0

попробуй это

option op125 code 125 = string;

затем вставьте op125 в блок подсети как:

option op125 7d:29:00:00:0d:XXXXXXXX:20:33;

vendor-encapsulated-optionsОпция 43

Bigfei
источник