Agreed. It was just a shortcut. We already do allocation of IP based on MAC address but that only works when you know the MAC address information ahead of time. This is rare especially on whitebox cluster projects where people don't put the MAC on the product packaging or on the chassis itself. Some vendors do a good job of making the data easy to find and others simply don't bother. A dhcp server handing out dynamic-range leases in a predictable manner is what allowed us to easily map MAC address to node position and nodename simply by powering on the nodes for PXE boot in the order in which they are racked and stacked. Once this was done we had the MAC->Node mapping data we needed to generate the static allocation entries. A workaround for non-predictable allocation is to simply power on the cluster in the order in which you want things named, then parse the dhcpd leases file for both the MAC address *and* the timestamp representing the lease handout. That would allow you to map MAC -> Node without having to care about hostnames for the first pass MAC collection phase. Then you build the static-by-mac entries into the conf file and problem solved. If we stick with ISC DHCP this is a possibility... c Adam S. Moskowitz wrote: > Chris, > > >>We are thinking about trying to find a replacement DHCP server that has >>a predictable method of allocating dynamic IP addresses (even if only >>for the initial cluster deployment) > > > I think it's a bad idea to rely on such behavior. I don't remember what > the RFC says, but in general, unless the RFC guarantees an > implementation should behave a particular way, you are asking for > trouble to rely on specific behavior. > > A great example of this is how round-robin DNS used to work and then how > it changed and lots of things broke. > > DHCP isn't meant to do what you're asking it to do, so I strongly > suggest you not use it to solve that particular problem. > > That said, DHCP supports a mechanism for binding specific IP addresses > to specific MAC addresses, even though the assignment is still done > dynamically. Yes, this is a bit more work, but at least it's guaranteed > behavior.