Создать сетевой маршрут к определенному IP-адресу для гостя VirtualBox

Создать сетевой маршрут к определенному IP-адресу для гостя VirtualBox

Я пытаюсь достичь определенного IP-адреса из гостевой системы VirtualBox с использованием сети только для хоста в другой подсети. Я хочу, чтобы гостевая машина была изолирована (недоступна извне, за исключением этого конкретного IP-адреса, и, что более важно, не имела доступа в Интернет). Я не уверен, возможно ли это вообще, поскольку это называется сетью «только для хоста», и, возможно, есть другое, лучшее решение для этого — я буду рад любым советам.

Вот моя текущая настройка:

Хост-машина A (Ubuntu 14.04):

eth0: 192.168.0.100, шлюз 192.168.0.1

vboxnet0: 192.168.56.1

Гостевая машина B (Windows 10) с хост-адаптером:

192.168.56.101, шлюз 192.167.56.1

Другая машина C:

192.168.0.101

Мне нужна эта машина.Бможет достичь машиныАиСно нет других машин/сетей или интернета. В настоящее время я могу пинговать хост-машинуАс гостевой машиныБчерез ping 192.168.0.100, но не машинуС. Я попробовал создать маршрут на хост-машинеАиспользуя команду

ip route add 192.168.56.101 via 192.168.0.100 dev eth0

но пинг отБкАпосле этого работать не будет.

Редактировать:Теперь мне ясно, что создание маршрута на хосте не имеет смысла и является неправильным подходом к данному вопросу.

Должен признать, что я не эксперт в области сетей, поэтому буду рад любой обратной связи.

решение1

Просто для справки я хотел бы опубликовать решение, которое сработало у меня после перепробования разных способов.

Следующие шаги сработали у меня с Ubuntu 14.04 в качестве хоста и Windows 10 в качестве гостя:

  1. Убедитесь, что IP-пересылка включена.

    sudo sysctl net.ipv4.ip_forward=1
    sudo sysctl -p
    
  2. Установить iptablesправила:

    sudo iptables -t filter -I FORWARD --in-interface vboxnet0 --out-interface eth0 --source 192.168.56.0/24 --destination 192.168.0.101 -j ACCEPT
    sudo iptables -t filter -I FORWARD --in-interface eth0 --out-interface vboxnet0 --source 192.168.0.0/24 --destination 192.168.56.0/24 -j ACCEPT
    sudo iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
    

Применив эти шаги, я смогу добраться до машинАиСот гостяБно нет другого адреса и тем более интернета. Я не знаю точно, почему это работает, и, возможно, кто-то, кто разбирается в этой теме, знает объяснение.

Связанный контент