Purpose
This document provides setup instructions for securely connecting to DvSum SaaS services using Site-to-Site VPN (IPSec IKEv2), enabling fully private network access to:
- REST APIs (apis.dvsum.ai)
- WebSocket Services (socket-api.dvsum.ai)
- File Storage Service (s3-storage.dvsum.ai)
All traffic travels through an encrypted IPSec tunnel from your environment to the DvSum SaaS platform over private networking.
Scope. This connection carries traffic from the DvSum Gateway running in your network to the DvSum service backend (APIs, WebSocket, file storage). Accessing the DvSum web application in a browser is separate and continues to use your normal internet access.
No certificate changes on your side. DvSum service endpoints present publicly trusted TLS certificates. You do not need to install a DvSum private CA or make any trust-store changes.
Architecture
Key components
- Your environment — your network with VPN device/firewall and the DvSum gateway agent.
- IPSec tunnel — encrypted site-to-site VPN over the public internet (IKEv2 / AES-256).
- DvSum SaaS — production platform serving APIs, WebSocket, and file storage.
Service Architecture Details
DvSum exposes three services over the private connectivity path. All three are accessed over HTTPS port 443 and routed through the same IPSec tunnel.
| Service | Domain | Purpose | Protocol | Port |
| REST APIs | apis.dvsum.ai | Standard API communication | HTTPS | 443 |
| WebSocket | socket-api.dvsum.ai | Real-time WebSocket communication | WSS | 443 |
| File Storage | s3-storage.dvsum.ai | Pre-signed URL handling for file transfer | HTTPS | 443 |
Important. All three domains resolve private IP addresses inside the DvSum network when accessed over the VPN tunnel. These private IPs are only reachable through the tunnel — they are not accessible from the public internet. DvSum will provide specific private IPs for each domain after the VPN connection is established.
Information DvSum Requires from You
To configure the VPN connection on the DvSum side, please provide the following to your DvSum representative before any setup begins.
1. VPN configuration
Parameter | Description | Example / Default |
| VPN routing mode | Static routing (simpler) or BGP dynamic routing | Static |
| BGP ASN | Your network's BGP Autonomous System Number (only if using BGP) | 65000 |
| Customer network CIDR | The IP range of your internal network from which the gateway agent makes requests | 192.168.0.0/16 |
| VPN device vendor | Manufacturer of your firewall or VPN device | Cisco / Fortinet / Palo Alto / Other |
| VPN device platform | Product line or model family of your device | ASA / FTD / FortiGate-VM / etc. |
| VPN device software version | Firmware or software version on the device | 9.x / 7.x / etc. |
2. Network details
Parameter | Description |
| Static public IP of VPN device | The fixed public IP address of your VPN device — the tunnel endpoint on your side. A static IP is strongly recommended (see note). |
| Machine IP running DvSum gateway agent | The IP of the machine running the DvSum gateway agent inside your network. DvSum uses this to validate the source of gateway traffic and to assist with troubleshooting; it is informational and does not need to be routable from DvSum. |
Why a static IP is recommended. Your public IP is registered on the DvSum Customer Gateway, and a static IP keeps the tunnel stable. If your device only has a dynamic public IP, contact your DvSum solutions engineer — dynamic-IP customer gateways can be supported with additional configuration.
Information DvSum Provides to You
Once DvSum has registered your Customer Gateway and created the VPN connection, the following will be provided.
1. VPN configuration file
DvSum will provide a VPN configuration file generated by AWS for your specific connection. Below is the structure — actual values are specific to your connection.
IPSec Tunnel #2 — same structure as Tunnel 1, with different outside IPs and PSK.
2. IKE version requirement
Parameter | DvSum requirement |
| IKE version | IKEv2 |
| NAT traversal (NAT-T) | Enabled — UDP port 4500 must be open inbound and outbound on your firewall |
| DPD (Dead Peer Detection) | Enabled on DvSum side — recommend enabling on your device with interval 10s, retries 3 |
3. Private IPs of DvSum service endpoints
After the VPN connection is established, DvSum provides private IP addresses for the three service endpoints. These must be configured in your DNS or hosts file, so the gateway agent resolves the DvSum domains to private IPs.
Service | Domain | Private IP |
| REST APIs | apis.dvsum.ai | <provided by DvSum> |
| WebSocket | socket-api.dvsum.ai | <provided by DvSum> |
| File Storage | s3-storage.dvsum.ai | <provided by DvSum> |
4. DNS resolver configuration
Required if you are using Approach B (internal DNS forwarding) to resolve DvSum domains automatically across your network.
Parameter | Description | Value |
| Resolver Inbound IP 1 | Primary DNS resolver IP inside DvSum — forward. *.dvsum.ai queries here | <provided by DvSum> |
| Resolver Inbound IP 2 | Secondary DNS resolver IP (second availability zone — for redundancy) | <provided by DvSum> |
| Resolver port | Port to forward DNS queries to | 53 (UDP and TCP) |
| Forwarding domain | The domain scope — covers all three service domains | dvsum.ai |
Firewall and Network Requirements
The following ports and protocols must be permitted on your perimeter firewall for the VPN tunnel to establish and carry traffic.
Outbound rules (Customer machine → DvSum)
Protocol | Port | Destination | Purpose |
| UDP | 500 | DvSum VGW IPs (from config file) | IKE Phase 1 — key negotiation |
| UDP | 4500 | DvSum VGW IPs (from config file) | IPSec NAT traversal — tunnel data |
| DNS (UDP/TCP) | 53 | DvSum resolver IPs | Forward *.dvsum.ai queries to resolver |
Note on data source access: the rules above are for VPN establishment and DNS toward DvSum. The gateway agent machine also needs outbound access to your internal data sources. If your firewall allows all outbound by default, no additional rules are needed; if restrictive, permit the agent machine to reach your data sources on the relevant ports.
Inbound rules (DvSum → Customer machine)
Protocol | Port | Source | Purpose |
| UDP | 500 | DvSum VGW IPs (from config file) | IKE responses |
| UDP | 4500 | DvSum VGW IPs (from config file) | IPSec NAT traversal return |
| ESP (IP proto 50) | N/A | DvSum VGW IPs | IPSec return traffic (only if NAT-T disabled) |
DvSum tunnel endpoint (VGW) public IPs. The two VGW public IPs (one per tunnel) are in the VPN configuration file. DvSum always provisions two tunnels — allowing both IPs for redundancy. In NAT-T mode (most common) all tunnel data uses UDP 4500; ESP protocol 50 is only needed if NAT-T is disabled.
Step-by-Step Setup Instructions
Steps 1–2 are completed by DvSum. Steps 3 onward are completed by your network team.
| Step 1 | DvSum creates VPN infrastructure (no customer action) DvSum registers your Customer Gateway using your static public IP and BGP ASN, creates the Site-to-Site VPN connection with two tunnels, prepares the VPN configuration file (shared via secure channel), and configures private endpoint routing on its side. |
| Step 2 | Receive VPN configuration file from DvSum Receive the file via a secure channel. Note: Tunnel 1 & 2 VGW outside IPs, both pre-shared keys (shared separately), and the inside IP addresses (169.254.x.x — for BGP mode). |
| Step 3 | Configure your VPN device Using the config-file values, configure both tunnels (one primary, one standby). Use the IKE parameters as specified. Set MTU/MSS per config file. Enable DPD (interval 10s, 3 entries). |
Key parameters to configure on your device
Parameter | Value | Notes |
| IKE version | IKEv2 | Mandatory — do not use IKEv1 |
| Authentication | Pre-Shared Key (PSK) | PSK provided separately by DvSum |
| IKE encryption | AES-256-CBC | Phase 1 |
| IKE integrity | SHA-256 | Phase 1 |
| IKE DH group | Group 14 (modp2048) | DvSum requires DH Group 14 |
| IPSec encryption | AES-256-CBC | Phase 2 / ESP |
| IPSec integrity | HMAC-SHA-256 | Phase 2 / ESP |
| IPSec PFS | DH Group 14 | Perfect Forward Secrecy |
| Tunnel MTU / TCP MSS | Use the value in your config file; if absent, set MTU 1446 / MSS 1406 | Set on the tunnel interface |
| DPD | Interval 10s · 3 retries | Dead Peer Detection |
| Static route | DvSum services prefix → tunnel interface | Prefix provided by DvSum (see Routing) |
| Step 4 | Configure DNS — resolve DvSum domains to private IPs Once DvSum provides the private IPs, configure DNS so the gateway agent resolves DvSum domains to private IPs (not public). Choose Approach A or B below. |
| Step 5 | Verify tunnel is established Confirm IKE Phase 1 and Phase 2 complete on your device. Notify your DvSum solutions engineer to confirm tunnel status. Both tunnels should show established for full redundancy. |
| Step 6 | Test connectivity Run the tests in the Connectivity Testing section and share the results with your DvSum solutions engineer. |
DNS Configuration
Approach A — Linux /etc/hosts (single machine, simplest)
If the gateway agent runs on a single Linux machine, add the following to /etc/hosts. Replace the IPs with the actual values provided by DvSum.
# DvSum Service Endpoint Private IPs (example - actual IPs will differ)
<ip-provided-by-dvsum> apis.dvsum.ai
<ip-provided-by-dvsum> s3-storage.dvsum.ai
<ip-provided-by-dvsum> socket-api.dvsum.ai
Approach B — Internal DNS forwarding (multiple machines, recommended for production)
Configure your internal DNS server to forward queries for *.dvsum.ai to the DvSum DNS Resolver IPs provided during setup. This automatically resolves the domains to private IPs for every machine in your network.
- Forwarding rule: DNS queries for *.dvsum.ai → forward to DvSum Resolver IPs
- The resolver returns the private IP of the corresponding service endpoint
- All machines benefit automatically — no per-machine configuration
Routing Configuration
Static routing mode
Route to add on your device | Next hop | Purpose |
| DvSum services prefix (provided by DvSum) | VPN tunnel interface | Route DvSum-bound traffic through the tunnel |
Destination prefix & overlap. DvSum provides the exact destination prefix during onboarding, scoped to the smallest range that covers the three service endpoints (typically a /24) and confirmed not to overlap with your internal network. Use the prefix in your configuration file — do not assume a fixed range. Example only (your actual prefix will be in the config file): 10.x.x.0/24. DvSum configures a corresponding static route back to the network CIDR you provided.
BGP routing mode
If using BGP, configure a BGP session with the VGW inside IP addresses from the config file. Advertise your internal network CIDR; DvSum advertises the DvSum services prefix back to you dynamically.
BGP parameter | Value |
| DvSum VGW ASN | 64512 (Amazon default) |
| Your ASN | As provided to DvSum (default 65000) |
| BGP peer IP — tunnel 1 | VGW inside IP from config file (169.254.x.x) |
| BGP peer IP — tunnel 2 | VGW inside IP from config file (169.254.x.x) |
| Advertise from your side | Your internal network CIDR |
| Receive from DvSum side | DvSum services prefix (provided by DvSum) |
Connectivity Testing
Run all tests from the machine running the DvSum gateway agent. The tunnel must be established and DNS configured first.
1. DNS verification
getent hosts apis.dvsum.ai
# Expected: a private IP (e.g. 10.x.x.x) - not a public address
getent hosts s3-storage.dvsum.ai
getent hosts socket-api.dvsum.ai
On Windows (PowerShell): Resolve-DnsName apis.dvsum.ai — IPAddress should be a private address.2. TCP connectivity
nc -zv <apis-private-ip> 443 # Expected: succeeded!
nc -zv <s3-private-ip> 443 # Expected: succeeded!
nc -zv <socket-private-ip> 443 # Expected: succeeded!
On Windows: Test-NetConnection -ComputerName <private-ip> -Port 443 → TcpTestSucceeded : True3. TLS certificate validation
openssl s_client -connect apis.dvsum.ai:443 -servername apis.dvsum.ai </dev/null 2>&1 | grep -E "subject|Verify return"
# Expected: Verify return code: 0 (ok)
# Note: the certificate subject may be CN=*.dvsum.ai (wildcard) - this is correct.
# Use "Verify return code: 0 (ok)" as the pass criterion, not the CN value.4. HTTPS health checks
curl -s https://apis.dvsum.ai/health-check
# Expected: HTTP 200, body {"status":"OK"}
curl -s https://s3-storage.dvsum.ai/health-check # Expected: {"status":"OK"}
curl -s https://socket-api.dvsum.ai/health-check # Expected: {"status":"OK"}5. WebSocket connectivity
wscat -c wss://socket-api.dvsum.ai/socket
# Expected: error: Unexpected server response: 403
# 403 = reached the server successfully (a valid session token is required for full auth)
# timeout / connection refused = network issue - check tunnel and DNS first6. Full verification (Linux)
echo "=== DNS ===" && \
getent hosts apis.dvsum.ai && \
getent hosts s3-storage.dvsum.ai && \
getent hosts socket-api.dvsum.ai && \
echo "=== TCP ===" && \
nc -zv apis.dvsum.ai 443 && \
nc -zv s3-storage.dvsum.ai 443 && \
nc -zv socket-api.dvsum.ai 443 && \
echo "=== HEALTH ===" && \
curl -s https://apis.dvsum.ai/health-check && echo && \
curl -s https://s3-storage.dvsum.ai/health-check && echo && \
curl -s https://socket-api.dvsum.ai/health-check && echo && \
echo "=== ALL PASSED ==="7. Expected results summary
Test | Expected result | If failing |
| DNS — all three domains | Returns a private IP (e.g. 10.x.x.x) | Check /etc/hosts or DNS forwarding config |
| TCP — all three endpoints | Connection succeeded | Check tunnel is up and route to the DvSum prefix |
| TLS — all domains | Verify return code: 0 (ok) | DNS returning public IP — fix DNS first |
| HTTPS — REST / File Storage | HTTP 200 | Tunnel or DNS issue — run TCP test first |
| WebSocket health-check | HTTP 200 | Tunnel or DNS issue — run TCP test first |
| WebSocket upgrade (wss://) | 403 (reached server) | Timeout = network issue, not an auth issue |
Troubleshooting
Symptom | Likely cause | Fix |
| IKE Phase 1 fails — no response | UDP 500/4500 blocked on firewall | Allow UDP 500 and 4500 outbound to DvSum VGW IPs |
| AUTHENTICATION_FAILED | Wrong PSK or wrong IKE identity | Verify PSK; confirm local identity is your static public IP |
| Tunnel up but traffic not flowing | Missing route to the DvSum prefix | Add static route: DvSum services prefix → tunnel interface |
| DNS returns public IP | /etc/hosts not set or forwarding not configured | Add /etc/hosts entries or configure forwarding for *.dvsum.ai |
| nc -zv times out | Tunnel down, wrong private IP, or routing issue | Verify tunnel is up; confirm private IP with DvSum |
| curl returns TLS certificate error | DNS returning public IP — wrong server | Fix DNS — verify getent hosts returns the private IP |
| curl times out (DNS correct) | Tunnel down or route missing | Check tunnel status and route table |
| WebSocket returns timeout (not 403) | Network path not working | Run TCP test first — fix tunnel/DNS before WebSocket |
Glossary
Term | Meaning |
| IPSec | IP Security — the protocol suite encrypting traffic in the tunnel. |
| IKEv2 | Internet Key Exchange v2 — negotiates and maintains the tunnel's security associations. |
| PSK | Pre-Shared Key — the secret used to authenticate the tunnel; provided by DvSum via a secure channel. |
| ESP | Encapsulating Security Payload — the IPSec protocol (IP protocol 50) that carries encrypted data. |
| NAT-T | NAT Traversal — wraps IPSec in UDP 4500 so the tunnel works through NAT devices. |
| DPD | Dead Peer Detection — detects a failed tunnel peer so traffic can fail over. |
| PFS | Perfect Forward Secrecy — fresh keys per session so a compromised key can't decrypt past traffic. |
| CGW | Customer Gateway — the DvSum-side configuration object that represents your VPN device (your public IP and ASN). |
| VGW | Virtual Private Gateway — the DvSum-side tunnel endpoint; its public IPs are in your config file. |
| BGP / ASN | Border Gateway Protocol / Autonomous System Number — used for dynamic routing if you choose BGP mode. |
| MTU / MSS | Maximum Transmission Unit / Maximum Segment Size — packet-size settings on the tunnel interface. |
0 Comments