Can IPSec connect through a VPN gateway which is sharing a public ip via NAT (inbound NAT traversal)? Do NAT-T and IPSec passthrough relate to this or are they just for outbound NAT (i.e. dealing with clients which are behind NAT but where the gateway has a public IP)? Would it be sufficient to forward some ports from router1 to test, or would that be incompatible with IPSec?
O NAT-T, conforme definido na RFC 3947/3948, é um encapsulamento UDP do tráfego IPSec. Sem esse encapsulamento, o IPSec usa tipos de protocolo próprios sob IP para ambos - os modos de transporte e de encapsulamento, impossibilitando o trabalho através do NAT. Com o encapsulamento UDP, funcionaria sobre qualquer dispositivo NAT capaz de manipular UDP.
A direção do estabelecimento da conexão realmente importa, já que os roteadores NAT são stateful e mantêm as informações de "conexão" UDP, permitindo apenas "conexões" UDP iniciadas de dentro da rede NAT. Criar uma regra de encaminhamento de porta para a porta UDP usada pelo IKE e o encapsulamento UDP para o ESP (4500 / udp) superaria essa limitação, mas obviamente permitiria apenas um único host IPSec configurado dessa maneira atrás do dispositivo NAT.
Can both ends of an IPSec tunnel have dynamic IP's as long as one has a domain name and dynamic dns?
Sim, você não precisa de um endereço IP estático, embora seja provável que torne a sua vida mais fácil, já que remove dois pontos únicos de falha (o processo de atualização / provedor de DDNS) da sua configuração. Observe que a execução com endereços IP dinâmicos em ambas as extremidades com autenticação PSK exigiria um modo agressivo para a fase 1 do IKE.