# # Sample configuration file for ISC dhcpd for Debian # with multi-architecture netbooting, for di-netboot-assistant # # $Id: 65a32a406951055e2afb337984aa526d7304bc0a $ # # The ddns-updates-style parameter controls whether or not the server will # attempt to do a DNS update when a lease is confirmed. We default to the # behavior of the version 2 packages ('none', since DHCP v2 didn't # have support for DDNS.) ddns-update-style none; # option definitions common to all supported networks... option domain-name "example.org"; option domain-name-servers ns1.example.org, ns2.example.org; default-lease-time 600; max-lease-time 7200; # If this DHCP server is the official DHCP server for the local # network, the authoritative directive should be uncommented. #authoritative; # Use this to send dhcp log messages to a different log file (you also # have to hack syslog.conf to complete the redirection). log-facility local7; # ### Some options for Network boot (PXE) ### # Declare pxelinux specific options _names_ (before we use them). option space pxelinux; option pxelinux.magic code 208 = string; # = 0xd0 option pxelinux.configfile code 209 = text; # = 0xd1 option pxelinux.pathprefix code 210 = text; # = 0xd2 option pxelinux.reboottime code 211 = unsigned integer 32; # = 0xd3 # (see syslinux's /usr/share/doc/syslinux/pxelinux.txt.gz) ## The tftpd server IP address, for all clients. #next-server <<>>; next-server 192.168.0.11; # Default netboot filename for (bootp, and other non-PXE clients) filename "enter-your-default-di-netboot-imagename-here" class "pxeclient" { match if substring (option vendor-class-identifier, 0, 9) = "PXEClient"; ## Only PXE clients, will get those options ## (when they are _actually_ net-booting from their PXE agent). site-option-space "pxelinux"; option pxelinux.magic f1:00:74:7e; #option pxelinux.reboottime 0; ## x86 (i386, amd64, x86_64, IA32) architectures. if substring (option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00000" { #filename "d-i/n-a/etch/i386/pxelinux.0"; #option pxelinux.configfile "d-i/n-a/etch/i386/pxelinux.cfg/default"; ## If you want to use the meta menu : filename "d-i/n-a/pxelinux.0"; option pxelinux.configfile "::d-i/n-a/pxelinux.cfg/default"; #or# option pxelinux.configfile "::d-i/n-a/pxelinux.cfg/default.serial-9600"; } if exists dhcp-parameter-request-list { # We Always send the PXELINUX options (values are in hexadecimal: 0xd0=208) option dhcp-parameter-request-list = concat(option dhcp-parameter-request-list,d0,d1,d2,d3); } } class "sun" { match if substring (option vendor-class-identifier, 0, 5) = "SUNW."; # Needs improvements: some Sun have x86 CPUs !! # uname -i : "SUNW.SPARCstation", "SUNW.Ultra", "SUNW.Sun-Blade", "SUNW.Sun-Fire"... # Replace "stable" with the actual boot image you want to boot. filename "d-i/n-a/stable/sparc/boot.img"; } subnet 192.168.0.0 netmask 255.255.255.0 { # Adjust your modem/router's IP address here. option routers 192.168.0.1; range 192.168.0.81 192.168.0.91 # If your dhcp server isn't configured with fixed IP address, # use this hack (replace with the DHCP server's MAC adress): #host mydhcpserver { # hardware ethernet 00:15:58:01:23:45; # fixed-address 192.168.0.10; #} } # The "deny unknown-clients;", the "host" declaration and "authoritative" # allow to have two dhcp server runing side by side (one for PXE agent # booting, and one for Debian/Linux boot) #deny unknown-clients; #group { # # a group for some hppa systems # filename "d-i/n-a/stable/hppa/boot.img"; # # host myhost1 { hardware ethernet 00:40:63:d8:02:2c; } # host myhost2 { hardware ethernet 00:40:63:d8:2c:02; } #} } # No service will be given on this subnet, but declaring it helps the # DHCP server to understand the network topology. #subnet 10.152.187.0 netmask 255.255.255.0 { #} # This is a very basic subnet declaration. #subnet 10.254.239.0 netmask 255.255.255.224 { # range 10.254.239.10 10.254.239.20; # option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org; #} # This declaration allows BOOTP clients to get dynamic addresses, # which we don't really recommend. #subnet 10.254.239.32 netmask 255.255.255.224 { # range dynamic-bootp 10.254.239.40 10.254.239.60; # option broadcast-address 10.254.239.31; # option routers rtr-239-32-1.example.org; #} # A slightly different configuration for an internal subnet. #subnet 10.5.5.0 netmask 255.255.255.224 { # range 10.5.5.26 10.5.5.30; # option domain-name-servers ns1.internal.example.org; # option domain-name "internal.example.org"; # option routers 10.5.5.1; # option broadcast-address 10.5.5.31; # default-lease-time 600; # max-lease-time 7200; #} # Hosts which require special configuration options can be listed in # host statements. If no address is specified, the address will be # allocated dynamically (if possible), but the host-specific information # will still come from the host declaration. #host passacaglia { # hardware ethernet 0:0:c0:5d:bd:95; # filename "vmunix.passacaglia"; # server-name "toccata.fugue.com"; #} # Fixed IP addresses can also be specified for hosts. These addresses # should not also be listed as being available for dynamic assignment. # Hosts for which fixed IP addresses have been specified can boot using # BOOTP or DHCP. Hosts for which no fixed address is specified can only # be booted with DHCP, unless there is an address range on the subnet # to which a BOOTP client is connected which has the dynamic-bootp flag # set. #host fantasia { # hardware ethernet 08:00:07:26:c0:a5; # fixed-address fantasia.fugue.com; #} # You can declare a class of clients and then do address allocation # based on that. The example below shows a case where all clients # in a certain class get addresses on the 10.17.224/24 subnet, and all # other clients get addresses on the 10.0.29/24 subnet. #class "foo" { # match if substring (option vendor-class-identifier, 0, 4) = "SUNW"; #} #shared-network 224-29 { # subnet 10.17.224.0 netmask 255.255.255.0 { # option routers rtr-224.example.org; # } # subnet 10.0.29.0 netmask 255.255.255.0 { # option routers rtr-29.example.org; # } # pool { # allow members of "foo"; # range 10.17.224.10 10.17.224.250; # } # pool { # deny members of "foo"; # range 10.0.29.10 10.0.29.230; # } #}