KVM/QEMU网络TAP问题与libvirt

5

我正在尝试使用libvirt和virsh来管理我的kvm/qemu虚拟机。我遇到的问题是如何使用公共IP使其正常工作。服务器运行的是ubuntu 8.04。

libvirt一直试图以以下方式运行:

/usr/bin/kvm -M pc -m 256 -smp 3 -monitor pty -no-acpi \ 
  -drive file=/opt/virtual-machines/calculon/root.qcow2,if=ide,boot=on \ 
  -net nic,vlan=0,model=virtio -net tap,fd=10,vlan=0 -usb -vnc 127.0.0.1:0

有一种引导方式,但没有任何网络访问(ping无法到达)。如果不使用fd = 10运行它,则可以正常工作,kvm会为我创建必要的TAP设备,并在主机内部运行网络。我看过所有的设置指南都集中在设置伪装上,而我只想要一个简单的桥接和对网络的未过滤访问(既客户端又主机必须使用公共IP)。

在主机上运行ifconfig会得到这个结果,桥接是在我的/ etc / network / interfaces文件中手动设置的。

br0   Link encap:Ethernet  HWaddr 00:1e:c9:3c:59:b8
      inet addr:12.34.56.78  Bcast:12.34.56.79  Mask:255.255.255.240
      inet6 addr: fe80::21e:c9ff:fe3c:59b8/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:3359 errors:0 dropped:0 overruns:0 frame:0
      TX packets:3025 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0
      RX bytes:180646 (176.4 KB)  TX bytes:230908 (225.4 KB)

eth0  Link encap:Ethernet  HWaddr 00:1e:c9:3c:59:b8
      inet6 addr: fe80::21e:c9ff:fe3c:59b8/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:6088386 errors:0 dropped:0 overruns:0 frame:0
      TX packets:3058 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000
      RX bytes:680236624 (648.7 MB)  TX bytes:261696 (255.5 KB)
      Interrupt:33

非常感谢您的帮助。


这是一个编程网站,而不是技术支持。 - UnkwnTech
5
我不同意。界限变得模糊了。系统管理和配置与程序代码一样重要,并且存在着类似的挑战。请注意,这句话是在强调系统管理和配置的重要性,以及其对程序的关键作用。 - Andrew Cholakian
Ping不是一个有效的测试。Ping无法工作。 - Engineer
2个回答

5

我按照https://help.ubuntu.com/community/KVM上的桥接网络指南进行了操作,并在/etc/network/interfaces文件中添加了以下内容:

auto eth0
iface eth0 inet manual

auto br0
iface br0 inet static
        address 192.168.0.10
        network 192.168.0.0
        netmask 255.255.255.0
        broadcast 192.168.0.255
        gateway 192.168.0.1
        bridge_ports eth0
        bridge_fd 9
        bridge_hello 2
        bridge_maxage 12
        bridge_stp off

我没有更改任何libvirt网络设置,我的kvm镜像是这样启动的:

/usr/bin/kvm -M pc -no-kqemu -m 256 -smp 1 -monitor pty -boot c -hda \
    /libvirt/apt.img -net nic,macaddr=00:16:3e:77:32:1d,vlan=0 -net \
    tap,fd=11,script=,vlan=0 -usb -vnc 127.0.0.1:0

我按照正常流程在kvm镜像中指定了静态网络设置。自从我按照指南操作后,一切都运行良好。

然而,在我的xml文件中的/etc/libvirt/qemu/路径下,我有以下设置,位于devices标签下:

<interface type='bridge'>
  <mac address='00:16:3e:77:32:1d'/>
  <source bridge='br0'/>
</interface>

-2

我猜你的tap设备应该在ifconfig中显示。

运行“brctl show”

它将显示桥接和隧道设备连接。

你可能需要添加iptables条目以显示所有数据包都将通过桥接路由

iptables -I INPUT -i br0 -j ACCEPT


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接