Я пытаюсь настроить виртуальную сеть, как описано Вот. Вот мои шаги:
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
Это позволяет мне пинговать 192.168.0.1 и 10.42.42.127 (IP-адреса хоста) изнутри гостя, а гостя - изнутри хоста.
Однако я не могу пинговать гостя изнутри другого гостя или любого другого IP-адреса за пределами хоста (например, 10.42.42.1 или 8.8.8.8).
Как мне это настроить?
Есть два вопроса:
1) Разрешили ли вы пересылку между br0 и eth0? Вы можете проверить это с помощью этой команды:
cat /proc/sys/net/ipv4/ip_forward
Если вы получили «0», вы должны исправить его на «1»:
echo "1" > /proc/sys/net/ipv4/ip_forward
Вы можете разрешить это в /etc/sysctl.conf навсегда.
2) У вас должны быть настройки NAT через iptables, например, например:
iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE