Providing DHCP to Additional Interfaces#

Some specialized cluster configurations require additional network-related ICE ClusterWare™ node attributes. For example, when booting compute nodes that are configured to use a bonded administrative interface, it can be difficult to predict what physical interface will successfully send DHCP requests.

In most clusters the compute node BMC addresses are statically assigned to ensure that the BMCs are always accessible regardless of the state of other infrastructure. However, there are times when dynamically assigning reserved addresses to the BMC interfaces is useful.

The ClusterWare platform supports dynamic assignment via the following Reserved Attributes:

  • _altmacs

  • _ips with a special bmc= entry

  • _macs with a special bmc= entry

For example, a node has a primary MAC address of aa:bb:cc:dd:ee:f0, a primary IP address of 10.54.0.100, and the following attributes defined:

_altmacs=aa:bb:cc:dd:ee:f1,aa:bb:cc:dd:ee:f2
_ips=bmc=10.10.10.100,ib0=10.55.10.100
_macs=bmc=11:22:33:44:55:66

The ClusterWare DHCP subsystem sees the _altmacs attribute and creates reservations of the 10.54.0.100 IP address for MAC addresses aa:bb:cc:dd:ee:f0 (the primary MAC address), aa:bb:cc:dd:ee:f1, and aa:bb:cc:dd:ee:f2. Requests from the physical network adapters with any of those MAC addresses receive the same 10.54.0.100 IP address. Nodes should proceed with the boot process once any network adapter successfully receives the IP address and that network adapter is marked as the bootnet.

Additionally, while examining the values of the _ips and _macs attributes, the system will find the bmc= sections and create a reservation for the 10.10.10.100 IP address to the 11:22:33:44:55:66 MAC address. If the node BMC is configured to dynamically request an address via DHCP and the BMC network is connected to the head node, then the BMC receives that reserved IP address.

The ib0=10.55.10.100 section of the _ips attribute does not result in any DHCP reservations, but is substituted into an existing ifcfg-ib0 file within the image at boot time. This is done by prenet boot scripts within the image provided by the clusterware-node package. The scripts perform similar replacements in NetworkManager connection files on newer operating systems or Netplan configuration files on Ubuntu.