Use client architecture and set bootfile-url for DHCPv6 in inspector

For DHCPv6 PXE boot, the Client Architecture option uses code 61,
see https://tools.ietf.org/html/rfc5970#section-3.3. Use this
to determine if booting over EFI and set the DHCPv6 bootfile-url
when booting PXE over EFI.

Change-Id: I096ac412c015c3ac488d712010aafe52b572cfad
This commit is contained in:
Bob Fournier 2019-10-17 20:15:54 -04:00
parent 7256dcdfbf
commit 3af8943002
2 changed files with 13 additions and 0 deletions

View File

@ -0,0 +1,8 @@
---
fixes:
- |
For DHCPv6 PXE boot, the Client Architecture option code (61)
as defined in https://tools.ietf.org/html/rfc5970#section-3.3 is
different than the one for DHCP. This is used to determine
if booting over EFI. This change sets the DHCPv6 bootfile-url
when booting PXE over EFI.

View File

@ -43,12 +43,17 @@ dhcp-match=ipxe,175
dhcp-match=set:efi,option:client-arch,7 dhcp-match=set:efi,option:client-arch,7
dhcp-match=set:efi,option:client-arch,9 dhcp-match=set:efi,option:client-arch,9
dhcp-match=set:efi,option:client-arch,11 dhcp-match=set:efi,option:client-arch,11
# dhcpv6s for Client System Architecture Type (61)
dhcp-match=set:efi6,option6:61,0007
dhcp-match=set:efi6,option6:61,0009
dhcp-match=set:efi6,option6:61,0011
dhcp-userclass=set:ipxe6,iPXE dhcp-userclass=set:ipxe6,iPXE
# Client is already running iPXE; move to next stage of chainloading # Client is already running iPXE; move to next stage of chainloading
dhcp-boot=tag:ipxe,http://<%= @dnsmasq_local_ip_real %>:<%= @http_port_real %>/inspector.ipxe dhcp-boot=tag:ipxe,http://<%= @dnsmasq_local_ip_real %>:<%= @http_port_real %>/inspector.ipxe
dhcp-option=tag:ipxe6,option6:bootfile-url,http://<%= @dnsmasq_local_ip_real %>:<%= @http_port_real %>/inspector.ipxe dhcp-option=tag:ipxe6,option6:bootfile-url,http://<%= @dnsmasq_local_ip_real %>:<%= @http_port_real %>/inspector.ipxe
# Client is PXE booting over EFI without iPXE ROM; send EFI version of iPXE chainloader # Client is PXE booting over EFI without iPXE ROM; send EFI version of iPXE chainloader
dhcp-boot=tag:efi,tag:!ipxe,ipxe.efi dhcp-boot=tag:efi,tag:!ipxe,ipxe.efi
dhcp-option=tag:efi6,tag:!ipxe6,option6:bootfile-url,tftp://<%= @dnsmasq_local_ip_real %>/ipxe.efi
# Client is running PXE over BIOS; send BIOS version of iPXE chainloader # Client is running PXE over BIOS; send BIOS version of iPXE chainloader
dhcp-boot=undionly.kpxe,localhost.localdomain,<%= @dnsmasq_local_ip %> dhcp-boot=undionly.kpxe,localhost.localdomain,<%= @dnsmasq_local_ip %>
<% if @dnsmasq_dhcp_hostsdir %> <% if @dnsmasq_dhcp_hostsdir %>