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

OpenVPN Шпилька Nat

У меня настроен OpenVPN, который выглядит так:

                                            +------------------------------------------------------+
                                            |                                                      |
                                            |                                                      |
                                            |                                                      |
                                            |                                                      |
                                            |                                                      |
                                            |                                                      |
                                            |                                                      |
                                            |                 +-------------+--+                   |
                                            |                 | Internal Server|                   |
                                            |                 | 10.19.4.35     |                   |
                                            |                 |                |                   |
                                            |                 +----------------+                   |
                                      +-----+-------+                                              |
                                      | Gateway     |                                              |
                                      | 10.19.4.1   |                                              |
                                      |             |                                              |
                                      +-----+-------+         +--------+-------+                   |
                                            |                 | VPN Server     |                   |
                                            |                 | 10.19.4.59 eth0|                   |
                               +------------------------------+ 10.19.5.0 tun0 |                   |
+-------------+---+            |            |                 +----------------+                   |
|   Remote Server |            |            |                                                      |
|   10.0.0.2 eth0 +------------+            |                                                      |
|   10.19.5.2 tun0|                         |                                                      |
+-----------------+                         |                                                      |
                                            |                                                      |
                                            |                                                      |
                                            +------------------------------------------------------+
                                                              VPC                                   

Шлюз - это шлюз AWS, и есть маршрут для перенаправления трафика 10.19.5.0/24 на сервер VPN. Я также продвигаю маршрут к удаленному серверу для 10.19.4.0/24. Я также использую NAT на eth0 на VPN-сервере.

Если я пингую «Внутренний сервер» с «Удаленного сервера», он работает отлично, и я получаю ответ. Если я пропингую IP-адрес eth0 VPN-сервера с внутреннего сервера, я получаю правильный ответ.

Проблема в том, что если я попытаюсь пропинговать удаленный сервер или IP-адрес tun0 VPN-сервера с внутреннего сервера, он никогда не получит ответа. Сделав несколько дампов TCP, я обнаружил, что когда я пытаюсь отправить пакеты на 10.19.5.0/24 с внутреннего сервера, они отправляются на шлюз, как и следовало ожидать. Затем шлюз направляет этот трафик на сервер VPN. VPN-сервер правильно обрабатывает трафик в том смысле, что он сгенерирует ответ, если он является целью, или направит пакет на удаленный сервер и ответит, если удаленный сервер является целью.

Проблема в том, что вместо того, чтобы отправлять этот ответ на шлюз, сервер VPN просто отправляет пакет непосредственно на «Внутренний сервер» (это было подтверждено путем наблюдения за MAC-адресами с помощью tcpdump).

Я видел документацию о том, как это исправить, но, поигравшись с SNAT / DNAT / MASQUERADE и указав различные адреса источника, я все еще не уверен, как исправить это с помощью IPTABLES.

Любая помощь будет принята с благодарностью.

Оказывается, это проблема Amazon. Мне пришлось отключить проверку src / destination с панели, чтобы он мог маршрутизировать пакеты.