3af8943002
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
62 lines
2.2 KiB
Plaintext
62 lines
2.2 KiB
Plaintext
port=0
|
|
interface=<%= @dnsmasq_interface %>
|
|
<% if @dhcp_debug %>
|
|
log-dhcp
|
|
log-queries
|
|
<% end %>
|
|
<% @dnsmasq_ip_subnets_real.each do |s| -%>
|
|
<% if s['tag'] and s['netmask'] -%>
|
|
dhcp-range=set:<%= s['tag'] -%>,<%= s['ip_range'] -%>,<%= s['netmask'] -%>,10m
|
|
<% elsif s['tag'] -%>
|
|
dhcp-range=set:<%= s['tag'] -%>,<%= s['ip_range'] -%>,10m
|
|
<% else -%>
|
|
dhcp-range=<%= s['ip_range'] -%>,10m
|
|
<% end -%>
|
|
<% if s['gateway'] -%>
|
|
<% if s['tag'] -%>
|
|
dhcp-option=tag:<%= s['tag'] -%>,option:router,<%= s['gateway'] %>
|
|
<% else -%>
|
|
dhcp-option=option:router,<%= s['gateway'] %>
|
|
<% end -%>
|
|
<% end -%>
|
|
<% if s['mtu'] -%>
|
|
<% if s['tag'] -%>
|
|
dhcp-option-force=tag:<%= s['tag'] -%>,option:mtu,<%= s['mtu'] %>
|
|
<% else -%>
|
|
dhcp-option-force=option:mtu,<%= s['mtu'] %>
|
|
<% end -%>
|
|
<% end -%>
|
|
<% if s['classless_static_routes'] -%>
|
|
<%- @_routes = [] -%>
|
|
<%- s['classless_static_routes'].each do |route| -%>
|
|
<%- @_routes << route['destination'] + ',' + route['nexthop'] -%>
|
|
<% end -%>
|
|
<% if s['tag'] -%>
|
|
dhcp-option=tag:<%= s['tag'] -%>,option:classless-static-route,<%= @_routes.join(',') -%>
|
|
<% else -%>
|
|
dhcp-option=option:classless-static-route,<%= @_routes.join(',') -%>
|
|
<% end -%>
|
|
<% end -%>
|
|
<% end -%>
|
|
dhcp-sequential-ip
|
|
dhcp-match=ipxe,175
|
|
dhcp-match=set:efi,option:client-arch,7
|
|
dhcp-match=set:efi,option:client-arch,9
|
|
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
|
|
# 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-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
|
|
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
|
|
dhcp-boot=undionly.kpxe,localhost.localdomain,<%= @dnsmasq_local_ip %>
|
|
<% if @dnsmasq_dhcp_hostsdir %>
|
|
dhcp-hostsdir=<%= @dnsmasq_dhcp_hostsdir %>
|
|
<% end %>
|