Host Bridge for QEMU/KVM on Arch
Make your VMs part of your LAN
I needed a VM that would allow SSH, i use QEMU/KVM(VMM) for my Ubuntu server. VMM is VERY picky about bridges
So lets walk through this together!
Concepts
Bridge (br0) — a virtual switch on your host. Your physical NIC connects to it, and your VMs can join directly onto your LAN. Each device gets its own IP.
systemd-networkd — we use this instead of NetworkManager for a persistent bridge setup. Easy to toggle on/off when needed.
please note enp42s0 will be different for you! to find your own NIC ip a
      
Host Setup
Place these files in /etc/systemd/network/ with prefixes controlling order.
1) 10-br0.netdev
        [NetDev]
Name=br0
Kind=bridge
        2) 20-enp42s0.network
        [Match]
Name=enp42s0
[Network]
Bridge=br0
        3) 30-br0-static.network
        [Match]
Name=br0
[Network]
Address=192.168.1.144/24
Gateway=192.168.1.1
DNS=1.1.1.1 8.8.8.8
DHCP=no
        Then enable networkd:
sudo systemctl enable --now systemd-networkd
      VM Setup
In Virt‑Manager: Edit VM → NIC → set Network source to Bridge and pick br0. Use virtio model.
Static IP (Netplan)
network:
  version: 2
  renderer: networkd
  ethernets:
    enp1s0:
      dhcp4: no
      addresses: [192.168.1.69/24]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [1.1.1.1, 8.8.8.8]
        Apply with sudo netplan apply.
Verify
- Check bridge on host: 
ip a show br0 - Ping router from both host and VM: 
ping 192.168.1.1 - SSH from another device: 
ssh user@192.168.1.69 
Troubleshooting
- NIC still has IP — 
sudo ip addr flush dev enp42s0 - NetworkManager conflict — 
sudo nmcli device set enp42s0 managed no - Limited Connectivity warning — harmless; ignore if network works fine.
 - Bridge fails after reboot — 
sudo systemctl enable --now systemd-networkd