- # 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 );
- }
|