Posted by: mattan
VIRL 1.0.11.iso on a Supermicro X10DAL-i motherboard. Bare metal installation (no hypervisor). Single CPU. Onboard 2x 1GE Intel i210, a PCI 2x 1GE Intel i350v2, and a USB 3 1GE adapter for the 5th physical interface.
Note that the steps described below may not be mandatory for running VIRL. Instead, one could edit virl.ini to replace eth0-4 with the actual interface names, and do the same in /etc/network/interfaces. However, if one wants their setup to be fully-consistent with the VIRL documentation (which refers to network interfaces by names eth0-eth4), this guide may help.
Problem Statement and Research
After booting from a USB drive with the VIRL bare metal boot image on it, I had only one interface in [eth0, eth1, eth2, eth3, eth4], eth0 (the USB adapter). The other four were not in “ifconfig -a”. Instead, I had em1 and em2 from the i210 onboard NIC, and p5p1 and p5p2 for the i350-T2 NIC in PCI slot 5 (hence “p5…”). It seems that as of udev version 204 (the one included with this distribution of VIRL), a “Predictable Network Interface Names” paradigm is used for interfaces within the new ruleset (e.g. name supplied by BIOS or other hardware location information), rather than the kernel-assigned interface names (typically eth0-ethN). See https://wiki.gentoo.org/wiki/Udev/Upgrade_Guide and http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/ .
My solution was as follows. It may also work to set net.ifnames=0 in the kernel command line supplied by grub, but I didn’t fully verify that.
Continue with the bare metal install instructions, through Step 3, without network connectivity (VIRL to Bare Metal via ISO)
Once back up, run “sudo biosdevname -d” to verify that the NIC ports are present, then “ifconfig -a” to double-check that the BIOS-dervied kernel name for those interfaces are present.
sudo apt-get remove biosdevname
sudo update-initramfs -u
/etc/udev/rules.d/70-persistent-net.ruleshas a line for each Ethernet interface, and that they have
“NAME=“ eth0 through eth4. Edit it (USE sudo) to change the mapping of physical ports to
eth0-4, if desired. Else, make note of the MAC addresses so you can attach cables to the correct ports.
"dummy_int: False"in virl.ini
Continue with the VIRL installation instructions (I skipped to Step 7: Activation).
This seems easier and more copacetic with VIRL than trying to edit virl.ini and /etc/network/interfaces to use the system-supplied interface names (the ones that don’t look like ethX).