<feed xmlns='http://www.w3.org/2005/Atom'>
<title>vyos-1x.git/data/templates/ipsec, branch rolling</title>
<subtitle>VyOS command definitions, scripts, and utilities (mirror of https://github.com/vyos/vyos-1x.git)
</subtitle>
<id>https://git.amelek.net/vyos/vyos-1x.git/atom?h=rolling</id>
<link rel='self' href='https://git.amelek.net/vyos/vyos-1x.git/atom?h=rolling'/>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/'/>
<updated>2026-09-16T08:22:40+00:00</updated>
<entry>
<title>ipsec: T8952: Allow per-peer strongSwan `unique` override for site-to-site peers</title>
<updated>2026-09-16T08:22:40+00:00</updated>
<author>
<name>Oleksandr Kuchmystyi</name>
<email>o.kuchmystyi@vyos.io</email>
</author>
<published>2026-09-15T09:10:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=d1cc3ed65eb1f00409d0b91fc8149431fb614e89'/>
<id>urn:sha1:d1cc3ed65eb1f00409d0b91fc8149431fb614e89</id>
<content type='text'>
VyOS does not expose the strongSwan `connections.&lt;conn&gt;.unique`
parameter for site-to-site peers. The swanctl default is
`unique = no`, which only replaces existing SAs
if the new one carries `INITIAL_CONTACT`. With `dpd_action = restart`,
charon initiates new IKE_SAs without `INITIAL_CONTACT`,
so duplicates accumulate on every DPD timeout.

Previously the strongSwan `unique` connection policy could only be
driven by the global "disable-uniqreqids" option, which set it to
"never" for every connection. Site-to-site peers had no way to opt
into stricter enforcement on their own.
</content>
</entry>
<entry>
<title>ipsec: T9254: split get_esp_ike_cipher() into get_esp_cipher() / get_ike_cipher()</title>
<updated>2026-09-14T08:19:12+00:00</updated>
<author>
<name>rockfish-vyos</name>
<email>321823801+rockfish-vyos@users.noreply.github.com</email>
</author>
<published>2026-09-14T08:17:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=0db7521a96f3d314ec4914c72932cfbcced2dc98'/>
<id>urn:sha1:0db7521a96f3d314ec4914c72932cfbcced2dc98</id>
<content type='text'>
get_esp_ike_cipher() took an esn flag defaulting to True (ESP/CHILD_SA
semantics), and every IKE_SA call site had to remember to pass
esn=False. Nothing enforced that, so a future call site could reintroduce
the ESN-in-IKE bug this task fixed.

Following review feedback from hedrok, split it into two public filters:

  get_esp_cipher(group_config, ike_group=None)  ESP/CHILD_SA, esn=True
  get_ike_cipher(group_config)                  IKE_SA, esn=False always

The shared implementation moves to _get_esp_ike_cipher() (no
register_filter), so a template can no longer call it directly and
skip picking one of the two entry points.

Updated call sites: peer.j2, profile.j2, remote_access.j2, l2tp.j2
(proposals -&gt; get_ike_cipher, esp_proposals -&gt; get_esp_cipher), and
test_template.py.
</content>
</entry>
<entry>
<title>ipsec: T9254: do not emit ESN transforms in IKE proposals</title>
<updated>2026-08-31T17:57:40+00:00</updated>
<author>
<name>rockfish-vyos</name>
<email>321823801+rockfish-vyos@users.noreply.github.com</email>
</author>
<published>2026-08-31T17:57:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=712c1520f8ebfecf3bc35d9aca21d73d7188f0c2'/>
<id>urn:sha1:712c1520f8ebfecf3bc35d9aca21d73d7188f0c2</id>
<content type='text'>
get_esp_ike_cipher() renders both IKE_SA proposals and CHILD_SA
proposals. It unconditionally appended the -esn / -noesn variants,
which are only meaningful for ESP: ESN is Transform Type 5 per
RFC 7296 section 3.3.2 and is defined for CHILD_SAs only.

Emitting ESN in an IKE_SA proposal breaks interoperability with
implementations that reject the malformed payload without replying
at all. Observed against a Cisco FTD: the IKE_SA_INIT is silently
discarded, no NO_PROPOSAL_CHOSEN and no INVALID_KE_PAYLOAD, so the
tunnel never comes up and nothing on the initiator side explains it.

Add an explicit esn parameter defaulting to True so ESP behaviour is
unchanged, and pass esn=False at the four IKE call sites: peer.j2,
profile.j2, remote_access.j2 and l2tp.j2. The five esp_proposals call
sites keep ESN.

ike_group could have served as the discriminator, since IKE call sites
do not pass it, but that coupling is incidental: the argument only
exists to resolve PFS.

Smoke test assertions on the proposals lines are updated accordingly;
the esp_proposals assertions are left untouched.
</content>
</entry>
<entry>
<title>ipsec: T8912: Fix log level not respected in system journal</title>
<updated>2026-05-27T14:04:17+00:00</updated>
<author>
<name>Oleksandr Kuchmystyi</name>
<email>o.kuchmystyi@vyos.io</email>
</author>
<published>2026-05-27T13:31:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=3b22850f4fe4163fea73f907ba8fe72777ba8d80'/>
<id>urn:sha1:3b22850f4fe4163fea73f907ba8fe72777ba8d80</id>
<content type='text'>
When setting 'vpn ipsec logging log-level 0', DPD informational
messages (log level 1) were still appearing in the system journal.

The root cause is that charon-systemd reads both `charon-systemd.conf`
and `charon-logging.conf` and applies the higher of the two log levels
to the journal. The VyOS only managed `charon-systemd.conf`, leaving
`charon-logging.conf` at its default level of 1, which silently overrode
the user-configured level.

Fix this by rendering `charon-logging.conf` on every commit with
syslog backend set to -1 (silent), making `charon-systemd.conf`
the sole authoritative source for journal log verbosity.

This also eliminates duplicate log entries in the journal that occurred
when both backends were active and writing to the same destination.
</content>
</entry>
<entry>
<title>ipsec: T7555: Implement `ikev2-reauth` for site-to-site peers</title>
<updated>2026-05-20T09:22:21+00:00</updated>
<author>
<name>Oleksandr Kuchmystyi</name>
<email>o.kuchmystyi@vyos.io</email>
</author>
<published>2026-05-14T09:42:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=b6d24956bd4c7a5e4cb89c0b4331264a96667184'/>
<id>urn:sha1:b6d24956bd4c7a5e4cb89c0b4331264a96667184</id>
<content type='text'>
IKEv2 reauthentication was configurable via CLI but never translated
into `swanctl.conf`. Add `reauth_time` to the peer connection template,
driven by the `ikev2-reauth` flag on the ike-group and the per-peer
override (yes/no/inherit).
</content>
</entry>
<entry>
<title>T8410: Fix typos and mistakes for comments and messages</title>
<updated>2026-03-27T15:00:17+00:00</updated>
<author>
<name>Viacheslav Hletenko</name>
<email>v.gletenko@vyos.io</email>
</author>
<published>2026-03-27T14:43:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=139b0841f8242a5c6ebdafb37380c1fb78342aae'/>
<id>urn:sha1:139b0841f8242a5c6ebdafb37380c1fb78342aae</id>
<content type='text'>
Fix typos and mistakes
No functional changes
</content>
</entry>
<entry>
<title>T8386: fix locat_ts rendering in remote_access.j2</title>
<updated>2026-03-17T07:02:03+00:00</updated>
<author>
<name>Alex Kudentsov</name>
<email>43482574+alexk37@users.noreply.github.com</email>
</author>
<published>2026-03-16T04:06:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=8714825922af321942975d231e6065fb752abb1d'/>
<id>urn:sha1:8714825922af321942975d231e6065fb752abb1d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>T8136: IPSEC PPK Support</title>
<updated>2026-03-04T04:48:18+00:00</updated>
<author>
<name>Giga Murphy</name>
<email>giga1699@gmail.com</email>
</author>
<published>2026-01-02T01:04:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=673ec335b885ae1de8391dd8c48a5fe16b282db5'/>
<id>urn:sha1:673ec335b885ae1de8391dd8c48a5fe16b282db5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>ipsec: T7594: Rename `respond` connection-type in IPSec peer settings to `trap`</title>
<updated>2025-12-04T15:03:54+00:00</updated>
<author>
<name>Oleksandr Kuchmystyi</name>
<email>o.kuchmystyi@vyos.io</email>
</author>
<published>2025-11-28T14:52:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=2dc91c0a96c3d3212387be02b80c58fce7c68bd8'/>
<id>urn:sha1:2dc91c0a96c3d3212387be02b80c58fce7c68bd8</id>
<content type='text'>
The previous 'connection-type respond' option in IPsec site-to-site peers
was misleading - instead of passively waiting for peer initiation, it would
initiate negotiation when matching traffic appeared, potentially causing
SA duplication and renegotiation loops.
</content>
</entry>
<entry>
<title>T8027: vpn: adding config for swanctl "send-cert always"</title>
<updated>2025-11-22T02:22:43+00:00</updated>
<author>
<name>Chris Cowart</name>
<email>ccowart@timesinks.net</email>
</author>
<published>2025-11-16T06:39:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=090c4afe8dce25f772c24fc9bb6e3b96d23fcc2b'/>
<id>urn:sha1:090c4afe8dce25f772c24fc9bb6e3b96d23fcc2b</id>
<content type='text'>
This setting seems to be required for various Apple clients to
connect to the IKEv2 IPSec VPN.
</content>
</entry>
</feed>
