Se bem me lembro, o Amazon EC2 usa algum NAT para tornar sua instância acessível pela Internet.
Embora os aplicativos compatíveis com NAT funcionem perfeitamente (pense em http ou ssh), alguns protocolos foram projetados em um momento em que a comunicação de ponta a ponta era a regra, e o NAT quebraria esses protocolos.
FTP ou SIP (o rtp na verdade) usa portas escolhidas dinamicamente, mas os ajudantes foram criados. STUN para VoIP por exemplo.
No caso do IPSec, a fase 1 é bem-sucedida. Esta é a detecção de NAT. Então o seu servidor diz nos logs i am NATed
.
No entanto, a fase 2, que é a decisão transversal NAT, falha. Você pode ter que habilitar o que a Cisco chama de 'transparência IPSec NAT' em ambos os lados. A carga útil ipsec, portanto, não está no nível da camada 3 (IP), mas na camada 4, no UDP.
Isso é um pouco semelhante ao que o openvpn faz, mas com ssl em vez de IPSec.
Dê uma olhada no site da Cisco sobre o NAT traversal . Embora seja ciscocêntrico, ajudará você a configurar seu túnel.