4

朋友们,我正在尝试使用 linux bridge 实用程序将我的 qemu 访客桥接到真实网络。
为此,我使用了非常简单的方法:

  1. 使用 (sudo brctl addbr br0) 在主机上创建网桥
  2. 将 eth0 添加到此网桥 (sudo brctl addif br0 eth0)
  3. 更改 /etc/qemu-ifup 脚本 (brctl addif br0 $1)
  4. 更改 /etc/qemu-ifdown 脚本 (brctl delif br0 $1)

通过以上 4 个步骤,我让我的客人的网络正常工作。但现在的问题是,在我将 eth0 连接到桥接 br0 后,我的主机网络无法正常工作。

我确认在第 1 步和第 2 步之后,我的主机网络停止工作。但是访客网络继续工作,这让我感到困惑。

有人可以指出这两行有什么问题吗?

  1. 使用 (sudo brctl addbr br0) 在主机上创建网桥
  2. 将 eth0 添加到此网桥 (sudo brctl addif br0 eth0)

PS:我几乎尝试了网上给出的所有方法,但没有任何方法成功。除了我的问题与 linux 网络有关,特别是与 qemu 无关

4

1 回答 1

7

我意识到我的愚蠢。但由于这个问题同时仍然很有趣和有用,我不会关闭它。

这是问题所在。我应该在桥上而不是 eth0 上有 IP 堆栈。
因为 eth0 上的 ip 堆栈破坏了网桥结构。我只是在我的解决方案中添加了几个步骤,它就像一个魅力。比网络上的大多数解决方案都要好。

脚步 :

  1. 使用 (sudo brctl addbr br0) 在主机上创建网桥
  2. 在 eth0 上释放 ip addr(重新打开和关闭链接)
  3. 将 eth0 添加到此网桥 (sudo brctl addif br0 eth0)
  4. 在网桥上启动 ip 堆栈 (sudo dhclient br0)
  5. 更改 /etc/qemu-ifup 脚本 (brctl addif br0 $1)
  6. 更改 /etc/qemu-ifdown 脚本 (brctl delif br0 $1)

我使用的 qemu 命令是:
sudo qemu-system-i386 -enable-kvm -net tap,vlan=0,ifname=tap0 -net nic,vlan=0 -hda ~/Data/OS_DiskImages/ubuntu11.10/disk.qcow2

此处给出脚本的详细步骤: 链接

于 2012-04-16T18:27:06.797 回答