B.7. 仮想ネットワークの デフォルト は開始されていません
- 現象
- 通常、default という名前の仮想ネットワークの設定は、libvirt パッケージの一部としてインストールされ、libvirtd の起動時に自動起動を行うように設定されます。デフォルト のネットワーク(またはその他のローカルで作成されたネットワーク)が起動できない場合、その接続にそのネットワークを使用するように設定された仮想マシンも起動に失敗し、以下のエラーメッセージが表示されます。
Virtual network default has not been started
- 調査
- libvirt 仮想ネットワークの起動に失敗する最も一般的な理由の 1 つは、そのネットワーク上のクライアントからの DHCP および DNS 要求に対応するために必要な dnsmasq インスタンスが起動に失敗したことです。原因を確認するには、root シェルから virsh net-start default を実行して、デフォルト の仮想ネットワークを起動します。このアクションで仮想ネットワークが正常に起動しない場合は、
/var/log/libvirt/libvirtd.log
を開き、完全なエラーログメッセージを表示します。以下のようなメッセージが表示されると、問題は、libvirt のブリッジですでにリッスンしているシステム全体の dnsmasq インスタンスであり、libvirt の独自の dnsmasq インスタンスがこれを実行できない可能性があります。エラーメッセージで注意すべき最も重要な部分はdnsmasq
で、終了ステータスは 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
- 解決方法
- マシンが dnsmasq を使用して物理ネットワークに DHCP を提供していない場合は、dnsmasq を完全に無効にします。物理ネットワークに DHCP を提供するために dnsmasq を実行する必要がある場合は、
/etc/dnsmasq.conf
ファイルを編集します。最初の行と、その行に続く 2 行のいずれかを追加またはコメント解除します。3 行すべてを追加またはコメント解除しないでください。bind-interfaces interface=name_of_physical_interface listen-address=chosen_IP_address
この変更を加えてファイルを保存したら、システム全体の dnsmasq サービスを再起動します。次に、virsh net-start default コマンドでデフォルトのネットワークを起動します。仮想マシンを起動します。