| From: Dax Kelson |
| To: Etherboot users list |
| Subject: [Etherboot-users] Example ISC DHCP v3 dhcpd.conf using conditional operations |
| Date: Wed, 13 Jun 2001 20:22:21 -0600 |
| |
| Hopefully someone will find this useful. I spent a long time tracking |
| down and figuring out all the pieces. To the powers that be, feel free to |
| stick this in contrib if you like it. |
| |
| Goal: Use the vendor-class-identifier and ISC DHCP v3 "match" option to |
| conditionally send proper options only when the DHCP discover/request from |
| etherboot comes in. We use static-MAC-to-IP mappings for classroom |
| computers, and dynamic dhcp ranges for other clients (student laptops, |
| etc). |
| |
| I used Etherboot 5.0.1 and the patch (required) in this email: |
| |
| http://www.geocrawler.com/lists/3/SourceForge/5299/0/5952625/ |
| |
| Furture versions of Etherboot will likely already have this patch |
| included. |
| |
| Dax Kelson |
| Guru Labs |
| |
| ######### Begin ISC DHCP v3 dhcpd.conf ############# |
| |
| ddns-update-style ad-hoc; |
| |
| # Global default, can be overridden |
| filename "/exports/kickstart/class1-rh7.1.ks"; |
| |
| # Define options for Etherboot |
| # There are more, these are just the ones I'm using |
| option ebootmagic code 128 = string; |
| option cmdline code 129 = string; |
| option menudflts code 160 = string; |
| option menuline1 code 192 = string; |
| option menuline2 code 193 = string; |
| option menuline3 code 194 = string; |
| option menuline4 code 195 = string; |
| option menuline5 code 196 = string; |
| option menuline6 code 197 = string; |
| option menuline7 code 198 = string; |
| option menuline8 code 199 = string; |
| option menuline9 code 200 = string; |
| option menuline10 code 201 = string; |
| option menuline11 code 202 = string; |
| option menuline12 code 203 = string; |
| option menuline13 code 204 = string; |
| option menuline14 code 205 = string; |
| option menuline15 code 206 = string; |
| option menuline16 code 207 = string; |
| option motdline1 code 184 = string; |
| |
| class "Etherboot" { |
| match if substring (option vendor-class-identifier, 0, 9) = "Etherboot"; |
| |
| option ebootmagic = E4:45:74:68:00:00; |
| |
| # We don't use this here, because different menu items require |
| # different cmdlines. In our ".nbi" files we specify the cmdlines |
| |
| # option cmdline = "ks initrd=initrd.img lang= devfs=nomount"; |
| |
| option motdline1 = "Welcome to Guru Labs classroom"; |
| |
| option menudflts = "timeout=30:default=192"; |
| |
| option menuline1 = "Boot from Hard Drive (Default):::/dev/hda:::"; |
| option menuline2 = "Boot from Floppy:::/dev/fd0:::"; |
| option menuline3 = "Boot from CDROM::::::"; |
| option menuline4 = "Kickstart install Red Hat 7.1:::rh71-ks-etherboot.nbi:::"; |
| option menuline5 = "Red Hat 7.1 network rescue:::rh71-rescue-etherboot.nbi:::"; |
| option menuline6 = "Boot Win98SE startup floppy:::win98se-startupdisk.nbi:::"; |
| option menuline7 = "Jumpstart install Solaris 8 (not working yet):::/dev/hda:::"; |
| option menuline8 = "Install Windows 98 SE (not working yet):::/dev/hda:::"; |
| option menuline9 = "Install Windows 2000 (not working yet):::/dev/hda:::"; |
| option menuline10 = "Install FreeBSD 4.3 (not working yet):::/dev/hda:::"; |
| option menuline11 = "Install OpenBSD 2.9 (not working yet):::/dev/hda:::"; |
| |
| # This is a hidden menu item, it should be password protected too |
| option menuline12 = "^[[3D^[[K^[[1A^M:::/dev/hda:::"; |
| |
| # We are using the menu, with different bootfiles. So we don't use this. |
| # If you weren't using a menu, you could use this override the global |
| # default "filename" setting. |
| |
| # filename "rh71-ks-etherboot"; |
| |
| # Use the following if etherboot compiled with -DREQUIRE_VCI_ETHERBOOT |
| |
| option vendor-encapsulated-options 3c:09:45:74:68:65:72:62:6f:6f:74:ff; |
| |
| } |
| |
| subnet 10.100.0.0 netmask 255.255.255.0 { |
| authoritative; |
| option routers 10.100.0.254; |
| option subnet-mask 255.255.255.0; |
| option domain-name "example.com"; |
| option domain-name-servers 10.100.0.254; |
| option time-offset -7; # US/Mountain |
| option ntp-servers 10.100.0.254; |
| range dynamic-bootp 10.100.0.175 10.100.0.250; |
| default-lease-time 21600; |
| max-lease-time 43200; |
| option netbios-name-servers 10.100.0.254; |
| option netbios-node-type 2; |
| use-host-decl-names on; |
| next-server server1.example.com; |
| |
| } |
| |
| host station1 { |
| hardware ethernet 00:01:03:de:57:e2; |
| fixed-address 10.100.0.1; |
| } |
| host station2 { |
| hardware ethernet 00:01:03:de:57:e7; |
| fixed-address 10.100.0.2; |
| } |
| host station3 { |
| hardware ethernet 00:01:03:de:57:b4; |
| fixed-address 10.100.0.3; |
| } |
| host station4 { |
| hardware ethernet 00:01:03:de:57:38; |
| fixed-address 10.100.0.4; |
| } |
| host station5 { |
| hardware ethernet 00:01:03:de:58:3d; |
| fixed-address 10.100.0.5; |
| } |
| |
| # |
| # Etc, etc |
| # |
| |
| ############## End ISC DHCP v3 dhcpd.conf ############# |