Я хотел бы создать следующую сеть:
Интернет ---- Хост-машина ---- VM1 --- (локальная сеть) - VM2
с VM1, действующей как NAT-роутер. VM1 и VM2 запускают Ubuntu через VirtualBox.
Для этого я создал локальную сеть 192.168.46.x для VM1 (192.168.46.101) & amp; VM2 (192.168.46.102). Я также установил значение в / proc / sys / net / ipv4 / ip_forward равным 1 (для VM1). Кроме того, я подключил VM1 к NAT.
В этой конфигурации я могу пинговать VM1 с VM2 и наоборот, а также пинговать google.com с VM1.
Я подумал, что для возможности пропинговать google.com из VM2 мне просто нужно добавить следующую запись в таблицу маршрутизации VM2:
Dest Gateway Netmask Iface
0.0.0.0 192.168.46.101 255.255.255.0 enp0s3
(где enp0s3 - единственный сетевой интерфейс VM2 ).
Но все же, VM2 получает «неизвестный хост google.com» при пинге.
Не могли бы вы помочь мне выяснить, почему?
ifconfig для VM1 , ifconfig для VM2 , route -n для VM1 , route -n для VM2
Я фактически пропустил некоторые записи в iptables, добавленные следующим образом:
# iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE
# iptables -A FORWARD -i enp0s8 -o enp0s3 -m state --state RELATED,ESTABLISHED -j ACCEPT
# iptables -A FORWARD -i enp0s8 -o enp0s3 -j ACCEPT
с enp0s8 интерфейсом для внешнего мира и enp0s3 интерфейсом для внутренней сети.
Запросы в Интернет от VM2 теперь работают ...:)