Overview

Prior to the April 28, 2025 hotfix release for versions 21.2.3, 22.1.3, and 22.1.4, if Versa services restarted four times within a 15-minute window, the system would attempt to trigger strongSwan. If strongSwan failed to fetch the staging configuration from the BRANCH-PRESTAGING snapshot and establish an IPsec connection with the Staging Controller (to retrieve branch connectivity from the Director using the staging IP address), the services would remain stopped.

However, starting with the April 28, 2025 hotfix or later, if strongSwan cannot establish connectivity to the Controller, the services will continue attempting to restart.

ⓘ Note — Bionic / OSSPACK Requirement
If the VOS node is running Bionic, OSSPACK installation is a must to ensure the required and updated libraries are in place for strongSwan to function correctly and to establish IPsec tunnels to the staging controllers.
⚠ GZTP Onboarding Required
The Branch must be onboarded using GZTP [Global-ZTP] to benefit from this feature (as of October 9, 2025).

Controller Alarm — /var/log/versa/alarms

On the controller where the Branch establishes an IPsec connection using strongSwan, check /var/log/versa/alarms for the maintenance mode alarm:

In Analytics and Director, the alarm key to look out for is branch-in-maintenance-mode, which will include the Staging IP address through which you can SSH to the VOS node.

ⓘ Open Bug
There is an open bug to update the Management IP of the appliance in maintenance mode, which will allow connecting to the VOS directly from the GUI.

Limitations

  1. If the branch is staged to a Hub-Controller and not to the Main controllers, the strongSwan mechanism will not work. The appliance will continue to restart.

  2. If all WAN IPs of VOS are DHCP, and there is a delay from the DHCP server to assign an IP when eth-0/X comes back on Linux, strongSwan may not kick in — but services will continue to try coming up.

  3. Director will show the updated Management IP of the Appliance [Using strongSwan] only from 22.1.4-20250701-Hotfix release. Until then, use the Controller alarms to get the Management IP of the node Branch in maintenance mode.

  4. If the Branch has a URL pattern match in its configuration, strongSwan may not kick in owing to a bug.

    ? Bug Report
    Bug ID#129672
    DescriptionURL Pattern match in Branch configuration causes strongSwan to fail to fetch the tunnel config context, preventing the strongSwan functionality from working.
    Fix Release~Aug 2025 Hotfix VOS Release (Tentative)
  5. The BRANCH-STAGING or BRANCH-PRESTAGING snapshot must be listed under show system snapshots. If neither is present, strongSwan will fail to initialize, causing Versa services to repeatedly attempt restarts.


How to Test This Feature in a Controlled Environment

The screenshots below are from a lab environment running:

Component Version
Director22.1.4-20250730
Controller22.1.4-20250627
Branch22.1.4-20250627
Branch OSSPACKversa-flexvnf-osspack-B-20250726.bin

Step 1 — Kill the versa-vsmd process 4 times within 15 minutes.

[admin@Branch: ~] $ sudo pkill -9 -f versa-vsmd
⚠ Important
Kill the vsmd process four times only after all services have come up/started. Forcefully killing it immediately after services come up is not a real-world scenario and can lead to improper behavior — strongSwan may not function correctly.

To verify all services are up, run: vsh status from the appliance shell.

Step 2 — On another terminal window, tail the versa-appstart.log to view running logs:

[admin@Branch] $ tail -f /var/log/versa/versa-appstart.log

Step 3 — Once strongSwan kicks in, on the controller you should see: “Branch BRANCH1 is connected in maintenance mode”. The Management IP and Chassis-ID appear one line above.

Step 4 — On the Branch (after SSH via Versa Director), run the following command to see the IPsec status over strongSwan:

Step 5 — Sample snippet of how a node in maintenance mode would look:

Step 6 — Note that external auth will not work since Versa services are down. You can log in using local credentials to perform maintenance and restore services.


Questions or concerns about this KB article?   Contact Support →