Skip to content

Feature Request: Support multiple IP pools and per‑CCD pool assignment #960

@zasim87

Description

@zasim87

Feature Request: per‑CCD subnet support
Summary
OpenVPN currently allows defining static IP addresses and iroute directives in CCD files, but it does not support assigning a dedicated subnet to a specific client. This limits deployments where a client represents a remote network or needs multiple internal addresses behind a single tunnel.

Problem
In many real‑world setups, a client is not a single host but a gateway for multiple services or devices. Today, OpenVPN requires manual routing workarounds or external orchestration to handle such cases. CCD cannot define a subnet for a client; it can only reference an existing subnet behind the client via iroute.

Requested Enhancement
Add support for defining a unique subnet per client inside its CCD file. Expected behavior:

Allow specifying a subnet (e.g., subnet 10.8.10.0 255.255.255.0) in CCD

Server automatically allocates and manages that subnet

Server advertises routes to other clients and upstream routers

Detect and prevent overlapping subnets

Maintain backward compatibility with existing CCD functionality

Use Cases
Remote branch offices with multiple internal hosts

IoT gateways with several devices behind a single tunnel

Multi‑service clients requiring isolated address space

Scenarios where each client must have its own routed segment

Why this matters
This feature would simplify network design, reduce manual routing configuration, and make OpenVPN more suitable for modern multi‑device and multi‑service deployments.

Environment
OpenVPN 2.x server

Linux-based deployments

CCD enabled via client-config-dir

Additional Notes
There are several forum discussions where users attempt similar setups, but the current architecture does not support per‑client subnet allocation. This feature would fill a long‑standing gap.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions