OpenVPN 发夹网络

OpenVPN 发夹网络

我有一个 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 的远程服务器。我还在 VPN 服务器上的 eth0 上使用 NAT。

如果我从“远程服务器”ping“内部服务器”,则一切正常,我会收到响应。如果我从内部服务器 ping VPN 服务器的 eth0 IP,则会正确收到响应。

问题是,如果我尝试从内部服务器 ping 远程服务器或 VPN 服务器的 tun0 IP 地址,它永远不会得到响应。在进行一些 TCP 转储后,我发现当我尝试从内部服务器向 10.19.5.0/24 发送数据包时,它会像您预期的那样进入网关。然后网关将此流量路由到 VPN 服务器。VPN 服务器正在正确处理流量,如果它是目标,它将生成响应,或者如果远程服务器是目标,它将将数据包路由到远程服务器及其响应。

问题是,VPN 服务器没有将该响应发送到网关,而是直接将数据包发送到“内部服务器”(这已通过使用 tcpdump 观察 MAC 地址得到证实)。

我已经看到了一些关于如何修复此问题的文档,但是在使用 SNAT/DNAT/MASQUERADE 并指定各种源地址之后,我仍然不确定如何使用 IPTABLES 修复此问题。

任何帮助将不胜感激。

答案1

事实证明这是亚马逊的问题。我不得不从面板禁用源/目标检查,以允许它路由数据包。

相关内容