我正在尝试在QEMU malta mips上配置网络,该mips使用tap / tun设备和网桥接口在vmware主机(ubuntu)上运行。我的qemu guest无法从DHCP服务器检索IP地址。如果我手动给它,它只能连接到它的主机。使用tcpdump我开始知道传出流量工作正常但传入不起作用。
有谁能建议我如何解决这类问题? 谢谢
答案 0 :(得分:4)
如果使用NAT模式,则主机将充当来宾VM的路由器。这意味着您必须在主机上启用路由。
假设您启动qemu并将其链接到tap0接口并且您的传出互联网接口是eth0,那么您应该:
创建tap0虚拟界面:
tunctl -t tap0
ifconfig tap0 192.168.0.1 netmask 255.255.255.0 up
激活路由
# 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
启动您的虚拟机,如下所示:
qemu [..] -net nic,model=e1000,vlan=0 -net tap,ifname=tap0,vlan=0,script=no
在您的虚拟机中,使用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