Нужна базовая помощь для настройки Nat

У меня есть сервер с IP 1.0.0.5/24. Это основной IP-адрес сервера, и теперь у меня есть два других IP-адреса для сервера, это 1.0.2.30/24 и 1.0.2.31/24. Я хочу, чтобы VirtualBox работал под управлением другой ОС, доступной через Интернет, и позволял только указанному IP-адресу достигать виртуальной коробки.

Я новичок в iptables, и поэтому мне нужна базовая помощь и получение информации об этом.

Хостинг-провайдер не позволяет больше, чем на MAC-адрес на порт коммутатора, что означает, что я не могу сделать мост, насколько я знаю.

Кроме того, я хочу, чтобы хост отклонял дополнительные IP-адреса, чтобы это был только VirtualBox / виртуальная машина, которая принимает запрос на дополнительный IPS.

1 ответ

Решение

Я не проверял это, но это то, что я бы попробовал.

  1. Создайте новый мост на хосте с brctl

    brctl addbr br0
    
  2. Настройте виртуальную машину с мостовой сетью, подключенной к этому мосту

  3. Назначьте частную подсеть мосту и назначьте хосту IP-адрес

    ip addr add 192.168.1.1/24 dev br0
    ip route add 192.168.1.0/24 dev br0
    
  4. Либо статически сконфигурируйте ВМ с IP-адресом в этом диапазоне (например, 192.168.1.2), либо настройте DHCP-сервер на хосте (например, dnsmasq или dhcpserver VirtualBox).

  5. Убедитесь, что хост может получить доступ к виртуальной машине и наоборот по частным IP-адресам.
  6. Подключите статический IP к eth0 на хосте

    ip addr add 1.0.2.30/24 dev eth0
    
  7. Убедитесь, что вы можете подключиться к хосту по дополнительному IP снаружи

  8. Включить переадресацию IP на хосте

    echo 1 > /proc/sys/net/ipv4/ip_forward
    
  9. Настройте iptables для исходящих пакетов SNAT от виртуальной машины

    iptables --table nat --append POSTROUTING --source 192.168.1.0/24 --jump SNAT --to 1.0.2.30
    iptables --append FORWARD --source 192.168.1.0/24 --jump ACCEPT
    
  10. Убедитесь, что виртуальная машина имеет подключение к Интернету

  11. Настройте iptables для пакетов DNAT на дополнительный IP к VM

    iptables --table nat --append PREROUTING --destination 1.0.2.30 --to-destination 192.168.1.2
    iptables --append FORWARD --destination 192.168.1.2 --jump ACCEPT
    
  12. Убедитесь, что вы можете подключиться к виртуальной машине по дополнительному IP-адресу извне

Другие вопросы по тегам