VPN Management
For HSCN-specific VPN operations, see UK HSCN → VPN Operations.
Always work from non-production first
Run all playbooks against non-production environments first to verify correctness before touching prod. Use limits to run against one host at a time.
Overview
Most VPN operations are performed from your AWS Workspace against the relevant Ansible Tower instance (tower.us.raas.rhapsody.global or tower.uk.raas.rhapsody.global).
The processes below are designed to minimise Rhapsody downtime. All changes can be achieved by updating the RaaS stacks and terminating the RaaS node to let the bootstrap scripts reconfigure the VPN.
Before You Start — Review the VPN Form
Verify information provided by the client:
- "Public IP of termination device" and "subnet" are the two required pieces for building the tunnel
- AWS supports all common DH groups and encryption algorithms
- Phase 1 lifetime must be between 900 and 28,800 seconds (AWS defaults to 28,800)
- Phase 2 lifetime must be between 900 and 3,600 seconds, and cannot be greater than Phase 1
- When providing our subnet, enter a single subnet that includes the IPs of the customer instances in their config file — multiple subnets/IPs cause tunnel instability
Change Virtual IP of Rhapsody Node
- Update the
vpn_ipin the customer config indeploy-raas: - SCM Update — click Sync on the project in Ansible Tower
- Deploy Rhapsody — set
deploy_stack: falseto create a changeset first - Review and execute the CloudFormation changeset in AWS console
- Rhapsody - Update DNS and inventory
- Rhapsody - Configure Alias Interface (standard RaaS stack) to update the virtual IP
- MAINTENANCE - Service State → stop
strongswan - Rhapsody - Configure Strongswan to update NAT rules
- View Strongswan Configuration to verify the VIP, NAT rules, and routes
- If NAT rules are not updated: run ad-hoc command
strongswan restartand recheck
Add a New VPN / Modify an Existing VPN
- Update the
participantssection in the customer config: - SCM Update on the
deploy-raasproject - Deploy Rhapsody — create a changeset, review in CloudFormation, execute
- Verify the VPN static route in AWS console: VPC → Site-to-site VPN → Static routes
- Rhapsody - Update DNS and inventory
- Rhapsody - Configure Strongswan to update NAT rules and VPN routes
- MAINTENANCE - Service State → restart
strongswan - View Strongswan Configuration to verify
- Enable CloudWatch logging on the new VPN tunnels:
- Create a log group:
<customer_code>-<VPN_name>-vpn-logsin CloudWatch - Modify each VPN tunnel option → enable Tunnel activity log → select the log group
- Send customer the VPN endpoint IP and PSK using the VPN Site Questionnaire template
Add Additional Routes via VPN
- Update
cidr_blocksin the participants config to add the new subnet(s) - SCM Update → Deploy Rhapsody (changeset) → verify CloudFormation → execute
- Verify static routes in AWS console
- Rhapsody - Update DNS and inventory
- Rhapsody - Configure Strongswan
- Restart strongswan via MAINTENANCE - Service State
- View Strongswan Configuration to confirm new routes
Update IP Whitelist Rules via VPN
- Add
remote_vpn_aclentries to the participant block: - Rhapsody - Update DNS and inventory
- Rhapsody - Configure Strongswan to apply whitelist rules
- Verify:
iptables -t filter -L -nto confirm rules applied