[Dnsmasq-discuss] UEFI HTTP boot on IPv6

Geert Stappers stappers at stappers.nl
Mon Dec 20 08:31:09 UTC 2021


On Sun, Dec 19, 2021 at 06:22:05PM +0000, Juan Orti via Dnsmasq-discuss wrote:
> Hi,
> 
> I'm trying to configure dnsmasq 2.86 to do UEFI HTTP boot on IPv6,
> but I'm having trouble to configure the DHCPv6 option 16 (Vendor class).
> 
> The UEFI specification says that the OPTION_VENDOR_CLASS parameter
> in option 16 must be set to "HTTPClient" [1], but DHCPv6 requires an
> additional enterprise-number in this option [2].
> 
> I've been trying to pass the enterprise-number + vendor-class-data
> as hex, but it's always interpreted as a string. The only way I was
> able to make it work is by padding "HTTPClient" with some number,
> in this case the Red Hat enterprise-number:
> 
> dhcp-option-force=tag:efi64-http,option6:16,2312HTTPClient
> 
> That sends this hex data, which has an invalid enterprise number,
> but at least it works:
> 
>   option: 00 10
>   lenght: 00 10
>   enterprise-number: 00 0e 32 33
>   vendor-class-data: 48 54 54 50 43 6c 69 65 6e 74
> 
> Why I cannot use an hex value in this option?
> I've tried this but the value is always interpreted as a string:
> 
>   dhcp-option-force=tag:efi64-http,option6:16,32:33:31:32:48:54:54:50:43:6c:69:65:6e:74
> 

|$ grep -e :..:..:..: dnsmasq.8
|.B --dhcp-host=00:20:e0:3b:13:af,wap,infinite
|the machine with hardware address 00:20:e0:3b:13:af the name wap, and
|.B --dhcp-host=id:01:02:03:04,.....
|.B --dhcp-host=00:20:e0:3b:13:af,ignore
|.B --dhcp-host=00:20:e0:3b:13:*,ignore
|.B --dhcp-host=06-00:20:e0:3b:13:af,1.2.3.4
|.B --dhcp-host=11:22:33:44:55:66,12:34:56:78:90:12,192.168.0.2
|it will have the network type prepended, eg "06-01:23:45:67:89:ab" for

> Am I missing something?

Yes


> this looks overly complicated compared to DHCPv4 in which I just
> use "option:vendor-class,HTTPClient".
 
Quoting the manual page of dnsmasq

    Encapsulated  Vendor-class  options may also be
    specified (IPv4 only) using --dhcp-option: for instance
    --dhcp-option=vendor:PXEClient,1,0.0.0.0 sends the encapsulated
    vendor  class-specific  option  "mftp-address=0.0.0.0"  to  any
    client  whose vendor-class matches "PXEClient".

I think the " (IPv4 only) "  implies DHCPv6 is not DHCP.


> Thanks.
 
Thanks for what?   (to be read as "Feel free to do a follow-up"   :-)
 

Groeten
Geert Stappers

[1] https://uefi.org/sites/default/files/resources/UEFI_Spec_2_9_2021_03_18.pdf
[2] https://datatracker.ietf.org/doc/html/rfc3315#section-22.16
-- 
Silence is hard to parse



More information about the Dnsmasq-discuss mailing list