Conditional evaluation make it possible to allocate different IP pool for clients or even allow multiple DHCPD daemons running in the same broadcasts domain.
My challenge is to setup a new DHCP server to PXE boot VMware Vms without affecting an existing DHCP server.
The solution is to create a new class which only response DHCP request from Vmware NICs, the key is to use expression binary-to-ascii (16, 8, ":", substring (hardware, 1, 3)) to get the vendor ID.
$cat /etc/dhcpd.confddns-update-style none;ignore client-updates;#log-facility local7;
#log (debug, binary-to-ascii (16, 8, ":", substring (hardware, 1, 3)));
class "vmware-nics"{match if ( binary-to-ascii (16, 8, ":", substring (hardware, 1, 3)) = "0:05:69") or ( binary-to-ascii (16, 8, ":", substring (hardware, 1, 3)) = "0:0c:29") or ( binary-to-ascii (16, 8, ":", substring (hardware, 1, 3)) = "0:1c:14") or ( binary-to-ascii (16, 8, ":", substring (hardware, 1, 3)) = "0:50:56");}subnet 192.168.100.0 netmask 255.255.255.0 {pool {allow members of "vmware-nics";
option routers 192.168.100.254;option subnet-mask 255.255.255.0;option domain-name "example.com";
option domain-name-servers 192.168.100.1;range dynamic-bootp 192.168.100.1 192.168.100.200;#time unit is 1 sec
default-lease-time 3000;max-lease-time 6000;next-server 192.168.100.1;
filename "gpxelinux.0";
}}
NOTE: the double 0 in MAC address will be translated to single 0. e.g "00:05:69" = "0:05:69"
Troubleshooting:
If the expression doesn't work, you can check the expression by logging it to a file.You might need to disable "allow members" restriction in order for the expression to be logged.
log-facility local7;log (debug, binary-to-ascii (16, 8, ":", substring (hardware, 1, 3)));
By default, DHCP log is directed to /var/log/message, it seems, in order to log expression, the DHCP must use separate log file. Because “local7.* /var/log/boot.log” is configured in /etc/syslogd.conf by default, “log-facility local7” in dhcpd.conf will direct messages to /var/log/boot.log
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.