Arch Linuxホストでlibvirtの仮想NAT DHCPなしのネットワークデバイスをセットアップしようとしています。
私が試したこと:
# virsh net-define network.xml
Network default defined from network.xml
[network.xml
]:
<network>
<name>default</name>
<bridge name="maas0" />
<forward mode="nat" />
<ip address="10.137.0.1" netmask="255.255.255.0" />
</network>
私のラップトップは起動時に以下を出力します:
# virsh net-start default
error: Failed to start network default
error: internal error: Failed to initialize a valid firewall backend
このトピックに関する他のすべてのスレッドは、ソフトウェアのアップグレードについて話しています。私は最新バージョンを使用しています。
$ pacman -Q ebtables dnsmasq libvirt iptables
ebtables 2.0.10_4-5
dnsmasq 2.75-1
libvirt 1.3.3-1
iptables 1.4.21-3
その理由は何でしょうinternal error
そして私は何に反対することができますか?
ebtables
とdnsmasq
をインストールすると問題が解決するようです。 libvirtd
サービスを再起動することを忘れないでください。
コマンド:
Sudo pacman -Syu ebtables dnsmasq
Sudo systemctl restart libvirtd
注:virt-manager
GUI(使用している場合)を閉じて再度開くことを忘れないでください。
編集:firewalld
のインストールも提案された元の回答。これは多くのユーザーには必要ないと思われ、システムに不要なファイアウォールを追加する可能性があります。ただし、試してみたい場合は、次のコマンドも追加できます。
Sudo pacman -Syu firewalld
Sudo systemctl start firewalld
Sudo systemctl enable firewalld
Sudo systemctl restart libvirtd
これは、ebtables
やdnsmasq
がインストールされていない状態でlibvirtdがstartedされた場合に発生するエラーです。それらをインストールしても問題が解決しない場合は、おそらくlibvirtd
サービスを再起動する必要があります。
Sudo systemctl restart libvirtd.service
これを明らかにするためのこの質問に対する他の回答の thecomments へのクレジット。元の問題を解決するためにfirewalld
をインストールして起動することは原因となる新しい問題になる可能性があるため、元の質問に対する新しい個別の回答として送信します。ファイアウォールデーモンが実行されると、仮想マシン内で必要なほとんどのサービスDHCPを含む、デフォルトでブロックされます、つまり、初期化時にVMがネットワークに到達できなくなります。
この問題を追跡するために1時間以上失いました。有効にしたばかりのファイアウォールまで追跡しましたは、私が経験したバグの最も愚かな原因の1つでしたに遭遇する。 yoursから時間がかかることはありません。