Can't create VMs with virt-manager / qemu, network failure

I have completely removed (-Rns) qemu-full, libvirt, and virt-manager.
Removed /etc/libvirt /var/lib/libvirt ~/.config/libvirt ~/.local/share/libvirt
and removed virbr0 with sudo ip link delete virbr0

Updated (-Syu) and reinstalled qemu-full, libvirt, and virt-manager.
Enabled and started libvirtd
Added myself to the libvirt group

I’ve attempted to define/redefine the default network.

virsh net-destroy default
virsh net-undefine default
virsh net-define default.xml
virsh net-start default

Using this default.xml:

<network>
  <name>default</name>
  <uuid>37ef6a25-ed12-45b0-9b70-37ef6a25ed12</uuid>
  <bridge name='virbr0' stp='on' delay='0'/>
  <mac address='52:54:00:09:2e:73'/>
  <ip address='192.168.122.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.122.2' end='192.168.122.254'/>
    </dhcp>
  </ip>
</network>

Here is the status of libvirtd

at 17:32:28 > sudo systemctl status libvirtd
[sudo] password for john: 
● libvirtd.service - libvirt legacy monolithic daemon
     Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; preset: disabled)
     Active: active (running) since Tue 2024-06-04 17:25:30 EDT; 7min ago
TriggeredBy: ● libvirtd-admin.socket
             ● libvirtd-ro.socket
             ● libvirtd.socket
       Docs: man:libvirtd(8)
             https://libvirt.org/
   Main PID: 5775 (libvirtd)
      Tasks: 20 (limit: 32768)
     Memory: 500.8M (peak: 504.2M)
        CPU: 2.068s
     CGroup: /system.slice/libvirtd.service
             └─5775 /usr/bin/libvirtd --timeout 120

Jun 04 17:25:30 beast systemd[1]: Starting libvirt legacy monolithic daemon...
Jun 04 17:25:30 beast systemd[1]: Started libvirt legacy monolithic daemon.
Jun 04 17:26:39 beast dnsmasq[6373]: failed to create listening socket for 192.168.122.1: Address al>
Jun 04 17:26:39 beast dnsmasq[6373]: FAILED to start up
Jun 04 17:26:39 beast libvirtd[5775]: libvirt version: 10.3.0
Jun 04 17:26:39 beast libvirtd[5775]: hostname: beast
Jun 04 17:26:39 beast libvirtd[5775]: internal error: Child process (VIR_BRIDGE_NAME=virbr0 /usr/bin>
                                      dnsmasq: failed to create listening socket for 192.168.122.1: >

My system:

john@beast
----------
OS: EndeavourOS rolling x86_64
Kernel: Linux 6.6.32-1-lts
Uptime: 22 mins
Packages: 1482 (pacman), 58 (flatpak), 62 (brew)
Shell: zsh 5.9
Display (LG SDQHD): 2560x2880 @ 60Hz *
Display (LG Ultra HD): 3840x2160 @ 30Hz
Display (LG Ultra HD): 3840x2160 @ 60Hz
DE: Gnome 46.2
WM: Mutter (X11)
WM Theme: Adwaita
Theme: Adwaita [GTK2/3/4]
Icons: Qogir [GTK2/3/4]
Font: MonaspiceAr Nerd Font Medium (13pt) [GTK2/3/4]
Cursor: Qogir (24px)
Terminal: kitty 0.35.1
Terminal Font: ComicCodeLigatures-Regular (18pt)
CPU: 13th Gen Intel(R) Core(TM) i9-13900K (32) @ 5.80 GHz
GPU 1: NVIDIA RTX A4500
GPU 2: Intel Arc A380 @ 2.45 GHz [Discrete]
Memory: 6.29 GiB / 125.50 GiB (5%)
Swap: 0 B / 119.21 GiB (0%)
Disk (/): 136.49 GiB / 238.42 GiB (57%) - btrfs
Disk (/home): 237.45 GiB / 1.47 TiB (16%) - btrfs
Disk (/mnt/backup_8t): 2.01 TiB / 7.28 TiB (28%) - btrfs
Disk (/mnt/nvme): 1.24 TiB / 5.46 TiB (23%) - btrfs
Disk (/mnt/tank): 31.58 TiB / 58.21 TiB (54%) - btrfs
Disk (/run/media/john/backup): 930.80 GiB / 931.51 GiB (100%) - btrfs
Local IP (eno1): 10.0.0.9/24 *
Locale: en_US.UTF-8

Any help appreciated!

After today’s update of libvirt from 10.3.0 to 10.4.0, my default network stopping working in all of my guests. Downgrading libvirt to 10.3.0 solved the problem for me.

Edit: I fixed this problem with libvirt 10.4.0 by running this command:

sudo systemctl enable --now iptables.service

2 Likes

Thanks!
I have 10.3.0-1 installed :slightly_frowning_face:

1 Like

These are the only commands I needed to get virt-manager working successfully on my system:

sudo pacman -S virt-manager qemu-desktop dnsmasq iptables-nft

sudo systemctl enable --now libvirtd.service

sudo virsh net-autostart default

sudo usermod -a -G libvirt $USER

The only problem I have experienced was with the default network today, which I solved with the libvirt downgrade to 10.3.0.

I didn’t need to define a default network. My guests had Internet access immediately.

After creating a new virtual machine, I can view its network properties on the Details tab of the virt-manager console. I see…

Virtual Network Interface

Device model: virtio

MAC address: snipped

IP address: snipped

Link state: active

During this morning’s failure, the IP address was shown as “unknown.” Now that I have downgraded libvirt, I see an actual IP address, and my guest machines work normally.

Edit: I fixed this problem with libvirt 10.4.0 by running this command:

sudo systemctl enable --now iptables.service

The release notes for libvirt 10.4.0:

network: use nftables to setup virtual network firewall rules

The network driver can now use nftables rules for the virtual network firewalls, rather than iptables. With the standard build options, nftables is preferred over iptables (with fallback to iptables if nftables isn’t installed), but this can be modified at build time, or at runtime via the firewall_backend setting in network.conf. (NB: the nwfilter driver still uses ebtables/iptables).

Consequently, as I am using iptables, I find it necessary now to enable iptables.service:

sudo systemctl enable --now iptables.service

Having done so, all of my guest machines enjoy Internet connectivity once again.

I updated on 6/7, all working as expected: no iptables nor nftables enabled here.

OP - your problem doesn’t seem related to iptables, but an issue with dnsmasq. Could this thread be of any help: https://forum.manjaro.org/t/dnsmasq-error-when-tried-to-run-virtualization/160445