Назад | Перейти на главную страницу

Интерфейс туннеля внутри Virtualbox IP forwarding

Я работаю над решением для предоставления доступа к стеку разработки, который находится внутри гостевой системы Virtualbox, через туннели OpenVPN.

Клиент OpenVPN запускается внутри гостевой виртуальной машины и нормально подключается к экземпляру EC2 с общедоступным IP-адресом.

Я добавил маршрут в поле EC2, чтобы включить локальную сеть на стороне гостевой виртуальной машины. На самом деле гостевая виртуальная машина имеет следующие интерфейсы:

Гость

eth0: 10.0.2.15 tun0: 10.8.0.2

EC2

tun0: 10.8.0.1 eth0: 10.254.254.234

Я могу пинговать с EC2 на tun0 (10.8.0.2) на гостевой стороне, а также на eth0 (10.0.2.15)

Теперь самое интересное начинается, когда на стороне EC2 я включаю правило DNAT, чтобы трафик SIP направлялся с 10.254.254.234 на 10.0.2.15.

iptables -t nat -I PREROUTING -d 10.254.254.234 -j DNAT --to-destination 10.0.2.15

Поскольку существует правильный маршрут, трафик отправляется через туннель, и я вижу сообщения, поступающие на другую сторону (Virtualbox), когда я использую tcpdump поверх tun0. Однако конечный пункт назначения этого пакета - eth0 на виртуальной машине, и он никогда не пересылается с tun0 на eth0.

Пересылка IP включена, и в цепочке FORWARD в iptables нет правил REJECT.

Кроме того, если я заставляю процесс (прокси-сервер SIP) прослушивать интерфейс туннеля, даже когда я вижу пакеты при отслеживании с помощью tcpdump и прокси-сервер привязывается к IP-адресу туннеля, он никогда не сообщает о получении трафика в своих журналах.

Вы не имеете в виду

iptables -t nat -I PREROUTING -s 10.254.254.234 -j DNAT --to-destination 10.0.2.15

(у вас есть правило - два адреса назначения)