У меня настроен 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 с панели, чтобы он мог маршрутизировать пакеты.