<div dir="ltr">Hi,<div>Does strongswan support multiple IKE SA (each with its own CHILD_SA) between single pair of address?</div><div>it seems strongswan only allow one IKE SA per pair of address</div><div><br></div><div>I am using strongswan 5.5.0, inter-op with a IKEv2 client that I wrote (for learning purpose) , my client is the tunnel initiator, when I only creates one IKE SA (along with one CHILD_SA), everything is good;</div><div>but when my client try to create 2nd CHILD_SA (using IKE_SA_INIT and IKE_AUTH exchange, not rekey) using same addresses,the 2nd IKE and CHILD SA were created successfully at the beginning, but after a few seconds, strongswan send a delete msg to delete the 1st IKE_SA</div><div><br></div><div>I also tried to set charon.reuse_ikesa to no, but same result</div><div><br></div><div>I checked strongswan logs, it doesn't say why it deletes 1st IKE SA:</div><div><div>root@vm-svr:/usr/local/etc# ipsec status</div><div>Security Associations (2 up, 0 connecting):</div><div>         l2l[2]: ESTABLISHED 9 seconds ago, 10.10.10.1[10.10.10.1]...10.10.10.20[1.1.1.1]</div><div>         l2l{2}:  INSTALLED, TUNNEL, reqid 2, ESP SPIs: c1aab5fc_i 3f174706_o</div><div>         l2l{2}:   <a href="http://10.10.10.1/32">10.10.10.1/32</a> === <a href="http://1.1.1.2/32">1.1.1.2/32</a></div><div>         l2l[1]: ESTABLISHED 19 seconds ago, 10.10.10.1[10.10.10.1]...10.10.10.20[1.1.1.1]</div><div>         l2l{1}:  INSTALLED, TUNNEL, reqid 1, ESP SPIs: ca5a49fd_i 617a4971_o</div><div>         l2l{1}:   <a href="http://10.10.10.1/32">10.10.10.1/32</a> === <a href="http://1.1.1.1/32">1.1.1.1/32</a></div><div>root@vm-svr:/usr/local/etc# ipsec status</div><div>Security Associations (1 up, 0 connecting):</div><div>         l2l[2]: ESTABLISHED 10 seconds ago, 10.10.10.1[10.10.10.1]...10.10.10.20[1.1.1.1]</div><div>         l2l{2}:  INSTALLED, TUNNEL, reqid 2, ESP SPIs: c1aab5fc_i 3f174706_o</div><div>         l2l{2}:   <a href="http://10.10.10.1/32">10.10.10.1/32</a> === <a href="http://1.1.1.2/32">1.1.1.2/32</a></div></div><div><br></div><div><br></div><div><br></div><div>part of the log:</div><div>.....</div><div><div>Jan  5 15:50:21 06[MGR] <l2l|2> checkout IKEv2 SA with SPIs 2c79130e38a24598_i c530ad0d0f1a47f0_r</div><div>Jan  5 15:50:21 06[MGR] <l2l|2> IKE_SA l2l[1] successfully checked out</div><div>Jan  5 15:50:21 06[MGR] <l2l|1> checkin IKE_SA l2l[1]</div><div>Jan  5 15:50:21 06[MGR] <l2l|1> checkin of IKE_SA successful</div><div>Jan  5 15:50:21 06[IKE] <l2l|2> IKE_SA l2l[2] established between 10.10.10.1[10.10.10.1]...10.10.10.20[1.1.1.1]</div><div>Jan  5 15:50:21 06[IKE] <l2l|2> IKE_SA l2l[2] state change: CONNECTING => ESTABLISHED</div><div>Jan  5 15:50:21 06[IKE] <l2l|2> scheduling rekeying in 490s</div><div>Jan  5 15:50:21 06[IKE] <l2l|2> maximum IKE_SA lifetime 500s</div><div>Jan  5 15:50:21 06[KNL] <l2l|2> got SPI c1aab5fc</div><div>Jan  5 15:50:21 06[KNL] <l2l|2> adding SAD entry with SPI c1aab5fc and reqid {2}</div><div>Jan  5 15:50:21 06[KNL] <l2l|2>   using encryption algorithm AES_CBC with key size 128</div><div>Jan  5 15:50:21 06[KNL] <l2l|2>   using integrity algorithm HMAC_SHA1_96 with key size 160</div><div>Jan  5 15:50:21 06[KNL] <l2l|2>   using replay window of 32 packets</div><div>Jan  5 15:50:21 06[KNL] <l2l|2> adding SAD entry with SPI 3f174706 and reqid {2}</div><div>Jan  5 15:50:21 06[KNL] <l2l|2>   using encryption algorithm AES_CBC with key size 128</div><div>Jan  5 15:50:21 06[KNL] <l2l|2>   using integrity algorithm HMAC_SHA1_96 with key size 160</div><div>Jan  5 15:50:21 06[KNL] <l2l|2>   using replay window of 0 packets</div><div>Jan  5 15:50:21 06[KNL] <l2l|2> adding policy <a href="http://10.10.10.1/32">10.10.10.1/32</a> === <a href="http://1.1.1.2/32">1.1.1.2/32</a> out [priority 383616, refcount 1]</div><div>Jan  5 15:50:21 06[KNL] <l2l|2> adding policy <a href="http://1.1.1.2/32">1.1.1.2/32</a> === <a href="http://10.10.10.1/32">10.10.10.1/32</a> in [priority 383616, refcount 1]</div><div>Jan  5 15:50:21 06[KNL] <l2l|2> adding policy <a href="http://1.1.1.2/32">1.1.1.2/32</a> === <a href="http://10.10.10.1/32">10.10.10.1/32</a> fwd [priority 383616, refcount 1]</div><div>Jan  5 15:50:21 06[KNL] <l2l|2> adding policy <a href="http://10.10.10.1/32">10.10.10.1/32</a> === <a href="http://1.1.1.2/32">1.1.1.2/32</a> fwd [priority 383616, refcount 1]</div><div>Jan  5 15:50:21 06[KNL] <l2l|2> policy <a href="http://10.10.10.1/32">10.10.10.1/32</a> === <a href="http://1.1.1.2/32">1.1.1.2/32</a> out already exists, increasing refcount</div><div>Jan  5 15:50:21 06[KNL] <l2l|2> updating policy <a href="http://10.10.10.1/32">10.10.10.1/32</a> === <a href="http://1.1.1.2/32">1.1.1.2/32</a> out [priority 183616, refcount 2]</div><div>Jan  5 15:50:21 06[KNL] <l2l|2> getting a local address in traffic selector <a href="http://10.10.10.1/32">10.10.10.1/32</a></div><div>Jan  5 15:50:21 06[KNL] <l2l|2> using host 10.10.10.1</div><div>Jan  5 15:50:21 06[KNL] <l2l|2> getting iface name for index 4</div><div>Jan  5 15:50:21 06[KNL] <l2l|2> using 10.10.10.20 as nexthop and eth2 as dev to reach <a href="http://10.10.10.20/32">10.10.10.20/32</a></div><div>Jan  5 15:50:21 06[KNL] <l2l|2> installing route: <a href="http://1.1.1.2/32">1.1.1.2/32</a> via 10.10.10.20 src 10.10.10.1 dev eth2</div><div>Jan  5 15:50:21 06[KNL] <l2l|2> getting iface index for eth2</div><div>Jan  5 15:50:21 06[KNL] <l2l|2> policy <a href="http://1.1.1.2/32">1.1.1.2/32</a> === <a href="http://10.10.10.1/32">10.10.10.1/32</a> in already exists, increasing refcount</div><div>Jan  5 15:50:21 06[KNL] <l2l|2> updating policy <a href="http://1.1.1.2/32">1.1.1.2/32</a> === <a href="http://10.10.10.1/32">10.10.10.1/32</a> in [priority 183616, refcount 2]</div><div>Jan  5 15:50:21 06[KNL] <l2l|2> policy <a href="http://1.1.1.2/32">1.1.1.2/32</a> === <a href="http://10.10.10.1/32">10.10.10.1/32</a> fwd already exists, increasing refcount</div><div>Jan  5 15:50:21 06[KNL] <l2l|2> updating policy <a href="http://1.1.1.2/32">1.1.1.2/32</a> === <a href="http://10.10.10.1/32">10.10.10.1/32</a> fwd [priority 183616, refcount 2]</div><div>Jan  5 15:50:21 06[KNL] <l2l|2> policy <a href="http://10.10.10.1/32">10.10.10.1/32</a> === <a href="http://1.1.1.2/32">1.1.1.2/32</a> fwd already exists, increasing refcount</div><div>Jan  5 15:50:21 06[KNL] <l2l|2> updating policy <a href="http://10.10.10.1/32">10.10.10.1/32</a> === <a href="http://1.1.1.2/32">1.1.1.2/32</a> fwd [priority 283616, refcount 2]</div><div>Jan  5 15:50:21 06[IKE] <l2l|2> CHILD_SA l2l{2} established with SPIs c1aab5fc_i 3f174706_o and TS <a href="http://10.10.10.1/32">10.10.10.1/32</a> === <a href="http://1.1.1.2/32">1.1.1.2/32</a></div><div>Jan  5 15:50:21 06[KNL] <l2l|2> querying SAD entry with SPI c1aab5fc</div><div>Jan  5 15:50:21 06[KNL] <l2l|2> querying SAD entry with SPI 3f174706</div><div>Jan  5 15:50:21 06[KNL] <l2l|2> 10.10.10.1 is on interface eth2</div><div>Jan  5 15:50:21 06[ENC] <l2l|2> generating IKE_AUTH response 1 [ IDr AUTH SA TSi TSr ]</div><div>Jan  5 15:50:21 06[NET] <l2l|2> sending packet: from 10.10.10.1[500] to 10.10.10.20[500] (204 bytes)</div><div>Jan  5 15:50:21 06[MGR] <l2l|2> checkin IKE_SA l2l[2]</div><div>Jan  5 15:50:21 06[MGR] <l2l|2> checkin of IKE_SA successful</div><div>Jan  5 15:50:31 05[MGR] checkout IKEv2 SA with SPIs 2c79130e38a24598_i c530ad0d0f1a47f0_r</div><div>Jan  5 15:50:31 05[MGR] IKE_SA l2l[1] successfully checked out</div><div>Jan  5 15:50:31 05[IKE] <l2l|1> queueing IKE_DELETE task</div><div>Jan  5 15:50:31 05[IKE] <l2l|1> activating new tasks</div><div>Jan  5 15:50:31 05[IKE] <l2l|1>   activating IKE_DELETE task</div><div>Jan  5 15:50:31 05[IKE] <l2l|1> deleting IKE_SA l2l[1] between 10.10.10.1[10.10.10.1]...10.10.10.20[1.1.1.1]</div><div>Jan  5 15:50:31 05[IKE] <l2l|1> IKE_SA l2l[1] state change: ESTABLISHED => DELETING</div><div>Jan  5 15:50:31 05[IKE] <l2l|1> sending DELETE for IKE_SA l2l[1]</div><div>Jan  5 15:50:31 05[ENC] <l2l|1> generating INFORMATIONAL request 0 [ D ]</div><div>Jan  5 15:50:31 05[NET] <l2l|1> sending packet: from 10.10.10.1[500] to 10.10.10.20[500] (76 bytes)</div><div>Jan  5 15:50:31 05[MGR] <l2l|1> checkin IKE_SA l2l[1]</div><div>Jan  5 15:50:31 05[MGR] <l2l|1> checkin of IKE_SA successful</div><div>Jan  5 15:50:31 13[MGR] checkout IKEv2 SA by message with SPIs 2c79130e38a24598_i c530ad0d0f1a47f0_r</div><div>Jan  5 15:50:31 13[MGR] IKE_SA l2l[1] successfully checked out</div></div><div><br></div><div>===ipsec.conf===</div><div><div>conn %default</div><div>        keyexchange=ikev2</div><div>        mobike = no</div><div>        reauth=no</div><div><br></div><div>conn l2l</div><div><span style="white-space:pre">     </span>ikelifetime=500s</div><div><span style="white-space:pre">      </span>margintime=10s</div><div><span style="white-space:pre">        </span>rekeyfuzz=0%</div><div><span style="white-space:pre">  </span>ike=aes128-sha1-modp2048!</div><div><span style="white-space:pre">     </span>esp=aes128-sha1</div><div><span style="white-space:pre">       </span>authby=psk</div><div>        leftfirewall=yes</div><div><span style="white-space:pre"> </span>rightsubnet=<a href="http://1.0.0.0/8">1.0.0.0/8</a></div><div>        auto=add</div></div><div><br></div><div><br></div></div>