我正在尝试按照此处所述设置虚拟networking。 这些是我的步骤:
ifup eth0 # uses DHCP brctl addbr br0 ifconfig br0 up 192.168.0.1 kvm ... -device e1000,netdev=tap0 -netdev type=tap,id=tap0,sccript=/etc/qemu-ifup
qemu-ifup在哪里
ifconfig tap0 0.0.0.0 promisc up brctl addif br0 tap0
最后,在vm里面,
ifconfig eth0 192.168.0.2 route add default gw 192.168.0.1
这使我可以在客户机内ping 192.168.0.1和10.42.42.127(主机的IP),而在主机内ping客户机。
但是,我不能在另一个guest虚拟机中ping一个guest,也不能在主机之外(例如10.42.42.1或8.8.8.8)ping任何其他的IP。
我应该如何设置?
有两个问题:
1)你允许在br0和eth0之间转发吗? 你可以通过这个命令来检查它:
cat /proc/sys/net/ipv4/ip_forward
如果您得到“0”,则必须将其更正为“1”:
echo "1" > /proc/sys/net/ipv4/ip_forward
你可以在/etc/sysctl.conf中永久地允许它。
2)你必须通过iptables进行NAT设置,例如:
iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE