summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorOleksandr Kuchmystyi <o.kuchmystyi@vyos.io>2026-05-14 12:42:44 +0300
committerOleksandr Kuchmystyi <o.kuchmystyi@vyos.io>2026-05-20 12:22:21 +0300
commitb6d24956bd4c7a5e4cb89c0b4331264a96667184 (patch)
tree21ee37fab6c99d6ab67c8000453337e6b546470f /src
parent51ab39e51bb925307c0f9ad1d905d450ceecc0f5 (diff)
downloadvyos-1x-b6d24956bd4c7a5e4cb89c0b4331264a96667184.tar.gz
vyos-1x-b6d24956bd4c7a5e4cb89c0b4331264a96667184.zip
ipsec: T7555: Implement `ikev2-reauth` for site-to-site peers
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).
Diffstat (limited to 'src')
-rwxr-xr-xsrc/conf_mode/vpn_ipsec.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/conf_mode/vpn_ipsec.py b/src/conf_mode/vpn_ipsec.py
index 53cf4ed36..35b00dada 100755
--- a/src/conf_mode/vpn_ipsec.py
+++ b/src/conf_mode/vpn_ipsec.py
@@ -710,6 +710,22 @@ def verify(ipsec):
f'Childless IKE SAs be used with IKEv2! Please configure IKEv2 key-exchange in ike-group "{ike}".'
)
+ # Get the referenced IKE group config
+ ike_group_name = peer_conf.get('ike_group')
+ ike_group = ipsec['ike_group'].get(ike_group_name, {})
+
+ # 'ikev2-reauth' only valid for IKEv2
+ peer_reauth = peer_conf.get('ikev2_reauth')
+ reauth_ike_group_configured = (
+ peer_reauth == 'inherit' and 'ikev2_reauth' in ike_group
+ )
+ if peer_reauth == 'yes' or reauth_ike_group_configured:
+ if ike_group.get('key_exchange') != 'ikev2':
+ raise ConfigError(
+ 'ikev2-reauth requires key-exchange ikev2 in IKE group! '
+ f'Please configure IKEv2 key-exchange in ike-group "{ike_group_name}".'
+ )
+
def cleanup_pki_files():
for path in [CERT_PATH, CA_PATH, CRL_PATH, KEY_PATH, PUBKEY_PATH]: