Si tienes Windows XP sp2 tendrás que tocar el registro creando el valor (DWORD) siguiente:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesIPSecAssumeUDPEncapsulationContextOnSendRule

  • 0: No se permite la conexión por IPSec a equipos detrás de un NAT
  • 1: Se permite la conexión cuando el que responde está detrás de un NAT
  • 2: Se permite la conexión si el iniciador o el que responde están detrás de un NAT (o ambos)

Por defecto Windows XP Sp1 tiene el comportamiento ‘2’. Sin embargo Windows XP Sp2 tiene el comportamiento ‘0’. Debes poner 2

¿Qué puertos abrir en el router?

En el caso de mi router un Linksys WRT54GL sólo es necesario abrir los puertos

  • UDP puerto 500 (Negociación de las claves ISAKMP/IKE)
  • UDP puerto 4500 (IPSec NAT-Traversal)

Es posible que también tengas que abrir UDP puerto 50. Lo mejor es ver que ocurre usando un monitor de red como el Wireshark o el Netmon de Microsoft.
Más información en:

http://support.microsoft.com/?scid=kb%3Ben-us%3B885407&x=16&y=9

http://www.issociate.de/board/post/209954/VPN_Client_behind_firewall.html