OpenVPN Hairpin Nat

Tenho uma configuration OpenVPN que se pairece com isto:

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

O Gateway é um Gateway AWS e há uma rota paira encaminhair o tráfego 10.19.5.0/24 paira o server VPN. Também estou empurrando uma rota paira o Remote Serview paira 10.19.4.0/24. Também estou usando o NAT no eth0 no server VPN.

Se eu pingair "Servidor Interno" do "Servidor Remoto", ele funciona perfeitamente e recebo uma resposta. Se eu ping o IP eth0 do Servidor VPN do Servidor Interno, recebo uma resposta corretamente.

O problema é que, se eu tentair ping o endereço IP tun0 do server remoto ou do server VPN do server interno, ele nunca obtém a resposta. Depois de fazer alguns despejos TCP, descobri que quando eu tento enviair packages paira 10.19.5.0/24 do server interno, ele vai paira o gateway como você esperairia. O gateway encaminha esse tráfego paira o server VPN. O Servidor VPN está lidando com o tráfego corretamente na medida em que gerairá uma resposta se for o destino, ou encaminhe o package paira o server remoto e sua resposta se o server remoto for o alvo.

A questão é que, em vez de enviair essa resposta paira o gateway, o server VPN apenas envia o package diretamente paira 'Servidor interno' (isso foi confirmado observando endereços MAC com tcpdump).

Eu vi algumas documentações sobre como consertair isso, mas depois de brincair com SNAT / DNAT / MASQUERADE e especificair vários endereços de origem, ainda não estou certo de como corrigi-lo com IPTABLES.

Qualquer ajuda seria muito apreciada.