IMPORTANT
In TrueNAS, a network bridge that bundles multiple interfaces is distinctly separate from a simple Network Interface Card (NIC). It’s not like proxmox, which has a default virtual bridge that VMs connect to for external network access.
By default in a TrueNAS environment, the primary network interface is already in use by the system and no additional interfaces are readily available for VMs (after all, TrueNAS’s main purpose isn’t primarily as a virtualization platform (just my impression, things may have changed) ). Consequently, without any configuration changes, a VM won’t be able to connect to the network after startup. This means the VM must rely on a virtual bridge to access the external network. (The situation might be different if you have multiple network ports, as you could likely assign a port directly to a VM, but I don’t have the setup to test this).
Solution
To solve this, you can manually create a bridge by following these steps and then add the network interface TrueNAS is using into this newly created bridge. The goal is to allow virtual machines to share the physical network interface through this bridge, enabling them to connect to the network.
First, create the bridge:
- Go to TrueNAS’s Network configuration page and look at the Interfaces list. You need to Add a new interface.
- Give your new bridge a valid name, like
br0
orbr1
. - Then, test this setting and save it. The bridge now exists, but it doesn’t have any Ethernet device interfaces in it, so it’s not yet useful.
- Since the Ethernet device involves the current network connection, this next part must be done carefully. If the following steps go wrong, it could lead to a complete network disconnection (though, theoretically, it should revert after a timeout).
- Under the original interface (e.g.,
enp5s1
), remove its IP address. Then, addenp5s1
to the newly created bridge (e.g.,br0
). (Checkout [get-network-interface-name] for how to get theenp5s1
, or you can just check your TrueNAS UI) - At the same time, in the Aliases section for the bridge (
br0
), add the IP address for TrueNAS – the same one you previously removed fromenp5s0
(or your primary NIC). - Once all these changes are made, Test Changes and then Save Changes to complete the configuration.
Reference Video: https://www.youtube.com/watch?v=7clQw132w58
After this, when configuring the network card for your virtual machine, you can directly use this br0
, which effectively bridges it.
Impact on Applications (K3s pool)
This procedure might fail if you already have Applications running in TrueNAS. A primary reason is that the Applications’ k3s cluster is also bound to a network interface. Modifying the previously bound interface (e.g., enp5s1
) is not allowed.
In this situation, you’ll need to go to Applications → Settings → Unset Pool. Then, complete the network interface setup for br0
as described above. Afterward, go back to Applications and re-enable the Applications Pool. You can select the same dataset as before. This time, when choosing the Route v4 Interface, select br0
.