blob: 1494461f18a39622de545a974d894c5906f1f355 (
about) (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
# dhcpd.conf for interface __INTERFACE__
# generated by dyndhcpd/__VERSION__
authoritative;
ddns-update-style none;
ignore client-updates;
default-lease-time 21600;
max-lease-time 43200;
option domain-name "__DOMAINNAME__";
subnet __NETADDRESS__ netmask __NETMASK__ {
option broadcast-address __BROADCAST__;
option routers __ADDRESS__;
option domain-name-servers __ADDRESS__;
option time-servers __ADDRESS__;
range dynamic-bootp __MINHOST__ __MAXHOST__;
}
# make sure we do not serve our own address
host localhost {
hardware ethernet de:ad:00:be:ef:00;
fixed-address __ADDRESS__;
}
include "/etc/dyndhcpd/ipxe-options.conf";
class "PXEClient" {
match if substring(option vendor-class-identifier, 0, 9) = "PXEClient";
allow booting;
allow bootp;
next-server __ADDRESS__;
# Disable ProxyDHCP, we're in control of the primary DHCP server.
option ipxe.no-pxedhcp 1;
# Make sure the iPXE we're loading supports what we need,
# if not load a full-featured version.
if exists ipxe.http
and exists ipxe.menu
and ((exists ipxe.pxe
and exists ipxe.bzimage
and exists ipxe.elf)
or (exists ipxe.efi)) {
# Everything is fine, just send the boot configuration file.
filename "http://__ADDRESS__:3928/default.ipxe";
} elsif exists user-class and option user-class = "iPXE" {
# We're already using iPXE, but not a feature-full version,
# and possibly an out-of-date version from ROM, so load a more
# complete version with native drivers.
if option arch = 00:06 {
filename "/ipxe/efi-i386.efi";
} elsif option arch = 00:07 {
filename "/ipxe/efi-x86_64.efi";
} else {
filename "/ipxe/ipxe.pxe";
}
} elsif exists user-class and option user-class = "gPXE" {
# If someone has an old version of gPXE burned into their ROM,
# load a more recent iPXE
filename "/ipxe/ipxe.pxe";
} elsif option arch = 00:06 {
filename "/ipxe/efi-i386.efi";
} elsif option arch = 00:07 {
filename "/ipxe/efi-x86_64.efi";
} else {
filename "/ipxe/ipxe.pxe";
}
}
|