使用 virt-manager 为桥接无线设置 tap0

Dav*_*veO 8 wifi kvm-virtualization

3 天后,我终于让 kvm 来宾通过无线在网络上工作(下面的链接 - 谢谢!):

我的网络是192.168.1.0/24

在主机上:

sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
sudo tunctl -t tap0
sudo ip link set tap0 up
sudo ip addr add 192.168.1.25/24 dev tap0
sudo route add -host 192.168.1.30 dev tap0
sudo parprouted wlan0 tap0
Run Code Online (Sandbox Code Playgroud)

关于客人:

auto eth0
iface eth0 inet static
  address 192.168.1.30
  netmask 255.255.255.0
  network 192.168.1.0
  broadcast 192.168.1.255
  gateway 192.168.1.25
Run Code Online (Sandbox Code Playgroud)

并启动客人:

sudo kvm /path/to/guest.img -net nic,macaddr=DE:AD:BE:EF:90:26 -net tap,ifname=tap0,script=no
Run Code Online (Sandbox Code Playgroud)

这很好用,我可以在来宾之间来回 ping 本地网络和互联网。

但是如何将这些设置添加到来宾的 xml 配置中,以便我可以使用相同的 nic 设置通过 virt-manager 启动来宾?

参考:

Sau*_*iya 0

我认为您正在尝试通过创建分路设备等以迂回的方式设置桥接网络。在 Linux 中,您可以使用简单的配置更改为物理接口创建虚拟桥接设备。完成后,KVM 虚拟机可以配置为使用此虚拟桥接设备连接到普通 LAN,就像直接连接到它一样。它给人一种错觉,即所有虚拟机和基础/主机都直接连接到 LAN。

如果这是你想要的,那么修改你的 /etc/sysconfig/network-scripts/ifcfg-eth0 (假设 eth0 是在你的情况下在 192.168.1.0/24 网络中具有 IP 的主机网络设备)以包含行

DEVICE=eth0
TYPE=Ethernet
BRIDGE=br0
Run Code Online (Sandbox Code Playgroud)

以及其他配置行。将 ifcfg-eth0 复制到 ifcfg-br0,其中 ifcfg-br0 应与下面提到的行中的 ifcfg-eth0 不同

DEVICE=br0
TYPE=Bridge
Run Code Online (Sandbox Code Playgroud)

现在,当您使用“服务网络重新启动”时,您将必须使用网络接口 br0 和 eth0,并且 192.168.1.0/24 范围内的 LAN IP 似乎已分配给 br0。现在您所要做的就是编辑虚拟机设置并要求其使用 br0 网络进行连接。