<div dir="ltr"><div><p>I am not sure that I understand "<span style="color:rgb(54,0,12);font-family:Verdana,sans-serif;font-size:10.8000001907349px;line-height:16.2000007629395px">Currently established connections are not affected by configuration changes.</span>" [<a href="https://wiki.strongswan.org/projects/strongswan/wiki/IpsecCommand" target="_blank">https://wiki.strongswan.org/projects/strongswan/wiki/IpsecCommand</a>] wording correctly for "ipsec update" and "ipsec reload" commands. </p></div><div>Does it try to say that, if IPsec tunnel was previously established and then, if corresponding "conn" entry for that tunnel disappeared from the ipsec.conf file, then after "ipsec update" call those tunnels would still remain in the StrongSwan?</div><div><br></div><div><br></div><div>If yes, then how can I force strongSwan to remove those tunnels that are no longer in ipsec.conf file?</div><div>1. Using "ipsec restart" command does not work for me because it makes all tunnels to be renegotiated and causes unnecessary connectivity issues.</div><div>2. Using explicit "ipsec down <conn-entry>" call blocks if the peer is not up (because of underlying IKE message exchange). This means that this approach would not scale well if there are 1000+ tunnels, because each "ipsec down" call could block for few seconds.</div><div><br></div><div><br></div><div>To see what I mean I am providing commands executed on both hosts:</div><div><br></div><div><br></div><div>root@ubuntu:~# cat /usr/local/etc/ipsec.conf </div><div><br></div><div>config setup</div><div>    uniqueids=no</div><div><br></div><div>conn %default</div><div>    keyingtries=%forever</div><div>    type=transport</div><div>    keyexchange=ikev2</div><div>    auto=route</div><div>    mark=1/1</div><div>    ike=aes128gcm12-aesxcbc-modp1024</div><div>    esp=aes128gcm12-modp1024</div><div><br></div><div>conn remote-1.1.1.12</div><div>    left=0.0.0.0</div><div>    right=1.1.1.12</div><div>    rightcert=/usr/local/etc/ipsec.d/ovs-1.1.1.12.pem</div><div>    leftcert=/root/client-cert.pem</div><div>    leftsubnet=%dynamic[gre]</div><div>    rightsubnet=%dynamic[gre]</div><div><br></div><div>root@ubuntu:~# ip xfrm state</div><div>src 1.1.1.11 dst 1.1.1.12</div><div><span style="white-space:pre-wrap"> </span>proto esp spi 0xc4799fd8 reqid 1 mode transport</div><div><span style="white-space:pre-wrap">  </span>replay-window 32 </div><div><span style="white-space:pre-wrap">       </span>mark 1/0x1</div><div><span style="white-space:pre-wrap">       </span>aead rfc4106(gcm(aes)) 0x14f47887fef531156ecd9506eb1fc6cfd43dd62a 96</div><div><span style="white-space:pre-wrap">     </span>sel src <a href="http://1.1.1.11/32" target="_blank">1.1.1.11/32</a> dst <a href="http://1.1.1.12/32" target="_blank">1.1.1.12/32</a> proto gre </div><div>src 1.1.1.12 dst 1.1.1.11</div><div><span style="white-space:pre-wrap">        </span>proto esp spi 0xc370f38b reqid 1 mode transport</div><div><span style="white-space:pre-wrap">  </span>replay-window 32 </div><div><span style="white-space:pre-wrap">       </span>mark 1/0x1</div><div><span style="white-space:pre-wrap">       </span>aead rfc4106(gcm(aes)) 0xe57364586ae7d5199b8cdf0c11e90dfcefdb76ae 96</div><div><span style="white-space:pre-wrap">     </span>sel src <a href="http://1.1.1.12/32" target="_blank">1.1.1.12/32</a> dst <a href="http://1.1.1.11/32" target="_blank">1.1.1.11/32</a> proto gre </div><div>root@ubuntu:~# ip xfrm policy</div><div>src <a href="http://1.1.1.12/32" target="_blank">1.1.1.12/32</a> dst <a href="http://1.1.1.11/32" target="_blank">1.1.1.11/32</a> proto gre </div><div><span style="white-space:pre-wrap">        </span>dir in priority 2818 </div><div><span style="white-space:pre-wrap">   </span>mark 1/0x1</div><div><span style="white-space:pre-wrap">       </span>tmpl src 0.0.0.0 dst 0.0.0.0</div><div><span style="white-space:pre-wrap">             </span>proto esp reqid 1 mode transport</div><div>src <a href="http://1.1.1.11/32" target="_blank">1.1.1.11/32</a> dst <a href="http://1.1.1.12/32" target="_blank">1.1.1.12/32</a> proto gre </div><div><span style="white-space:pre-wrap">     </span>dir out priority 2818 </div><div><span style="white-space:pre-wrap">  </span>mark 1/0x1</div><div><span style="white-space:pre-wrap">       </span>tmpl src 0.0.0.0 dst 0.0.0.0</div><div><span style="white-space:pre-wrap">             </span>proto esp reqid 1 mode transport</div><div>src <a href="http://0.0.0.0/0" target="_blank">0.0.0.0/0</a> dst <a href="http://0.0.0.0/0" target="_blank">0.0.0.0/0</a> </div><div><span style="white-space:pre-wrap">       </span>socket in priority 0 </div><div>src <a href="http://0.0.0.0/0" target="_blank">0.0.0.0/0</a> dst <a href="http://0.0.0.0/0" target="_blank">0.0.0.0/0</a> </div><div><span style="white-space:pre-wrap"> </span>socket out priority 0 </div><div>src <a href="http://0.0.0.0/0" target="_blank">0.0.0.0/0</a> dst <a href="http://0.0.0.0/0" target="_blank">0.0.0.0/0</a> </div><div><span style="white-space:pre-wrap">        </span>socket in priority 0 </div><div>src <a href="http://0.0.0.0/0" target="_blank">0.0.0.0/0</a> dst <a href="http://0.0.0.0/0" target="_blank">0.0.0.0/0</a> </div><div><span style="white-space:pre-wrap"> </span>socket out priority 0 </div><div>src ::/0 dst ::/0 </div><div><span style="white-space:pre-wrap">        </span>socket in priority 0 </div><div>src ::/0 dst ::/0 </div><div><span style="white-space:pre-wrap"> </span>socket out priority 0 </div><div>src ::/0 dst ::/0 </div><div><span style="white-space:pre-wrap">        </span>socket in priority 0 </div><div>src ::/0 dst ::/0 </div><div><span style="white-space:pre-wrap"> </span>socket out priority 0 </div><div><br></div><div><br></div><div><br></div><div>And then I update ipsec.conf file to:</div><div><br></div><div><div>root@ubuntu:~# cat /usr/local/etc/ipsec.conf </div><div><br></div><div>config setup</div><div>    uniqueids=no</div><div><br></div><div>conn %default</div><div>    keyingtries=%forever</div><div>    type=transport</div><div>    keyexchange=ikev2</div><div>    auto=route</div><div>    mark=1/1</div><div>    ike=aes128gcm12-aesxcbc-modp1024</div><div>    esp=aes128gcm12-modp1024</div><div><br></div><div>conn remote-1.1.1.12-in</div><div>    left=0.0.0.0</div><div>    right=1.1.1.12</div><div>    rightcert=/usr/local/etc/ipsec.d/ovs-1.1.1.12.pem</div><div>    leftcert=/root/client-cert.pem</div><div>    rightsubnet=%dynamic[tcp/7471]</div><div>    leftsubnet=%dynamic[tcp/%any]</div><div><br></div><div>conn remote-1.1.1.12-out</div><div>    left=0.0.0.0</div><div>    right=1.1.1.12</div><div>    rightcert=/usr/local/etc/ipsec.d/ovs-1.1.1.12.pem</div><div>    leftcert=/root/client-cert.pem</div><div>    rightsubnet=%dynamic[tcp/%any]</div><div>    leftsubnet=%dynamic[tcp/7471]</div></div><div><br></div><div><br></div><div>and run "ipsec update". I still see that gre tunnel is up even though it is not in ipsec.conf anymore:</div><div><br></div><div><div>root@ubuntu:~# ip xfrm state</div><div>src 1.1.1.11 dst 1.1.1.12</div><div><span style="white-space:pre-wrap"> </span>proto esp spi 0x00000000 reqid 2 mode transport</div><div><span style="white-space:pre-wrap">  </span>replay-window 0 </div><div><span style="white-space:pre-wrap">        </span>mark 1/0x1</div><div><span style="white-space:pre-wrap">       </span>sel src <a href="http://1.1.1.11/32" target="_blank">1.1.1.11/32</a> dst <a href="http://1.1.1.12/32" target="_blank">1.1.1.12/32</a> proto tcp sport 0 dport 7471 dev eth1 </div><div>src 1.1.1.11 dst 1.1.1.12</div><div><span style="white-space:pre-wrap">    </span>proto esp spi 0xc4799fd8 reqid 1 mode transport</div><div><span style="white-space:pre-wrap">  </span>replay-window 32 </div><div><span style="white-space:pre-wrap">       </span>mark 1/0x1</div><div><span style="white-space:pre-wrap">       </span>aead rfc4106(gcm(aes)) 0x14f47887fef531156ecd9506eb1fc6cfd43dd62a 96 <---- old IPsec SA</div><div><span style="white-space:pre-wrap">       </span>sel src <a href="http://1.1.1.11/32" target="_blank">1.1.1.11/32</a> dst <a href="http://1.1.1.12/32" target="_blank">1.1.1.12/32</a> proto gre </div><div>src 1.1.1.12 dst 1.1.1.11</div><div><span style="white-space:pre-wrap">        </span>proto esp spi 0xc370f38b reqid 1 mode transport</div><div><span style="white-space:pre-wrap">  </span>replay-window 32 </div><div><span style="white-space:pre-wrap">       </span>mark 1/0x1</div><div><span style="white-space:pre-wrap">       </span>aead rfc4106(gcm(aes)) 0xe57364586ae7d5199b8cdf0c11e90dfcefdb76ae 96</div><div><span style="white-space:pre-wrap">     </span>sel src <a href="http://1.1.1.12/32" target="_blank">1.1.1.12/32</a> dst <a href="http://1.1.1.11/32" target="_blank">1.1.1.11/32</a> proto gre </div><div>root@ubuntu:~# ip xfrm policy</div><div>src <a href="http://1.1.1.12/32" target="_blank">1.1.1.12/32</a> dst <a href="http://1.1.1.11/32" target="_blank">1.1.1.11/32</a> proto tcp dport 7471 </div><div><span style="white-space:pre-wrap">     </span>dir in priority 5888 </div><div><span style="white-space:pre-wrap">   </span>mark 1/0x1</div><div><span style="white-space:pre-wrap">       </span>tmpl src 0.0.0.0 dst 0.0.0.0</div><div><span style="white-space:pre-wrap">             </span>proto esp reqid 3 mode transport</div><div>src <a href="http://1.1.1.11/32" target="_blank">1.1.1.11/32</a> dst <a href="http://1.1.1.12/32" target="_blank">1.1.1.12/32</a> proto tcp sport 7471 </div><div><span style="white-space:pre-wrap">  </span>dir out priority 5888 </div><div><span style="white-space:pre-wrap">  </span>mark 1/0x1</div><div><span style="white-space:pre-wrap">       </span>tmpl src 0.0.0.0 dst 0.0.0.0</div><div><span style="white-space:pre-wrap">             </span>proto esp reqid 3 mode transport</div><div>src <a href="http://1.1.1.12/32" target="_blank">1.1.1.12/32</a> dst <a href="http://1.1.1.11/32" target="_blank">1.1.1.11/32</a> proto tcp sport 7471 </div><div><span style="white-space:pre-wrap">  </span>dir in priority 5888 </div><div><span style="white-space:pre-wrap">   </span>mark 1/0x1</div><div><span style="white-space:pre-wrap">       </span>tmpl src 0.0.0.0 dst 0.0.0.0</div><div><span style="white-space:pre-wrap">             </span>proto esp reqid 2 mode transport</div><div>src <a href="http://1.1.1.11/32" target="_blank">1.1.1.11/32</a> dst <a href="http://1.1.1.12/32" target="_blank">1.1.1.12/32</a> proto tcp dport 7471 </div><div><span style="white-space:pre-wrap">  </span>dir out priority 5888 </div><div><span style="white-space:pre-wrap">  </span>mark 1/0x1</div><div><span style="white-space:pre-wrap">       </span>tmpl src 0.0.0.0 dst 0.0.0.0</div><div><span style="white-space:pre-wrap">             </span>proto esp reqid 2 mode transport</div><div>src <a href="http://1.1.1.12/32" target="_blank">1.1.1.12/32</a> dst <a href="http://1.1.1.11/32" target="_blank">1.1.1.11/32</a> proto gre <---- The old IPsec polcies are still here</div><div><span style="white-space:pre-wrap"> </span>dir in priority 2818 </div><div><span style="white-space:pre-wrap">   </span>mark 1/0x1</div><div><span style="white-space:pre-wrap">       </span>tmpl src 0.0.0.0 dst 0.0.0.0</div><div><span style="white-space:pre-wrap">             </span>proto esp reqid 1 mode transport</div><div>src <a href="http://1.1.1.11/32" target="_blank">1.1.1.11/32</a> dst <a href="http://1.1.1.12/32" target="_blank">1.1.1.12/32</a> proto gre </div><div><span style="white-space:pre-wrap">     </span>dir out priority 2818 </div><div><span style="white-space:pre-wrap">  </span>mark 1/0x1</div><div><span style="white-space:pre-wrap">       </span>tmpl src 0.0.0.0 dst 0.0.0.0</div><div><span style="white-space:pre-wrap">             </span>proto esp reqid 1 mode transport</div><div>src <a href="http://0.0.0.0/0" target="_blank">0.0.0.0/0</a> dst <a href="http://0.0.0.0/0" target="_blank">0.0.0.0/0</a> </div><div><span style="white-space:pre-wrap">       </span>socket in priority 0 </div><div>src <a href="http://0.0.0.0/0" target="_blank">0.0.0.0/0</a> dst <a href="http://0.0.0.0/0" target="_blank">0.0.0.0/0</a> </div><div><span style="white-space:pre-wrap"> </span>socket out priority 0 </div><div>src <a href="http://0.0.0.0/0" target="_blank">0.0.0.0/0</a> dst <a href="http://0.0.0.0/0" target="_blank">0.0.0.0/0</a> </div><div><span style="white-space:pre-wrap">        </span>socket in priority 0 </div><div>src <a href="http://0.0.0.0/0" target="_blank">0.0.0.0/0</a> dst <a href="http://0.0.0.0/0" target="_blank">0.0.0.0/0</a> </div><div><span style="white-space:pre-wrap"> </span>socket out priority 0 </div><div>src ::/0 dst ::/0 </div><div><span style="white-space:pre-wrap">        </span>socket in priority 0 </div><div>src ::/0 dst ::/0 </div><div><span style="white-space:pre-wrap"> </span>socket out priority 0 </div><div>src ::/0 dst ::/0 </div><div><span style="white-space:pre-wrap">        </span>socket in priority 0 </div><div>src ::/0 dst ::/0 </div><div><span style="white-space:pre-wrap"> </span>socket out priority 0 </div></div><div><br></div><div><br></div><div><br></div><div>Thanks,</div><div>Ansis</div></div>