michael@13: ## michael@13: ## dhcpd.conf -- ISC DHCP Daemon Configuration michael@13: ## michael@13: michael@13: # Options applicable to all subnets michael@13: option domain-name "example.com"; michael@13: authoritative; michael@13: default-lease-time 600; michael@13: max-lease-time 7200; michael@13: ddns-update-style none; michael@13: use-host-decl-names on; michael@13: michael@13: # Define some non-standard options michael@13: option freebsd-swappath code 128 = text; michael@13: option freebsd-rootopts code 130 = text; michael@13: option freebsd-swapopts code 131 = text; michael@13: michael@13: # Test drive using loopback michael@13: subnet 127.0.0.0 netmask 255.0.0.0 { michael@13: } michael@13: michael@13: # Define a particular sample subnet michael@13: subnet 192.168.1.0 netmask 255.255.255.0 { michael@13: michael@13: # Options applicable to this particular subnet michael@13: option broadcast-address 192.168.1.255; michael@13: option subnet-mask 255.255.255.0; michael@13: option routers 192.168.1.1; michael@13: option domain-name-servers 192.168.1.2; michael@13: michael@13: # Dynamic DNS (DDNS) Updating michael@13: ddns-updates off; michael@13: ddns-domainname "example.com"; michael@13: ddns-rev-domainname "in-addr.arpa"; michael@13: michael@13: # Pool of known clients (i.e. MAC known but IP not specified) michael@13: pool { michael@13: range 192.168.1.100 192.168.1.149; michael@13: min-lease-time 600; # 10min michael@13: default-lease-time 43200; # 12hour michael@13: max-lease-time 86400; # 24hour michael@13: deny unknown clients; michael@13: } michael@13: michael@13: # Pool of unknown clients (i.e. MAC not known) michael@13: pool { michael@13: range 192.168.1.150 192.168.1.199; michael@13: min-lease-time 300; # 5min michael@13: default-lease-time 3600; # 1hour michael@13: max-lease-time 10800; # 3hour michael@13: allow unknown clients; michael@13: } michael@13: } michael@13: michael@13: # The list of clients we explicitly configure michael@13: group { michael@13: # Just assign a fixed IP address for machine "quux1" michael@13: host quux1 { michael@13: hardware ethernet 01:02:03:00:00:01; michael@13: fixed-address 192.168.1.3; michael@13: } michael@13: michael@13: # Provide full boot information for a FreeBSD diskless client "quux2": michael@13: # On the server, create a 32MB swapfile /dlc/fs/swap/swap.192.168.1.4 michael@13: # with `dd if=/dev/zero of=swap.192.168.1.4 bs=1m count=32' and the michael@13: # filesystem /dlc/fs/quux2 with `cd /usr/src; make buildworld; make michael@13: # installworld DESTDIR=/dlc/fs/quux2'. Then use Etherboot for booting. michael@13: host quux2 { michael@13: hardware ethernet 01:02:03:00:00:02; michael@13: fixed-address 192.168.1.4; michael@13: next-server 192.168.1.2; michael@13: option tftp-server-name "192.168.1.2"; michael@13: filename "kernel.quux"; michael@13: always-reply-rfc1048 on; michael@13: option root-path "192.168.1.2:/dlc/fs/quux2"; michael@13: option freebsd-rootopts "rw,noatime"; michael@13: option swap-server 192.168.1.2; michael@13: option freebsd-swappath "192.168.1.2:/dlc/fs/swap"; michael@13: option freebsd-swapopts "sw"; michael@13: } michael@13: } michael@13: michael@13: # The list of clients we know, but which get IP addresses from pool michael@13: group { michael@13: host quux3 { hardware ethernet 01:02:03:00:00:03; } michael@13: host quux4 { hardware ethernet 01:02:03:00:00:04; } michael@13: } michael@13: