Resources

VPN development resources

A technical knowledge hub from Southwest Network Corporation: how VPN products are structured, how each platform exposes VPN functionality, how routing policy is expressed, and where the official documentation lives.

Architecture

VPN product architecture: client, tunnel, control plane, gateway

The four responsibilities that any VPN product has to place somewhere. Separating them makes the effect of a change predictable.

Layer 01

Client Applications

Desktop, mobile, and router clients that authenticate, fetch configuration, present connection options, and report state.

Layer 02

Authentication & Account API

User, account, and session lifecycle, plus device and client-version registration.

Layer 03

Configuration & Resource Directory

Distribution of client configuration and metadata about available regions and resources, together with plan or subscription state integration.

Layer 04

Tunnel / Gateway Layer

The data-path layer the client connects to, integrated by region with health metadata and staged configuration rollout.

Layer 05

Observability & Operations

Connection state and error signals, service health metadata, diagnostics, and update or configuration rollout workflows.

Illustrative architecture · no live data

This is a conceptual VPN product architecture used to explain development scope. It does not disclose Rabbit Fast's internal architecture.

Platforms

Cross-platform VPN development

What each operating system provides, and what that means for the client work. Each row links to the vendor's own documentation.

Android

Android VpnService

Android exposes VpnService, which lets an application establish a virtual network interface, configure addresses and routes, receive outgoing IP packets, and inject received packets back into the networking stack. App-level allow and deny routing is configured through VpnService.Builder.

  • Virtual interface setup
  • Route configuration
  • VPN lifecycle & user consent
  • Per-app allow / deny
Official documentation

iOS & macOS

Network Extension

Apple platforms provide Personal VPN for the built-in IPsec/IKEv2 configurations and Packet Tunnel Provider for packet-oriented custom protocols. A packet tunnel provider works through a virtual interface and can set included and excluded routes, DNS, a virtual IP, and MTU, including per-app VPN contexts.

  • Packet Tunnel Provider
  • Personal VPN / IKEv2
  • Included & excluded routes
  • DNS, virtual IP, MTU
Official documentation

Windows

Routing policy & profiles

On Windows, an important design choice is split tunnel versus force tunnel. Routing policy decides which traffic uses the VPN interface and which stays on the physical interface, and profile configuration determines how that behaviour is applied.

  • Split vs force tunnel
  • Route policy in the profile
  • Client integration
  • Interface behaviour
Official documentation

Linux

Tunnel & service integration

Linux work covers tunnel and protocol integration alongside routing table and DNS handling, service lifecycle under the init system in use, and packaging for the distributions a project needs to target.

  • Tunnel / protocol integration
  • Routing & DNS handling
  • Service lifecycle
  • Packaging

Routers

Configuration-oriented integration

Router work is configuration-oriented rather than application-oriented, and depends on what the target firmware supports. It is scoped per project against the specific device and firmware requirements.

  • Firmware-dependent scope
  • Configuration templates
  • Gateway-side behaviour
  • Device coverage review

Routing

Routing policy in practice

Full tunnel, split tunnel, include and exclude rules, and per-app strategies where the platform supports them.

Routing decisionIllustrative · no live data
App / DeviceRoutingdecisionTunnel pathDirect pathDest.
Conceptual routing policy: eligible traffic is carried through the tunnel interface, other traffic remains on the physical interface.

Full tunnel

All eligible traffic is carried through the VPN interface. Simpler to reason about, and usually the default expectation for a consumer-facing connectivity product.

Split tunnel

Selected traffic is carried through the VPN interface while everything else stays on the physical interface. Requires a clear rule set and predictable behaviour when rules do not match.

Include / exclude rules

Route sets decide which destinations are inside the tunnel. Apple's packet tunnel configuration and Windows routing policy both express this as included and excluded routes.

Per-app & destination strategies

Where the operating system exposes it — for example app allow and deny lists on Android — routing can be scoped per application rather than per destination alone.

Protocols

Protocol integration overview

Common protocol families evaluated in VPN engineering projects, with their official documentation.

WireGuard

Option 01

A modern VPN tunnel protocol using Cryptokey Routing over UDP transport. Frequently considered where a compact, UDP-oriented tunnel suits the deployment.

wireguard.com

OpenVPN

Option 02

A mature open-source VPN platform and protocol family built on SSL/TLS, with flexible client/server deployment and both TCP and UDP tunnelling.

openvpn.net

IKEv2 / platform-native VPN

Option 03

Relevant where using the operating system's built-in VPN configuration is the right fit, for example Apple's Personal VPN path or managed profiles on Windows.

developer.apple.com

Existing or customer-supplied protocol

Option 04

An existing protocol or tunnel architecture supplied by the customer can be evaluated and integrated behind the client adapter layer. We do not claim to have authored a proprietary VPN protocol.

Protocol examples describe common VPN engineering options and do not state which protocol Rabbit Fast uses. Protocol selection depends on project requirements, target platforms, deployment environment, and maintenance constraints.

Notes

Development notes

Short original summaries of the platform and design topics above. No dates, authors, or release notes — these are reference notes, not a blog.

Android VPN development notes

Android exposes VPN functionality through VpnService. An application that holds the required permission can establish a virtual network interface, configure the addresses and routes assigned to it, and then read outgoing IP packets from that interface.

Those packets are what the application exchanges with a remote endpoint through whatever tunnel the product uses; packets received back are written into the interface so the platform networking stack delivers them to the original application.

VpnService.Builder is also where app-level routing is expressed: applications can be allowed or disallowed, which is how per-app routing behaviour is implemented on Android.

Apple VPN development notes

Apple platforms provide the Network Extension framework. Two paths matter for product work: Personal VPN, which configures the built-in IPsec/IKEv2 support, and Packet Tunnel Provider, which is used for packet-oriented custom protocols.

A packet tunnel provider works through a virtual interface whose settings the provider supplies: virtual IP, included and excluded routes, DNS configuration, and MTU. Those settings are the routing policy.

Per-app VPN contexts are also part of the framework, which makes app-scoped routing a configuration concern rather than something the tunnel itself has to infer.

Windows VPN routing

On Windows the central design decision is split tunnel versus force tunnel. In a force tunnel arrangement, traffic is directed through the VPN interface; in a split tunnel arrangement only the routes the profile defines go through it, and the rest stays on the physical interface.

Because this is expressed as routing policy and profile configuration, the same product can behave very differently depending on how routes are declared — which is why it is worth deciding explicitly rather than inheriting a default.

Split tunnel vs full tunnel

Full tunnel carries all eligible traffic through the VPN interface. It is simpler to reason about and easier to support, because there is one answer to the question of where traffic went.

Split tunnel carries only selected traffic and leaves the rest on the physical interface. It needs a clear rule set, a defined fallback when no rule matches, and consistent behaviour across platforms whose APIs express those rules differently.

Control plane vs data plane

The data plane is the tunnel itself: the path the packets take. The control plane is everything that decides what the client should do — authentication, account and device state, configuration delivery, the directory of available regions and resources, and plan state.

Keeping the two separate matters in product engineering. Control-plane changes such as adding a region or rolling out a configuration should not require a client release, and a client release should not require a control-plane migration.

Observability & release engineering

A connectivity product is judged by how it behaves when the network misbehaves. Connection state and error reporting, and diagnostics that a support conversation can actually use, are therefore product features rather than internal tooling.

On the delivery side, each platform has its own distribution path, so an automated build and release pipeline plus cross-platform compatibility testing is what keeps a multi-platform product shippable at the same time on every target.

Protocol examples describe common VPN engineering options and do not state which protocol Rabbit Fast uses. Protocol selection depends on project requirements, target platforms, deployment environment, and maintenance constraints.

Technical references

Official platform and protocol documentation

External documentation maintained by the respective platform and protocol projects. Summaries on this page are written independently.

Reference product

Rabbit Fast reference product

Rabbit Fast is a company-operated multi-platform VPN and connectivity product. Product downloads, plans, and 24/7 online customer support are handled on the product website; the corporate reference page covers what the product demonstrates from an engineering perspective.

Related