L2TP connection issue

I have a strange issue. My VPN (L2TP + IPSec) is refusing to connect.
This same setup was functional a couple of weeks ago. Since then I have been installing Slowroll updates, but wasn’t specifically messing with anything network-related to expect things to break.

Another computer on the same network (connected to the same dumb switch even) connects to that VPN server without a problem. So it isn’t a network issue.
This computer in question cannot connect to VPN when I share mobile internet to it.
I tried copying VPN setup from the other computer, where it works, to the one in question — no change.
I don’t see anything interesting in the logs. It just refuses to connect:

NetworkManager[16593]: parsed INFORMATIONAL_V1 request 2559789650 [ HASH N(NO_PROP) ]
NetworkManager[16593]: received NO_PROPOSAL_CHOSEN error notify
NetworkManager[16593]: establishing connection '...' failed
NetworkManager[16599]: Stopping strongSwan IPsec...

I have tried creating VPN config from scratch via NetworkManager — no change.

What could be causing this issue? Where should I look?

Thank you.

I have done some more poking around:

  • installed OpenSUSE 15.6 virtual machine on this host (Plasma 5.27.11) — VPN works;
  • installed OpenSUSE Kalpa (MicroOS 20250818 with Plasma 6.4.4) — VPN doesn’t work.

Something in the recent L2TP + IPSec packages for Plasma has been broken?

For the strongswan NO_PROPOSAL_CHOSEN error, it means no algorithms proposed by the client matched what was proposed by the VPN server, so no proposal was chosen.

I’m not familiar with OpenSUSE Kalpa, but did you install any strongswan sub-packages that affects the strongswan algorithms that get installed?

In order not to miss any logging, especially proposals, I would recommend issuing the following:

journalctl --no-hostname _COMM=nm-l2tp-service _COMM=ipsec  _COMM=charon  _COMM=xl2tpd _COMM=pppd

I have installed all available packages mentioning strongswan (see attached image), but nothing has changed, newer OpenSuse cannot connect to VPN.

Micro Slowroll installed packages:

Leap 15.6 installed packages:


Leap has only 2 packages installed, but one of them (strongswan-libs0) seems to be unavailable on Slowroll. Could this be the cause of the issue?

I am attaching logs captured with the command you suggested
journalctl --no-hostname _COMM=nm-l2tp-service _COMM=ipsec _COMM=charon _COMM=xl2tpd _COMM=pppd
(I am dropping lines in the beginning, which are nearly identical in all cases)

OpenSuse Micro Tumbleweed (virtual machine; does not connect to VPN)

nm-l2tp-service[6783]: Check port 1701

charon[6826]: 06[ENC] generating ID_PROT request 0 [ ID HASH ]
charon[6826]: 06[NET] sending packet: from …[4500] to …[4500] (76 bytes)
charon[6826]: 07[NET] received packet: from …[4500] to …[4500] (92 bytes)
charon[6826]: 07[ENC] invalid HASH_V1 payload length, decryption failed?
charon[6826]: 07[ENC] could not decrypt payloads
charon[6826]: 07[IKE] message parsing failed
charon[6826]: 07[IKE] ignore malformed INFORMATIONAL request
charon[6826]: 07[IKE] INFORMATIONAL_V1 request with message ID 3336773376 processing failed
charon[6826]: 08[NET] received packet: from …[4500] to …[4500] (76 bytes)
charon[6826]: 08[ENC] parsed ID_PROT response 0 [ ID HASH ]
charon[6826]: 08[IKE] IKE_SA b4e6e9e8-28a0-4316-8c1c-4c92762d5b4d[1] established between …[…]…[…]
charon[6826]: 08[IKE] IKE_SA b4e6e9e8-28a0-4316-8c1c-4c92762d5b4d[1] established between …[…]…[…]
charon[6826]: 08[IKE] scheduling reauthentication in 10025s
charon[6826]: 08[IKE] maximum IKE_SA lifetime 10565s
charon[6826]: 08[ENC] generating QUICK_MODE request 1516882269 [ HASH SA No KE ID ID NAT-OA NAT-OA ]
charon[6826]: 08[NET] sending packet: from …[4500] to …[4500] (300 bytes)
charon[6826]: 09[NET] received packet: from …[4500] to …[4500] (76 bytes)
charon[6826]: 09[ENC] parsed INFORMATIONAL_V1 request 3243266910 [ HASH N(NO_PROP) ]
charon[6826]: 09[IKE] received NO_PROPOSAL_CHOSEN error notify
NetworkManager[6868]: Stopping strongSwan IPsec…
charon[6826]: 00[DMN] SIGINT received, shutting down

OpenSuse Leap 15.6 (virtual machine; connects successfully)

nm-l2tp-service[2810]: Check port 1701

charon[2862]: 07[ENC] generating ID_PROT request 0 [ ID HASH ]
charon[2862]: 07[NET] sending packet: from …[4500] to …[4500] (76 bytes)
charon[2862]: 08[NET] received packet: from …[4500] to …[4500] (92 bytes)
charon[2862]: 08[ENC] invalid HASH_V1 payload length, decryption failed?
charon[2862]: 08[ENC] could not decrypt payloads
charon[2862]: 08[IKE] message parsing failed
charon[2862]: 08[IKE] ignore malformed INFORMATIONAL request
charon[2862]: 08[IKE] INFORMATIONAL_V1 request with message ID 2968423712 processing failed
charon[2862]: 09[NET] received packet: from …[4500] to …[4500] (76 bytes)
charon[2862]: 09[ENC] parsed ID_PROT response 0 [ ID HASH ]
charon[2862]: 09[IKE] IKE_SA 625774a2-3efa-4be2-afc9-f0cf51aaadf3[1] established between …[…]…[…]
charon[2862]: 09[IKE] IKE_SA 625774a2-3efa-4be2-afc9-f0cf51aaadf3[1] established between …[…]…[…]
charon[2862]: 09[IKE] scheduling reauthentication in 9899s
charon[2862]: 09[IKE] maximum IKE_SA lifetime 10439s
charon[2862]: 09[ENC] generating QUICK_MODE request 1215692362 [ HASH SA No ID ID NAT-OA NAT-OA ]
charon[2862]: 09[NET] sending packet: from …[4500] to …[4500] (252 bytes)
charon[2862]: 11[NET] received packet: from …[4500] to …[4500] (188 bytes)
charon[2862]: 11[ENC] parsed QUICK_MODE response 1215692362 [ HASH SA No ID ID NAT-OA NAT-OA ]
charon[2862]: 11[CFG] selected proposal: ESP:AES_CBC_256/HMAC_SHA1_96/NO_EXT_SEQ
charon[2862]: 11[IKE] CHILD_SA 625774a2-3efa-4be2-afc9-f0cf51aaadf3{1} established with SPIs c44d6a90_i 0691f88b_o and TS …/32[udp/l2f] === …/32[udp/l2f]
charon[2862]: 11[IKE] CHILD_SA 625774a2-3efa-4be2-afc9-f0cf51aaadf3{1} established with SPIs c44d6a90_i 0691f88b_o and TS …/32[udp/l2f] === …/32[udp/l2f]
charon[2862]: 11[ENC] generating QUICK_MODE request 1215692362 [ HASH ]
charon[2862]: 11[NET] sending packet: from …[4500] to …[4500] (60 bytes)
nm-l2tp-service[2810]: xl2tpd started with pid 3081

OpenSuse Leap 15.6 (host; connects successfully)

nm-l2tp-service[13636]: Check port 1701

charon[13661]: 07[ENC] generating ID_PROT request 0 [ ID HASH ]
charon[13661]: 07[NET] sending packet: from …[4500] to …[4500] (76 bytes)
charon[13661]: 08[NET] received packet: from …[4500] to …[4500] (76 bytes)
charon[13661]: 08[ENC] parsed ID_PROT response 0 [ ID HASH ]
charon[13661]: 08[IKE] IKE_SA ef8a0891-602f-4de6-bd66-95f7cda07ac0[1] established between …[…]…[…]
charon[13661]: 08[IKE] IKE_SA ef8a0891-602f-4de6-bd66-95f7cda07ac0[1] established between …[…]…[…]
charon[13661]: 08[IKE] scheduling reauthentication in 9832s
charon[13661]: 08[IKE] maximum IKE_SA lifetime 10372s
charon[13661]: 08[ENC] generating QUICK_MODE request 40883106 [ HASH SA No ID ID NAT-OA NAT-OA ]
charon[13661]: 08[NET] sending packet: from …[4500] to …[4500] (252 bytes)
charon[13661]: 09[NET] received packet: from …[4500] to …[4500] (92 bytes)
charon[13661]: 09[ENC] parsed INFORMATIONAL_V1 request 2853990496 [ HASH N(INITIAL_CONTACT) ]
charon[13661]: 11[NET] received packet: from …[4500] to …[4500] (188 bytes)
charon[13661]: 11[ENC] parsed QUICK_MODE response 40883106 [ HASH SA No ID ID NAT-OA NAT-OA ]
charon[13661]: 11[CFG] selected proposal: ESP:AES_CBC_256/HMAC_SHA1_96/NO_EXT_SEQ
charon[13661]: 11[IKE] CHILD_SA ef8a0891-602f-4de6-bd66-95f7cda07ac0{1} established with SPIs c36fa328_i 0b728cb5_o and TS …/32[udp/l2f] === …/32[udp/l2f]
charon[13661]: 11[IKE] CHILD_SA ef8a0891-602f-4de6-bd66-95f7cda07ac0{1} established with SPIs c36fa328_i 0b728cb5_o and TS …/32[udp/l2f] === …/32[udp/l2f]
charon[13661]: 11[ENC] generating QUICK_MODE request 40883106 [ HASH ]
charon[13661]: 11[NET] sending packet: from …[4500] to …[4500] (60 bytes)
nm-l2tp-service[13636]: xl2tpd started with pid 14045

Both virtual machines seem to fail ID_PROT request 0 [ ID HASH ] request and complain about malformed INFORMATIONAL request. After that virtual Leap proceeds to negotiate a proposal and connects.
Host Leap is a few requests faster — parses original ID_PROT response 0 [ ID HASH ], then INFORMATIONAL_V1 request 2853990496 [ HASH N(INITIAL_CONTACT) ], selects proposal and authenticates.

Out of curiosity I have tried installing Tumbleweed in a virtual machine (directly, not via Micro) — but it keeps failing to start X and stubbornly logs into text console. I have poked around without much result and have given up for now. Will just try virtual Slowroll once.

Tumbleweed (virtual machine) behaves the same way as the Micro Tumbleweed:

  • strongswan-libs0 not available for installation
  • fails to decrypt some response invalid HASH_V1 payload length, decryption failed?
  • complains about malformed INFORMATIONAL request
  • fails to negotiate proposal received NO_PROPOSAL_CHOSEN error notify

Does not connect to L2TP + IPsec VPN.

Try to uninstall strongswan-fips.

strongswan-fips

Config file to disable non FIPS-140-2 algos in strongSwan

The package provides a config file disabling alternative algorithm implementation when FIPS-140-2 compliant operation mode is enabled.

That didn’t help, there is no change.

Slowroll virtual machine

Sep 04 07:44:42 nm-l2tp-service[3450]: Check port 1701
Sep 04 07:44:42 NetworkManager[3489]: Stopping strongSwan IPsec failed: starter is not running
Sep 04 07:44:44 charon[3497]: 00[DMN] Starting IKE charon daemon (strongSwan 6.0.2, Linux 6.15.8-1-default, x86_64)
Sep 04 07:44:44 charon[3497]: 00[CFG] PKCS11 module ‘’ lacks library path
Sep 04 07:44:44 charon[3497]: 00[LIB] providers loaded by OpenSSL: default legacy
Sep 04 07:44:44 charon[3497]: 00[CFG] install DNS servers in ‘/run/strongswan/resolv.conf’
Sep 04 07:44:44 charon[3497]: 00[CFG] attr-sql plugin: database URI not set
Sep 04 07:44:44 charon[3497]: 00[CFG] loading ca certificates from ‘/etc/ipsec.d/cacerts’
Sep 04 07:44:44 charon[3497]: 00[CFG] loading aa certificates from ‘/etc/ipsec.d/aacerts’
Sep 04 07:44:44 charon[3497]: 00[CFG] loading ocsp signer certificates from ‘/etc/ipsec.d/ocspcerts’
Sep 04 07:44:44 charon[3497]: 00[CFG] loading attribute certificates from ‘/etc/ipsec.d/acerts’
Sep 04 07:44:44 charon[3497]: 00[CFG] loading crls from ‘/etc/ipsec.d/crls’
Sep 04 07:44:44 charon[3497]: 00[CFG] loading secrets from ‘/etc/ipsec.secrets’
Sep 04 07:44:44 charon[3497]: 00[CFG] loading secrets from ‘/etc/ipsec.d/ipsec.nm-l2tp.secrets’
Sep 04 07:44:44 charon[3497]: 00[CFG] loaded IKE secret for %any
Sep 04 07:44:44 charon[3497]: 00[CFG] sql plugin: database URI not set
Sep 04 07:44:44 charon[3497]: 00[CFG] opening triplet file /etc/ipsec.d/triplets.dat failed: No such file or directory
Sep 04 07:44:44 charon[3497]: 00[CFG] eap-simaka-sql database URI missing
Sep 04 07:44:44 charon[3497]: 00[CFG] loaded 0 RADIUS server configurations
Sep 04 07:44:44 charon[3497]: 00[TNC] TNC recommendation policy is ‘default’
Sep 04 07:44:44 charon[3497]: 00[TNC] loading IMVs from ‘/etc/tnc_config’
Sep 04 07:44:44 charon[3497]: 00[TNC] opening configuration file ‘/etc/tnc_config’ failed: No such file or directory
Sep 04 07:44:44 charon[3497]: 00[CFG] missing PDP server name, PDP disabled
Sep 04 07:44:44 charon[3497]: 00[TNC] loading IMCs from ‘/etc/tnc_config’
Sep 04 07:44:44 charon[3497]: 00[TNC] opening configuration file ‘/etc/tnc_config’ failed: No such file or directory
Sep 04 07:44:44 charon[3497]: 00[CFG] HA config misses local/remote address
Sep 04 07:44:44 charon[3497]: 00[CFG] coupling file path unspecified
Sep 04 07:44:44 charon[3497]: 00[LIB] loaded plugins: charon ldap pkcs11 blowfish md4 mgf1 random nonce x509 revocation constraints pubkey pkcs1 pkcs7 pgp dnskey sshkey pem openssl gcrypt pkcs8 af-alg fips-prf gmp agent xcbc cmac kdf ctr ccm gcm drb>
Sep 04 07:44:44 charon[3497]: 00[LIB] dropped capabilities, running as uid 0, gid 0
Sep 04 07:44:44 charon[3497]: 00[JOB] spawning 16 worker threads
Sep 04 07:44:44 charon[3497]: 11[CFG] received stroke: add connection ‘6b81c05c-eb98-49a9-876c-5dbe02f3b5cc’
Sep 04 07:44:44 charon[3497]: 11[CFG] added configuration ‘6b81c05c-eb98-49a9-876c-5dbe02f3b5cc’
Sep 04 07:44:45 charon[3497]: 13[CFG] rereading secrets
Sep 04 07:44:45 charon[3497]: 13[CFG] loading secrets from ‘/etc/ipsec.secrets’
Sep 04 07:44:45 charon[3497]: 13[CFG] loading secrets from ‘/etc/ipsec.d/ipsec.nm-l2tp.secrets’
Sep 04 07:44:45 charon[3497]: 13[CFG] loaded IKE secret for %any
Sep 04 07:44:45 charon[3497]: 14[CFG] received stroke: initiate ‘6b81c05c-eb98-49a9-876c-5dbe02f3b5cc’
Sep 04 07:44:45 charon[3497]: 16[IKE] initiating Main Mode IKE_SA 6b81c05c-eb98-49a9-876c-5dbe02f3b5cc[1] to …
Sep 04 07:44:45 charon[3497]: 16[IKE] initiating Main Mode IKE_SA 6b81c05c-eb98-49a9-876c-5dbe02f3b5cc[1] to …
Sep 04 07:44:45 charon[3497]: 16[ENC] generating ID_PROT request 0 [ SA V V V V V ]
Sep 04 07:44:45 charon[3497]: 16[NET] sending packet: from …[500] to …[500] (240 bytes)
Sep 04 07:44:45 charon[3497]: 06[NET] received packet: from …[500] to …[500] (160 bytes)
Sep 04 07:44:45 charon[3497]: 06[ENC] parsed ID_PROT response 0 [ SA V V V V ]
Sep 04 07:44:45 charon[3497]: 06[IKE] received NAT-T (RFC 3947) vendor ID
Sep 04 07:44:45 charon[3497]: 06[IKE] received XAuth vendor ID
Sep 04 07:44:45 charon[3497]: 06[IKE] received DPD vendor ID
Sep 04 07:44:45 charon[3497]: 06[IKE] received FRAGMENTATION vendor ID
Sep 04 07:44:45 charon[3497]: 06[CFG] selected proposal: IKE:AES_CBC_256/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_1024
Sep 04 07:44:45 charon[3497]: 06[ENC] generating ID_PROT request 0 [ KE No NAT-D NAT-D ]
Sep 04 07:44:45 charon[3497]: 06[NET] sending packet: from …[500] to …[500] (244 bytes)
Sep 04 07:44:45 charon[3497]: 08[NET] received packet: from …[500] to …[500] (236 bytes)
Sep 04 07:44:45 charon[3497]: 08[ENC] parsed ID_PROT response 0 [ KE No NAT-D NAT-D ]
Sep 04 07:44:45 charon[3497]: 08[IKE] local host is behind NAT, sending keep alives
Sep 04 07:44:45 charon[3497]: 08[ENC] generating ID_PROT request 0 [ ID HASH ]
Sep 04 07:44:45 charon[3497]: 08[NET] sending packet: from …[4500] to …[4500] (76 bytes)
Sep 04 07:44:45 charon[3497]: 09[NET] received packet: from …[4500] to …[4500] (92 bytes)
Sep 04 07:44:45 charon[3497]: 09[ENC] invalid HASH_V1 payload length, decryption failed?
Sep 04 07:44:45 charon[3497]: 09[ENC] could not decrypt payloads
Sep 04 07:44:45 charon[3497]: 09[IKE] message parsing failed
Sep 04 07:44:45 charon[3497]: 09[IKE] ignore malformed INFORMATIONAL request
Sep 04 07:44:45 charon[3497]: 09[IKE] INFORMATIONAL_V1 request with message ID 4051252717 processing failed
Sep 04 07:44:45 charon[3497]: 07[NET] received packet: from …[4500] to …[4500] (76 bytes)
Sep 04 07:44:45 charon[3497]: 07[ENC] parsed ID_PROT response 0 [ ID HASH ]
Sep 04 07:44:45 charon[3497]: 07[IKE] IKE_SA 6b81c05c-eb98-49a9-876c-5dbe02f3b5cc[1] established between …[…]…[…]
Sep 04 07:44:45 charon[3497]: 07[IKE] IKE_SA 6b81c05c-eb98-49a9-876c-5dbe02f3b5cc[1] established between …[…]…[…]
Sep 04 07:44:45 charon[3497]: 07[IKE] scheduling reauthentication in 10086s
Sep 04 07:44:45 charon[3497]: 07[IKE] maximum IKE_SA lifetime 10626s
Sep 04 07:44:45 charon[3497]: 07[ENC] generating QUICK_MODE request 1696268516 [ HASH SA No KE ID ID NAT-OA NAT-OA ]
Sep 04 07:44:45 charon[3497]: 07[NET] sending packet: from …[4500] to …[4500] (300 bytes)
Sep 04 07:44:45 charon[3497]: 10[NET] received packet: from …[4500] to …[4500] (76 bytes)
Sep 04 07:44:45 charon[3497]: 10[ENC] parsed INFORMATIONAL_V1 request 2388206152 [ HASH N(NO_PROP) ]
Sep 04 07:44:45 charon[3497]: 10[IKE] received NO_PROPOSAL_CHOSEN error notify
Sep 04 07:44:45 NetworkManager[3739]: Stopping strongSwan IPsec…
Sep 04 07:44:45 charon[3497]: 00[DMN] SIGINT received, shutting down
Sep 04 07:44:45 charon[3497]: 00[IKE] deleting IKE_SA 6b81c05c-eb98-49a9-876c-5dbe02f3b5cc[1] between …[…]…[…]
Sep 04 07:44:45 charon[3497]: 00[IKE] deleting IKE_SA 6b81c05c-eb98-49a9-876c-5dbe02f3b5cc[1] between …[…]…[…]
Sep 04 07:44:45 charon[3497]: 00[IKE] sending DELETE for IKE_SA 6b81c05c-eb98-49a9-876c-5dbe02f3b5cc[1]
Sep 04 07:44:45 charon[3497]: 00[ENC] generating INFORMATIONAL_V1 request 3943891735 [ HASH D ]
Sep 04 07:44:45 charon[3497]: 00[NET] sending packet: from …[4500] to …[4500] (92 bytes)
Sep 04 07:44:45 nm-l2tp-service[3450]: Could not establish IPsec connection.

This was supposed to be “Slowroll (virtual machine)”, not Tumbleweed. Not that it makes much difference :slight_smile:

From IPsec_VPN_client_setup#Troubleshooting, can you try:

ipsec verify

And compare the output from the problem setup versus a working setup.

Based on this document you seem to run into a Phase 1 hash algorithm mismatch, would be good to know what is proposed in the good and bad case.

sudo /usr/lib/NetworkManager/nm-l2tp-service --debug

That seems to set up the connection with more debug information, would be good to compare that once more good versus bad.

From the strongswan charon daemon log output where the IPsec connection ultimately fails, Phase 1 (Main Mode) is successful, Phase 2 (Quick Mode) fails.

From a successful log output the selected proposals are:

  • Main Mode: AES_CBC_256/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_1024
  • Quick Mode: AES_CBC_256/HMAC_SHA1_96/NO_EXT_SEQ

Which I believe is equivalent to the following shorter syntax:

  • Phase 1: aes256-sha1-modp1024
  • Phase 2: aes256-sha1

NetworkManager-l2tp code offers the following 3 proposals for Phase 2 by default:

aes256-sha1,aes128-sha1,3des-sha1

From the successful logs, the strongest of the above 3 proposals seems to get selected, i.e. aes256-sha1.

As the PSK is used in Phase 2, there could be an issue with using a wrong PSK or some space or special character in the PSK not being processed properly.

You could try forcing Phase 2 to use the same proposal as Windows 11 in the IPSec GUI advanced settings:

  • Phase 2 algorithms: 3des-sha1!

Note the exclamation mark at the end which overrides existing proposals rather than appending to a list of existing proposals.

Which I believe is equivalent to the following shorter syntax…

Precisely. Those are the settings I was told to use while setting up the VPN connection.

You could try forcing Phase 2 to use the same proposal as Windows 11 in the IPSec GUI advanced settings:
Phase 2 algorithms: 3des-sha1!

Magic, that works! Both on (host) Leap 15.6 and the (virtual) Slowroll. The “Phase 2 aes256-sha1” still does not work on the Slowroll.
Although I still don’t understand why this suddenly broke in Tumbleweeds, as it used to work about a month ago.

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.