There is a frustrating lack of information on how to set up multiple VLAN interfaces on a KVM host out there. I made my way through it in production today with great applications of thud and blunder; here’s an example of a working 01-netcfg.yaml with multiple VLANs on a single (real) bridge interface, presenting as multiple bridges.
Everything feeds through properly so that you can bring KVM guests up on br0 for the default VLAN, br100 for VLAN 100, or br200 for VLAN 200. Adapt as necessary for whatever VLANs you happen to be using.
# This file describes the network interfaces available on your system # For more information, see netplan(5). network: version: 2 renderer: networkd ethernets: eno1: dhcp4: no dhcp6: no eno2: dhcp4: no dhcp6: no vlans: br0.100: link: br0 id: 100 br0.200: link: br0 id: 200 bridges: br0: interfaces: - eno1 - eno2 dhcp4: no dhcp6: no addresses: [ 10.0.0.2/24 ] gateway4: 10.0.0.1 nameservers: addresses: [ 8.8.8.8,1.1.1.1 ] br100: interfaces: - br0.100 dhcp4: no dhcp6: no addresses: [ 10.0.100.1/24 ] br200: interfaces: - br0.200 dhcp4: no dhcp6: no addresses: [ 10.0.200.1/24 ]