summaryrefslogtreecommitdiff
path: root/dhcp3
diff options
context:
space:
mode:
authorJonas Smedegaard <dr@jones.dk>2004-10-06 21:02:12 +0000
committerJonas Smedegaard <dr@jones.dk>2004-10-06 21:02:12 +0000
commitdd572eae7639d05066e3d3f8fcde8988f5dbc7b1 (patch)
tree90f986bcb5f1cf21556478fe591942bce80ec666 /dhcp3
parentfa78451ebd444f11e98f81df5265e3c7415ef7fa (diff)
Add somewhat generic dhcpd addon snippets.
Diffstat (limited to 'dhcp3')
-rw-r--r--dhcp3/README22
-rwxr-xr-xdhcp3/dhcp3-cilent.cf19
-rw-r--r--dhcp3/dhcpd.etherboot73
-rw-r--r--dhcp3/dhcpd.etherboot-legacy83
-rw-r--r--dhcp3/dhcpd.etherboot-pxe29
-rw-r--r--dhcp3/dhcpd.etherboot-udhcp97
-rw-r--r--dhcp3/dhcpd.fai4
-rw-r--r--dhcp3/dhcpd.grub36
-rw-r--r--dhcp3/dhcpd.macintosh12
-rw-r--r--dhcp3/dhcpd.pxe31
-rw-r--r--dhcp3/dhcpd.pxe.host13
-rw-r--r--dhcp3/dhcpd.pxe.host-mcast12
-rw-r--r--dhcp3/dhcpd.pxelinux9
-rw-r--r--dhcp3/dhcpd.pxelinux.host18
-rw-r--r--dhcp3/dhcpd.wpad10
15 files changed, 468 insertions, 0 deletions
diff --git a/dhcp3/README b/dhcp3/README
new file mode 100644
index 0000000..88d00e0
--- /dev/null
+++ b/dhcp3/README
@@ -0,0 +1,22 @@
+These are general preparation for support of each feature:
+
+ dhcpd.etherboot
+ dhcpd.fai
+ dhcpd.pxe
+ dhcpd.pxelinux
+ ...
+
+They must not introduce configuration parameters that interfere with
+other hosts. Ideally they must not conflict with each other, but that
+may be unavoidable (at least include a note about conflicting files).
+
+
+These are host-specific option, that must be included within a host or
+group clause:
+
+ dhcpd.etherboot.host
+ dhcpd.etherboot.host-udhcp
+ dhcpd.pxe.host
+ dhcpd.pxe.host-mcast
+ dhcpd.pxelinux.host
+ ...
diff --git a/dhcp3/dhcp3-cilent.cf b/dhcp3/dhcp3-cilent.cf
new file mode 100755
index 0000000..4231416
--- /dev/null
+++ b/dhcp3/dhcp3-cilent.cf
@@ -0,0 +1,19 @@
+#! /usr/bin/cfengine -qf
+
+control:
+ OutputPrefix = ("${cf_prefix}")
+ actionsequence = ( editfiles )
+ EditfileSize = ( 10000 )
+
+editfiles:
+ any::
+ { /etc/dhcp3/dhclient-script
+ #
+ # Set hostname to reverse lookup of IP
+ #
+ WarnIfNoLineMatching "^[[:blank:]]+([A-Z]+\|)*BOUND(\|[A-Z]+)*\)"
+ LocateLineMatching "^[[:blank:]]+([A-Z]+\|)*BOUND(\|[A-Z]+)*\)"
+ BeginGroupIfNoLineMatching "^AllowShutdown=All"
+ ReplaceLineWith "AllowShutdown=All"
+ EndGroup
+ }
diff --git a/dhcp3/dhcpd.etherboot b/dhcp3/dhcpd.etherboot
new file mode 100644
index 0000000..1f3ef62
--- /dev/null
+++ b/dhcp3/dhcpd.etherboot
@@ -0,0 +1,73 @@
+# This ISC dhcpd 3.x config snippet is inspired by initrd code in
+# contrib area of etherboot source (dhcpd.conf.etherboot.include).
+
+# Usage:
+#
+# include "/etc/local-COMMON/dhcp3/dhcpd.etherboot";
+#
+# # (...common options...)
+#
+# # Accepted hosts (syntax is "1:" + MAC address)
+# subclass "etherboot-hosts" 00:01:02:03:04:05;
+# subclass "etherboot-hosts" 00:01:02:03:04:06 { fixed-address 192.168.1.101; another-option "bla bla"; }
+#
+
+# image-n syntax: "label:server:gateway:filename:passwd:flags:cmdline"
+
+option space etherboot;
+
+option etherboot.extensions-path code 18 = string;
+option etherboot.magic code 128 = string;
+option etherboot.kernel-cmdline code 129 = text;
+option etherboot.netdevice code 130 = text; # Root NFS device for multihomed diskless clients (example: "eth1")
+option etherboot.menu-opts code 160 = text;
+option etherboot.nic-dev-id code 175 = string;
+option etherboot.menu-selection code 176 = unsigned integer 8;
+option etherboot.motd-1 code 184 = text;
+option etherboot.motd-2 code 185 = text;
+option etherboot.motd-3 code 186 = text;
+option etherboot.motd-4 code 187 = text;
+option etherboot.motd-5 code 188 = text;
+option etherboot.motd-6 code 189 = text;
+option etherboot.motd-7 code 190 = text;
+option etherboot.motd-8 code 191 = text;
+option etherboot.image-1 code 192 = text;
+option etherboot.image-2 code 193 = text;
+option etherboot.image-3 code 194 = text;
+option etherboot.image-4 code 195 = text;
+option etherboot.image-5 code 196 = text;
+option etherboot.image-6 code 197 = text;
+option etherboot.image-7 code 198 = text;
+option etherboot.image-8 code 199 = text;
+option etherboot.image-9 code 200 = text;
+option etherboot.image-10 code 201 = text;
+option etherboot.image-11 code 202 = text;
+option etherboot.image-12 code 203 = text;
+option etherboot.image-13 code 204 = text;
+option etherboot.image-14 code 205 = text;
+option etherboot.image-15 code 206 = text;
+option etherboot.image-16 code 207 = text;
+option etherboot.kmod code 254 = string;
+
+#class "etherboot-hosts" {
+# match pick-first-value (option dhcp-client-identifier, hardware);
+#}
+
+# Etherboot sends a string to identify the NIC in etherboot.nic-dev-id.
+# For PCI NICs, this string is of the form "PCI:vvvv:dddd" where vvvv is the
+# vendor identifier and dddd the device identifier, in lower-case ASCII hex.
+#
+# Normally you simply include the file generated by mknbi-set.
+#
+# Here's a sample output of that tool:
+#
+#if substring ( option vendor-class-identifier, 0, 9 ) = "Etherboot" {
+# if exists etherboot.nic-dev-id {
+# # Legacy nic-dev-id mechanism: there are some DLink DFE538 cards in circulation that
+# # predated the change to the new nic-dev-id binary structure
+# if option etherboot.nic-dev-id = "PCI:1186:1300" { option etherboot.kmod "8139too"; }
+#
+# # Generated from mknbi-set.conf
+#
+# }
+#}
diff --git a/dhcp3/dhcpd.etherboot-legacy b/dhcp3/dhcpd.etherboot-legacy
new file mode 100644
index 0000000..0261498
--- /dev/null
+++ b/dhcp3/dhcpd.etherboot-legacy
@@ -0,0 +1,83 @@
+# Legacy site-local option support
+# If client does not include an etherboot-encapsulated-options field in its DHCPREQUEST, then
+# it will not understand etherboot-encapsulated-options in the DHCPACK and so we must send
+# back the options as site-local options (i.e. not encapsulated).
+# Note: we need do this only for options that existed prior to the switch to encapsulation.
+#
+# For some reason the encapsulation option makes isc-dhcpd-V3.0.1rc11
+# crash (too much info encapsulated?).
+
+option etherboot-encapsulated-options code 150 = encapsulate etherboot;
+
+# Some of these options are untested and may clash with reserved code
+# numbers when legacy, so they have been commented out here.
+
+#option legacy-etherboot-extensions-path code 18 = string;
+option legacy-etherboot-magic code 128 = string;
+option legacy-etherboot-kernel-cmdline code 129 = string;
+#option legacy-etherboot-netdevice code 130 = text;
+option legacy-etherboot-menu-opts code 160 = string;
+option legacy-etherboot-menu-selection code 176 = unsigned integer 8;
+option legacy-etherboot-motd-1 code 184 = string;
+option legacy-etherboot-motd-2 code 185 = string;
+option legacy-etherboot-motd-3 code 186 = string;
+option legacy-etherboot-motd-4 code 187 = string;
+option legacy-etherboot-motd-5 code 188 = string;
+option legacy-etherboot-motd-6 code 189 = string;
+option legacy-etherboot-motd-7 code 190 = string;
+option legacy-etherboot-motd-8 code 191 = string;
+option legacy-etherboot-image-1 code 192 = string;
+option legacy-etherboot-image-2 code 193 = string;
+option legacy-etherboot-image-3 code 194 = string;
+option legacy-etherboot-image-4 code 195 = string;
+option legacy-etherboot-image-5 code 196 = string;
+option legacy-etherboot-image-6 code 197 = string;
+option legacy-etherboot-image-7 code 198 = string;
+option legacy-etherboot-image-8 code 199 = string;
+option legacy-etherboot-image-9 code 200 = string;
+option legacy-etherboot-image-10 code 201 = string;
+option legacy-etherboot-image-11 code 202 = string;
+option legacy-etherboot-image-12 code 203 = string;
+option legacy-etherboot-image-13 code 204 = string;
+option legacy-etherboot-image-14 code 205 = string;
+option legacy-etherboot-image-15 code 206 = string;
+option legacy-etherboot-image-16 code 207 = string;
+#option legacy-etherboot-kmod code 254 = string;
+
+if (
+ ( substring ( option vendor-class-identifier, 0, 9 ) = "Etherboot" )
+ and
+ ( not exists etherboot-encapsulated-options )
+) {
+# option legacy-etherboot-extensions-path = config-option etherboot.extensions-path;
+ option legacy-etherboot-magic = config-option etherboot.magic;
+ option legacy-etherboot-kernel-cmdline = config-option etherboot.kernel-cmdline;
+# option legacy-etherboot-netdevice = config-option etherboot.netdevice;
+ option legacy-etherboot-menu-opts = config-option etherboot.menu-opts;
+ option legacy-etherboot-menu-selection = config-option etherboot.menu-selection;
+ option legacy-etherboot-motd-1 = config-option etherboot.motd-1;
+ option legacy-etherboot-motd-2 = config-option etherboot.motd-2;
+ option legacy-etherboot-motd-3 = config-option etherboot.motd-3;
+ option legacy-etherboot-motd-4 = config-option etherboot.motd-4;
+ option legacy-etherboot-motd-5 = config-option etherboot.motd-5;
+ option legacy-etherboot-motd-6 = config-option etherboot.motd-6;
+ option legacy-etherboot-motd-7 = config-option etherboot.motd-7;
+ option legacy-etherboot-motd-8 = config-option etherboot.motd-8;
+ option legacy-etherboot-image-1 = config-option etherboot.image-1;
+ option legacy-etherboot-image-2 = config-option etherboot.image-2;
+ option legacy-etherboot-image-3 = config-option etherboot.image-3;
+ option legacy-etherboot-image-4 = config-option etherboot.image-4;
+ option legacy-etherboot-image-5 = config-option etherboot.image-5;
+ option legacy-etherboot-image-6 = config-option etherboot.image-6;
+ option legacy-etherboot-image-7 = config-option etherboot.image-7;
+ option legacy-etherboot-image-8 = config-option etherboot.image-8;
+ option legacy-etherboot-image-9 = config-option etherboot.image-9;
+ option legacy-etherboot-image-10 = config-option etherboot.image-10;
+ option legacy-etherboot-image-11 = config-option etherboot.image-11;
+ option legacy-etherboot-image-12 = config-option etherboot.image-12;
+ option legacy-etherboot-image-13 = config-option etherboot.image-13;
+ option legacy-etherboot-image-14 = config-option etherboot.image-14;
+ option legacy-etherboot-image-15 = config-option etherboot.image-15;
+ option legacy-etherboot-image-16 = config-option etherboot.image-16;
+# option legacy-etherboot-kmod = config.option etherboot.kmod;
+}
diff --git a/dhcp3/dhcpd.etherboot-pxe b/dhcp3/dhcpd.etherboot-pxe
new file mode 100644
index 0000000..e953208
--- /dev/null
+++ b/dhcp3/dhcpd.etherboot-pxe
@@ -0,0 +1,29 @@
+# This ISC dhcpd 3.x config snippet is inspired by initrd code in
+# contrib area of etherboot source (dhcpd.conf.etherboot.include).
+
+# Usage:
+#
+# include "/etc/local-COMMON/dhcp3/dhcpd.etherboot";
+# include "/etc/local-COMMON/dhcp3/dhcpd.etherboot-pxe";
+#
+# (...common options...)
+#
+# subclass "etherboot-pxe-hosts" 00:01:02:03:04:05;
+# subclass "etherboot-pxe-hosts" 00:01:02:03:04:06 { fixed-address 192.168.1.101; another-option "bla bla"; }
+# subclass "etherboot-pxe-hosts" 00:01:02:03:04:06 {
+# fixed-address 192.168.1.101;
+# another-option "bla bla";
+# if substring (option vendor-class-identifier, 0, 9) = "PXEClient" {
+# filename "/tftpboot/eepro100.lzpxe";
+# }
+# }
+#
+
+if substring (option vendor-class-identifier, 0, 9) = "PXEClient" {
+ filename "/tftpboot/eepro100.lzpxe";
+ } else if substring (option vendor-class-identifier, 0, 9) = "Etherboot" {
+ filename "/tftpboot/lts/vmlinuz-test.nbi";
+ option vendor-encapsulated-options
+ 3c:09:45:74:68:65:72:62:6f:6f:74:ff;
+ }
+}
diff --git a/dhcp3/dhcpd.etherboot-udhcp b/dhcp3/dhcpd.etherboot-udhcp
new file mode 100644
index 0000000..9a3e442
--- /dev/null
+++ b/dhcp3/dhcpd.etherboot-udhcp
@@ -0,0 +1,97 @@
+# This ISC dhcpd 3.x config snippet is inspired by initrd code in
+# contrib area of etherboot source (dhcpd.conf.etherboot.include).
+
+# Usage:
+#
+# include "/etc/local-COMMON/dhcp3/dhcpd.etherboot";
+# include "/etc/local-COMMON/dhcp3/dhcpd.etherboot-udhcp";
+# include "/etc/local/dhcpd.conf.etherboot-pcimap.include"; # file generated by mknbi-set
+#
+# (...common options...)
+#
+# subclass "etherboot-udhcp-hosts" 00:01:02:03:04:05;
+# subclass "etherboot-udhcp-hosts" 00:01:02:03:04:06 { fixed-address 192.168.1.101; another-option "bla bla"; }
+#
+
+class "etherboot-udhcp-hosts" {
+ match pick-first-value (option dhcp-client-identifier, hardware);
+}
+
+# Apply Etherboot options only for Etherboot clients
+#
+if substring ( option vendor-class-identifier, 0, 9 ) = "Etherboot" {
+
+ # We must specify this value for etherboot-magic, or Etherboot will
+ # ignore all other options.
+ #
+ option etherboot.magic E4:45:74:68:00:00;
+
+ # Bootfile name: derive from etherboot.kmod (calculated below)
+ # Use boot.nbi if no NIC_DEV_ID option present
+ # (i.e. if etherboot.kmod doesn't get set)
+ # Also pass filename back in filename field
+ #
+ option bootfile-name = pick-first-value (
+ concat (
+ "boot-",
+ config-option etherboot.kmod,
+ ".nbi"
+ ),
+ "boot.nbi"
+ ) ;
+ filename = config-option bootfile-name;
+
+ # "Sensible" default values for some options
+
+ # Mount devfs (will probably be needed for a network-boot)
+ option etherboot.kernel-cmdline " devfs=mount";
+
+ # Info message (includes client IP address, MAC address, hardware ID string,
+ # server IP address and name of boot file)
+ option etherboot.motd-4 = concat (
+ "Using Etherboot to boot ",
+ binary-to-ascii ( 10, 8, ".", leased-address ),
+ " [",
+ binary-to-ascii ( 16, 8, ":", suffix ( hardware, 6 ) ),
+ "] [",
+ pick-first-value ( option etherboot.nic-dev-id, "unknown card" ),
+ "]", 0d:0a, " from ",
+ binary-to-ascii ( 10, 8, ".", option dhcp-server-identifier ),
+ " with file ",
+ config-option tftp-server-name,
+ ":",
+ config-option bootfile-name,
+ " [",
+ pick-first-value ( config-option etherboot.kmod, "unknown module" ),
+ "]", 0d:0a
+ );
+}
+
+# Some options should be set for both Etherboot and the udhcpc client
+#
+if (
+ ( substring ( option vendor-class-identifier, 0, 9 ) = "Etherboot" )
+ or
+ ( substring ( option vendor-class-identifier, 0, 5 ) = "udhcp" )
+) {
+
+ # TFTP server defaults to DHCP server and is specified in both
+ # next-server field and tftp-server-name option field
+ #
+ option tftp-server-name = binary-to-ascii ( 10, 8, ".", config-option dhcp-server-identifier );
+ server-name = config-option tftp-server-name;
+ next-server = config-option dhcp-server-identifier;
+
+ # Root path defaults to root of TFTP server
+ option root-path = concat ( config-option tftp-server-name, ":/" );
+
+ # A fallback hostname, generated from the IP address
+ option host-name = concat ( "client_", binary-to-ascii ( 10, 8, "_", leased-address ) );
+}
+
+# Force some items onto parameter request list for udhcp
+#
+if substring ( option vendor-class-identifier, 0, 5 ) = "udhcp" {
+ # Forcibly add root-path to list
+ option dhcp-parameter-request-list = concat ( option dhcp-parameter-request-list, 11 );
+}
diff --git a/dhcp3/dhcpd.fai b/dhcp3/dhcpd.fai
new file mode 100644
index 0000000..bf576bb
--- /dev/null
+++ b/dhcp3/dhcpd.fai
@@ -0,0 +1,4 @@
+# FAI (Fully Automated Install) options
+option fai-location code 170 = text;
+option fai-action code 171 = text;
+option fai-flags code 172 = text;
diff --git a/dhcp3/dhcpd.grub b/dhcp3/dhcpd.grub
new file mode 100644
index 0000000..a8ac453
--- /dev/null
+++ b/dhcp3/dhcpd.grub
@@ -0,0 +1,36 @@
+# GRUB (GRand Unified Boot-loader) options
+
+# Usage:
+# Make a symlink from "/usr/share/grub-net/" to "/tftpboot/grub/", and
+# place a GRUB menu file at "/tftpboot/grub-hosts/menu.lst" (see
+# /usr/share/doc/grub-net/examples/menu.lst for an example).
+# Note that symlinks won't work if using chroot with tftp (which is much
+# recommended!) - copy pxegrub-all and nbgrub-all instead.
+
+# # Normal options first (including default filename, if any)
+# subnet 192.168.101.0 netmask 255.255.255.0 {
+# option broadcast-address 192.168.101.0;
+# option subnet-mask 255.255.255.0;
+# range 192.168.101.101 192.168.101.199;
+# }
+#
+# include "/etc/local-common/dhcp3/dhcpd.grub";
+#
+# # Accepted hosts (syntax is "1:" + MAC address)
+# subclass "grub-hosts" 1:00:50:ba:8b:c2:7b;
+# subclass "grub-hosts" 1:00:01:02:0a:0b:0c { fixed-address 192.168.1.101; another-option "bla bla"; }
+
+option grub-configfile code 150 = text;
+
+class "grub-hosts" {
+ match pick-first-value (option dhcp-client-identifier, hardware);
+
+ if substring (option vendor-class-identifier, 0, 9) = "PXEClient" {
+ filename "grub/pxegrub-all";
+ } else if substring (option vendor-class-identifier, 0, 9) = "Etherboot" {
+ filename "grub/nbgrub-all";
+ option vendor-encapsulated-options 3c:09:45:74:68:65:72:62:6f:6f:74:ff;
+ } else {
+ option grub-configfile "(nd)/grub-hosts/menu.lst";
+ }
+}
diff --git a/dhcp3/dhcpd.macintosh b/dhcp3/dhcpd.macintosh
new file mode 100644
index 0000000..01d56a2
--- /dev/null
+++ b/dhcp3/dhcpd.macintosh
@@ -0,0 +1,12 @@
+# Open Transport 2.5.1 and 2.5.2 fails with lease times larger than 1 hour
+class "Macintosh_a" {
+if (
+ ( substring (hardware, 0, 3) = 00:05:02 )
+ or
+ ( (hardware, 0, 3) = 00:61:61 )
+) {
+
+ default-lease-time 3599;
+ max-lease-time 3599;
+ min-lease-time 3599;
+}
diff --git a/dhcp3/dhcpd.pxe b/dhcp3/dhcpd.pxe
new file mode 100644
index 0000000..75f3489
--- /dev/null
+++ b/dhcp3/dhcpd.pxe
@@ -0,0 +1,31 @@
+# This ISC dhcpd 3.x config snippet is inspired by the following:
+# http://www.bpbatch.org/docs/linux.html
+
+# TODO: Otpmize to different releases of PXE.
+# According to http://cui.unige.ch/info/pc/remote-boot/howto-3.html
+# "PXE 2.0 bootroms can only receive option 128-135".
+
+# Definition of PXE-specific options
+# Code 1: Multicast IP address of bootfile
+# Code 2: UDP port that client should monitor for MTFTP responses
+# Code 3: UDP port that MTFTP servers are using to listen
+# for MTFTP requests
+# Code 4: Number of secondes a client must listen for activity before
+# trying to start a new MTFTP transfer
+# Code 5: Number of secondes a client must listen before trying to
+# restart a MTFTP transfer
+option space PXE;
+option PXE.mtftp-ip code 1 = ip-address;
+option PXE.mtftp-cport code 2 = unsigned integer 16;
+option PXE.mtftp-sport code 3 = unsigned integer 16;
+option PXE.mtftp-tmout code 4 = unsigned integer 8;
+option PXE.mtftp-delay code 5 = unsigned integer 8;
+
+# Sample host config
+#host pxetest1 {
+# hardware ethernet 00:01:02:03:04:05;
+# fixed-address 192.168.1.101;
+# next-server 192.168.1.2;
+# filename "pxelinux.0";
+# include "/etc/local-COMMON/dhcp3/dhcpd.pxe.host";
+#}
diff --git a/dhcp3/dhcpd.pxe.host b/dhcp3/dhcpd.pxe.host
new file mode 100644
index 0000000..05c2399
--- /dev/null
+++ b/dhcp3/dhcpd.pxe.host
@@ -0,0 +1,13 @@
+# Host-specific PXE options
+class "pxe" {
+ match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
+
+ # Keep identifier
+ option vendor-class-identifier "PXEClient";
+
+ # At least one of the vendor-specific option must be set. We set
+ # the MCAST IP address to 0.0.0.0 to tell the bootrom to still use
+ # TFTP (address 0.0.0.0 is considered as "no address")
+ option PXE.mtftp-ip 0.0.0.0;
+ vendor-option-space PXE;
+}
diff --git a/dhcp3/dhcpd.pxe.host-mcast b/dhcp3/dhcpd.pxe.host-mcast
new file mode 100644
index 0000000..158e237
--- /dev/null
+++ b/dhcp3/dhcpd.pxe.host-mcast
@@ -0,0 +1,12 @@
+# Host-specific PXE options
+class "pxeclients" {
+ match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
+
+ # Keep identifier
+ option vendor-class-identifier "PXEClient";
+
+ option PXE.mtftp-ip 224.1.5.1;
+ option PXE.mtftp-cport 1758;
+ option PXE.mtftp-sport 1759;
+ vendor-option-space PXE;
+}
diff --git a/dhcp3/dhcpd.pxelinux b/dhcp3/dhcpd.pxelinux
new file mode 100644
index 0000000..c8af5a8
--- /dev/null
+++ b/dhcp3/dhcpd.pxelinux
@@ -0,0 +1,9 @@
+# This ISC dhcpd 3.x config snippet is inspired by pxelinux.doc,
+# part of the syslinux software package.
+# Hint: Other goodies here: http://syslinux.zytor.com/hardware.php
+
+option space pxelinux;
+option pxelinux.magic code 208 = string;
+option pxelinux.configfile code 209 = text;
+option pxelinux.pathprefix code 210 = text;
+option pxelinux.reboottime code 211 = unsigned integer 32;
diff --git a/dhcp3/dhcpd.pxelinux.host b/dhcp3/dhcpd.pxelinux.host
new file mode 100644
index 0000000..33d0c19
--- /dev/null
+++ b/dhcp3/dhcpd.pxelinux.host
@@ -0,0 +1,18 @@
+class "pxeclient" {
+ match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
+
+ # Always include the following lines for all PXELINUX clients
+ site-option-space "pxelinux";
+ option pxelinux.magic f1:00:74:7e;
+ if exists dhcp-parameter-request-list {
+ # Always send the PXELINUX options
+ append dhcp-parameter-request-list 208, 209, 210, 211;
+ }
+
+ # Allow config based on MAC address
+ option pxelinux.configfile = concat("/pxelinux.cfg/", binary-to-ascii(16, 8, ":", hardware));
+
+ # Load pxelinux from subfolder (make that a symlink to the actual location of syslinux binaries)
+ filename "/pxelinux/pxelinux.0";
+ option pxelinux.pathprefix "/";
+}
diff --git a/dhcp3/dhcpd.wpad b/dhcp3/dhcpd.wpad
new file mode 100644
index 0000000..33bae60
--- /dev/null
+++ b/dhcp3/dhcpd.wpad
@@ -0,0 +1,10 @@
+# Web Proxy Auto-Discovery Protocol (described in RFC 3040, used in
+# Microsoft Internet Explorer 5.0 and later and maybe Mozilla).
+option wpad-url code 252 = text;
+
+# Sample domain config
+
+# Beware that Microsoft Internet Explorer resolves hostname ahead,
+# (A record if CNAME record provided, and raw IP if A record provided),
+# so use the default web host if serving name-based virtual hosts.
+#option auto-proxy-config "http://wpad.example.net/wpad.pac";