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


8

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

在来宾上:

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

并启动访客:

sudo kvm /path/to/guest.img -net nic,macaddr=DE:AD:BE:EF:90:26 -net tap,ifname=tap0,script=no

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

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

参考:

Answers:


1

尝试遵循此方法: libwirtwiki-访客点击

并修复/etc/libvirt/qemu/example.xml

<interface type='ethernet'>
  <mac address='26:c7:a9:96:a7:7a'/>
  <target dev='tap0'/>
  <model type='virtio'/>
  <script path='no'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>

就我而言


0

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

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

DEVICE=eth0
TYPE=Ethernet
BRIDGE=br0

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

DEVICE=br0
TYPE=Bridge

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


感谢Saurabh,但是这种绕行方式是因为无线接口不支持常规桥接,就像使用有线eth0接口一样。
DaveO

糟糕!我的错。没有意识到桥接不适用于有线无线接口。
Saurabh Barjatiya

而不是桥接。您还可以使用自己的DHCP设置完整的无线网络,并使用一些未使用的私有IP范围。然后,要使此无线网络连接到外部,可以在具有无线和有线连接的计算机上使用源/目标NAT。如果无线虚拟机没有任何服务器,则仅源PAT可以。如果有必要从网络的其余部分连接到无线VM,则源和目标NAT组合应该起作用。
Saurabh Barjatiya

0

使用macvtap有什么问题?这是完全轻松的,不需要在主机上进行任何进一步的配置。

virt-manager中的macvtap选择


3
Macvlan / macvtap非常适合有线接口,但根据我自己的经验和在线阅读的经验,它似乎不适用于无线接口。
lgaggini

2
@lgaggini您无法接到无线接口,因为AP会拒绝虚拟机的MAC地址。在这种情况下,您只需执行其他操作即可。
迈克尔·汉普顿
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.