virt-managerのすべてのデフォルト設定とネットワークタイプNATで作成されたUbuntu QEMU / KVMゲストはそのネットワークを有効にできません。私のホストはFedora 35です。以下は、ゲストのNetworkManagerログスクリーンショットです。
以下は、デバイス設定のvirt-managerのNICタブにあるXML設定です。
<interface type="network">
<mac address="redacted but present"/>
<source network="default" portid="redacted but present" bridge="virbr0"/>
<target dev="vnet2"/>
<model type="virtio"/>
<alias name="net0"/>
<address type="pci" domain="0x0000" bus="0x01" slot="0x00" function="0x0"/>
</interface>
virt-managerの仮想ネットワークXMLは次のとおりです。
<network connections="2">
<name>default</name>
<uuid>redacted but present</uuid>
<forward mode="nat">
<nat>
<port start="1024" end="65535"/>
</nat>
</forward>
<bridge name="virbr0" stp="on" delay="0"/>
<mac address="redacted but present"/>
<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>
virshネットワークリスト - すべて
Name State Autostart Persistent
--------------------------------------------
default active yes yes
brctl表示
bridge name bridge id STP enabled interfaces
virbr0 redacted yes
ip -br リンクの表示
lo UNKNOWN 00:00:00:00:00:00 <LOOPBACK,UP,LOWER_UP>
enp34s0 UP redacted <BROADCAST,MULTICAST,UP,LOWER_UP>
virbr0 DOWN redacted <NO-CARRIER,BROADCAST,MULTICAST,UP>
wg-mullvad UNKNOWN <POINTOPOINT,UP,LOWER_UP>
nmcli 接続の表示 --active
NAME UUID TYPE DEVICE
Wired connection 1 redacted ethernet enp34s0
virbr0 redacted bridge virbr0
wg-mullvad redacted wireguard wg-mullvad
systemctl 状態 libvirtd
○ libvirtd.service - Virtualization daemon
Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; disabled; vendor preset: disabled)
Active: inactive (dead) since Mon 2022-04-04 05:13:01; 1min 40s ago
TriggeredBy: ○ libvirtd-tls.socket
● libvirtd-admin.socket
○ libvirtd-tcp.socket
● libvirtd.socket
● libvirtd-ro.socket
Docs: man:libvirtd(8)
https://libvirt.org
Process: 36276 ExecStart=/usr/sbin/libvirtd $LIBVIRTD_ARGS (code=exited, status=0/SUCCESS)
Main PID: 36276 (code=exited, status=0/SUCCESS)
CPU: 439ms
Apr 04 05:12:49 host systemd[1]: Starting Virtualization daemon...
Apr 04 05:12:49 host systemd[1]: Started Virtualization daemon.
Apr 04 05:13:01 host systemd[1]: Stopping Virtualization daemon...
Apr 04 05:13:01 host systemd[1]: libvirtd.service: Deactivated successfully.
Apr 04 05:13:01 host systemd[1]: Stopped Virtualization daemon.
[user@host ~]$ sudo systemctl status libvirtd
○ libvirtd.service - Virtualization daemon
Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; disabled; vendor preset: disabled)
Active: inactive (dead) since Mon 2022-04-04 05:13:01; 2min 1s ago
TriggeredBy: ○ libvirtd-tls.socket
● libvirtd-admin.socket
○ libvirtd-tcp.socket
● libvirtd.socket
● libvirtd-ro.socket
Docs: man:libvirtd(8)
https://libvirt.org
Process: 36276 ExecStart=/usr/sbin/libvirtd $LIBVIRTD_ARGS (code=exited, status=0/SUCCESS)
Main PID: 36276 (code=exited, status=0/SUCCESS)
CPU: 439ms
Apr 04 05:12:49 host systemd[1]: Starting Virtualization daemon...
Apr 04 05:12:49 host systemd[1]: Started Virtualization daemon.
Apr 04 05:13:01 host systemd[1]: Stopping Virtualization daemon...
Apr 04 05:13:01 host systemd[1]: libvirtd.service: Deactivated successfully.
Apr 04 05:13:01 host systemd[1]: Stopped Virtualization daemon
systemctl - 失敗
UNIT LOAD ACTIVE SUB DESCRIPTION
● nvidia-powerd.service loaded failed failed nvidia-powerd service
これまでに試したこと:
- 次のパッケージがインストールされていることを確認しました。 qemu dhclient netcat virt-viewer libvirt dnsmasq dmidecode ebtables virt-install virt-managerbridge-utils
- virshでネットワーク「default」が起動していることを確認してください。
- ファイアウォールがインストールされ実行されていることを確認してください。
- Firewall-cmd get-active-zonesを使用して、virbr0がlibvirt領域にあることを確認してください。
重要なアップデート:
さらなるトラブルシューティングにより、私が使用していたVPNが問題を引き起こすことがわかりました。 VPNを無効にして仮想マシンを起動すると、ネットワークとインターネットに接続できます。私のVPNアプリケーションはMulvadと呼ばれ、Wireguardプロトコルを使用しています。仮想マシンがVPNを介してインターネットに接続できるようにするにはどうすればよいですか?
答え1
問題は、VPNを使用しているときに「ローカルネットワーク共有を許可する」設定が有効になっていないことです。有効にするだけです。
答え2
転送を有効にする
sysctl net.ipv4.ip_forward=1
役に立つかもしれません。