# # Enable proxyDHCP operation. # dhcpd-operation normal; # # BootServer is turned on # bootserver-operation on; ddns-update-style ad-hoc; # # if this dhcpd server is not "master" # not authoritative; #------------------------------------------------------------- # For each of the 3 servers (builtin) define the DHCPD option # tags we are interested in. #------------------------------------------------------------- # # Define DHCPD request option tags # # # This option is used to determine the client boot-time binary runtime # environment. # option client-architecture code 93 = unsigned integer 16; # # Now go to the DHCPD proxy option tags # option space proxy; option proxy.boot-prompt code 10 = { unsigned integer 8, text }; option proxy.boot-menu code 9 = array of { unsigned integer 16, unsigned integer 8, text }; option proxy.boot-servers code 8 = array of { unsigned integer 16, unsigned integer 8, array of ip-address }; option proxy.discovery-control code 6 = unsigned integer 8; # # Now go to the PXE Bootserver options # option space bs; option bs.boot-item code 71 = { unsigned integer 16, unsigned integer 16 }; #------------------------------------------------------------- # Actual configuration #------------------------------------------------------------- subnet 192.168.2.0 netmask 255.255.255.0 { # # In this section define regular DHCPD options # # # Here we show settings with fixed addresses, but dynamic # allocation is possible as well # host test1 { hardware ethernet 00:d0:b7:c7:fb:f8; fixed-address 192.168.2.10; } host test2 { hardware ethernet 00:d0:b7:aa:f0:e3; fixed-address 192.168.2.11; } # # Now we look at options for every possible type of requests # # # # If requets was received by the ProxyDHCPD if proxy { # # Provide proxyDHCP information for Intel ia64 # architecture machines. # if option client-architecture = 00:02 { # # Notify of PXE aware server # option vendor-class-identifier "PXEClient"; # # Force unicast # option proxy.discovery-control 3; # # Print a nice boot menu # # ServerTypes: # 14 -> means Redhat install # 13 -> means Redhat Boot # 23 & 26 are length of string following. # option proxy.boot-menu 14 23 "Remote Redhat/ia64 boot", 13 26 "Remote Redhat/ia64 install"; # # list of possible bootservers for a ServerType # # Currently not possible to define more than one type # option proxy.boot-servers 14 1 192.168.2.32; # # A boot prompt # 30 is timeout in seconds # option proxy.boot-prompt 30 "Press or for menu. Press to local boot."; # # vendor-option-space proxy; } } else if bootserver { if option client-architecture = 00:02 { # # Now analyze bootserver request option tags # # ELILO Layering: # Layer 0: bootloader binary (elilo.efi) # Layer 1: elilo configuration file (elilo.conf) # Layer 2: Linux/ia64 kernel if substring(option bs.boot-item, 2, 2) = 00:00 { filename "/tftpboot/elilo.efi"; # # identify reply layer & server type # option bs.boot-item 14 0; } else if substring(option bs.boot-item, 2, 2) = 00:01 { filename "/tftpboot/elilo.conf"; # # identify reply layer & server type # option bs.boot-item 14 1; } else if substring(option bs.boot-item, 2, 3) = 00:02 { filename "/tftpboot/vmlinux"; # # identify reply layer & server type # option bs.boot-item 14 2; } # # vendor-option-space bs; option vendor-class-identifier "PXEClient"; } } else { # # notify of PXE aware DHCPD server # option vendor-class-identifier "PXEClient"; } }