-
-
Save x-drum/b74f940ff0116fc4efc3 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ddns-update-style none; | |
deny bootp; #default | |
authoritative; | |
include "/etc/dhcp/ipxe-option-space.conf"; | |
# GREEN | |
subnet 10.1.1.0 netmask 255.255.255.0 { | |
range 10.1.1.100 10.1.1.199; | |
option subnet-mask 255.255.255.0; | |
option routers 10.1.1.1; | |
default-lease-time 3600; | |
max-lease-time 7200; | |
option domain-name "smidsrod.lan"; | |
option domain-search "smidsrod.lan"; | |
option domain-name-servers 10.1.1.1; | |
option netbios-dd-server 10.1.1.2; | |
option netbios-name-servers 10.1.1.2; | |
option netbios-node-type 0x8; | |
option log-servers 10.1.1.2; | |
option lpr-servers 10.1.1.8; | |
include "/etc/dhcp/ipxe-green.conf"; | |
} | |
use-host-decl-names on; | |
include "/etc/dhcp/static.conf"; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
allow bootp; | |
allow booting; | |
next-server 10.1.1.2; # core.smidsrod.lan | |
# 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.nfs | |
and ( ( exists ipxe.pxe | |
and exists ipxe.bzimage | |
and exists ipxe.elf | |
and exists ipxe.comboot | |
and exists ipxe.iscsi | |
) or ( | |
exists ipxe.efi | |
) ) { | |
filename "nfs://nas.smidsrod.lan/raid/boot/boot.ipxe"; | |
#filename "http://boot.smidsrod.lan/boot.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 | |
# Allow both legacy BIOS and EFI architectures | |
if option arch = 00:06 { | |
filename "ipxe-x86.efi"; | |
} elsif option arch = 00:07 { | |
filename "ipxe-x64.efi"; | |
} elsif option arch = 00:00 { | |
filename "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.pxe"; | |
} | |
elsif option arch = 00:06 { | |
# EFI 32-bit | |
# I like to use iPXE-provided drivers, so therefore give ipxe.efi | |
# to all non-iPXE clients, use snponly.efi if you have unsupported | |
# or misbehaving NICs | |
filename "ipxe-x86.efi"; | |
#filename "snponly-x86.efi"; | |
} | |
elsif option arch = 00:07 { | |
# EFI 64-bit | |
# I like to use iPXE-provided drivers, so therefore give ipxe.efi | |
# to all non-iPXE clients, use snponly.efi if you have unsupported | |
# or misbehaving NICs | |
filename "ipxe-x64.efi"; | |
#filename "snponly-x64.efi"; | |
} | |
elsif option arch = 00:00 { | |
# Legacy BIOS x86 mode | |
# I like to use iPXE-provided drivers, so therefore give ipxe.pxe | |
# to all non-iPXE clients, use undionly.kpxe if you have unsupported | |
# or misbehaving NICs | |
filename "ipxe.pxe"; | |
#filename "undionly.kpxe"; | |
} | |
else { | |
# Unsupported client architecture type, so do nothing | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Declare the iPXE/gPXE/Etherboot option space | |
option space ipxe; | |
option ipxe-encap-opts code 175 = encapsulate ipxe; | |
# iPXE options, can be set in DHCP response packet | |
option ipxe.priority code 1 = signed integer 8; | |
option ipxe.keep-san code 8 = unsigned integer 8; | |
option ipxe.skip-san-boot code 9 = unsigned integer 8; | |
option ipxe.syslogs code 85 = string; | |
option ipxe.cert code 91 = string; | |
option ipxe.privkey code 92 = string; | |
option ipxe.crosscert code 93 = string; | |
option ipxe.no-pxedhcp code 176 = unsigned integer 8; | |
option ipxe.bus-id code 177 = string; | |
option ipxe.bios-drive code 189 = unsigned integer 8; | |
option ipxe.username code 190 = string; | |
option ipxe.password code 191 = string; | |
option ipxe.reverse-username code 192 = string; | |
option ipxe.reverse-password code 193 = string; | |
option ipxe.version code 235 = string; | |
option iscsi-initiator-iqn code 203 = string; | |
# iPXE feature flags, set in DHCP request packet | |
option ipxe.pxeext code 16 = unsigned integer 8; | |
option ipxe.iscsi code 17 = unsigned integer 8; | |
option ipxe.aoe code 18 = unsigned integer 8; | |
option ipxe.http code 19 = unsigned integer 8; | |
option ipxe.https code 20 = unsigned integer 8; | |
option ipxe.tftp code 21 = unsigned integer 8; | |
option ipxe.ftp code 22 = unsigned integer 8; | |
option ipxe.dns code 23 = unsigned integer 8; | |
option ipxe.bzimage code 24 = unsigned integer 8; | |
option ipxe.multiboot code 25 = unsigned integer 8; | |
option ipxe.slam code 26 = unsigned integer 8; | |
option ipxe.srp code 27 = unsigned integer 8; | |
option ipxe.nbi code 32 = unsigned integer 8; | |
option ipxe.pxe code 33 = unsigned integer 8; | |
option ipxe.elf code 34 = unsigned integer 8; | |
option ipxe.comboot code 35 = unsigned integer 8; | |
option ipxe.efi code 36 = unsigned integer 8; | |
option ipxe.fcoe code 37 = unsigned integer 8; | |
option ipxe.vlan code 38 = unsigned integer 8; | |
option ipxe.menu code 39 = unsigned integer 8; | |
option ipxe.sdi code 40 = unsigned integer 8; | |
option ipxe.nfs code 41 = unsigned integer 8; | |
# Other useful general options | |
# http://www.ietf.org/assignments/dhcpv6-parameters/dhcpv6-parameters.txt | |
option arch code 93 = unsigned integer 16; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment