联网不适用于qemu guest(Malta Mips)

时间:2014-02-01 09:43:06

标签: linux networking qemu

我正在尝试在QEMU malta mips上配置网络,该mips使用tap / tun设备和网桥接口在vmware主机(ubuntu)上运行。我的qemu guest无法从DHCP服务器检索IP地址。如果我手动给它,它只能连接到它的主机。使用tcpdump我开始知道传出流量工作正常但传入不起作用。

有谁能建议我如何解决这类问题? 谢谢

3 个答案:

答案 0 :(得分:4)

如果使用NAT模式,则主机将充当来宾VM的路由器。这意味着您必须在主机上启用路由。

假设您启动qemu并将其链接到tap0接口并且您的传出互联网接口是eth0,那么您应该:

  1. 创建tap0虚拟界面:

    tunctl -t tap0
    ifconfig tap0 192.168.0.1 netmask 255.255.255.0 up
    
  2. 激活路由

    # activate ip forwarding
    echo 1 > /proc/sys/net/ipv4/ip_forward
    
    # Create forwarding rules, where
    # tap0 - virtual interface
    # eth0 - net connected interface
    
    iptables -A FORWARD -i tap0 -o eth0 -j ACCEPT
    iptables -A FORWARD -i eth0 -o tap0 -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    
  3. 启动您的虚拟机,如下所示:

    qemu [..] -net nic,model=e1000,vlan=0 -net tap,ifname=tap0,vlan=0,script=no
    
  4. 在您的虚拟机中,使用ip 192.168.0.2/24和默认网关192.168.0.1配置接口

答案 1 :(得分:0)

在NAT模式下,您无法实现此目的。您需要在桥接模式下配置VM,我希望您知道配置它的步骤;如果没有看到链接here;

答案 2 :(得分:0)

catalin.me的答案的步骤2可能更简单:

# activate ip forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

仅在FORWARD链的默认策略为DROP的情况下,才需要前两个iptables规则。

例如:

iptables -P FORWARD DROP