Thank you so much Paul for your prompt response. Couple questions

  *   I am not understanding the issue very well. In my setup 1 source ip 
negotiates with multiple destination ips and also probably loopback on same 
host. If you see below all highlighted SA pairs are unique.
  *   This is a blocker issue for us and looking for a workaround and a fix. 
Because in my case as you say dpd isn’t enabled so connection doesn’t get 
reestablished. Would you kindly suggest if adding

dpdaction=restart below  in my conf file suffice?

  *   Is there a ETA for the SEGV fix? We will be very interested in helping 
test the fix whenever patch is available or support the fix  for this issue any 
other ways?



Jan 20 20:26:21 scaqat33adm04vm01.oracle.local pluto[392092]: addconn:
Jan 20 20:26:22 scaqat33adm04vm01.oracle.local pluto[392092]: 
"private#192.200.7.0/24"[1] ...192.200.7.10: initiate on-demand for packet 
192.200.7.49:8-ICMP->192.200.7.10:0
Jan 20 20:26:22 scaqat33adm04vm01.oracle.local pluto[392092]: 
"private-2#192.200.7.0/24"[1] ...192.200.7.10: initiate on-demand for packet 
192.200.7.50:8-ICMP->192.200.7.10:0
Jan 20 20:26:22 scaqat33adm04vm01.oracle.local pluto[392092]: 
"private-2#192.200.7.0/24"[2] ...192.200.7.49: initiate on-demand for packet 
192.200.7.50:8-ICMP->192.200.7.49:0
Jan 20 20:26:22 scaqat33adm04vm01.oracle.local pluto[392092]: 
"private-2#192.200.7.0/24"[3] ...192.200.7.5: initiate on-demand for packet 
192.200.7.50:8-ICMP->192.200.7.5:0
Jan 20 20:26:22 scaqat33adm04vm01.oracle.local pluto[392092]: 
"private#192.200.7.0/24"[2] ...192.200.7.5: initiate on-demand for packet 
192.200.7.49:8-ICMP->192.200.7.5:0
Jan 20 20:26:22 scaqat33adm04vm01.oracle.local pluto[392092]: 
"private-2#192.200.7.0/24"[4] ...192.200.7.6: initiate on-demand for packet 
192.200.7.50:8-ICMP->192.200.7.6:0
Jan 20 20:26:22 scaqat33adm04vm01.oracle.local pluto[392092]: 
"private#192.200.7.0/24"[3] ...192.200.7.50: initiate on-demand for packet 
192.200.7.49:8-ICMP->192.200.7.50:0
Jan 20 20:26:22 scaqat33adm04vm01.oracle.local pluto[392092]: 
"private-2#192.200.7.0/24"[5] ...192.200.7.7: initiate on-demand for packet 
192.200.7.50:8-ICMP->192.200.7.7:0
Jan 20 20:26:22 scaqat33adm04vm01.oracle.local pluto[392092]: 
"private#192.200.7.0/24"[4] ...192.200.7.6: initiate on-demand for packet 
192.200.7.49:8-ICMP->192.200.7.6:0
Jan 20 20:26:22 scaqat33adm04vm01.oracle.local pluto[392092]: 
"private-2#192.200.7.0/24"[6] ...192.200.7.8: initiate on-demand for packet 
192.200.7.50:8-ICMP->192.200.7.8:0
Jan 20 20:26:22 scaqat33adm04vm01.oracle.local pluto[392092]: 
"private#192.200.7.0/24"[5] ...192.200.7.7: initiate on-demand for packet 
192.200.7.49:8-ICMP->192.200.7.7:0
Jan 20 20:26:22 scaqat33adm04vm01.oracle.local pluto[392092]: 
"private-2#192.200.7.0/24"[7] ...192.200.7.9: initiate on-demand for packet 
192.200.7.50:8-ICMP->192.200.7.9:0
Jan 20 20:26:22 scaqat33adm04vm01.oracle.local pluto[392092]: 
"private#192.200.7.0/24"[6] ...192.200.7.8: initiate on-demand for packet 
192.200.7.49:8-ICMP->192.200.7.8:0
Jan 20 20:26:22 scaqat33adm04vm01.oracle.local pluto[392092]: 
"private#192.200.7.0/24"[7] ...192.200.7.9: initiate on-demand for packet 
192.200.7.49:8-ICMP->192.200.7.9:0

an 20 20:26:22 scaqat33adm04vm01.oracle.local pluto[392092]: 
"private#192.200.7.0/24"[3] ...192.200.7.50 #7: processed IKE_SA_INIT response 
from 192.200.7.50:UDP/500 {cipher=AES_GCM_16_256 integ=n/a prf>
Jan 20 20:26:22 scaqat33adm04vm01.oracle.local pluto[392092]: 
"private-2#192.200.7.0/24"[2] ...192.200.7.49 #3: processed IKE_SA_INIT 
response from 192.200.7.49:UDP/500 {cipher=AES_GCM_16_256 integ=n/a p>
Jan 20 20:26:22 scaqat33adm04vm01.oracle.local pluto[392092]: 
"private-2#192.200.7.0/24"[8] ...192.200.7.49 #15: processing decrypted 
IKE_AUTH request: SK{IDi,IDr,AUTH,SA,TSi,TSr,N(USE_TRANSPORT_MODE)}
Jan 20 20:26:22 scaqat33adm04vm01.oracle.local pluto[392092]: 
"private-2#192.200.7.0/24"[8] ...192.200.7.49 #15: responder established IKE 
SA; authenticated peer using authby=null and ID_NULL 'ID_NULL'
Jan 20 20:26:22 scaqat33adm04vm01.oracle.local pluto[392092]: 
"private-2#192.200.7.0/24"[8] ...192.200.7.49 #15: NULL auth ID for different 
IP's cannot replace each other
Jan 20 20:26:22 scaqat33adm04vm01.oracle.local pluto[392092]: 
"private-2#192.200.7.0/24"[8] ...192.200.7.49 #15: NULL auth ID for different 
IP's cannot replace each other
Jan 20 20:26:22 scaqat33adm04vm01.oracle.local pluto[392092]: 
"private-2#192.200.7.0/24"[8] ...192.200.7.49 #15: NULL auth ID for different 
IP's cannot replace each other
Jan 20 20:26:22 scaqat33adm04vm01.oracle.local pluto[392092]: 
"private-2#192.200.7.0/24"[8] ...192.200.7.49 #15: NULL auth ID for different 
IP's cannot replace each other
Jan 20 20:26:22 scaqat33adm04vm01.oracle.local pluto[392092]: 
"private-2#192.200.7.0/24"[8] ...192.200.7.49 #15: NULL auth ID for different 
IP's cannot replace each other
Jan 20 20:26:22 scaqat33adm04vm01.oracle.local pluto[392092]: 
"private-2#192.200.7.0/24"[2] ...192.200.7.49: terminating SAs using this 
connection
Jan 20 20:26:22 scaqat33adm04vm01.oracle.local pluto[392092]: 
"private-2#192.200.7.0/24"[2] ...192.200.7.49 #3: deleting IKE SA (sent 
IKE_AUTH request)
Jan 20 20:26:22 scaqat33adm04vm01.oracle.local systemd[1]: ipsec.service: Main 
process exited, code=dumped, status=11/SEGV
J


From: Paul Wouters <[email protected]>
Date: Monday, January 20, 2025 at 6:31 PM
To: Mamta Gambhir <[email protected]>
Cc: [email protected] <[email protected]>
Subject: [External] : Re: [Swan] SEGV using NULL authentication with multiple 
peers

On Jan 20, 2025, at 20:40, Mamta Gambhir via Swan <[email protected]> 
wrote:


I have been using NULL authentication method with opportunistic connection, but 
now increased # peers and I see this error message and SEGV.Is it known issue 
with libreswan or related to multiple peers using NULL authentication or 
opportunistic connection?



I see message like –

Jan 20 16:36:31 scaqat33celadm04.oracle.local pluto[335818]: 
"private-or-clear-2#192.200.7.0/24"[6] ...192.200.7.5 #13: NULL auth ID for 
different IP's cannot replace each other

And then SEGV coredump.

The segfault is a new bug we need to fix.

The root cause is that you have a connection with an IP and that same IP is 
trying again to build one. It is not allowed to replace because it cannot proof 
it is the same entity because of null auth. When you have dpd enabled though, 
the current connection should get marked as dead and taken down and things will 
be able to establish again.

We will add a test case and fix the segfault






Jan 20 16:36:31 scaqat33celadm04.oracle.local pluto[335818]: addconn: adding 
UDP interface stre1 192.200.7.6:500

Jan 20 16:36:31 scaqat33celadm04.oracle.local pluto[335818]: addconn: adding 
UDP interface stre1 192.200.7.6:4500

Jan 20 16:36:31 scaqat33celadm04.oracle.local pluto[335818]: addconn: adding 
UDP interface stre0 192.200.7.5:500

Jan 20 16:36:31 scaqat33celadm04.oracle.local pluto[335818]: addconn: adding 
UDP interface stre0 192.200.7.5:4500

Jan 20 16:36:31 scaqat33celadm04.oracle.local pluto[335818]: addconn: adding 
UDP interface eth0 10.106.16.43:500

Jan 20 16:36:31 scaqat33celadm04.oracle.local pluto[335818]: addconn: adding 
UDP interface eth0 10.106.16.43:4500

Jan 20 16:36:31 scaqat33celadm04.oracle.local pluto[335818]: addconn: adding 
UDP interface lo 127.0.0.1:500

Jan 20 16:36:31 scaqat33celadm04.oracle.local pluto[335818]: addconn: adding 
UDP interface lo 127.0.0.1:4500

Jan 20 16:36:31 scaqat33celadm04.oracle.local pluto[335818]: addconn: adding 
UDP interface lo [::1]:500

Jan 20 16:36:31 scaqat33celadm04.oracle.local pluto[335818]: addconn: adding 
UDP interface lo [::1]:4500

Jan 20 16:36:31 scaqat33celadm04.oracle.local pluto[335818]: addconn: 
"private-or-clear-2": oriented IKEv2 connec

Jan 20 16:36:31 scaqat33celadm04.oracle.local pluto[335818]: addconn: tion 
(local: left=192.200.7.6  remote: right=0.0.0.0)

Jan 20 16:36:31 scaqat33celadm04.oracle.local pluto[335818]: addconn: 
"private-or-clear": oriented IKEv2 connection (local: left=192.200.7.5  remote: 
right=0.0.0.0)

Jan 20 16:36:31 scaqat33celadm04.oracle.local pluto[335818]: addconn: loading 
secrets from "/etc/ipsec.secrets"

Jan 20 16:36:31 scaqat33celadm04.oracle.local pluto[335818]: addconn: loading 
group "/etc/ipsec.d/policies/private-or-clear-2"

Jan 20 16:36:31 scaqat33celadm04.oracle.local pluto[335818]: addconn: loading 
group "/etc/ipsec.d/policies/private-or-clear"

Jan 20 16:36:31 scaqat33celadm04.oracle.local pluto[335818]: addconn:

Jan 20 16:36:31 scaqat33celadm04.oracle.local pluto[335818]: 
"private-or-clear#192.200.7.0/24": route-host output: need at least a 
destination address

Jan 20 16:36:31 scaqat33celadm04.oracle.local pluto[335818]: 
"private-or-clear#192.200.7.0/24": route-host output: need at least a 
destination address

Jan 20 16:36:31 scaqat33celadm04.oracle.local pluto[335818]: addconn: 
"private-or-clear#192.200.7.0/24": route-host output: need at least a 
destination address

Jan 20 16:36:31 scaqat33celadm04.oracle.local pluto[335818]: addconn: 
"private-or-clear#192.200.7.0/24": route-host output: need at least a 
destination address

Jan 20 16:36:31 scaqat33celadm04.oracle.local pluto[335818]: addconn:

Jan 20 16:36:31 scaqat33celadm04.oracle.local pluto[335818]: 
"private-or-clear-2#192.200.7.0/24": route-host output: need at least a 
destination address

Jan 20 16:36:31 scaqat33celadm04.oracle.local pluto[335818]: 
"private-or-clear-2#192.200.7.0/24": route-host output: need at least a 
destination address

Jan 20 16:36:31 scaqat33celadm04.oracle.local pluto[335818]: addconn: 
"private-or-clear-2#192.200.7.0/24": route-host output: need at least a 
destination address

Jan 20 16:36:31 scaqat33celadm04.oracle.local pluto[335818]: addconn: 
"private-or-clear-2#192.200.7.0/24": route-host output: need at least a 
destination address

Jan 20 16:36:31 scaqat33celadm04.oracle.local pluto[335818]: addconn:

Jan 20 16:36:31 scaqat33celadm04.oracle.local pluto[335818]: 
"private-or-clear#192.200.7.0/24"[1] ...192.200.7.7: initiate on-demand for 
packet 192.200.7.5:0-ICMP->192.200.7.7:0

Jan 20 16:36:31 scaqat33celadm04.oracle.local pluto[335818]: 
"private-or-clear#192.200.7.0/24"[2] ...192.200.7.8: initiate on-demand for 
packet 192.200.7.5:0-ICMP->192.200.7.8:0

Jan 20 16:36:31 scaqat33celadm04.oracle.local pluto[335818]: 
"private-or-clear-2#192.200.7.0/24"[1] ...192.200.7.7: initiate on-demand for 
packet 192.200.7.6:0-ICMP->192.200.7.7:0

Jan 20 16:36:31 scaqat33celadm04.oracle.local pluto[335818]: 
"private-or-clear#192.200.7.0/24"[3] ...192.200.7.10: initiate on-demand for 
packet 192.200.7.5:8-ICMP->192.200.7.10:0

Jan 20 16:36:31 scaqat33celadm04.oracle.local pluto[335818]: 
"private-or-clear#192.200.7.0/24"[4] ...192.200.7.47: initiate on-demand for 
packet 192.200.7.5:8-ICMP->192.200.7.47:0

Jan 20 16:36:31 scaqat33celadm04.oracle.local pluto[335818]: 
"private-or-clear#192.200.7.0/24"[5] ...192.200.7.48: initiate on-demand for 
packet 192.200.7.5:8-ICMP->192.200.7.48:0

Jan 20 16:36:31 scaqat33celadm04.oracle.local pluto[335818]: 
"private-or-clear-2#192.200.7.0/24"[2] ...192.200.7.47: initiate on-demand for 
packet 192.200.7.6:8-ICMP->192.200.7.47:0

Jan 20 16:36:31 scaqat33celadm04.oracle.local pluto[335818]: 
"private-or-clear#192.200.7.0/24"[6] ...192.200.7.6: initiate on-demand for 
packet 192.200.7.5:8-ICMP->192.200.7.6:0

Jan 20 16:36:31 scaqat33celadm04.oracle.local pluto[335818]: 
"private-or-clear-2#192.200.7.0/24"[3] ...192.200.7.48: initiate on-demand for 
packet 192.200.7.6:8-ICMP->192.200.7.48:0

Jan 20 16:36:31 scaqat33celadm04.oracle.local pluto[335818]: 
"private-or-clear#192.200.7.0/24"[7] ...192.200.7.9: initiate on-demand for 
packet 192.200.7.5:8-ICMP->192.200.7.9:0

Jan 20 16:36:31 scaqat33celadm04.oracle.local pluto[335818]: 
"private-or-clear-2#192.200.7.0/24"[4] ...192.200.7.5: initiate on-demand for 
packet 192.200.7.6:8-ICMP->192.200.7.5:0

Jan 20 16:36:31 scaqat33celadm04.oracle.local pluto[335818]: 
"private-or-clear-2#192.200.7.0/24"[5] ...192.200.7.9: initiate on-demand for 
packet 192.200.7.6:8-ICMP->192.200.7.9:0

Jan 20 16:36:31 scaqat33celadm04.oracle.local pluto[335818]: 
"private-or-clear#192.200.7.0/24"[6] ...192.200.7.6 #8: processed IKE_SA_INIT 
response from 192.200.7.6:UDP/500 {cipher=AES_GCM_16_256 integ=n>

Jan 20 16:36:31 scaqat33celadm04.oracle.local pluto[335818]: 
"private-or-clear-2#192.200.7.0/24"[4] ...192.200.7.5 #11: processed 
IKE_SA_INIT response from 192.200.7.5:UDP/500 {cipher=AES_GCM_16_256 inte>

Jan 20 16:36:31 scaqat33celadm04.oracle.local pluto[335818]: 
"private-or-clear-2#192.200.7.0/24"[6] ...192.200.7.5 #13: processing decrypted 
IKE_AUTH request: SK{IDi,IDr,AUTH,SA,TSi,TSr,N(USE_TRANSPORT_M>

Jan 20 16:36:31 scaqat33celadm04.oracle.local pluto[335818]: 
"private-or-clear-2#192.200.7.0/24"[6] ...192.200.7.5 #13: responder 
established IKE SA; authenticated peer using authby=null and ID_NULL 'ID_>

Jan 20 16:36:31 scaqat33celadm04.oracle.local pluto[335818]: 
"private-or-clear-2#192.200.7.0/24"[6] ...192.200.7.5 #13: NULL auth ID for 
different IP's cannot replace each other

Jan 20 16:36:31 scaqat33celadm04.oracle.local pluto[335818]: 
"private-or-clear-2#192.200.7.0/24"[4] ...192.200.7.5: terminating SAs using 
this connection

Jan 20 16:36:31 scaqat33celadm04.oracle.local pluto[335818]: 
"private-or-clear-2#192.200.7.0/24"[4] ...192.200.7.5 #11: deleting IKE SA 
(sent IKE_AUTH request)

Jan 20 16:36:31 scaqat33celadm04.oracle.local systemd[1]: ipsec.service: Main 
process exited, code=dumped, status=11/SEGV

Jan 20 16:36:31 scaqat33celadm04.oracle.local systemd[1]: ipsec.service: Failed 
with result 'core-dump'.

Jan 20 16:36:31 scaqat33celadm04.oracle.local systemd[1]: ipsec.service: 
Service RestartSec=100ms expired, scheduling restart.

Jan 20 16:36:31 scaqat33celadm04.oracle.local systemd[1]: ipsec.service: 
Scheduled restart job, restart counter is at 5.

Jan 20 16:36:31 scaqat33celadm04.oracle.local systemd[1]: Stopped Internet Key 
Exchange (IKE) Protocol Daemon for IPsec.

Jan 20 16:36:31 scaqat33celadm04.oracle.local systemd[1]: ipsec.service: Start 
request repeated too quickly.

Jan 20 16:36:31 scaqat33celadm04.oracle.local systemd[1]: ipsec.service: Failed 
with result 'core-dump'.

Jan 20 16:36:31 scaqat33celadm04.oracle.local systemd[1]: Failed to start 
Internet Key Exchange (IKE) Protocol Daemon for IPsec.


Libreswan version used –
# ipsec status
ERROR: ipsec whack: connect(pluto_ctl) failed: Connection refused (errno 111)
#rpm -qa | grep libreswan
libreswan-5.0-1.0.1.el8.x86_64

# rpm -qa | grep libreswan
libreswan-5.0-1.0.1.el8.x86_64

My .conf files are –

conn private-or-clear

        authby=null

        leftid=%null

        rightid=%null

        left=192.200.7.5

        right=%opportunisticgroup

        negotiationshunt=passthrough

        failureshunt=passthrough

        ikev2=insist

        auto=route

        type=transport

        nic-offload=packet

conn private-or-clear-2

        authby=null

        leftid=%null

        rightid=%null

        left=192.200.7.6

        right=%opportunisticgroup

        negotiationshunt=passthrough

        failureshunt=passthrough

        ikev2=insist

        auto=route

        type=transport

        nic-offload=packet

Thanks for the pointers
_______________________________________________
Swan mailing list -- [email protected]
To unsubscribe send an email to [email protected]
_______________________________________________
Swan mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to