Direct egress
Explicit direct route
Direct path is explicit and guarded by policy. It is not an automatic fallback.
Routed VPN control plane
Assign each device an Internet egress and each private subnet a tunnel. VPN Hub applies the routes on Ubuntu 24.04 and blocks traffic when its selected egress is down.
Example device route
example revision Β· 4d7c2a01 / routing configuration
Declare devices, tunnels, and DNS rules in YAML. The agent applies that revision and detects differences between configuration and runtime state.
02 / entry and egress
Explicit direct route
Direct path is explicit and guarded by policy. It is not an automatic fallback.
Primary tunnel
One tunnel, one namespace, deterministic policy scope.
Client entry
Obfuscation settings are part of tunnel profile rotation.
Alternative transport
Per-tunnel namespace and explicit profile handling.
Provider compatibility
Kept for mixed provider environments.
03 / failure handling
A failed egress stays blocked. Changes that require confirmation roll back if the confirmation window expires.
04 / routing scenarios
Routing
Keep corp, private, and public traffic separate with per-tunnel DNS and namespace policy.
hubctl tunnel routes corp-private --add 203.0.113.0/24
Connectivity
Assign an egress to each employee device and change that assignment when needed.
hubctl device set-egress laptop corp-egress
Security
Expose private subnets only through approved tunnels with DNS pinning.
hubctl tunnel routes corp-private --add 192.0.2.0/24
Operations
Send selected application traffic through an assigned tunnel without changing whole host routing.
hubctl routes
Availability
Test canary candidates, then restore the last-known-good upstream if health fails.
hubctl subscription refresh corp-egress
Security
Reject unplanned client-to-client traffic by default and add explicit ACLs.
hubctl client-acl add phone laptop tcp/22
Reliability
Stop risky changes and restore previous revision through timer-based confirmation.
hubctl deploy --confirm-within 5m
Networking
Private names follow tunnel DNS policy, public names keep normal resolver behavior.
hubctl tunnel zones corp-net --add corp.example
Ops
Review dependent devices and change their egress before disabling a tunnel.
hubctl tunnel disable corp-egress
Lifecycle
Issue deterministic client profiles with revision-aware identifiers.
hubctl device add laptop --egress corp-egress --address 198.51.100.10/32
Configuration
Validate declared state, then re-apply controlled policy when runtime state diverges.
hubctl validate && hubctl deploy
Monitoring
Track health, drift, and unit status before applying production changes.
hubctl status --format yaml
05 / Telegram operations
The bot surfaces operational previews and confirmations, including guarded deploy flow and quick troubleshooting links.
06 / operation guides
Step-by-step guides for deployments, recovery, segmentation, and provider checks.
Safe apply path with operator confirmation timeout.
What to do when DNS, tunnel, or host state diverges.
Build isolated app and private subnet policies from one hub file.
Promotion flow for candidate upstream endpoints.
Validate the example configuration on a disposable Ubuntu host, then connect one device and verify its route.