我有一个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/24stream量转发到VPN服务器。 我也推送一个路由到远程服务器的10.19.4.0/24。 我也在VPN服务器的eth0上使用NAT。
如果我从“远程服务器”ping“内部服务器”它完美的作品,我收到一个回应。 如果我从内部服务器ping VPN Server的eth0 IP,我收到正确的响应。
问题是,如果我尝试从内部服务器ping远程服务器或VPN服务器的tun0 IP地址,它永远不会得到响应。 在做了一些TCP转储之后,我发现当我试图从内部服务器发送数据包到10.19.5.0/24时,它就像你期望的那样进入网关。 网关然后将这个stream量路由到VPN服务器。 VPN服务器正在处理stream量,如果它是目标,则会生成响应,或者将数据包路由到远程服务器,如果远程服务器是目标,则是响应。
问题是,VPN服务器不是直接发送这个响应到网关,而是直接把数据包发送到“内部服务器”(这已经通过使用tcpdump观察MAC地址来确认)。
我已经看到了一些关于如何解决这个问题的文档,但是在使用SNAT / DNAT / MASQUERADE和指定各种源地址之后,我仍然不确定如何用IPTABLES修复它。
任何帮助将不胜感激。
事实certificate,这是一个亚马逊问题。 我不得不禁用面板上的src / destination检查,以允许它路由数据包。