[Kea-users] KEA 2.1.0, dhcp6, netbooting via HTTPv6 in qemu

Erik Edwards erik at emedwards.info
Thu Nov 25 01:23:53 UTC 2021


Ah, that explains how the opaque-data is parsed, thank you.

-Erik

------------------------------------------------------------------------

For the list's reference, here is what I used to get the PXE-HTTPv6 
netboot to work under qemu-uefi:


// Client-class definition -
     //   Vendor Class, System Architecture Type, and software revision 
(in this case "x64 UEFI HTTP") - think qemu UEFI w/o secure boot.
     { "name": "PXE_uefi-http",
       "test": "member('VENDOR_CLASS_HTTPClient:Arch:00016:UNDI:003001')",
       "option-data": [

         //  The web server system is using fedora's version of cobbler, 
apache, and python; /httpboot/ can be setup to be any type of alias, 
directory, etc.
         //    bootx64-http.efi is manually created by grub v 2.11's 
grub-mkimage including net drivers and
         //      a hard coded, included grub.cfg that chains to the 
webserver's dynamic grub.cfg
         { "name": "bootfile-url",        "data": "http://<http web 
server ip or dns name>/httpboot/bootx64-http.efi" },

         // vendor-class(16), vendor-id: 343 is the intel/qemu/uefi 
required number. It only boots with a match of ID and complete string
         //   the 0021 leading the string is the 2-byte-long, base16, 
byte count for the remaining string, the remainder is (base16): 
HTTPClient:Arch:00016:UNDI:003001
         //   This was tested without "lenient-option-parsing" enabled.
         { "name": "vendor-class", "data": "343, 
002148545450436C69656E743A417263683A30303031363A554E44493A303033303031" },
         { "code": 60,             "data": "Anything here. PXE-UEFI 
requires it but grub, as of 2.11, ignores this field." }
       ]  // Closes option-data
     } // Close PXE_uefi-http client-class

------------------------------------------------------------------------

> According to the code and the RFC 8415 the vendor-class format is an
> enterprise ID (unsigned 32 bits) followed by tuples so pairs of lengths
> (unsigned 16 bits for v6) and values. Note it is possible to relax
> tuple parsing using the lenient-option-parsing compatibility parameter.
> In the standard definition file the option is defined a a record of
> an unsigned 32 bit integer followed by a binary field so I expect you
> should give the content (after the enterprise ID) as a hexadecimal value
> i.e. encode the tuple yourself.
>
> Regards
>
> Francis Dupont<fdupont at isc.org>
On 11/22/21 06:12, Francis Dupont wrote:
> Erik Edwards writes:
>> { "name": "vendor-class", "data": "HTTPClient" }>
> => IMHO you mean vendor-class-identifier (option 60): there is no option
> named vendor-class in the DHCPv4 option space.
>
> Regards
>
> Francis Dupont<fdupont at isc.org>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.isc.org/pipermail/kea-users/attachments/20211124/25789697/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature
Type: application/pgp-signature
Size: 840 bytes
Desc: OpenPGP digital signature
URL: <https://lists.isc.org/pipermail/kea-users/attachments/20211124/25789697/attachment.bin>


More information about the Kea-users mailing list