I’m planning a video series on using VyOS in a virtualized home lab within Proxmox and one of the things that can trip new users is the lack of the virtual interfaces (added to the VM before installation) in the initial config.
I believe I can recall some bare metal installations detecting those interfaces and adding them, and I’m wondering if there’s a built-in trick to trigger that in general. I plan to develop a script for that if necessary, but was curious if I’m missing something (or am just imagining things from the start!).
I’ve also tried the latest LTS with the same results, across three Proxmox instances. This particular instance was just installed yesterday, and is essentially in the out-of-the-box state. It’s clear that the interfaces are being detected and fully present to VyOS (see matching MACs from net0 to eth0):
I’ve tried this on six PVEs at this point with no luck using both LTE and Rolling versions:
1 HP Proliant DL360
3 Lenovo Series x3100 M5
2 Netgate (Supermicro) XG-1541
I just also tried using the 6.2 kernel package on the XG-1541s, but still nothing.
Here is what a Proxmox developer is asking in my bug report I opening with them:
[C]ould you try to find out via the vendor support how they detect interfaces?
maybe they have some sort of MAC filter in place and you just need to set a proper MAC prefix on the PVE side? we don’t really do anything “special” with the virtual NICs as they are presented in the VM, the PVE specific parts are all on the host side (e.g., the extra bridge for firewall support and similar things).
I’m happy to help troubleshoot this, as I’d really love to have this working for the start of my VyOS YouTube series, but I don’t know enough about the code base to explain this and experiment with different configurations.
My next thought is to start testing previous 7.x and 6.x PVEs on my hardware and seeing what happens there, too. I’ll begin that while waiting on some input here.
Interfaces with locally administered MAC addresses are not added to the config file automatically during the boot. Such interfaces are considered non-persistent or, more precisely, administered manually.
However, this is not the bug or a problem - they are configurable as real physical interfaces.
Does this nuance generate any real issues for your goals, or are you just curious why the behavior is different from physical NICs?
Thank you for the insight, @zsdc! That’s definitely something I wasn’t aware of.
So in a nutshell, if the hypervisor (Proxmox, in this case) uses locally administered addresses (LAAs) instead of universally administered addresses (UAAs) from a registered Organizationally Unique Identifier (OUI) for VM interfaces, VyOS will not add those interfaces to the configuration by default.
To work around this, you have to do one of two things:
Manually add each LAA interface to the configuration
Change the LAA prefix of the auto-generated MAC address to use an OUI and (ideally) have the hypervisor use that OUI to generate UAAs in the future
I did some more digging with this insight while trying to figure out why VyOS does generate interfaces on VirtualBox and VMware, and it’s because they own OUIs that generate UAAs. So with this, I changed the default MAC address prefix for Proxmox to use the VMware OUI 00:50:56 and now it works as expected:
So to answer your question, @zsdc, it’s definitely not a real issue, more of a potential stumbling block for new users that could become confused while trying to configure their VyOS VMs. Would it be possible to add a step to the installer to ask whether to add the LAA interfaces to the config? Why would VyOS really care if the interfaces are LAA or UAA?
That was a fun and educational troubleshoot, so thanks for enlightening me. I’m working on some VyOS virtualization home lab documentation, and I’ll share that when it’s done. I’ll also see where in the official docs we could make note of this, as well.