Назад | Перейти на главную страницу

Клиент не получает адрес от какого-то DHCP-сервера

Я работаю над некоторыми встроенными устройствами, которые должны быть подключены к большой сети (сотни устройств) через Ethernet и должны быть настроены с использованием протокола DHCP. Что я испытываю, так это то, что, по-видимому, устройства получают адрес в некоторых сетях, но не в других. Я настраиваю тестовую сеть с одним клиентом, коммутатором и DHCP-сервером (Ubuntu Linux). Адрес назначен правильно, и журналы DHCP-сервера показывают последовательность DORA.

Я попытался подключить того же клиента к обычному домашнему маршрутизатору с DHCP-сервером (это мой домашний маршрутизатор, поэтому он должен работать правильно), но IP-адрес не получен клиентом. Это дамп последовательности для устройства:

No.     Time           Source                Destination           Protocol Length Info
     86 26.515684000   ::                    ff02::16              ICMPv6   90     Multicast Listener Report Message v2

Frame 86: 90 bytes on wire (720 bits), 90 bytes captured (720 bits) on interface 0
Ethernet II, Src: DavicomS_91:de:41 (00:60:6e:91:de:41), Dst: IPv6mcast_00:00:00:16 (33:33:00:00:00:16)
Internet Protocol Version 6, Src: :: (::), Dst: ff02::16 (ff02::16)
Internet Control Message Protocol v6

No.     Time           Source                Destination           Protocol Length Info
     87 26.515688000   ::                    ff02::1:ff91:de41     ICMPv6   78     Neighbor Solicitation for fe80::260:6eff:fe91:de41

Frame 87: 78 bytes on wire (624 bits), 78 bytes captured (624 bits) on interface 0
Ethernet II, Src: DavicomS_91:de:41 (00:60:6e:91:de:41), Dst: IPv6mcast_ff:91:de:41 (33:33:ff:91:de:41)
Internet Protocol Version 6, Src: :: (::), Dst: ff02::1:ff91:de41 (ff02::1:ff91:de41)
Internet Control Message Protocol v6

No.     Time           Source                Destination           Protocol Length Info
     88 26.596056000   0.0.0.0               255.255.255.255       DHCP     371    DHCP Discover - Transaction ID 0xb444e919

Frame 88: 371 bytes on wire (2968 bits), 371 bytes captured (2968 bits) on interface 0
Ethernet II, Src: DavicomS_91:de:41 (00:60:6e:91:de:41), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
Internet Protocol Version 4, Src: 0.0.0.0 (0.0.0.0), Dst: 255.255.255.255 (255.255.255.255)
User Datagram Protocol, Src Port: bootpc (68), Dst Port: bootps (67)
Bootstrap Protocol
    Message type: Boot Request (1)
    Hardware type: Ethernet
    Hardware address length: 6
    Hops: 0
    Transaction ID: 0xb444e919
    Seconds elapsed: 0
    Bootp flags: 0x0000 (Unicast)
    Client IP address: 0.0.0.0 (0.0.0.0)
    Your (client) IP address: 0.0.0.0 (0.0.0.0)
    Next server IP address: 0.0.0.0 (0.0.0.0)
    Relay agent IP address: 0.0.0.0 (0.0.0.0)
    Client MAC address: DavicomS_91:de:41 (00:60:6e:91:de:41)
    Client hardware address padding: 00000000000000000000
    Server host name not given
    Boot file name not given
    Magic cookie: DHCP
    Option: (53) DHCP Message Type
    Option: (57) Maximum DHCP Message Size
    Option: (60) Vendor class identifier
    Option: (12) Host Name
    Option: (55) Parameter Request List
    Option: (255) End

No.     Time           Source                Destination           Protocol Length Info
     94 27.515730000   fe80::260:6eff:fe91:de41 ff02::2               ICMPv6   70     Router Solicitation from 00:60:6e:91:de:41

Frame 94: 70 bytes on wire (560 bits), 70 bytes captured (560 bits) on interface 0
Ethernet II, Src: DavicomS_91:de:41 (00:60:6e:91:de:41), Dst: IPv6mcast_00:00:00:02 (33:33:00:00:00:02)
Internet Protocol Version 6, Src: fe80::260:6eff:fe91:de41 (fe80::260:6eff:fe91:de41), Dst: ff02::2 (ff02::2)
Internet Control Message Protocol v6

No.     Time           Source                Destination           Protocol Length Info
    119 30.427837000   0.0.0.0               255.255.255.255       DHCP     371    DHCP Discover - Transaction ID 0xb444e919

Frame 119: 371 bytes on wire (2968 bits), 371 bytes captured (2968 bits) on interface 0
Ethernet II, Src: DavicomS_91:de:41 (00:60:6e:91:de:41), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
Internet Protocol Version 4, Src: 0.0.0.0 (0.0.0.0), Dst: 255.255.255.255 (255.255.255.255)
User Datagram Protocol, Src Port: bootpc (68), Dst Port: bootps (67)
Bootstrap Protocol
    Message type: Boot Request (1)
    Hardware type: Ethernet
    Hardware address length: 6
    Hops: 0
    Transaction ID: 0xb444e919
    Seconds elapsed: 4
    Bootp flags: 0x0000 (Unicast)
    Client IP address: 0.0.0.0 (0.0.0.0)
    Your (client) IP address: 0.0.0.0 (0.0.0.0)
    Next server IP address: 0.0.0.0 (0.0.0.0)
    Relay agent IP address: 0.0.0.0 (0.0.0.0)
    Client MAC address: DavicomS_91:de:41 (00:60:6e:91:de:41)
    Client hardware address padding: 00000000000000000000
    Server host name not given
    Boot file name not given
    Magic cookie: DHCP
    Option: (53) DHCP Message Type
    Option: (57) Maximum DHCP Message Size
    Option: (60) Vendor class identifier
    Option: (12) Host Name
    Option: (55) Parameter Request List
    Option: (255) End

No.     Time           Source                Destination           Protocol Length Info
    122 30.985580000   fe80::260:6eff:fe91:de41 ff02::16              ICMPv6   90     Multicast Listener Report Message v2

Frame 122: 90 bytes on wire (720 bits), 90 bytes captured (720 bits) on interface 0
Ethernet II, Src: DavicomS_91:de:41 (00:60:6e:91:de:41), Dst: IPv6mcast_00:00:00:16 (33:33:00:00:00:16)
Internet Protocol Version 6, Src: fe80::260:6eff:fe91:de41 (fe80::260:6eff:fe91:de41), Dst: ff02::16 (ff02::16)
Internet Control Message Protocol v6

No.     Time           Source                Destination           Protocol Length Info
    127 31.525478000   fe80::260:6eff:fe91:de41 ff02::2               ICMPv6   70     Router Solicitation from 00:60:6e:91:de:41

Frame 127: 70 bytes on wire (560 bits), 70 bytes captured (560 bits) on interface 0
Ethernet II, Src: DavicomS_91:de:41 (00:60:6e:91:de:41), Dst: IPv6mcast_00:00:00:02 (33:33:00:00:00:02)
Internet Protocol Version 6, Src: fe80::260:6eff:fe91:de41 (fe80::260:6eff:fe91:de41), Dst: ff02::2 (ff02::2)
Internet Control Message Protocol v6

No.     Time           Source                Destination           Protocol Length Info
    138 35.535297000   fe80::260:6eff:fe91:de41 ff02::2               ICMPv6   70     Router Solicitation from 00:60:6e:91:de:41

Frame 138: 70 bytes on wire (560 bits), 70 bytes captured (560 bits) on interface 0
Ethernet II, Src: DavicomS_91:de:41 (00:60:6e:91:de:41), Dst: IPv6mcast_00:00:00:02 (33:33:00:00:00:02)
Internet Protocol Version 6, Src: fe80::260:6eff:fe91:de41 (fe80::260:6eff:fe91:de41), Dst: ff02::2 (ff02::2)
Internet Control Message Protocol v6

No.     Time           Source                Destination           Protocol Length Info
    142 39.405342000   0.0.0.0               255.255.255.255       DHCP     371    DHCP Discover - Transaction ID 0xb444e919

Frame 142: 371 bytes on wire (2968 bits), 371 bytes captured (2968 bits) on interface 0
Ethernet II, Src: DavicomS_91:de:41 (00:60:6e:91:de:41), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
Internet Protocol Version 4, Src: 0.0.0.0 (0.0.0.0), Dst: 255.255.255.255 (255.255.255.255)
User Datagram Protocol, Src Port: bootpc (68), Dst Port: bootps (67)
Bootstrap Protocol
    Message type: Boot Request (1)
    Hardware type: Ethernet
    Hardware address length: 6
    Hops: 0
    Transaction ID: 0xb444e919
    Seconds elapsed: 13
    Bootp flags: 0x0000 (Unicast)
    Client IP address: 0.0.0.0 (0.0.0.0)
    Your (client) IP address: 0.0.0.0 (0.0.0.0)
    Next server IP address: 0.0.0.0 (0.0.0.0)
    Relay agent IP address: 0.0.0.0 (0.0.0.0)
    Client MAC address: DavicomS_91:de:41 (00:60:6e:91:de:41)
    Client hardware address padding: 00000000000000000000
    Server host name not given
    Boot file name not given
    Magic cookie: DHCP
    Option: (53) DHCP Message Type
    Option: (57) Maximum DHCP Message Size
    Option: (60) Vendor class identifier
    Option: (12) Host Name
    Option: (55) Parameter Request List
    Option: (255) End

No.     Time           Source                Destination           Protocol Length Info
    392 55.264802000   0.0.0.0               255.255.255.255       DHCP     371    DHCP Discover - Transaction ID 0xb444e919

Frame 392: 371 bytes on wire (2968 bits), 371 bytes captured (2968 bits) on interface 0
Ethernet II, Src: DavicomS_91:de:41 (00:60:6e:91:de:41), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
Internet Protocol Version 4, Src: 0.0.0.0 (0.0.0.0), Dst: 255.255.255.255 (255.255.255.255)
User Datagram Protocol, Src Port: bootpc (68), Dst Port: bootps (67)
Bootstrap Protocol
    Message type: Boot Request (1)
    Hardware type: Ethernet
    Hardware address length: 6
    Hops: 0
    Transaction ID: 0xb444e919
    Seconds elapsed: 29
    Bootp flags: 0x0000 (Unicast)
    Client IP address: 0.0.0.0 (0.0.0.0)
    Your (client) IP address: 0.0.0.0 (0.0.0.0)
    Next server IP address: 0.0.0.0 (0.0.0.0)
    Relay agent IP address: 0.0.0.0 (0.0.0.0)
    Client MAC address: DavicomS_91:de:41 (00:60:6e:91:de:41)
    Client hardware address padding: 00000000000000000000
    Server host name not given
    Boot file name not given
    Magic cookie: DHCP
    Option: (53) DHCP Message Type
    Option: (57) Maximum DHCP Message Size
    Option: (60) Vendor class identifier
    Option: (12) Host Name
    Option: (55) Parameter Request List
    Option: (255) End

Насколько я понимаю, на обнаружение DHCP нет ответа. Это верно? Вы знаете почему?

РЕДАКТИРОВАТЬ: я попытался снова проверить пакеты с помощью wirehark, и я вижу параметр Option: (53) Тип сообщения DHCP. Расширяя это, я вижу обнаружение DHCP. Мне это действительно кажется DHCP. Я также проверил DHCP-пакет Mac OS X с помощью wirehark и все еще вижу в пакетах «Тип сообщения: запрос загрузки (1)». Единственное отличие состоит в том, что DHCP-обнаружение не отправляется, а только DHCP-запрос для адреса. Также этот же адаптер не работает под Windows 7.

Так действительно ли это протокол bootp? Вы можете это подтвердить? Или это DHCP? И почему сообщения DHCP Discover отправляются, но предложение DHCP не отправляется обратно?

Проблема в том, что ваш клиент не разговаривает DHCP но бутп. Не все dhcp серверы обрабатывают bootp а также из-за конструктивных ограничений или настроек конфигурации.