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

DHCP-сервер не обнаружен во время загрузки PXE

Я пытаюсь запустить PXE-сервер и обнаруживаю ошибку «PXE-E51: не получены предложения DHCP или proxyDHCP», что обычно означает, что:

клиент PXE не получил ответа на свое сообщение DHCPDISCOVER. Возможные причины этой проблемы:

  1. Нет DHCP или BOOT сервера
  2. Сервер DHCP или BOOTP не работает
  3. Сервер DHCP или BOOTP не настроен для обслуживания вашего клиента PXE
  4. Сервер DHCP или BOOTP находится в другой подсети, и механизмы пересылки DHCP или BOOTP не действуют.

Моя установка и конфигурация очень близки к тем, что указаны в этот аналогичный вопрос о ServerFault; разница в том, что в отличие от автора вопроса я абсолютно не вижу DHCPDISCOVER в журналах DHCP-сервера и dhcpdump -i eth0 ничего не показывает.

Когда я пытаюсь загрузиться с другой машины, я вижу DHCPDISCOVER и DHCPOFFER записи в журнале, и машина начнет запрашивать TFTP. То же самое происходит, когда я загружаю виртуальную машину через PXE.

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

Если я отключу реальный компьютер от коммутатора, загрузка PXE явно укажет, что с подключением что-то не так, поэтому это не должно быть проблемой с кабелем Ethernet.

Это исключает первые три возможные причины. Что касается четвертого, я не уверен, что мне проверять. Значения широковещательной передачи и сетевой маски одинаковы для коммутатора, маршрутизатора, хоста и DHCP-сервера.

Это очень похоже на проблема STP, но STP отключен на коммутаторе.

Что еще мне нужно проверить?


Если зеркалирование портов настроено для зеркалирования Tx / Rx на порт, используемый машиной разработки, dhcpdump отображает следующее:

  TIME: 2016-06-08 22:34:12.722
    IP: 0.0.0.0 (0:0:0:0:0:0) > 255.255.255.255 (ff:ff:ff:ff:ff:ff)
    OP: 1 (BOOTPREQUEST)
 HTYPE: 1 (Ethernet)
  HLEN: 6
  HOPS: 0
   XID: 01000000
  SECS: 4
 FLAGS: 7f80
CIADDR: 0.0.0.0
YIADDR: 0.0.0.0
SIADDR: 0.0.0.0
GIADDR: 0.0.0.0
CHADDR: 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
 SNAME: .
 FNAME: .
OPTION:  53 (  1) DHCP message type         1 (DHCPDISCOVER)
OPTION:  55 ( 24) Parameter Request List      1 (Subnet mask)
                          2 (Time offset)
                          3 (Routers)
                          5 (Name server)
                          6 (DNS server)
                         11 (Resource location server)
                         12 (Host name)
                         13 (Boot file size)
                         15 (Domainname)
                         16 (Swap server)
                         17 (Root path)
                         18 (Extensions path)
                         43 (Vendor specific info)
                         54 (Server identifier)
                         60 (Vendor class identifier)
                         67 (Bootfile name)
                        128 (???)
                        129 (???)
                        130 (???)
                        131 (???)
                        132 (???)
                        133 (???)
                        134 (???)
                        135 (???)
                        
OPTION:  57 (  2) Maximum DHCP message size 1260
OPTION:  97 ( 17) UUID/GUID                 0000020003000400 ........
                        0500060007000800 ........
                        09               .
OPTION:  93 (  2) Client System             0000             ..
OPTION:  94 (  3) Client NDI                010201           ...
OPTION:  60 ( 32) Vendor class identifier   PXEClient:Arch:00000:UNDI:002001
---------------------------------------------------------------------------

  TIME: 2016-06-08 22:34:14.724
    IP: 0.0.0.0 (0:0:0:0:0:0) > 255.255.255.255 (ff:ff:ff:ff:ff:ff)
    OP: 1 (BOOTPREQUEST)
 HTYPE: 1 (Ethernet)
  HLEN: 6
  HOPS: 0
   XID: 02000000
  SECS: 6
 FLAGS: 7f80
CIADDR: 0.0.0.0
YIADDR: 0.0.0.0
SIADDR: 0.0.0.0
GIADDR: 0.0.0.0
CHADDR: 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
 SNAME: .
 FNAME: .
OPTION:  53 (  1) DHCP message type         1 (DHCPDISCOVER)
OPTION:  55 ( 24) Parameter Request List      1 (Subnet mask)
                          2 (Time offset)
                          3 (Routers)
                          5 (Name server)
                          6 (DNS server)
                         11 (Resource location server)
                         12 (Host name)
                         13 (Boot file size)
                         15 (Domainname)
                         16 (Swap server)
                         17 (Root path)
                         18 (Extensions path)
                         43 (Vendor specific info)
                         54 (Server identifier)
                         60 (Vendor class identifier)
                         67 (Bootfile name)
                        128 (???)
                        129 (???)
                        130 (???)
                        131 (???)
                        132 (???)
                        133 (???)
                        134 (???)
                        135 (???)
                        
OPTION:  57 (  2) Maximum DHCP message size 1260
OPTION:  97 ( 17) UUID/GUID                 0000020003000400 ........
                        0500060007000800 ........
                        09               .
OPTION:  93 (  2) Client System             0000             ..
OPTION:  94 (  3) Client NDI                010201           ...
OPTION:  60 ( 32) Vendor class identifier   PXEClient:Arch:00000:UNDI:002001
---------------------------------------------------------------------------

  TIME: 2016-06-08 22:34:18.729
    IP: 0.0.0.0 (0:0:0:0:0:0) > 255.255.255.255 (ff:ff:ff:ff:ff:ff)
    OP: 1 (BOOTPREQUEST)
 HTYPE: 1 (Ethernet)
  HLEN: 6
  HOPS: 0
   XID: 03000000
  SECS: 10
 FLAGS: 7f80
CIADDR: 0.0.0.0
YIADDR: 0.0.0.0
SIADDR: 0.0.0.0
GIADDR: 0.0.0.0
CHADDR: 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
 SNAME: .
 FNAME: .
OPTION:  53 (  1) DHCP message type         1 (DHCPDISCOVER)
OPTION:  55 ( 24) Parameter Request List      1 (Subnet mask)
                          2 (Time offset)
                          3 (Routers)
                          5 (Name server)
                          6 (DNS server)
                         11 (Resource location server)
                         12 (Host name)
                         13 (Boot file size)
                         15 (Domainname)
                         16 (Swap server)
                         17 (Root path)
                         18 (Extensions path)
                         43 (Vendor specific info)
                         54 (Server identifier)
                         60 (Vendor class identifier)
                         67 (Bootfile name)
                        128 (???)
                        129 (???)
                        130 (???)
                        131 (???)
                        132 (???)
                        133 (???)
                        134 (???)
                        135 (???)
                        
OPTION:  57 (  2) Maximum DHCP message size 1260
OPTION:  97 ( 17) UUID/GUID                 0000020003000400 ........
                        0500060007000800 ........
                        09               .
OPTION:  93 (  2) Client System             0000             ..
OPTION:  94 (  3) Client NDI                010201           ...
OPTION:  60 ( 32) Vendor class identifier   PXEClient:Arch:00000:UNDI:002001
---------------------------------------------------------------------------

  TIME: 2016-06-08 22:34:26.739
    IP: 0.0.0.0 (0:0:0:0:0:0) > 255.255.255.255 (ff:ff:ff:ff:ff:ff)
    OP: 1 (BOOTPREQUEST)
 HTYPE: 1 (Ethernet)
  HLEN: 6
  HOPS: 0
   XID: 04000000
  SECS: 18
 FLAGS: 7f80
CIADDR: 0.0.0.0
YIADDR: 0.0.0.0
SIADDR: 0.0.0.0
GIADDR: 0.0.0.0
CHADDR: 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
 SNAME: .
 FNAME: .
OPTION:  53 (  1) DHCP message type         1 (DHCPDISCOVER)
OPTION:  55 ( 24) Parameter Request List      1 (Subnet mask)
                          2 (Time offset)
                          3 (Routers)
                          5 (Name server)
                          6 (DNS server)
                         11 (Resource location server)
                         12 (Host name)
                         13 (Boot file size)
                         15 (Domainname)
                         16 (Swap server)
                         17 (Root path)
                         18 (Extensions path)
                         43 (Vendor specific info)
                         54 (Server identifier)
                         60 (Vendor class identifier)
                         67 (Bootfile name)
                        128 (???)
                        129 (???)
                        130 (???)
                        131 (???)
                        132 (???)
                        133 (???)
                        134 (???)
                        135 (???)
                        
OPTION:  57 (  2) Maximum DHCP message size 1260
OPTION:  97 ( 17) UUID/GUID                 0000020003000400 ........
                        0500060007000800 ........
                        09               .
OPTION:  93 (  2) Client System             0000             ..
OPTION:  94 (  3) Client NDI                010201           ...
OPTION:  60 ( 32) Vendor class identifier   PXEClient:Arch:00000:UNDI:002001
---------------------------------------------------------------------------

  TIME: 2016-06-08 22:34:42.759
    IP: 0.0.0.0 (0:0:0:0:0:0) > 255.255.255.255 (ff:ff:ff:ff:ff:ff)
    OP: 1 (BOOTPREQUEST)
 HTYPE: 1 (Ethernet)
  HLEN: 6
  HOPS: 0
   XID: 05000000
  SECS: 34
 FLAGS: 7f80
CIADDR: 0.0.0.0
YIADDR: 0.0.0.0
SIADDR: 0.0.0.0
GIADDR: 0.0.0.0
CHADDR: 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
 SNAME: .
 FNAME: .
OPTION:  53 (  1) DHCP message type         1 (DHCPDISCOVER)
OPTION:  55 ( 24) Parameter Request List      1 (Subnet mask)
                          2 (Time offset)
                          3 (Routers)
                          5 (Name server)
                          6 (DNS server)
                         11 (Resource location server)
                         12 (Host name)
                         13 (Boot file size)
                         15 (Domainname)
                         16 (Swap server)
                         17 (Root path)
                         18 (Extensions path)
                         43 (Vendor specific info)
                         54 (Server identifier)
                         60 (Vendor class identifier)
                         67 (Bootfile name)
                        128 (???)
                        129 (???)
                        130 (???)
                        131 (???)
                        132 (???)
                        133 (???)
                        134 (???)
                        135 (???)
                        
OPTION:  57 (  2) Maximum DHCP message size 1260
OPTION:  97 ( 17) UUID/GUID                 0000020003000400 ........
                        0500060007000800 ........
                        09               .
OPTION:  93 (  2) Client System             0000             ..
OPTION:  94 (  3) Client NDI                010201           ...
OPTION:  60 ( 32) Vendor class identifier   PXEClient:Arch:00000:UNDI:002001
---------------------------------------------------------------------------

  TIME: 2016-06-08 22:35:14.817
    IP: 0.0.0.0 (0:0:0:0:0:0) > 255.255.255.255 (ff:ff:ff:ff:ff:ff)
    OP: 1 (BOOTPREQUEST)
 HTYPE: 1 (Ethernet)
  HLEN: 6
  HOPS: 0
   XID: 06000000
  SECS: 66
 FLAGS: 7f80
CIADDR: 0.0.0.0
YIADDR: 0.0.0.0
SIADDR: 0.0.0.0
GIADDR: 0.0.0.0
CHADDR: 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
 SNAME: .
 FNAME: .
OPTION:  53 (  1) DHCP message type         1 (DHCPDISCOVER)
OPTION:  55 ( 24) Parameter Request List      1 (Subnet mask)
                          2 (Time offset)
                          3 (Routers)
                          5 (Name server)
                          6 (DNS server)
                         11 (Resource location server)
                         12 (Host name)
                         13 (Boot file size)
                         15 (Domainname)
                         16 (Swap server)
                         17 (Root path)
                         18 (Extensions path)
                         43 (Vendor specific info)
                         54 (Server identifier)
                         60 (Vendor class identifier)
                         67 (Bootfile name)
                        128 (???)
                        129 (???)
                        130 (???)
                        131 (???)
                        132 (???)
                        133 (???)
                        134 (???)
                        135 (???)
                        
OPTION:  57 (  2) Maximum DHCP message size 1260
OPTION:  97 ( 17) UUID/GUID                 0000020003000400 ........
                        0500060007000800 ........
                        09               .
OPTION:  93 (  2) Client System             0000             ..
OPTION:  94 (  3) Client NDI                010201           ...
OPTION:  60 ( 32) Vendor class identifier   PXEClient:Arch:00000:UNDI:002001
---------------------------------------------------------------------------

  TIME: 2016-06-08 22:36:18.800
    IP: 0.0.0.0 (0:0:0:0:0:0) > 255.255.255.255 (ff:ff:ff:ff:ff:ff)
    OP: 1 (BOOTPREQUEST)
 HTYPE: 1 (Ethernet)
  HLEN: 6
  HOPS: 0
   XID: 07000000
  SECS: 130
 FLAGS: 7f80
CIADDR: 0.0.0.0
YIADDR: 0.0.0.0
SIADDR: 0.0.0.0
GIADDR: 0.0.0.0
CHADDR: 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
 SNAME: .
 FNAME: .
OPTION:  53 (  1) DHCP message type         1 (DHCPDISCOVER)
OPTION:  55 ( 24) Parameter Request List      1 (Subnet mask)
                          2 (Time offset)
                          3 (Routers)
                          5 (Name server)
                          6 (DNS server)
                         11 (Resource location server)
                         12 (Host name)
                         13 (Boot file size)
                         15 (Domainname)
                         16 (Swap server)
                         17 (Root path)
                         18 (Extensions path)
                         43 (Vendor specific info)
                         54 (Server identifier)
                         60 (Vendor class identifier)
                         67 (Bootfile name)
                        128 (???)
                        129 (???)
                        130 (???)
                        131 (???)
                        132 (???)
                        133 (???)
                        134 (???)
                        135 (???)
                        
OPTION:  57 (  2) Maximum DHCP message size 1260
OPTION:  97 ( 17) UUID/GUID                 0000020003000400 ........
                        0500060007000800 ........
                        09               .
OPTION:  93 (  2) Client System             0000             ..
OPTION:  94 (  3) Client NDI                010201           ...
OPTION:  60 ( 32) Vendor class identifier   PXEClient:Arch:00000:UNDI:002001
---------------------------------------------------------------------------

Для сравнения, вот дамп после успешной загрузки виртуальной машины из PXE:

  TIME: 2016-06-08 22:43:33.301
    IP: 0.0.0.0 (52:54:0:7c:82:35) > 255.255.255.255 (ff:ff:ff:ff:ff:ff)
    OP: 1 (BOOTPREQUEST)
 HTYPE: 1 (Ethernet)
  HLEN: 6
  HOPS: 0
   XID: e5cf9a4f
  SECS: 4
 FLAGS: 0
CIADDR: 0.0.0.0
YIADDR: 0.0.0.0
SIADDR: 0.0.0.0
GIADDR: 0.0.0.0
CHADDR: 52:54:00:7c:82:35:00:00:00:00:00:00:00:00:00:00
 SNAME: .
 FNAME: .
OPTION:  53 (  1) DHCP message type         1 (DHCPDISCOVER)
OPTION:  57 (  2) Maximum DHCP message size 1472
OPTION:  93 (  2) Client System             0000             ..
OPTION:  94 (  3) Client NDI                010201           ...
OPTION:  60 ( 32) Vendor class identifier   PXEClient:Arch:00000:UNDI:002001
OPTION:  77 (  4) User-class Identification 69505845         iPXE
OPTION:  55 ( 21) Parameter Request List      1 (Subnet mask)
                          3 (Routers)
                          6 (DNS server)
                          7 (Log server)
                         12 (Host name)
                         15 (Domainname)
                         17 (Root path)
                         43 (Vendor specific info)
                         60 (Vendor class identifier)
                         66 (TFTP server name)
                         67 (Bootfile name)
                        128 (???)
                        129 (???)
                        130 (???)
                        131 (???)
                        132 (???)
                        133 (???)
                        134 (???)
                        135 (???)
                        175 (???)
                        203 (???)
                        
OPTION: 175 ( 48) ???                       b1050110ec813918 ......9.
                        0101220101190101 ..".....
                        210101100102eb03 !.......
                        0100001301011401 ........
                        0111010117010115 ........
                        0101270101120101 ..'.....                 
OPTION:  61 (  7) Client-identifier         01:52:54:00:7c:82:35
OPTION:  97 ( 17) UUID/GUID                 00b818a0926b2af5 .....k*.
                        e854b1abacc0fd2d .T.....-
                        ba               .
---------------------------------------------------------------------------

  TIME: 2016-06-08 22:43:34.302
    IP: 0.0.0.0 (52:54:0:7c:82:35) > 255.255.255.255 (ff:ff:ff:ff:ff:ff)
    OP: 1 (BOOTPREQUEST)
 HTYPE: 1 (Ethernet)
  HLEN: 6
  HOPS: 0
   XID: e5cf9a4f
  SECS: 8
 FLAGS: 0
CIADDR: 0.0.0.0
YIADDR: 0.0.0.0
SIADDR: 0.0.0.0
GIADDR: 0.0.0.0
CHADDR: 52:54:00:7c:82:35:00:00:00:00:00:00:00:00:00:00
 SNAME: .
 FNAME: .
OPTION:  53 (  1) DHCP message type         1 (DHCPDISCOVER)
OPTION:  57 (  2) Maximum DHCP message size 1472
OPTION:  93 (  2) Client System             0000             ..
OPTION:  94 (  3) Client NDI                010201           ...
OPTION:  60 ( 32) Vendor class identifier   PXEClient:Arch:00000:UNDI:002001
OPTION:  77 (  4) User-class Identification 69505845         iPXE
OPTION:  55 ( 21) Parameter Request List      1 (Subnet mask)
                          3 (Routers)
                          6 (DNS server)
                          7 (Log server)
                         12 (Host name)
                         15 (Domainname)
                         17 (Root path)
                         43 (Vendor specific info)
                         60 (Vendor class identifier)
                         66 (TFTP server name)
                         67 (Bootfile name)
                        128 (???)
                        129 (???)
                        130 (???)
                        131 (???)
                        132 (???)
                        133 (???)
                        134 (???)
                        135 (???)
                        175 (???)
                        203 (???)
                        
OPTION: 175 ( 48) ???                       b1050110ec813918 ......9.
                        0101220101190101 ..".....
                        210101100102eb03 !.......
                        0100001301011401 ........
                        0111010117010115 ........
                        0101270101120101 ..'.....                 
OPTION:  61 (  7) Client-identifier         01:52:54:00:7c:82:35
OPTION:  97 ( 17) UUID/GUID                 00b818a0926b2af5 .....k*.
                        e854b1abacc0fd2d .T.....-
                        ba               .
---------------------------------------------------------------------------

  TIME: 2016-06-08 22:43:34.302
    IP: 192.168.1.40 (52:54:0:ed:3d:b7) > 192.168.1.249 (52:54:0:7c:82:35)
    OP: 2 (BOOTPREPLY)
 HTYPE: 1 (Ethernet)
  HLEN: 6
  HOPS: 0
   XID: e5cf9a4f
  SECS: 4
 FLAGS: 0
CIADDR: 0.0.0.0
YIADDR: 192.168.1.249
SIADDR: 0.0.0.0
GIADDR: 0.0.0.0
CHADDR: 52:54:00:7c:82:35:00:00:00:00:00:00:00:00:00:00
 SNAME: .
 FNAME: pxelinux.0.
OPTION:  53 (  1) DHCP message type         2 (DHCPOFFER)
OPTION:  54 (  4) Server identifier         192.168.1.40
OPTION:  51 (  4) IP address leasetime      43200 (12h)
OPTION:   1 (  4) Subnet mask               255.255.254.0
OPTION:   3 (  4) Routers                   192.168.1.1
OPTION:   6 (  8) DNS server                192.168.1.3,192.168.1.4
---------------------------------------------------------------------------

  TIME: 2016-06-08 22:43:36.405
    IP: 0.0.0.0 (52:54:0:7c:82:35) > 255.255.255.255 (ff:ff:ff:ff:ff:ff)
    OP: 1 (BOOTPREQUEST)
 HTYPE: 1 (Ethernet)
  HLEN: 6
  HOPS: 0
   XID: e5cf9a4f
  SECS: 14
 FLAGS: 0
CIADDR: 0.0.0.0
YIADDR: 0.0.0.0
SIADDR: 0.0.0.0
GIADDR: 0.0.0.0
CHADDR: 52:54:00:7c:82:35:00:00:00:00:00:00:00:00:00:00
 SNAME: .
 FNAME: .
OPTION:  53 (  1) DHCP message type         3 (DHCPREQUEST)
OPTION:  57 (  2) Maximum DHCP message size 1472
OPTION:  93 (  2) Client System             0000             ..
OPTION:  94 (  3) Client NDI                010201           ...
OPTION:  60 ( 32) Vendor class identifier   PXEClient:Arch:00000:UNDI:002001
OPTION:  77 (  4) User-class Identification 69505845         iPXE
OPTION:  55 ( 21) Parameter Request List      1 (Subnet mask)
                          3 (Routers)
                          6 (DNS server)
                          7 (Log server)
                         12 (Host name)
                         15 (Domainname)
                         17 (Root path)
                         43 (Vendor specific info)
                         60 (Vendor class identifier)
                         66 (TFTP server name)
                         67 (Bootfile name)
                        128 (???)
                        129 (???)
                        130 (???)
                        131 (???)
                        132 (???)
                        133 (???)
                        134 (???)
                        135 (???)
                        175 (???)
                        203 (???)
                        
OPTION: 175 ( 48) ???                       b1050110ec813918 ......9.
                        0101220101190101 ..".....
                        210101100102eb03 !.......
                        0100001301011401 ........
                        0111010117010115 ........
                        0101270101120101 ..'.....                 
OPTION:  61 (  7) Client-identifier         01:52:54:00:7c:82:35
OPTION:  97 ( 17) UUID/GUID                 00b818a0926b2af5 .....k*.
                        e854b1abacc0fd2d .T.....-
                        ba               .
OPTION:  54 (  4) Server identifier         192.168.1.40
OPTION:  50 (  4) Request IP address        192.168.1.249
---------------------------------------------------------------------------

  TIME: 2016-06-08 22:43:36.405
    IP: 192.168.1.40 (52:54:0:ed:3d:b7) > 192.168.1.249 (52:54:0:7c:82:35)
    OP: 2 (BOOTPREPLY)
 HTYPE: 1 (Ethernet)
  HLEN: 6
  HOPS: 0
   XID: e5cf9a4f
  SECS: 14
 FLAGS: 0
CIADDR: 0.0.0.0
YIADDR: 192.168.1.249
SIADDR: 0.0.0.0
GIADDR: 0.0.0.0
CHADDR: 52:54:00:7c:82:35:00:00:00:00:00:00:00:00:00:00
 SNAME: .
 FNAME: pxelinux.0.
OPTION:  53 (  1) DHCP message type         5 (DHCPACK)
OPTION:  54 (  4) Server identifier         192.168.1.40
OPTION:  51 (  4) IP address leasetime      43200 (12h)
OPTION:   1 (  4) Subnet mask               255.255.254.0
OPTION:   3 (  4) Routers                   192.168.1.1
OPTION:   6 (  8) DNS server                192.168.1.3,192.168.1.4
---------------------------------------------------------------------------

Соответствующая строка в dhcpdump был:

CHADDR: 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00

Оказалось, что материнская плата неисправна, что привело к отсутствию MAC-адреса при загрузке PXE. В свою очередь, это означало, что все DHCPDISCOVER запросы с клиентской машины были отправлены без действительного CHADDR, и поэтому никогда не достигал DHCP-сервера по причине, которую я на самом деле не понимаю (я бы понял, достигнут ли они DHCP-сервера, но сервер решит не отвечать).

Принудительная запись MAC-адреса решила проблему.