TCPDUMP moon# tcpdump -i eth0 not port ssh and not port domain and not arp > /tmp/tcpdump.log 2>&1 & PRE-TEST alice# /etc/init.d/iptables start 2> /dev/null * Caching service dependencies ... [ ok ] * Starting firewall ... [ ok ] venus# /etc/init.d/iptables start 2> /dev/null * Caching service dependencies ... [ ok ] * Starting firewall ... [ ok ] sun# /etc/init.d/iptables start 2> /dev/null * Caching service dependencies ... [ ok ] * Starting firewall ... [ ok ] moon# echo 1 > /proc/sys/net/ipv4/ip_forward moon# iptables -t nat -A POSTROUTING -o eth0 -s 10.1.0.0/16 -p udp -j SNAT --to-source 192.168.0.1:1024-1100 moon# iptables -t nat -A POSTROUTING -o eth0 -s 10.1.0.0/16 -p tcp -j SNAT --to-source 192.168.0.1:2000-2100 alice# rm /etc/ipsec.d/cacerts/* venus# rm /etc/ipsec.d/cacerts/* sun# rm /etc/ipsec.d/cacerts/* alice# ipsec start Starting strongSwan 4.2.17 IPsec [starter]... venus# ipsec start Starting strongSwan 4.2.17 IPsec [starter]... sun# ipsec start Starting strongSwan 4.2.17 IPsec [starter]... alice# sleep 2 alice# ipsec up nat-t initiating IKE_SA nat-t[1] to 192.168.0.2 generating IKE_SA_INIT request 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) ] sending packet: from 10.1.0.10[500] to 192.168.0.2[500] received packet: from 192.168.0.2[500] to 10.1.0.10[500] parsed IKE_SA_INIT response 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) ] local host is behind NAT, sending keep alives authentication of '10.1.0.10' (myself) with pre-shared key establishing CHILD_SA nat-t generating IKE_AUTH request 1 [ IDi IDr AUTH SA TSi TSr N(MOBIKE_SUP) N(ADD_6_ADDR) ] sending packet: from 10.1.0.10[4500] to 192.168.0.2[4500] received packet: from 192.168.0.2[4500] to 10.1.0.10[4500] parsed IKE_AUTH response 1 [ IDr AUTH SA TSi TSr N(AUTH_LFT) N(MOBIKE_SUP) N(ADD_4_ADDR) N(ADD_6_ADDR) N(ADD_6_ADDR) ] authentication of '192.168.0.2' with pre-shared key successful scheduling reauthentication in 3402s maximum IKE_SA lifetime 3582s IKE_SA nat-t[1] established between 10.1.0.10[10.1.0.10]...192.168.0.2[192.168.0.2] venus# sleep 2 venus# ipsec up nat-t initiating IKE_SA nat-t[1] to 192.168.0.2 generating IKE_SA_INIT request 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) ] sending packet: from 10.1.0.20[500] to 192.168.0.2[500] received packet: from 192.168.0.2[500] to 10.1.0.20[500] parsed IKE_SA_INIT response 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) ] local host is behind NAT, sending keep alives authentication of '10.1.0.20' (myself) with pre-shared key establishing CHILD_SA nat-t generating IKE_AUTH request 1 [ IDi IDr AUTH SA TSi TSr N(MOBIKE_SUP) N(ADD_6_ADDR) ] sending packet: from 10.1.0.20[4500] to 192.168.0.2[4500] received packet: from 192.168.0.2[4500] to 10.1.0.20[4500] parsed IKE_AUTH response 1 [ IDr AUTH SA TSi TSr N(AUTH_LFT) N(MOBIKE_SUP) N(ADD_4_ADDR) N(ADD_6_ADDR) N(ADD_6_ADDR) ] authentication of '192.168.0.2' with pre-shared key successful scheduling reauthentication in 3379s maximum IKE_SA lifetime 3559s IKE_SA nat-t[1] established between 10.1.0.20[10.1.0.20]...192.168.0.2[192.168.0.2] venus# sleep 2 TEST alice# ipsec statusall | grep 'nat-t.*INSTALLED' [YES] nat-t{1}: INSTALLED, TUNNEL, ESP in UDP SPIs: c87c6f54_i c67d459b_o venus# ipsec statusall | grep 'nat-t.*INSTALLED' [YES] nat-t{1}: INSTALLED, TUNNEL, ESP in UDP SPIs: cccc9d3a_i c5256f55_o sun# ipsec statusall | grep 'nat-t.*INSTALLED' [YES] nat-t{1}: INSTALLED, TUNNEL, ESP in UDP SPIs: c67d459b_i c87c6f54_o nat-t{2}: INSTALLED, TUNNEL, ESP in UDP SPIs: c5256f55_i cccc9d3a_o sun# ipsec status | grep 'nat-t.*\[10.1.0.10\]' [YES] nat-t[1]: ESTABLISHED 8 seconds ago, 192.168.0.2[192.168.0.2]...192.168.0.1[10.1.0.10] sun# ipsec status | grep 'nat-t.*\[10.1.0.20\]' [YES] nat-t[2]: ESTABLISHED 5 seconds ago, 192.168.0.2[192.168.0.2]...192.168.0.1[10.1.0.20] alice# ping -c 1 10.2.0.10 | grep '64 bytes from 10.2.0.10: icmp_seq=1' [YES] 64 bytes from 10.2.0.10: icmp_seq=1 ttl=63 time=3.21 ms venus# ping -c 1 10.2.0.10 | grep '64 bytes from 10.2.0.10: icmp_seq=1' [YES] 64 bytes from 10.2.0.10: icmp_seq=1 ttl=63 time=1.20 ms moon# killall tcpdump moon# cat /tmp/tcpdump.log | grep 'IP moon.strongswan.org.* > sun.strongswan.org.ipsec-nat-t: UDP' [YES] 16:18:46.415151 IP moon.strongswan.org.1027 > sun.strongswan.org.ipsec-nat-t: UDP-encap: ESP(spi=0xc67d459b,seq=0x1), length 132 16:18:46.755422 IP moon.strongswan.org.1028 > sun.strongswan.org.ipsec-nat-t: UDP-encap: ESP(spi=0xc5256f55,seq=0x1), length 132 moon# cat /tmp/tcpdump.log | grep 'IP sun.strongswan.org.ipsec-nat-t > moon.strongswan.org.*: UDP' [YES] 16:18:46.417838 IP sun.strongswan.org.ipsec-nat-t > moon.strongswan.org.1027: UDP-encap: ESP(spi=0xc87c6f54,seq=0x1), length 132 16:18:46.756164 IP sun.strongswan.org.ipsec-nat-t > moon.strongswan.org.1028: UDP-encap: ESP(spi=0xcccc9d3a,seq=0x1), length 132 POST-TEST sun# ipsec stop Stopping strongSwan IPsec... alice# ipsec stop Stopping strongSwan IPsec... venus# ipsec stop Stopping strongSwan IPsec... alice# /etc/init.d/iptables stop 2> /dev/null * Stopping firewall ... [ ok ] venus# /etc/init.d/iptables stop 2> /dev/null * Stopping firewall ... [ ok ] sun# /etc/init.d/iptables stop 2> /dev/null * Stopping firewall ... [ ok ] moon# iptables -t nat -F moon# conntrack -F