189 lines
3.7 KiB
Text
189 lines
3.7 KiB
Text
|
#
|
||
|
# 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 <F8> or <M> for menu. Press <Esc> 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";
|
||
|
}
|
||
|
}
|