Scenario
You are operating an OPNsense edge with an IPsec site-to-site tunnel to a partner. The following symptoms appear:
- IPsec tunnel stays down; no Phase 2 SA established
- Remote peer becomes unreachable over the tunnel
- Firewall log shows UDP/500 and UDP/4500 traffic, but no ESP packets
Available evidence:
charon.log: received NO_PROPOSAL_CHOSEN notify errorswanctl --list-sas: emptyLocal Phase 1 proposal: aes256-sha256-modp2048; Remote proposal: aes128-sha1-modp1024
Your task
Determine the cause, recover, document, and validate.
Investigation
The investigation follows the discipline taught in Part XXIII:
- Form hypothesis, find evidence, test, validate.
- Use the available evidence above to bound the search.
- Reach one of the likely root causes.
Recovery procedure
(Do not reveal until you have reasoned through the problem.)
- Identify the failing component.
- Apply the remediation pathway.
- Validate with the verification step.
- Document the incident.
Remediation
- Identify the local and remote proposals from each side’s configuration. 2. Pick a proposal pair present on both sides. 3. Apply matching Phase 1 and Phase 2 entries. 4. Reload strongSwan with
swanctl --load-alland re-initiate.
Verification
swanctl --list-sas shows a CHILD_SA with SPIs; ping across the tunnel succeeds; charon.log shows “CHILD_SA installed”.
Rollback
Revert to the previously working proposal set on both sides.
Prevention
Document the proposal matrix on both peers. Default to modern algorithms (AES-GCM, SHA-256, DH group 14+). When bringing up a new peer, copy the local proposal verbatim into the remote and add it before negotiating.