VirtualBox中的QEMU和桥接连接一直向下


7

我正试图在我的局域网上安装一个ARM QEMU系统。我尝试直接从Windows(Windows 7 x64)运行QEMU,但除了我无法使用TAP适配器桥接到我的无线连接之外。具体来说,Windows拒绝桥接我的任何网络适配器。

所以,我尝试在一个Ubuntu虚拟机中使用QEMU(令人惊讶的是,它变得相当快,这就是为什么我要坚持使用它)。 Ubuntu VM桥接到我的无线连接,工作正常。我使用TAP设备在Ubuntu中设置了一个桥接器,我相信它设置正确,但除了从我的LAN获取DHCP地址外,它将无法工作。

  • Windows 7 x64主机
    • Ubuntu 12.04 32位VM
      • QEMU ARM运行Debian Squeeze

我相信存在路由问题,但我无法确定它。

  • 我的局域网在1.1.1.0/24设置为DHCP,网关是1.1.1.1(是的,这是愚蠢但不是问题)
  • Ubuntu具有以下配置:

[这里需要一个不太常见的空白行,以便预标记在下面工作......]

br0 Link encap:Ethernet  HWaddr 08:00:27:74:6b:ec  
inet addr:1.1.1.16  Bcast:1.1.1.255  Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe74:6bec/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:3135 errors:0 dropped:0 overruns:0 frame:0
TX packets:967 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0 
RX bytes:681918 (681.9 KB)  TX bytes:79747 (79.7 KB)

eth1 Link encap:Ethernet  HWaddr 08:00:27:74:6b:ec  
inet6 addr: fe80::a00:27ff:fe74:6bec/64 Scope:Link
UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
RX packets:14249 errors:0 dropped:0 overruns:0 frame:0
TX packets:5850 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000 
RX bytes:15166414 (15.1 MB)  TX bytes:431255 (431.2 KB)

tap1 Link encap:Ethernet  HWaddr 96:f3:2d:ae:c8:08  
inet6 addr: fe80::94f3:2dff:feae:c808/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:161 errors:0 dropped:0 overruns:0 frame:0
TX packets:2262 errors:0 dropped:3 overruns:0 carrier:0
collisions:0 txqueuelen:500 
RX bytes:12144 (12.1 KB)  TX bytes:262799 (262.7 KB)

QEMU如下:

enter image description here

我的服务器证实了这一点:

tail /var/log/dnsmasq.leases
1341855255 52:54:00:12:34:56 1.1.1.144 * *

所以QEMU正在获取IP地址,但看起来没有连接:

root@arm-emu:~# ping google.com
ping: unknown host google.com

root@arm-emu:~# ping 1.1.1.1
From 1.1.1.144 Destination Host Unreachable

这就是我以前在Ubuntu中设置桥的方法:

tunctl -t tap1 -u root
brctl addbr br0
ifconfig eth1 0.0.0.0 promisc
brctl addif br0 eth1
dhclient br0
brctl addif br0 tap1
ifconfig tap1 up

在QEMU中,我只使用DHCP进行eth0,没有特殊配置。

我做错了,我的桥接连接是什么?


嗨,@尼克,你在设置方面取得了成功吗?我在Ubuntu VirtualBox中运行的Android模拟器有类似的问题。
Иван

请停止使用 net-toolsifconfigroute等)。使用 iproute2。在许多其他方面它是凌乱和低劣的。看到, 这个 这个 这个 和Stack Exchange上的许多其他人一样。
pilona

有许多级别可以在两台主机上丢弃流量:netfilter,ARP,桥接,路由。如果不是私有的,您可以在主机和来宾上发送以下内容的输出吗? iptables-save; ip r; ip n; ip -4 a。在主持人,请也运行 bridge fdb; bridge link。我也很高兴看到用于运行QEMU的参数。
pilona

要自己调试,请尝试运行 tcpdump port 53 or icmp 或者你最喜欢的数据包嗅探器,在所有这三台机器上。您将希望在执行桥接的那些实例上运行两个实例,以查看是否正在接收和重新传输数据包。
pilona

Answers:


3

我知道我迟到了,但我最近遇到了同样的问题。

主要在这里找到解决方案:

http://ajitabhpandey.info/2007/07/interconnecting-qemu-and-virtualbox-virtual-machines/

关键步骤是在桥接接口上启用IP转发和设置MASQUERADING:

$ echo "1" > /proc/sys/net/ipv4/ip_forward
$ sudo iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE

现在QEMU可以访问互联网,VirtualBox和主机可以访问。

但无法访问同一LAN上的其他计算机。

由于英语是我的第二语言,任何愿意改善这个答案的人都会受到赞赏。

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.