Всем здравствуйте.
Есть виртуальная машина (VirtualBox), далее guest.
Хочу обеспечить guest’у выход в сеть (в т. ч. интернет), поместив его/её в отдельную подсеть и настроив host как маршрутизатор, минуя стандартные средства VirtualBox (Bridged, NAT, NAT Network).
Соот-но, на самой VM поднята только host-only network, этой сети на host’е соответствует интерфейс vboxnet0
:
vboxnet0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.138.1 netmask 255.255.255.0 broadcast 192.168.138.255
inet6 fe80::800:27ff:fe00:0 prefixlen 64 scopeid 0x20<link>
ether 0a:00:27:00:00:00 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 11796 bytes 1496688 (1.4 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Host и guest прекрасно видят друг друга, guest использует в кач-ве шлюза по умолчанию 192.168.138.1 (интерфейс vboxnet0
host’а).
В /etc/networks
дополнительно определена сеть vboxnet0
:
vboxnet0 192.168.138.0
Далее, iptables
на host’е настроены примерно так:
*nat
-A POSTROUTING -o vboxnet0 -j MASQUERADE
COMMIT
*filter
# Incoming traffic from virtual network interfaces
-A INPUT -i vboxnet0 -j ACCEPT
# Incoming traffic to virtual networks
-A INPUT --destination vboxnet0/24 -j ACCEPT
-A FORWARD -i eth0 -o vboxnet0 -j ACCEPT
-A FORWARD -i vboxnet0 -o eth0 -j ACCEPT
-A FORWARD -j DROP
-A OUTPUT -j ACCEPT
COMMIT
В результате виртуальная машина «видна» извне (из физической домашней сети 192.168.0.0/24, куда подключён host своим инрефейсом eth0
), но вот сама она ничего, кроме host’а (192.168.138.1), не видит.
ЧЯДНТ?