PRE-TEST

moon# systemctl start strongswan

carol# systemctl start strongswan

moon# expect-connection rw

carol# expect-connection home

carol# swanctl --initiate --child home
[IKE] initiating IKE_SA home[1] to 192.168.0.1
[ENC] 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) ]
[NET] sending packet: from 192.168.0.100[500] to 192.168.0.1[500] (240 bytes)
[NET] received packet: from 192.168.0.1[500] to 192.168.0.100[500] (273 bytes)
[ENC] parsed IKE_SA_INIT response 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) CERTREQ N(FRAG_SUP) N(HASH_ALG) N(CHDLESS_SUP) N(MULT_AUTH) ]
[CFG] selected proposal: IKE:AES_CBC_128/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/CURVE_25519
[IKE] received cert request for "C=CH, O=strongSwan Project, CN=strongSwan Root CA"
[IKE] sending cert request for "C=CH, O=strongSwan Project, CN=strongSwan Root CA"
[IKE] authentication of 'carol@strongswan.org' (myself) with RSA_EMSA_PKCS1_SHA2_256 successful
[IKE] sending end entity cert "C=CH, O=strongSwan Project, OU=Research, CN=carol@strongswan.org"
[IKE] establishing CHILD_SA home{1}
[ENC] generating IKE_AUTH request 1 [ IDi CERT N(INIT_CONTACT) CERTREQ IDr AUTH SA TSi TSr N(MULT_AUTH) N(EAP_ONLY) N(MSG_ID_SYN_SUP) ]
[ENC] splitting IKE message (1872 bytes) into 2 fragments
[ENC] generating IKE_AUTH request 1 [ EF(1/2) ]
[ENC] generating IKE_AUTH request 1 [ EF(2/2) ]
[NET] sending packet: from 192.168.0.100[500] to 192.168.0.1[500] (1252 bytes)
[NET] sending packet: from 192.168.0.100[500] to 192.168.0.1[500] (692 bytes)
[NET] received packet: from 192.168.0.1[500] to 192.168.0.100[500] (1252 bytes)
[ENC] parsed IKE_AUTH response 1 [ EF(1/2) ]
[ENC] received fragment #1 of 2, waiting for complete IKE message
[NET] received packet: from 192.168.0.1[500] to 192.168.0.100[500] (580 bytes)
[ENC] parsed IKE_AUTH response 1 [ EF(2/2) ]
[ENC] received fragment #2 of 2, reassembled fragmented IKE message (1760 bytes)
[ENC] parsed IKE_AUTH response 1 [ IDr CERT AUTH SA TSi TSr ]
[IKE] received end entity cert "C=CH, O=strongSwan Project, CN=moon.strongswan.org"
[CFG]   using certificate "C=CH, O=strongSwan Project, CN=moon.strongswan.org"
[CFG]   using trusted ca certificate "C=CH, O=strongSwan Project, CN=strongSwan Root CA"
[CFG]   reached self-signed root ca with a path length of 0
[CFG] checking certificate status of "C=CH, O=strongSwan Project, CN=moon.strongswan.org"
[CFG]   fetching crl from 'http://crl.strongswan.org/strongswan.crl' ...
[CFG]   using trusted certificate "C=CH, O=strongSwan Project, CN=strongSwan Root CA"
[CFG]   crl correctly signed by "C=CH, O=strongSwan Project, CN=strongSwan Root CA"
[CFG]   crl is valid: until Mar 25 18:47:43 2025
[CFG] certificate status is good
[IKE] authentication of 'moon.strongswan.org' with RSA_EMSA_PKCS1_SHA2_256 successful
[IKE] IKE_SA home[1] established between 192.168.0.100[carol@strongswan.org]...192.168.0.1[moon.strongswan.org]
[IKE] scheduling rekeying in 13450s
[IKE] maximum IKE_SA lifetime 14890s
[CFG] selected proposal: ESP:AES_GCM_16_128/NO_EXT_SEQ
[IKE] CHILD_SA home{1} established with SPIs cc81b04a_i ce915986_o and TS 192.168.0.100/32 === 10.1.0.0/16
initiate completed successfully


TEST

carol# swanctl --list-sas --raw 2> /dev/null | grep 'home.*version=2 state=ESTABLISHED local-host=192.168.0.100 local-port=500 local-id=carol@strongswan.org remote-host=192.168.0.1 remote-port=500 remote-id=moon.strongswan.org initiator=yes.*encr-alg=AES_CBC encr-keysize=128 integ-alg=HMAC_SHA2_256_128 prf-alg=PRF_HMAC_SHA2_256 dh-group=CURVE_25519.*child-sas.*home.*state=INSTALLED mode=TUNNEL.*ESP.*encr-alg=AES_GCM_16 encr-keysize=128.*local-ts=\[192.168.0.100/32] remote-ts=\[10.1.0.0/16]' [YES]
list-sa event {home {uniqueid=1 version=2 state=ESTABLISHED local-host=192.168.0.100 local-port=500 local-id=carol@strongswan.org remote-host=192.168.0.1 remote-port=500 remote-id=moon.strongswan.org initiator=yes initiator-spi=712a98cc60a0481d responder-spi=2ebb7171cfdaa803 encr-alg=AES_CBC encr-keysize=128 integ-alg=HMAC_SHA2_256_128 prf-alg=PRF_HMAC_SHA2_256 dh-group=CURVE_25519 established=1 rekey-time=13449 child-sas {home-1 {name=home uniqueid=1 reqid=1 state=INSTALLED mode=TUNNEL protocol=ESP spi-in=cc81b04a spi-out=ce915986 encr-alg=AES_GCM_16 encr-keysize=128 bytes-in=0 packets-in=0 bytes-out=0 packets-out=0 rekey-time=3338 life-time=3959 install-time=1 local-ts=[192.168.0.100/32] remote-ts=[10.1.0.0/16]}}}}

moon# swanctl --list-sas --raw 2> /dev/null | grep 'rw.*version=2 state=ESTABLISHED local-host=192.168.0.1 local-port=500 local-id=moon.strongswan.org remote-host=192.168.0.100 remote-port=500 remote-id=carol@strongswan.org.*encr-alg=AES_CBC encr-keysize=128 integ-alg=HMAC_SHA2_256_128 prf-alg=PRF_HMAC_SHA2_256 dh-group=CURVE_25519.*child-sas.*net.*reqid=1 state=INSTALLED mode=TUNNEL.*ESP.*encr-alg=AES_GCM_16 encr-keysize=128.*local-ts=\[10.1.0.0/16] remote-ts=\[192.168.0.100/32]' [YES]
list-sa event {rw {uniqueid=1 version=2 state=ESTABLISHED local-host=192.168.0.1 local-port=500 local-id=moon.strongswan.org remote-host=192.168.0.100 remote-port=500 remote-id=carol@strongswan.org initiator-spi=712a98cc60a0481d responder-spi=2ebb7171cfdaa803 encr-alg=AES_CBC encr-keysize=128 integ-alg=HMAC_SHA2_256_128 prf-alg=PRF_HMAC_SHA2_256 dh-group=CURVE_25519 established=1 rekey-time=14210 child-sas {net-1 {name=net uniqueid=1 reqid=1 state=INSTALLED mode=TUNNEL protocol=ESP spi-in=ce915986 spi-out=cc81b04a encr-alg=AES_GCM_16 encr-keysize=128 bytes-in=0 packets-in=0 bytes-out=0 packets-out=0 rekey-time=3302 life-time=3959 install-time=1 local-ts=[10.1.0.0/16] remote-ts=[192.168.0.100/32]}}}}

carol# ping -c 1 -s 120 -p deadbeef 10.1.0.10 | grep '128 bytes from 10.1.0.10: icmp_.eq=1' [YES]
128 bytes from 10.1.0.10: icmp_seq=1 ttl=63 time=1.09 ms

carol# sleep 11 | grep 'NO' []

carol# cat /var/log/daemon.log | grep 'deleting CHILD_SA after 10 seconds of inactivity' [YES]
Mar 10 19:12:05 carol charon-systemd: 07[JOB] deleting CHILD_SA after 10 seconds of inactivity

carol# cat /var/log/daemon.log | grep 'sending DELETE for ESP CHILD_SA' [YES]
Mar 10 19:12:05 carol charon-systemd: 07[IKE] sending DELETE for ESP CHILD_SA with SPI cc81b04a

moon# cat /var/log/daemon.log | grep 'received DELETE for ESP CHILD_SA' [YES]
Mar 10 19:12:05 moon charon-systemd: 09[IKE] received DELETE for ESP CHILD_SA with SPI cc81b04a

moon# cat /var/log/daemon.log | grep 'sending DELETE for ESP CHILD_SA' [YES]
Mar 10 19:12:05 moon charon-systemd: 09[IKE] sending DELETE for ESP CHILD_SA with SPI ce915986

carol# cat /var/log/daemon.log | grep 'received DELETE for ESP CHILD_SA' [YES]
Mar 10 19:12:05 carol charon-systemd: 01[IKE] received DELETE for ESP CHILD_SA with SPI ce915986

carol# ping -c 1 -W 1 -s 120 -p deadbeef 10.1.0.10 | grep '128 bytes from 10.1.0.10: icmp_.eq=1' [NO]


POST-TEST

moon# systemctl stop strongswan

carol# systemctl stop strongswan