OpenVPN на Google Compute Engine — какой маршрут я упускаю?

OpenVPN на Google Compute Engine — какой маршрут я упускаю?

Я установил OpenVPN на других провайдерах VPS и хотел попробовать Google. Мне нравится соотношение цены и производительности Google, и особенно потому, что я могу запускать машины с телефона, не входя в систему каждый раз.

Я довел дело до того, что клиент подключается, но не может выйти в интернет.

Я открыл брандмауэр для порта OpenVPN.
Я включил переадресацию IP на виртуальной машине.
Клиент получает IP, шлюз, DNS — все правильно — при подключении.

Я подозреваю, что мне нужно построить маршрутизатор и/или маршрут, чтобы пакеты доходили от экземпляра OpenVPN до мира. Я очень хорошо прочитал документацию, но я застрял — я пока не сетевой гуру, все еще учусь по ходу дела. Прочитав, я понял, что могу преобразовать сеть в то, что они называют «устаревшей» структурой, но я хотел бы иметь возможность преодолеть эту проблему и понять, что происходит. Я думаю, это потому, что сеть разбита на множество разных подсетей; по сравнению с всего лишь одной сетью за брандмауэром (т. е. Legacy).

Глядя на карту в уме, мой OpenVPN отправляет данные на шлюз своей подсети, но оттуда, я думаю, пакеты теряются. Мне должен быть нужен маршрут от шлюза подсети до интернета? Или даже полный маршрутизатор между подсетью и интернетом?

Как я уже сказал, я раньше использовал виртуальные машины OpenVPN, никаких проблем. Поэтому я уверен, что проблема кроется в настройке сети Google Cloud.

Спасибо за любые советы.

решение1

Это исправило ситуацию:

iptables -t nat -I POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

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

Никаких других изменений в сети Google Cloud не потребовалось.

решение2

Вам нужно проверить несколько вещей.

  1. Проверьте, есть ли у вас следующая директива в /etc/sysctl.conf

    net.ipv4.ip_forward = 1

  2. Убедитесь, что брандмауэр перенаправляет трафик, полученный от клиентов на интерфейсе VPN.

    #OpenVPN interface=tun0 iptables -A FORWARD -i tun0 -j ACCEPT

  3. Убедитесь, что вы маскируете исходящий трафик.

#WAN Interface on OpenVPN server is eth1 iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

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