Я хотел бы, чтобы клиенты пытались повторно подключиться на неопределенный срок, если сервер не работает, поэтому, когда он возвращается, клиент просто повторно подключается.
Клиент ipsec.conf
conn %default
ike=aes256gcm16-sha384-modp3072!
esp=aes256gcm16-sha384-modp3072!
conn ikev2
auto=start
leftid=client@my-vpn.com
leftsourceip=%config
leftauth=eap-tls
leftcert=vpn-client.crt
right=my-vpn.com
rightid=my-vpn.com
rightsubnet=0.0.0.0/0
rightauth=pubkey
Обычно вы используете политики прерывания, поэтому трафик, соответствующий политикам IPsec, установленным в ядре, автоматически запускает согласование IKE и IPsec SA. Они также препятствуют тому, чтобы любой совпадающий трафик оставил хост незашифрованным. Однако, чтобы это работало с виртуальными IP (leftsourceip
) для этого требуется относительно последняя версия strongSwan (5.6.3 или новее, если быть точным).
Поэтому с более новыми выпусками или в сценариях, которые не используют виртуальные IP-адреса, просто настройте auto=route
. И не устанавливайте никаких параметров, упомянутых ниже (или устанавливайте их на clear
, keyingtries
может быть установлен в 1).
При использовании виртуальных IP-адресов в более ранней версии вы можете настроить dpdaction=restart
, closeaction=restart
и keyingtries=%forever
(вместе с auto=start
) для воссоздания SA, если они прерываются одноранговым узлом или из-за сетевых проблем (при этом незашифрованный трафик может покинуть хост, если вы не предотвратите это через брандмауэр). Как упоминалось выше, вы не должны использовать эти параметры при использовании политик ловушек, поскольку это может вызвать дополнительные сопоставления безопасности IPsec (вызванные трафиком, попадающим в эти политики, в то время как сопоставления безопасности одновременно уже воссоздаются). Также обратите внимание, что есть некоторые фатальные ошибки (например, сбои аутентификации), которые в настоящее время не запускают воссоздание затронутой IKE SA, поэтому для этого может потребоваться сценарий, который иногда проверяет, существуют ли SA или устанавливаются (с использованием плагин уведомления об ошибках как триггер также может быть вариантом).