DvSum Site-to-Site VPN Setup

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.

ServiceDomainPurposeProtocolPort
REST APIsapis.dvsum.aiStandard API communicationHTTPS443
WebSocketsocket-api.dvsum.aiReal-time WebSocket communicationWSS443
File Storages3-storage.dvsum.aiPre-signed URL handling for file transferHTTPS443

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 modeStatic routing (simpler) or BGP dynamic routingStatic
BGP ASNYour network's BGP Autonomous System Number (only if using BGP)65000
Customer network CIDRThe IP range of your internal network from which the gateway agent makes requests192.168.0.0/16
VPN device vendorManufacturer of your firewall or VPN deviceCisco / Fortinet / Palo Alto / Other
VPN device platformProduct line or model family of your deviceASA / FTD / FortiGate-VM / etc.
VPN device software versionFirmware or software version on the device9.x / 7.x / etc.

2. Network details

Parameter

Description

Static public IP of VPN deviceThe 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 agentThe 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 versionIKEv2
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 APIsapis.dvsum.ai<provided by DvSum>
WebSocketsocket-api.dvsum.ai<provided by DvSum>
File Storages3-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 1Primary DNS resolver IP inside DvSum — forward. *.dvsum.ai queries here<provided by DvSum>
Resolver Inbound IP 2Secondary DNS resolver IP (second availability zone — for redundancy)<provided by DvSum>
Resolver portPort to forward DNS queries to53 (UDP and TCP)
Forwarding domainThe domain scope — covers all three service domainsdvsum.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

UDP500DvSum VGW IPs (from config file)IKE Phase 1 — key negotiation
UDP4500DvSum VGW IPs (from config file)IPSec NAT traversal — tunnel data
DNS (UDP/TCP)53DvSum resolver IPsForward *.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

UDP500DvSum VGW IPs (from config file)IKE responses
UDP4500DvSum VGW IPs (from config file)IPSec NAT traversal return
ESP (IP proto 50)N/ADvSum VGW IPsIPSec 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 versionIKEv2Mandatory — do not use IKEv1
AuthenticationPre-Shared Key (PSK)PSK provided separately by DvSum
IKE encryptionAES-256-CBCPhase 1
IKE integritySHA-256Phase 1
IKE DH groupGroup 14 (modp2048)DvSum requires DH Group 14
IPSec encryptionAES-256-CBCPhase 2 / ESP
IPSec integrityHMAC-SHA-256Phase 2 / ESP
IPSec PFSDH Group 14Perfect Forward Secrecy
Tunnel MTU / TCP MSSUse the value in your config file; if absent, set MTU 1446 / MSS 1406Set on the tunnel interface
DPDInterval 10s · 3 retriesDead Peer Detection
Static routeDvSum services prefix → tunnel interfacePrefix 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 interfaceRoute 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 ASN64512 (Amazon default)
Your ASNAs provided to DvSum (default 65000)
BGP peer IP — tunnel 1VGW inside IP from config file (169.254.x.x)
BGP peer IP — tunnel 2VGW inside IP from config file (169.254.x.x)
Advertise from your sideYour internal network CIDR
Receive from DvSum sideDvSum 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 : True

3. 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 first

6. 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 domainsReturns a private IP (e.g. 10.x.x.x)Check /etc/hosts or DNS forwarding config
TCP — all three endpointsConnection succeededCheck tunnel is up and route to the DvSum prefix
TLS — all domainsVerify return code: 0 (ok)DNS returning public IP — fix DNS first
HTTPS — REST / File StorageHTTP 200Tunnel or DNS issue — run TCP test first
WebSocket health-checkHTTP 200Tunnel 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 responseUDP 500/4500 blocked on firewallAllow UDP 500 and 4500 outbound to DvSum VGW IPs
AUTHENTICATION_FAILEDWrong PSK or wrong IKE identityVerify PSK; confirm local identity is your static public IP
Tunnel up but traffic not flowingMissing route to the DvSum prefixAdd static route: DvSum services prefix → tunnel interface
DNS returns public IP/etc/hosts not set or forwarding not configuredAdd /etc/hosts entries or configure forwarding for *.dvsum.ai
nc -zv times outTunnel down, wrong private IP, or routing issueVerify tunnel is up; confirm private IP with DvSum
curl returns TLS certificate errorDNS returning public IP — wrong serverFix DNS — verify getent hosts returns the private IP
curl times out (DNS correct)Tunnel down or route missingCheck tunnel status and route table
WebSocket returns timeout (not 403)Network path not workingRun TCP test first — fix tunnel/DNS before WebSocket

Glossary

Term

Meaning

IPSecIP Security — the protocol suite encrypting traffic in the tunnel.
IKEv2Internet Key Exchange v2 — negotiates and maintains the tunnel's security associations.
PSKPre-Shared Key — the secret used to authenticate the tunnel; provided by DvSum via a secure channel.
ESPEncapsulating Security Payload — the IPSec protocol (IP protocol 50) that carries encrypted data.
NAT-TNAT Traversal — wraps IPSec in UDP 4500 so the tunnel works through NAT devices.
DPDDead Peer Detection — detects a failed tunnel peer so traffic can fail over.
PFSPerfect Forward Secrecy — fresh keys per session so a compromised key can't decrypt past traffic.
CGWCustomer Gateway — the DvSum-side configuration object that represents your VPN device (your public IP and ASN).
VGWVirtual Private Gateway — the DvSum-side tunnel endpoint; its public IPs are in your config file.
BGP / ASNBorder Gateway Protocol / Autonomous System Number — used for dynamic routing if you choose BGP mode.
MTU / MSSMaximum Transmission Unit / Maximum Segment Size — packet-size settings on the tunnel interface.
Have more questions? Submit a request

0 Comments

Please sign in to leave a comment.
Powered by Zendesk