[strongSwan] Multiple CHILD_SA in one IKE_SA with same TS

Tobias Brunner tobias at strongswan.org
Thu Jan 27 10:13:29 CET 2022


Hi Marcel,

> I am connecting multiple XFRM interfaces, each being in a different VRF, 
> between two servers running strongSwan 5.9.4.
> 
> As I am running dynamic routing protocols over those XFRM interfaces, 
> all traffic selectors of the CHILD_SAs have been set to 0.0.0.0/0 & ::/0.
> 
> Now, the responder is not being able to distinguish between the 
> CHILD_SAs anymore (due to the same TS) for one IKE_SA and all the 
> CHILD_SAs of the initiator end up in the same (the first) CHILD_SA in 
> the responder, meaning the different XFRM interfaces of the initiator 
> are being terminated all in the same XFRM interface of the responder.
> 
> My current workaround is to create one IKE_SA per CHILD_SA as I am able 
> to set the local and remote ID in the IKE_SA and use these to 
> distinguish the tunnels as the local and remote addresses are the same 
> aswell. Unfortunately. the CHILD_SA parameter "reqid" is a local setting 
> only and looking at the docs I can't see another way to set some "ID" of 
> some sort to be able to distinguish between overlapping/identical 
> traffic selectors. Am I missing something here or is this the only 
> possible workaround?

The labeled-ipsec branch might be of interest to you (still experimental 
and undergoing some major changes in the near future).  In a non-SELinux 
mode (in the current branch just don't compile with --enable-selinux), 
the labels simply act as additional identifier/selector on the IKEv2 
layer when negotiating CHILD_SAs and selecting child configs.  This 
allows using the label like a transmitted mark/if_id.

Regards,
Tobias


More information about the Users mailing list