Я пытаюсь настроить свой сервер Ubuntu 16.04 Гостеприимных LTS для выполнения Сервера DHCP, который предоставляет запрошенную информацию очень определенному устройству.
То устройство является телевизионным Декодером Оранжевым ISP (французским поставщиком является Sagem), и это только работает, если IP-адрес присвоен Livebox 3 Orange(TM) (тот же поставщик). Это ограничение избегает к другого сервера DHCP, чем обеспеченный Оранжевым также.
Если я хочу использовать свой собственный сервер DHCP, работающий в Ubuntu 16.04 для предотвращения той, работающей в Livebox (это дрянно), я должен адаптировать свою конфигурацию.
Протокол начальной загрузки (ACK) с помощью телевизионного Декодера и 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 в Ubunti, я настроил его, на основе найденной документации и опций.
Basicly, точка должна отправить только на телевизионный декодер следующие дополнительные коды:
На основе документации сервера DHCP ISC существуют три кода, и они могли быть легко отправлены путем добавления удобных опций:
Во-первых, я попробовал тот путь:
/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
Теперь, я перезагрузил Декодируемое ТВ и проследил сеть с Wireshark снова. Результат Начальной загрузки 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
вместо метода пространства опций поставщика, но это перестало работать снова.
Я использовал другое обходное решение для отправки кода 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";
}
}
Несмотря на thess конфигурации, сервер DHCP не отправляет, код 125 выигрывают специфические особенности поставщика.
Какое-либо другое предложение?
попробуйте это
option op125 code 125 = string;
затем вставьте op125 в блок подсети как:
option op125 7d:29:00:00:0d:XXXXXXXX:20:33;
vendor-encapsulated-options
опция 43