B.7. Virtual network default has not been started

現象
通常、libvirt パッケージの一部として default 名で仮想ネットワークの設定がインストールされており、libvirtd のスタート時に自動スタートするように設定されています。
default ネットワーク (またはローカルで作成されたネットワーク) がスタートできない場合、接続にそのネットワークを使うように接続されている仮想マシンもスタートに失敗し、以下のエラーメッセージが表示されます。
Virtual network default has not been started
調査
libvirt 仮想ネットワークのスタート失敗でよくある理由の 1 つは、そのネットワーク上でクライアントからの DHCP および DNS リクエストに応えるために必要な dnsmasq インスタンスがスタートに失敗するケースです。
これが理由であることを確かめるには、root シェルから virsh net-start default を実行し、default 仮想ネットワークをスタートします。
この方法で仮想ネットワークが正常にスタートしない場合、/var/log/libvirt/libvirtd.log を開いて詳細なエラーログメッセージを表示します。
以下と同様のメッセージが表示される場合、問題は libvirt のブリッジ上ですでにリッスンしているシステムワイドの dnsmasq インスタンスである可能性が高いと言えます。このインスタンスは、libvirt の dnsmasq イスタンスがリッスンすることを妨げています。エラーメッセージで最も注目すべき点は、dnsmasqexit status 2 です。
Could not start virtual network default: internal error
Child process (/usr/sbin/dnsmasq --strict-order --bind-interfaces
--pid-file=/var/run/libvirt/network/default.pid --conf-file=
--except-interface lo --listen-address 192.168.122.1
--dhcp-range 192.168.122.2,192.168.122.254
--dhcp-leasefile=/var/lib/libvirt/dnsmasq/default.leases
--dhcp-lease-max=253 --dhcp-no-override) status unexpected: exit status 2
解決法
物理ネットワークで DHCP の応答にマシンが dnsmasq を使用していない場合は、dnsmasq を完全に無効にします。
物理ネットワークで DHCP の応答に dnsmasq の実行が必要な場合は、/etc/dnsmasq.conf ファイルを編集します。最初の行と続く 2 行の内のどちらかを追加するか、またはコメントを解除します。3 行すべての追加またはコメント解除はしないでください。
bind-interfaces
interface=name_of_physical_interface
listen-address=chosen_IP_address
この変更を加えてファイルを保存した後、システムワイドの dnsmasq サービスを再起動します。
次に、default ネットワークを virsh net-start default コマンドでスタートします。
仮想マシンを起動します。