PRE-TEST

moon# iptables-restore < /etc/iptables.rules

carol# iptables-restore < /etc/iptables.rules

dave# iptables-restore < /etc/iptables.rules

moon# rm /etc/ipsec.d/cacerts/*

carol# rm /etc/ipsec.d/cacerts/*

dave# rm /etc/ipsec.d/cacerts/*

moon# ipsec start
Starting strongSwan 6.0.1 IPsec [starter]...

carol# ipsec start
Starting strongSwan 6.0.1 IPsec [starter]...

dave# ipsec start
Starting strongSwan 6.0.1 IPsec [starter]...

moon# expect-connection rw

carol# expect-connection home

carol# ipsec up home
initiating IKE_SA home[1] to 192.168.0.1
generating IKE_SA_INIT request 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) N(HASH_ALG) N(REDIR_SUP) ]
sending packet: from 192.168.0.100[500] to 192.168.0.1[500] (924 bytes)
received packet: from 192.168.0.1[500] to 192.168.0.100[500] (280 bytes)
parsed IKE_SA_INIT response 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) N(HASH_ALG) N(CHDLESS_SUP) N(MULT_AUTH) ]
selected proposal: IKE:AES_CBC_128/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/ECP_256
authentication of 'carol@strongswan.org' (myself) with pre-shared key
establishing CHILD_SA home{1}
generating IKE_AUTH request 1 [ IDi N(INIT_CONTACT) IDr AUTH SA TSi TSr N(MOBIKE_SUP) N(ADD_6_ADDR) N(MULT_AUTH) N(EAP_ONLY) N(MSG_ID_SYN_SUP) ]
sending packet: from 192.168.0.100[4500] to 192.168.0.1[4500] (432 bytes)
received packet: from 192.168.0.1[4500] to 192.168.0.100[4500] (304 bytes)
parsed IKE_AUTH response 1 [ IDr AUTH SA TSi TSr N(MOBIKE_SUP) N(ADD_4_ADDR) N(ADD_6_ADDR) N(ADD_6_ADDR) ]
authentication of 'moon.strongswan.org' with pre-shared key successful
peer supports MOBIKE
IKE_SA home[1] established between 192.168.0.100[carol@strongswan.org]...192.168.0.1[moon.strongswan.org]
scheduling reauthentication in 3263s
maximum IKE_SA lifetime 3443s
selected proposal: ESP:AES_CBC_128/HMAC_SHA2_256_128/NO_EXT_SEQ
CHILD_SA home{1} established with SPIs c241779b_i c37389cd_o and TS 192.168.0.100/32 === 10.1.0.0/16
connection 'home' established successfully

dave# expect-connection home

dave# ipsec up home
initiating IKE_SA home[1] to 192.168.0.1
generating IKE_SA_INIT request 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) N(HASH_ALG) N(REDIR_SUP) ]
sending packet: from 192.168.0.200[500] to 192.168.0.1[500] (924 bytes)
received packet: from 192.168.0.1[500] to 192.168.0.200[500] (280 bytes)
parsed IKE_SA_INIT response 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) N(HASH_ALG) N(CHDLESS_SUP) N(MULT_AUTH) ]
selected proposal: IKE:AES_CBC_128/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/ECP_256
authentication of 'dave@strongswan.org' (myself) with pre-shared key
establishing CHILD_SA home{1}
generating IKE_AUTH request 1 [ IDi N(INIT_CONTACT) IDr AUTH SA TSi TSr N(MOBIKE_SUP) N(ADD_6_ADDR) N(MULT_AUTH) N(EAP_ONLY) N(MSG_ID_SYN_SUP) ]
sending packet: from 192.168.0.200[4500] to 192.168.0.1[4500] (432 bytes)
received packet: from 192.168.0.1[4500] to 192.168.0.200[4500] (304 bytes)
parsed IKE_AUTH response 1 [ IDr AUTH SA TSi TSr N(MOBIKE_SUP) N(ADD_4_ADDR) N(ADD_6_ADDR) N(ADD_6_ADDR) ]
authentication of 'moon.strongswan.org' with pre-shared key successful
peer supports MOBIKE
IKE_SA home[1] established between 192.168.0.200[dave@strongswan.org]...192.168.0.1[moon.strongswan.org]
scheduling reauthentication in 3352s
maximum IKE_SA lifetime 3532s
selected proposal: ESP:AES_CBC_128/HMAC_SHA2_256_128/NO_EXT_SEQ
CHILD_SA home{1} established with SPIs c9e14405_i c74ecd3d_o and TS 192.168.0.200/32 === 10.1.0.0/16
connection 'home' established successfully


TEST

moon# ipsec status 2> /dev/null | grep 'rw\[1]: ESTABLISHED.*moon.strongswan.org.*@strongswan.org' [YES]
          rw[1]: ESTABLISHED 0 seconds ago, 192.168.0.1[moon.strongswan.org]...192.168.0.100[carol@strongswan.org]

carol# ipsec status 2> /dev/null | grep 'home.*ESTABLISHED.*carol@strongswan.org.*moon.strongswan.org' [YES]
        home[1]: ESTABLISHED 1 second ago, 192.168.0.100[carol@strongswan.org]...192.168.0.1[moon.strongswan.org]

dave# ipsec status 2> /dev/null | grep 'home.*ESTABLISHED.*dave@strongswan.org.*moon.strongswan.org' [YES]
        home[1]: ESTABLISHED 0 seconds ago, 192.168.0.200[dave@strongswan.org]...192.168.0.1[moon.strongswan.org]

moon# ipsec status 2> /dev/null | grep 'rw\[1]: ESTABLISHED.*moon.strongswan.org.*carol@strongswan.org' [YES]
          rw[1]: ESTABLISHED 0 seconds ago, 192.168.0.1[moon.strongswan.org]...192.168.0.100[carol@strongswan.org]

moon# ipsec status 2> /dev/null | grep 'rw\[2]: ESTABLISHED.*moon.strongswan.org.*dave@strongswan.org' [YES]
          rw[2]: ESTABLISHED 1 second ago, 192.168.0.1[moon.strongswan.org]...192.168.0.200[dave@strongswan.org]

carol# ipsec status 2> /dev/null | grep 'home.*INSTALLED, TUNNEL' [YES]
        home{1}:  INSTALLED, TUNNEL, reqid 1, ESP SPIs: c241779b_i c37389cd_o

dave# ipsec status 2> /dev/null | grep 'home.*INSTALLED, TUNNEL' [YES]
        home{1}:  INSTALLED, TUNNEL, reqid 1, ESP SPIs: c9e14405_i c74ecd3d_o

moon# ipsec status 2> /dev/null | grep 'rw[{]1}.*INSTALLED, TUNNEL' [YES]
          rw{1}:  INSTALLED, TUNNEL, reqid 1, ESP SPIs: c37389cd_i c241779b_o

moon# ipsec status 2> /dev/null | grep 'rw[{]2}.*INSTALLED, TUNNEL' [YES]
          rw{2}:  INSTALLED, TUNNEL, reqid 2, ESP SPIs: c74ecd3d_i c9e14405_o

carol# ping -c 1 10.1.0.10 | grep '64 bytes from 10.1.0.10: icmp_.eq=1' [YES]
64 bytes from 10.1.0.10: icmp_seq=1 ttl=63 time=0.920 ms

dave# ping -c 1 10.1.0.10 | grep '64 bytes from 10.1.0.10: icmp_.eq=1' [YES]
64 bytes from 10.1.0.10: icmp_seq=1 ttl=63 time=0.981 ms

moon# killall tcpdump

moon# cat /tmp/tcpdump.log | grep 'IP carol.strongswan.org > moon.strongswan.org: ESP' [YES]
19:42:06.168202 IP carol.strongswan.org > moon.strongswan.org: ESP(spi=0xc37389cd,seq=0x1), length 136

moon# cat /tmp/tcpdump.log | grep 'IP moon.strongswan.org > carol.strongswan.org: ESP' [YES]
19:42:06.168794 IP moon.strongswan.org > carol.strongswan.org: ESP(spi=0xc241779b,seq=0x1), length 136

moon# cat /tmp/tcpdump.log | grep 'IP dave.strongswan.org > moon.strongswan.org: ESP' [YES]
19:42:06.198606 IP dave.strongswan.org > moon.strongswan.org: ESP(spi=0xc74ecd3d,seq=0x1), length 136

moon# cat /tmp/tcpdump.log | grep 'IP moon.strongswan.org > dave.strongswan.org: ESP' [YES]
19:42:06.199204 IP moon.strongswan.org > dave.strongswan.org: ESP(spi=0xc9e14405,seq=0x1), length 136


POST-TEST

moon# ipsec stop
Stopping strongSwan IPsec...

carol# ipsec stop
Stopping strongSwan IPsec...

dave# ipsec stop
Stopping strongSwan IPsec...

moon# iptables-restore < /etc/iptables.flush

carol# iptables-restore < /etc/iptables.flush

dave# iptables-restore < /etc/iptables.flush