# IPv6 Client Pool (virtual network) per server

**URL:** <https://forum.pritunl.com/t/ipv6-client-pool-virtual-network-per-server/857>\
**Category:** Pritunl VPN\
**Created:** [March 14, 2023, 9:14pm UTC](https://forum.pritunl.com/t/ipv6-client-pool-virtual-network-per-server/857 "2023-03-14T21:14:28Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![klaus3000](https://forum.pritunl.com/letter_avatar_proxy/v4/letter/k/8e8cbc/32.png) [@klaus3000](https://forum.pritunl.com/u/klaus3000)\
**Post date:** [March 14, 2023, 9:14pm UTC](https://forum.pritunl.com/t/ipv6-client-pool-virtual-network-per-server/857/1 "2023-03-14T21:14:28Z")

</div>

Hello! AFAIS the IPv6 client pool is not configurable, but always in the range fd00:… I dumped the mongodb and did not find any config options with this string, which lead me to the conclusion that the IPv6 client pool virtual network is derived from the IPv4 client pool virtual network.

I also read, that with the Premium subscription the “host” can be configured to use a Routed IPv6 Subnet, which, if configured, will be used as client pool.

In our company, we currently have VPN client pools per department. When connected to the VPN, every department has a defined IPv4 range (RFC1918) and a defined IPv6 range (public/global addresses). These networks are used in our firewall to grant access. Currently we use this setup with plain OpenVPN.

I wanted to replace that setup with Pritunl. For every department I configured a “server”, and the IPv4 client range (without NAT). That works fine. I also would like to keep the current IPv6 client ranges for every department. So I would like to configure the IPv6 pool per server, just as I configured the IPv4 pool. Is this somehow possible?

---

<div class="post-metadata">

**Author:** ![zach](https://forum.pritunl.com/user_avatar/forum.pritunl.com/zach/32/1105_2.png) [@zach](https://forum.pritunl.com/u/zach)\
**Post date:** [March 16, 2023, 5:57pm UTC](https://forum.pritunl.com/t/ipv6-client-pool-virtual-network-per-server/857/2 "2023-03-16T17:57:30Z")

</div>

With an enterprise subscription the Routed IPv6 Subnet and Routed WG IPv6 Subnet option is shown in the host settings. This will change the first /64 segment of the client IP addresses to the routed subnet. Additionally proxy NDP can be enabled if required.

---

<div class="post-metadata">

**Author:** ![klaus3000](https://forum.pritunl.com/letter_avatar_proxy/v4/letter/k/8e8cbc/32.png) [@klaus3000](https://forum.pritunl.com/u/klaus3000)\
**Post date:** [March 16, 2023, 7:34pm UTC](https://forum.pritunl.com/t/ipv6-client-pool-virtual-network-per-server/857/3 "2023-03-16T19:34:05Z")

</div>

But as far as I understand this is a “host” option. So every server (meaning every department) will have to use the same IPv6 client pool. This is something I want to avoid.

---

<div class="post-metadata">

**Author:** ![zach](https://forum.pritunl.com/user_avatar/forum.pritunl.com/zach/32/1105_2.png) [@zach](https://forum.pritunl.com/u/zach)\
**Post date:** [March 18, 2023, 11:08pm UTC](https://forum.pritunl.com/t/ipv6-client-pool-virtual-network-per-server/857/4 "2023-03-18T23:08:43Z")

</div>

The `ip4to6x96` function in [**pritunl/utils/network.py**](https://github.com/pritunl/pritunl/blob/master/pritunl/utils/network.py#L346) is used to convert the server IPv4 network into a `/96` subnet and convert the users IPv4 address to an IPv6 address. Each server virtual network will have a unique `/96` subnet.

---

<div class="post-metadata">

**Author:** ![klaus3000](https://forum.pritunl.com/letter_avatar_proxy/v4/letter/k/8e8cbc/32.png) [@klaus3000](https://forum.pritunl.com/u/klaus3000)\
**Post date:** [March 20, 2023, 9:18pm UTC](https://forum.pritunl.com/t/ipv6-client-pool-virtual-network-per-server/857/5 "2023-03-20T21:18:00Z")

</div>

Ah, that’s a nice trick. Not what I was looking for, but I can work with that. Thanks
