NAT Traversal (NAT-T) » History » Version 5

« Previous - Version 5/13 (diff) - Next » - Current version
Tobias Brunner, 16.10.2012 17:29

NAT Traversal


Before 5.0.0, NAT discovery and traversal had to be enabled by setting nat_traversal=yes in the config setup section of ipsec.conf. Otherwise strongSwan 4.x's IKEv1 pluto daemon would not accept incoming IKE packets with a UDP source port different from 500. Since 5.0.0 IKEv1 traffic is handled by the charon daemon which supports NAT traversal according to RFC 3947 without enabling it explicitly.


The IKEv2 protocol includes NAT traversal in the core standard, but it's optional to implement. strongSwan implements it, and there is no configuration involved. The NAT_DETECTION_SOURCE/DESTINATION_IP notifications included in the IKE_SA_INIT exchange indicate the peers NAT-T capability and if a NAT situation is detected, UDP encapsulation is activated for IPsec.

strongSwan starts sending keep-alive packets if it is behind a NAT router to keep the mappings on the NAT device intact.