Я пытаюсь смоделировать клиента за NAT с помощью Virtual Box.
У меня есть хост-машина, скажем, с IP-адресом 130.0.0.1. Я создаю виртуальную машину (назовем ее VM1) под управлением Ubuntu 12.04 с двумя сетевыми интерфейсами.
eth0 - Bridged Adaptor (Let's say it gets an address 130.0.0.2)
eth1 - Host-only Adaptor (Let's say it gets an address 192.168.0.1)
В VM1 я очищаю все правила iptable, используя:
iptables -F
iptables -t nat -F
iptables --delete-chain
iptables --table nat --delete-chain
Я включаю пересылку пакетов ядром с помощью команды:
echo 1 > /proc/sys/net/ipv4/ip_forward
Я создаю новые правила с помощью iptables:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE OR iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
iptables -A FORWARD -i eth1 -j ACCEPT OR iptables --append FORWARD --in-interface eth1 -j ACCEPT
Я настраиваю интерфейс eth1 виртуальной машины 1, в / etc / network / interface которой есть следующие записи:
auto lo
iface lo inet loopback
auto eth1
iface eth1 inet static
address 192.168.0.1
netmask 255.255.255.0
И я создаю еще одну виртуальную машину (назовем ее VM2) под управлением Ubuntu 12.04 (адаптер только для хоста). Я настраиваю его интерфейс, устанавливая следующие записи в / etc / network / interface:
auto lo
iface lo inet loopback
address 192.168.0.2
netmask 255.255.255.0
gateway 192.168.0.1
Итак, в соответствии с этим параметром VM2 должна вести себя как клиент за NAT (VM1), и я пытаюсь подключиться к машинам, присутствующим в сети хоста, от VM2. Когда я:
ping 130.0.0.2 or
ping 192.168.0.1
оно работает. Но когда я пытаюсь:
ping 130.0.0.1 or
any other machine on that network
Я не получаю ответа. Может ли кто-нибудь сообщить мне, что мне здесь не хватает или что я делаю неправильно?