Why doesn’t libvirt “Usermode Networking” start on boot

libvirtlinux-networking

Running Ubuntu 16.04, the default virbr0 interface is not started by default for me on boot, meaning I have to start it manually using the command,

$ sudo virsh net-start default

Not a big deal perhaps, and I'm aware of ways to workaround this, but the output of the following command suggests to me that virbr0 is configured to start automatically:

$ virsh  net-list --all
 Name                 State      Autostart     Persistent
----------------------------------------------------------
 default              active     yes           yes

Does anyone have any pointers where to look next to help debug this?

Update:

Some selected lines seen in /var/log/syslog following boot that don't help me, but may mean something to someone:

systemd-udevd[368]: Could not generate persistent MAC address for virbr0: No such file or directory
NetworkManager[862]: <info>  [1508409794.6955] device added (path: /sys/devices/virtual/net/virbr0, iface: virbr0): no ifupdown configuration found.
NetworkManager[862]: <info>  [1508409794.6956] device added (path: /sys/devices/virtual/net/virbr0-nic, iface: virbr0-nic): no ifupdown configuration found.
NetworkManager[862]: <info>  [1508409794.7711] device (virbr0-nic): state change: unmanaged -> unavailable (reason 'connection-assumed') [10 20 41]
NetworkManager[862]: <info>  [1508409794.7725] device (virbr0-nic): state change: unavailable -> disconnected (reason 'none') [20 30 0]
NetworkManager[862]: <info>  [1508409796.0723] device (virbr0): state change: unmanaged -> unavailable (reason 'connection-assumed') [10 20 41] 
avahi-daemon[847]: Registering new address record for 192.168.122.1 on virbr0.IPv4.
NetworkManager[862]: <info>  [1508409796.0734] device (virbr0): state change: unavailable -> disconnected (reason 'connection-assumed') [20 30 41]
NetworkManager[862]: <info>  [1508409796.0739] device (virbr0): Activation: starting connection 'virbr0' (6a02deba-6a45-44f3-8c7d-92bb6f8c287b)
. . .                                                                                       
NetworkManager[862]: <info>  [1508409796.0829] device (virbr0): Activation: successful, device activated.
NetworkManager[862]: <info>  [1508409796.0833] device (virbr0-nic): state change: secondaries -> activated (reason 'none') [90 100 0]
nm-dispatcher: req:5 'up' [virbr0]: new request (2 scripts)                        
nm-dispatcher: req:5 'up' [virbr0]: start running ordered scripts...               
NetworkManager[862]: <info>  [1508409796.0877] device (virbr0-nic): Activation: successful, device activated.
nm-dispatcher: req:6 'up' [virbr0-nic]: new request (2 scripts)                    
nm-dispatcher: req:6 'up' [virbr0-nic]: start running ordered scripts...           
avahi-daemon[847]: Interface virbr0.IPv4 no longer relevant for mDNS.              
avahi-daemon[847]: Leaving mDNS multicast group on interface virbr0.IPv4 with address 192.168.122.1.
kernel: [   11.827450] virbr0: port 1(virbr0-nic) entered disabled state           
NetworkManager[862]: <info>  [1508409796.4151] device (virbr0): state change: activated -> unmanaged (reason 'connection-assumed') [100 10 41]
avahi-daemon[847]: Withdrawing address record for 192.168.122.1 on virbr0.         
nm-dispatcher: req:7 'down' [virbr0]: new request (2 scripts)                      
nm-dispatcher: req:7 'down' [virbr0]: start running ordered scripts...             
kernel: [   13.245387] device virbr0-nic left promiscuous mode                     
kernel: [   13.245390] virbr0: port 1(virbr0-nic) entered disabled state           
NetworkManager[862]: <info>  [1508409797.8565] device (virbr0-nic): state change: activated -> unmanaged (reason 'unmanaged') [100 10 3]
NetworkManager[862]: <info>  [1508409797.8565] device (virbr0): bridge port virbr0-nic was detached
NetworkManager[862]: <info>  [1508409797.8566] device (virbr0-nic): released from master device virbr0
NetworkManager[862]: <info>  [1508409797.8620] devices removed (path: /sys/devices/virtual/net/virbr0-nic, iface: virbr0-nic)
nm-dispatcher: req:8 'down' [virbr0-nic]: new request (2 scripts)                  
nm-dispatcher: req:8 'down' [virbr0-nic]: start running ordered scripts...         
NetworkManager[862]: <info>  [1508409797.8990] devices removed (path: /sys/devices/virtual/net/virbr0, iface: virbr0)

Looks a bit like virbr0 is enabled and then disabled again during boot.

Best Answer

If the network is marked autostart, then it ought to be started as soon as libvirtd itself is started. So check whether libvirtd.service is set to auto-start on boot.

Also in your second virsh command there, you left out the sudo, so it is possible/likely you are connecting to a different libvirtd instance - the one running as your user account, rather than the privileged libvirtd. So make sure to try sudo virsh net-list --all and if that doesn't show autostart, then run sudo virsh net-autostart default

Related Topic