[ipxe-devel] DHCP - Support of vendor-encapsulated-options ?

Agrain Patrick patrick.agrain at al-enterprise.com
Fri Jun 17 14:21:32 UTC 2016


Hello all,

When trying to boot-up an Intel Mohon Peak CRB, it seems that the 'vendor-encapsulated-options' is not treated in the same way as, for example, when I try to boot-up an IBM Appliance Server (with the same dhcpd.conf file).

Our DHCP server:
[root at kteam-infra ~]# /usr/sbin/dhcpd -?
Internet Systems Consortium DHCP Server 4.1.1-P1

I tried to declare the 'vendor-encapsulated-options' as standalone in the dhcpd.conf file:
<...>
# PXE Class
class "PXEClient" {
        default-lease-time 1800;
        max-lease-time 1800;
}

group {
       allow booting;
       allow bootp;
       next-server 172.25.27.90;
       default-lease-time 1800;
       max-lease-time 1800;

        # Mohon Peak
        host mohon_pag {
                hardware ethernet 00:80:9F:FF:FF:FC; # ETH0
                filename "/bootp/linux/106.000-pre/pxe/pxeloader_mohon";
                fixed-address 172.25.27.80;
                option vendor-encapsulated-options "S/tel/L2960.fr";
        }
}

This end up in the debug logs (with DEBUG=dhcp,dhcpopts,pxe_preboot):
<...>
iPXE 1.0.0+ -- Open Source Network Boot Firmware -- http://ipxe.org
Features: FTP HTTP iSCSI DNS TFTP AoE bzImage ELF MBOOT PXE PXEXT Menu
DHCP 0x20be4 entering discovery state
Configuring (net0 00:80:9f:ff:ff:fc)...DHCPOPT 0xa1bfc created (data 0x2511c lengths 0x51,0x138)
DHCPOPT 0xa1bfc found 53 (length 3)
DHCPOPT 0xa1bfc resizing 53 from 3 to 3
DHCPOPT 0xa1bfc creating 175 (length 43)
DHCPOPT 0xa1bfc creating 175.177 (length 7)
DHCPOPT 0xa1bfc creating 61 (length 9)
DHCPOPT 0xa1bfc creating 97 (length 19)
DHCP 0x20be4 DHCPDISCOVER
DHCPOPT 0x20d00 created (data 0x20e24 lengths 0x37,0x3c)
DHCPOPT 0x20d00 found 53 (length 3)
DHCPOPT 0x20d00 found 54 (length 6)
DHCP 0x20be4 DHCPOFFER from 172.25.27.90:67 for 172.25.27.80
DHCPOPT 0xa1bfc created (data 0x2111c lengths 0x51,0x138)
DHCPOPT 0xa1bfc found 53 (length 3)
DHCPOPT 0xa1bfc resizing 53 from 3 to 3
DHCPOPT 0xa1bfc creating 175 (length 43)
DHCPOPT 0xa1bfc creating 175.177 (length 7)
DHCPOPT 0xa1bfc creating 61 (length 9)
DHCPOPT 0xa1bfc creating 97 (length 19)
DHCP 0x20be4 DHCPDISCOVER
.DHCPOPT 0x20d00 created (data 0x20e24 lengths 0x37,0x3c)
DHCPOPT 0x20d00 found 53 (length 3)
DHCPOPT 0x20d00 found 54 (length 6)
DHCP 0x20be4 DHCPOFFER from 172.25.27.90:67 for 172.25.27.80
.DHCP 0x20be4 entering request state
DHCPOPT 0xa1bfc created (data 0x2211c lengths 0x51,0x138)
DHCPOPT 0xa1bfc found 53 (length 3)
DHCPOPT 0xa1bfc resizing 53 from 3 to 3
DHCPOPT 0xa1bfc creating 175 (length 43)
DHCPOPT 0xa1bfc creating 175.177 (length 7)
DHCPOPT 0xa1bfc creating 61 (length 9)
DHCPOPT 0xa1bfc creating 97 (length 19)
DHCP 0x20be4 DHCPREQUEST to 172.25.27.90:67 for 172.25.27.80
DHCPOPT 0xa1bfc creating 54 (length 6)
DHCPOPT 0xa1bfc creating 50 (length 6)
.DHCPOPT 0xa1bfc created (data 0x2211c lengths 0x51,0x138)
DHCPOPT 0xa1bfc found 53 (length 3)
DHCPOPT 0xa1bfc resizing 53 from 3 to 3
DHCPOPT 0xa1bfc creating 175 (length 43)
DHCPOPT 0xa1bfc creating 175.177 (length 7)
DHCPOPT 0xa1bfc creating 61 (length 9)
DHCPOPT 0xa1bfc creating 97 (length 19)
DHCP 0x20be4 DHCPREQUEST to 172.25.27.90:67 for 172.25.27.80
DHCPOPT 0xa1bfc creating 54 (length 6)
DHCPOPT 0xa1bfc creating 50 (length 6)
.DHCPOPT 0x20d00 created (data 0x20e24 lengths 0x37,0x3c)
DHCPOPT 0x20d00 found 53 (length 3)
DHCPOPT 0x20d00 found 54 (length 6)
DHCP 0x20be4 DHCPACK from 172.25.27.90:67 for 172.25.27.80
DHCPOPT 0x20d00 found 1 (length 6)
DHCPOPT 0x20d00 found 3 (length 6)
DHCPOPT 0x20d00 found 12 (length 11)
DHCPOPT 0x20d00 found 12 (length 11)
 ok
mac...............: 00:80:9f:ff:ff:fc
ip................: 172.25.27.80
DHCPOPT 0x20d00 found 1 (length 6)
DHCPOPT 0x20d00 found 1 (length 6)
DHCPOPT 0x20d00 found 1 (length 6)
DHCPOPT 0x20d00 found 1 (length 6)
netmask...........: 255.255.255.224
DHCPOPT 0x20d00 found 54 (length 6)
DHCPOPT 0x20d00 found 54 (length 6)
DHCPOPT 0x20d00 found 54 (length 6)
DHCPOPT 0x20d00 found 54 (length 6)
dhcp-server.......: 172.25.27.90
filename..........: /bootp/linux/106.000-pre/pxe/pxeloader_mohon
next-server.......: 172.25.27.90
DHCPOPT 0x20d00 found 12 (length 11)
DHCPOPT 0x20d00 found 12 (length 11)
DHCPOPT 0x20d00 found 12 (length 11)
DHCPOPT 0x20d00 found 12 (length 11)
hostname..........: il27_080
.
/bootp/linux/106.000-pre/pxe/pxeloader_mohon... ok
PXENV_GET_CACHED_INFO BINL to 0000:0000+0DHCPOPT 0xa1ad0 created (data 0x80430a60 lengths 0x0,0x3fc)
DHCPOPT 0xa1ad0 creating 53 (length 3)
DHCPOPT 0x20d00 found 1 (length 6)
DHCPOPT 0x20d00 found 1 (length 6)
DHCPOPT 0xa1ad0 creating 1 (length 6)
DHCPOPT 0x20d00 found 3 (length 6)
DHCPOPT 0x20d00 found 3 (length 6)
DHCPOPT 0xa1ad0 creating 3 (length 6)
DHCPOPT 0x20d00 found 12 (length 11)
DHCPOPT 0x20d00 found 12 (length 11)
DHCPOPT 0xa1ad0 creating 12 (length 11)
DHCPOPT 0x20d00 found 51 (length 6)
DHCPOPT 0x20d00 found 51 (length 6)
DHCPOPT 0xa1ad0 creating 51 (length 6)
DHCPOPT 0x20d00 found 53 (length 3)
DHCPOPT 0x20d00 found 53 (length 3)
DHCPOPT 0xa1ad0 found 53 (length 3)
DHCPOPT 0xa1ad0 resizing 53 from 3 to 3
DHCPOPT 0x20d00 found 54 (length 6)
DHCPOPT 0x20d00 found 54 (length 6)
DHCPOPT 0xa1ad0 creating 54 (length 6)
DHCPOPT 0xa1ad0 creating 66 (length 0)
DHCPOPT 0xa1ad0 creating 67 (length 0)
DHCPOPT 0xa1ad0 creating 175.2 (length 0)
DHCPOPT 0xa1ad0 creating 175 (length 3)
DHCPOPT 0xa1ad0 found 175 (length 3)
DHCPOPT 0xa1ad0 resizing 175 from 3 to 0
DHCPOPT 0xa1ad0 creating 175.3 (length 0)
DHCPOPT 0xa1ad0 creating 175 (length 3)
DHCPOPT 0xa1ad0 found 175 (length 3)
DHCPOPT 0xa1ad0 resizing 175 from 3 to 0
DHCPOPT 0x20d00 found 1 (length 6)
DHCPOPT 0x20d00 found 1 (length 6)
DHCPOPT 0xa1ad0 found 1 (length 6)
DHCPOPT 0xa1ad0 resizing 1 from 6 to 6
DHCPOPT 0x20d00 found 3 (length 6)
DHCPOPT 0x20d00 found 3 (length 6)
DHCPOPT 0xa1ad0 found 3 (length 6)
DHCPOPT 0xa1ad0 resizing 3 from 6 to 6
DHCPOPT 0x20d00 found 12 (length 11)
DHCPOPT 0x20d00 found 12 (length 11)
DHCPOPT 0xa1ad0 found 12 (length 11)
DHCPOPT 0xa1ad0 resizing 12 from 11 to 11
DHCPOPT 0x20d00 found 51 (length 6)
DHCPOPT 0x20d00 found 51 (length 6)
DHCPOPT 0xa1ad0 found 51 (length 6)
DHCPOPT 0xa1ad0 resizing 51 from 6 to 6
DHCPOPT 0x20d00 found 53 (length 3)
DHCPOPT 0x20d00 found 53 (length 3)
DHCPOPT 0xa1ad0 found 53 (length 3)
DHCPOPT 0xa1ad0 resizing 53 from 3 to 3
DHCPOPT 0x20d00 found 54 (length 6)
DHCPOPT 0x20d00 found 54 (length 6)
DHCPOPT 0xa1ad0 found 54 (length 6)
DHCPOPT 0xa1ad0 resizing 54 from 6 to 6
DHCPOPT 0xa1ad0 creating 66 (length 0)
DHCPOPT 0xa1ad0 creating 67 (length 0)
DHCPOPT 0xa1ad0 creating 175.2 (length 0)
DHCPOPT 0xa1ad0 creating 175 (length 3)
DHCPOPT 0xa1ad0 found 175 (length 3)
DHCPOPT 0xa1ad0 resizing 175 from 3 to 0
DHCPOPT 0xa1ad0 creating 175.3 (length 0)
DHCPOPT 0xa1ad0 creating 175 (length 3)
DHCPOPT 0xa1ad0 found 175 (length 3)
DHCPOPT 0xa1ad0 resizing 175 from 3 to 0
 using 9cb3:0e60+04ec['0']
PXENV_UNLOAD_STACK
PXENV_STOP_UNDI
DHCPOPT 0x20d00 found 1 (length 6)
DHCPOPT 0x20d00 found 3 (length 6)
DHCPOPT 0x20d00 found 12 (length 11)
DHCPOPT 0x20d00 found 12 (length 11)

In that case, tcpdump+wireshark show no errors.

I tried also to encapsulate it, with following configuration in the dhcpd.conf:
<...>
# Define vendor space
        option space PXE;
        option PXE.option-129 code 129 = text;
<...>
group {
       allow booting;
       allow bootp;
       next-server 172.25.27.90;
       default-lease-time 1800;
       max-lease-time 1800;

        # Mohon Peak
        host mohon_pag {
                hardware ethernet 00:80:9F:FF:FF:FC; # ETH0
                filename "/bootp/linux/106.000-pre/pxe/pxeloader_mohon";
                fixed-address 172.25.27.80;

                option vendor-class-identifier "PXEClient";
                vendor-option-space PXE;
                option PXE.option-129 "S/tel/L2960.fr";
        }
}

This end up in the debug logs (with DEBUG=dhcp,dhcpopts):
<...>
iPXE 1.0.0+ -- Open Source Network Boot Firmware -- http://ipxe.org
Features: FTP HTTP iSCSI DNS TFTP AoE bzImage ELF MBOOT PXE PXEXT Menu
DHCP 0x205e4 entering discovery state
Configuring (net0 00:80:9f:ff:ff:fc)...DHCPOPT 0xa163c created (data 0x2491c lengths 0x51,0x138)
DHCPOPT 0xa163c found 53 (length 3)
DHCPOPT 0xa163c resizing 53 from 3 to 3
DHCPOPT 0xa163c creating 175 (length 43)
DHCPOPT 0xa163c creating 175.177 (length 7)
DHCPOPT 0xa163c creating 61 (length 9)
DHCPOPT 0xa163c creating 97 (length 19)
DHCP 0x205e4 DHCPDISCOVER
DHCPOPT 0x20e00 created (data 0x20f24 lengths 0x44,0x44)
DHCPOPT 0x20e00 found 53 (length 3)
DHCPOPT 0x20e00 found 54 (length 6)
DHCP 0x205e4 DHCPOFFER from 172.25.27.90:67 for 172.25.27.80DHCPOPT 0x20e00 found 60 (length 11)
 pxe
DHCP 0x205e4 entering request state
.DHCPOPT 0xa163c created (data 0x2091c lengths 0x51,0x138)
DHCPOPT 0xa163c found 53 (length 3)
DHCPOPT 0xa163c resizing 53 from 3 to 3
DHCPOPT 0xa163c creating 175 (length 43)
DHCPOPT 0xa163c creating 175.177 (length 7)
DHCPOPT 0xa163c creating 61 (length 9)
DHCPOPT 0xa163c creating 97 (length 19)
DHCP 0x205e4 DHCPREQUEST to 172.25.27.90:67 for 172.25.27.80
DHCPOPT 0xa163c creating 54 (length 6)
DHCPOPT 0xa163c creating 50 (length 6)
DHCPOPT 0xa163c created (data 0x2111c lengths 0x51,0x138)
DHCPOPT 0xa163c found 53 (length 3)
DHCPOPT 0xa163c resizing 53 from 3 to 3
DHCPOPT 0xa163c creating 175 (length 43)
DHCPOPT 0xa163c creating 175.177 (length 7)
DHCPOPT 0xa163c creating 61 (length 9)
DHCPOPT 0xa163c creating 97 (length 19)
DHCP 0x205e4 DHCPREQUEST to 172.25.27.90:67 for 172.25.27.80
DHCPOPT 0xa163c creating 54 (length 6)
DHCPOPT 0xa163c creating 50 (length 6)
.DHCPOPT 0x21600 created (data 0x21724 lengths 0x44,0x44)
DHCPOPT 0x21600 found 53 (length 3)
DHCPOPT 0x21600 found 54 (length 6)
DHCP 0x205e4 DHCPACK from 172.25.27.90:67 for 172.25.27.80
DHCPOPT 0x21600 found 1 (length 6)
DHCPOPT 0x21600 found 3 (length 6)
DHCPOPT 0x21600 found 12 (length 11)
DHCPOPT 0x21600 found 12 (length 11)
DHCPOPT 0x21600 found 1 (length 6)
DHCPOPT 0x21600 found 3 (length 6)
DHCPOPT 0x21600 found 12 (length 11)
DHCPOPT 0x21600 found 12 (length 11)
 ok
mac...............: 00:80:9f:ff:ff:fc
ip................: 172.25.27.80
DHCPOPT 0x21600 found 1 (length 6)
DHCPOPT 0x21600 found 1 (length 6)
DHCPOPT 0x21600 found 1 (length 6)
DHCPOPT 0x21600 found 1 (length 6)
netmask...........: 255.255.255.224
DHCPOPT 0x21600 found 54 (length 6)
DHCPOPT 0x21600 found 54 (length 6)
DHCPOPT 0x21600 found 54 (length 6)
DHCPOPT 0x21600 found 54 (length 6)
dhcp-server.......: 172.25.27.90
filename..........: /bootp/linux/106.000-pre/pxe/pxeloader_mohon
next-server.......: 172.25.27.90
DHCPOPT 0x21600 found 12 (length 11)
DHCPOPT 0x21600 found 12 (length 11)
DHCPOPT 0x21600 found 12 (length 11)
DHCPOPT 0x21600 found 12 (length 11)
hostname..........: il27_080
.
/bootp/linux/106.000-pre/pxe/pxeloader_mohon... ok
DHCPOPT 0xa1564 created (data 0x80430a60 lengths 0x0,0x3fc)
DHCPOPT 0xa1564 creating 53 (length 3)
DHCPOPT 0x20e00 found 1 (length 6)
DHCPOPT 0x20e00 found 1 (length 6)
DHCPOPT 0xa1564 creating 1 (length 6)
DHCPOPT 0x20e00 found 3 (length 6)
DHCPOPT 0x20e00 found 3 (length 6)
DHCPOPT 0xa1564 creating 3 (length 6)
DHCPOPT 0x20e00 found 12 (length 11)
DHCPOPT 0x20e00 found 12 (length 11)
DHCPOPT 0xa1564 creating 12 (length 11)
DHCPOPT 0x20e00 found 43.129 (length 16)
DHCPOPT 0x20e00 found 43.129 (length 16)
DHCPOPT 0xa1564 creating 43.129 (length 16)
DHCPOPT 0xa1564 creating 43 (length 3)
DHCPOPT 0x20e00 found 51 (length 6)
DHCPOPT 0x20e00 found 51 (length 6)
DHCPOPT 0xa1564 creating 51 (length 6)
DHCPOPT 0x20e00 found 53 (length 3)
DHCPOPT 0x20e00 found 53 (length 3)
DHCPOPT 0xa1564 found 53 (length 3)
DHCPOPT 0xa1564 resizing 53 from 3 to 3
DHCPOPT 0x20e00 found 54 (length 6)
DHCPOPT 0x20e00 found 54 (length 6)
DHCPOPT 0xa1564 creating 54 (length 6)
DHCPOPT 0x20e00 found 60 (length 11)
DHCPOPT 0x20e00 found 60 (length 11)
DHCPOPT 0xa1564 creating 60 (length 11)
DHCPOPT 0xa1564 creating 66 (length 0)
DHCPOPT 0xa1564 creating 67 (length 0)
DHCPOPT 0xa1564 creating 175.2 (length 0)
DHCPOPT 0xa1564 creating 175 (length 3)
DHCPOPT 0xa1564 found 175 (length 3)
DHCPOPT 0xa1564 resizing 175 from 3 to 0
DHCPOPT 0xa1564 creating 175.3 (length 0)
DHCPOPT 0xa1564 creating 175 (length 3)
DHCPOPT 0xa1564 found 175 (length 3)
DHCPOPT 0xa1564 resizing 175 from 3 to 0
DHCPOPT 0x21600 found 1 (length 6)
DHCPOPT 0x21600 found 3 (length 6)
DHCPOPT 0x21600 found 12 (length 11)
DHCPOPT 0x21600 found 12 (length 11)
DHCPOPT 0x20e00 found 12 (length 11)
DHCPOPT 0x20e00 found 12 (length 11)
DHCPOPT 0x20e00 found 12 (length 11)
DHCPOPT 0x20e00 found 12 (length 11)

In that case, tcpdump+wireshark show an "Unknown suboption 129" in the DHCPOFFER and DHCPACK transactions.
I replaced 'text' by 'string' with the same result.

In both cases, our installer does not see the string "S/tel/L2960.fr".
For iPXE, what should be used ? Encapsulated or not ?
Is there maybe anything to add on iPXE side ?

Any hint is welcome.
Thanks in advance.
Kind regards,
Patrick Agrain



More information about the ipxe-devel mailing list