Is it possible to configure libvirt to generate "predictable" MAC
addresses for virtual NICS? (A configuration which accomplishes this
by limiting the pool of available addresses would be acceptable for
my use case.)
Read on for why I want to do this ...
I have a somewhat unusual use case. I am working with the OpenShift
bare metal "IPI" installation process, which is documented here:
https://openshift-kni.github.io/baremetal-deploy/4.4/Deployment.html
At a high level, the installation process goes like this:
1. Install RHEL 8 on the "provisioner" node.
2. Configure a couple of bridges on the provisioner node, which will be
used by the "bootstrap VM" (see below).
3. Create a configuration file & do various other things.
4. Run the installer
a. Installer creates a "bootstrap VM" on the provisioning node, which
does the actual work of kicking off the OpenShift installation.
The bootstrap VM runs Red Hat Enterprise Linux CoreOS (RHCOS).
b. Bootstrap VM requests an IP address via DHCP. <====== ******
Step 4b is problematic in this environment. Because of routing and
firewall rules, I really need the bootstrap VM to have a predictable IP
address.
It is possible to configure a static IP address on the bootstrap VM via
the CoreOS ignition file, and we've successfully done this, but ...
RHCOS requests an IP address via DHCP *before* it processes the ignition
file. If this fails, it appears to simply give up. So we need to have
our DHCP server provide an address to the bootstrap VM, even if it isn't
ever used. And of course, we're not allowed to configure the DHCP
server to respond to any old MAC address that comes along; we're only
allowed to respond to known MAC addresses.
Hopefully this all makes sense, and hopefully it explains why being
able to configure libvirt's MAC pool/sequence would allow things to work
in this environment.
Thanks!
--
========================================================================
In Soviet Russia, Google searches you!
========================================================================