Skip to content

Commit 90c8aaa

Browse files
Point to Custom IPs dashboard UI; document automatic Split Tunnel inclusion
Two related fixes for initial resolved IPs now that the Networking > IP addresses > Address space > Custom IPs UI (stratus MR !41739) is live in production: - Swap the Zero Trust > Team & Resources > Devices > Device profiles UI instructions back to Networking > IP addresses > Address space > Custom IPs, with a Go button, in configure-initial-resolved-ips.mdx and the GA changelog. Re-add the dash-route entry for this deeplink to core-manually-defined.json. - Per WDAPI-4489, the Cloudflare One Client now automatically includes the default initial resolved IP range (172.64.128.0/20) in Split Tunnels Include mode, and automatically excludes it (along with the entire 2606:4700:0cf1::/48 IPv6 range, which also covers device IPs and Cloudflare source IPs on IPv6) from Exclude mode exclusions, at runtime on the device. This is not stored in the device profile and is not returned via the public API. Added a new 'Automatically managed ranges' section to split-tunnels.mdx as the canonical explanation, and updated reserved-ips.mdx, configure-initial-resolved-ips.mdx, and the Cloudflare Mesh routes.mdx / client-devices.mdx docs to stop instructing manual Split Tunnel configuration for these ranges. Custom (non-default) initial resolved IP ranges still require manual Split Tunnel configuration, since it is not confirmed whether the automatic behavior tracks a custom range.
1 parent dec2635 commit 90c8aaa

7 files changed

Lines changed: 48 additions & 22 deletions

File tree

src/content/changelog/tunnel/2026-08-11-hostname-routing-ga-public-initial-resolved-ips.mdx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ products:
1010
date: 2026-08-11
1111
---
1212

13-
import { Render, GlossaryTooltip } from "~/components";
13+
import { DashButton, Render, GlossaryTooltip } from "~/components";
1414

1515
[Hostname routing](https://blog.cloudflare.com/tunnel-hostname-routing/) is now generally available. Instead of managing static IP lists and routes, you can route traffic by hostname across multiple Cloudflare One connectors:
1616

@@ -30,8 +30,12 @@ Alongside GA, the default IPv4 range used for <GlossaryTooltip term="initial res
3030
- [Access private applications](/cloudflare-one/access-controls/applications/non-http/self-hosted-private-app/) on non-HTTPS ports
3131
- [Egress policy host selectors](/cloudflare-one/traffic-policies/egress-policies/host-selectors/) (Domain, Host, Application, and Content Categories)
3232

33-
You can check your account's current range, or configure a custom range, at any time from **Zero Trust** > **Team & Resources** > **Devices** > **Device profiles**, or using the [Initial Resolved IP Subnet API](/api/resources/zero_trust/subresources/networks/subresources/subnets/#(resource)%20zero_trust.networks.subnets.initial_resolved_ip).
33+
You can check your account's current range, or configure a custom range, at any time from **Networking** > **IP addresses** > **Address space** > **Custom IPs**, or using the [Initial Resolved IP Subnet API](/api/resources/zero_trust/subresources/networks/subresources/subnets/#(resource)%20zero_trust.networks.subnets.initial_resolved_ip).
34+
35+
<DashButton url="/?to=/:account/ip-addresses/address-space/custom-ips" />
3436

3537
For full instructions, refer to [Configure initial resolved IPs](/cloudflare-one/networks/routes/configure-initial-resolved-ips/). The IPv6 range (`2606:4700:0cf1:4000::/64`) is unchanged and is not affected by this restriction.
3638

39+
The default IPv4 range, and all Cloudflare One IPv6 ranges, are automatically routed through the Cloudflare One Client and do not require any Split Tunnel configuration. Refer to [Automatically managed ranges](/cloudflare-one/team-and-resources/devices/cloudflare-one-client/configure/route-traffic/split-tunnels/#automatically-managed-ranges) for details.
40+
3741
If you were relying on a Chrome Enterprise policy workaround (such as `LocalNetworkAccessRestrictionsTemporaryOptOut`) while your account was still on the legacy CGNAT-based range, refer to [Google Chrome restricts access to private hostnames](/cloudflare-one/networks/connectors/cloudflare-tunnel/private-net/cloudflared/connect-private-hostname/#google-chrome-restricts-access-to-private-hostnames) for next steps.

src/content/dash-routes/core-manually-defined.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,11 @@
99
"name": "Virtual networks",
1010
"parent": ["Networking", "Routes"]
1111
},
12+
{
13+
"deeplink": "/?to=/:account/ip-addresses/address-space/custom-ips",
14+
"name": "Custom IPs",
15+
"parent": ["Networking", "IP addresses", "Address space"]
16+
},
1217
{
1318
"deeplink": "/?to=/:account/data-catalog/overview",
1419
"name": "R2 Data Catalog",

src/content/docs/cloudflare-one/networks/connectors/cloudflare-mesh/client-devices.mdx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,10 @@ Depending on your Cloudflare networking configuration, you may need to remove ad
7272
In Include mode, add the following to your include list:
7373

7474
- `100.96.0.0/12` — Mesh IPs (device IPs)
75-
- `172.64.128.0/20` and `2606:4700:0cf1:4000::/64`[Hostname routing](/cloudflare-one/networks/connectors/cloudflare-mesh/routes/#hostname-routes) (if used; requires MASQUE)
7675
- Any CIDR routes you have [configured for your Mesh nodes](/cloudflare-one/networks/connectors/cloudflare-mesh/routes/)
7776

77+
The IPv4 range used for [hostname routing](/cloudflare-one/networks/connectors/cloudflare-mesh/routes/#hostname-routes) (`172.64.128.0/20`; requires MASQUE) and all Cloudflare One IPv6 ranges are [automatically routed through Cloudflare](/cloudflare-one/team-and-resources/devices/cloudflare-one-client/configure/route-traffic/split-tunnels/#automatically-managed-ranges) and do not need to be added manually.
78+
7879
## Firewall considerations
7980

8081
Some operating systems block inbound traffic from the Mesh IP range by default:

src/content/docs/cloudflare-one/networks/connectors/cloudflare-mesh/routes.mdx

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -228,13 +228,14 @@ For a deeper look at the packet flow behind hostname routing, refer to the [anno
228228

229229
<Render file="tunnel/enable-gateway-proxy" product="cloudflare-one" />
230230

231-
- **Route all of the following ranges through Cloudflare** in the [Split Tunnel](/cloudflare-one/team-and-resources/devices/cloudflare-one-client/configure/route-traffic/split-tunnels/) configuration of **both** the Mesh node's device profile **and** your client device profiles. In Include mode, add each range; in Exclude mode, ensure none of them (or their parent ranges) are excluded.
231+
- **Route the following IPv4 ranges through Cloudflare** in the [Split Tunnel](/cloudflare-one/team-and-resources/devices/cloudflare-one-client/configure/route-traffic/split-tunnels/) configuration of **both** the Mesh node's device profile **and** your client device profiles. In Include mode, add each range; in Exclude mode, ensure none of them (or their parent ranges) are excluded.
232232

233-
| Purpose | IPv4 | IPv6 |
234-
| --------------------------- | --------------- | -------------------------- |
235-
| Mesh device IP range | `100.96.0.0/12` | `2606:4700:cf1:1000::/64` |
236-
| Cloudflare source IP range | `100.64.0.0/12` | `2606:4700:cf1:5000::/64` |
237-
| Hostname routing (token IPs) | `172.64.128.0/20` | `2606:4700:0cf1:4000::/64` |
233+
| Purpose | IPv4 |
234+
| --------------------------- | --------------- |
235+
| Mesh device IP range | `100.96.0.0/12` |
236+
| Cloudflare source IP range | `100.64.0.0/12` |
237+
238+
The hostname routing (token IP) range (`172.64.128.0/20`) and all Cloudflare One IPv6 ranges are [automatically routed through Cloudflare](/cloudflare-one/team-and-resources/devices/cloudflare-one-client/configure/route-traffic/split-tunnels/#automatically-managed-ranges) and do not need to be added manually.
238239

239240
- **Remove the hostname's top-level domain from [Local Domain Fallback](/cloudflare-one/team-and-resources/devices/cloudflare-one-client/configure/route-traffic/local-domains/)** on client devices, so the DNS query is sent to Cloudflare Gateway for resolution.
240241

src/content/docs/cloudflare-one/networks/routes/configure-initial-resolved-ips.mdx

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ sidebar:
88
order: 4
99
---
1010

11-
import { CURL, Render, Tabs, TabItem, GlossaryTooltip } from "~/components";
11+
import { CURL, DashButton, Render, Tabs, TabItem, GlossaryTooltip } from "~/components";
1212

1313
<GlossaryTooltip term="initial resolved IP">Initial resolved IPs</GlossaryTooltip> (also called token IPs) are ephemeral addresses that Gateway assigns to DNS queries so it can associate hostname-based traffic with the correct policy or tunnel at the network layer, where hostname information is not usually available. Refer to [Gateway initial resolved IPs](/cloudflare-one/networks/routes/reserved-ips/#gateway-initial-resolved-ips) for a list of features that depend on this range.
1414

@@ -24,16 +24,18 @@ If you configure a custom IPv4 range within Carrier-Grade NAT (CGNAT) address sp
2424

2525
## Prerequisites
2626

27-
- You have the [Cloudflare One Networks Write](/fundamentals/api/reference/permissions/) permission (for API access), or dashboard access to **Zero Trust** > **Team & Resources** > **Devices** > **Device profiles**.
27+
- You have the [Cloudflare One Networks Write](/fundamentals/api/reference/permissions/) permission (for API access), or dashboard access to **Networking** > **IP addresses** > **Address space** > **Custom IPs**.
2828
- Your new range does not conflict with existing routes or other reserved [Cloudflare One subnets](/cloudflare-one/networks/routes/reserved-ips/) in your account.
2929

3030
## Check your current range
3131

3232
<Tabs syncKey="dashPlusAPI"> <TabItem label="Dashboard">
3333

34-
1. In the [Cloudflare dashboard](https://dash.cloudflare.com/), go to **Zero Trust** > **Team & Resources** > **Devices** > **Device profiles**.
35-
2. Select the **Initial resolved IP** filter.
36-
3. View your account's current IPv4 range in the **IP subnet range** field.
34+
1. Go to **Networking** > **IP addresses** > **Address space** > **Custom IPs**.
35+
36+
<DashButton url="/?to=/:account/ip-addresses/address-space/custom-ips" />
37+
38+
2. Find the row where **Assign to** is **Initial Resolved IP** to see your account's current IPv4 range in the **Prefix** column.
3739

3840
</TabItem> <TabItem label="API">
3941

@@ -53,11 +55,13 @@ Send a `GET` request to the [Get Initial Resolved IP Subnet](/api/resources/zero
5355

5456
<Tabs syncKey="dashPlusAPI"> <TabItem label="Dashboard">
5557

56-
1. In the [Cloudflare dashboard](https://dash.cloudflare.com/), go to **Zero Trust** > **Team & Resources** > **Devices** > **Device profiles**.
57-
2. Select the **Initial resolved IP** filter.
58-
3. Select **Configure**.
59-
4. Enter your new IPv4 range in **IP subnet CIDR**.
60-
5. Select **Save**.
58+
1. Go to **Networking** > **IP addresses** > **Address space** > **Custom IPs**.
59+
60+
<DashButton url="/?to=/:account/ip-addresses/address-space/custom-ips" />
61+
62+
2. Find the row where **Assign to** is **Initial Resolved IP**, select the three dots menu, and select **Edit**.
63+
3. Enter your new IPv4 range in **IP address**.
64+
4. Select **Save**.
6165

6266
</TabItem> <TabItem label="API">
6367

@@ -84,6 +88,6 @@ The new CIDR must not conflict with existing private routes or other reserved su
8488
Only the IPv4 range is configurable. The IPv6 initial resolved IP range (`2606:4700:0cf1:4000::/64`) is fixed and does not need to be changed to resolve Chromium's Local Network Access restrictions, which do not affect IPv6.
8589
:::
8690

87-
After you change your range, update your [Split Tunnel configuration](/cloudflare-one/networks/routes/reserved-ips/#split-tunnel-configuration) so that traffic to the new range routes through the Cloudflare One Client, and remove the old range if it is no longer used by any other reserved IP purpose.
91+
The default IPv4 range is [automatically routed through the Cloudflare One Client](/cloudflare-one/team-and-resources/devices/cloudflare-one-client/configure/route-traffic/split-tunnels/#automatically-managed-ranges) and does not require any Split Tunnel configuration. If you configure a custom range, update your [Split Tunnel configuration](/cloudflare-one/networks/routes/reserved-ips/#split-tunnel-configuration) so that traffic to the new range routes through the Cloudflare One Client, and remove the old range if it is no longer used by any other reserved IP purpose.
8892

8993
Initial resolved IPs have a TTL of approximately 10 minutes. DNS queries resolved before you change your range continue to use the previous range until that TTL expires. After that, new DNS queries receive an initial resolved IP from the new range.

src/content/docs/cloudflare-one/networks/routes/reserved-ips.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ For deployments that use the [Cloudflare One Client](/cloudflare-one/team-and-re
8282

8383
In **Exclude IPs and domains** mode, the Cloudflare One Client excludes the CGNAT range (`100.64.0.0/10`) from its routing by default. You must delete the reserved IP ranges that fall within CGNAT space from your Split Tunnels exclude list, or the associated features will stop working.
8484

85-
[Gateway initial resolved IPs](#gateway-initial-resolved-ips) are the exception: the default range (`172.64.128.0/20`) is public Cloudflare address space, not CGNAT, so it is **not** excluded by default in Exclude mode — no Split Tunnel changes are required for this range. This only applies if you configured a custom initial resolved IP range within CGNAT space. In that case, treat it the same as the other CGNAT-based ranges.
85+
[Gateway initial resolved IPs](#gateway-initial-resolved-ips) are the exception: the default range (`172.64.128.0/20`) is public Cloudflare address space, not CGNAT, so it is **not** excluded by default in Exclude mode. The Cloudflare One Client also automatically removes this range, along with the entire `2606:4700:0cf1::/48` IPv6 range (which also covers [device IPs](#device-ips) and [Cloudflare source IPs](#cloudflare-source-ips) on IPv6), from any exclusions you configure — refer to [Automatically managed ranges](/cloudflare-one/team-and-resources/devices/cloudflare-one-client/configure/route-traffic/split-tunnels/#automatically-managed-ranges). No Split Tunnel changes are required for these ranges. This only applies to the default IPv4 range: if you configured a custom initial resolved IP range within CGNAT space, treat it the same as the other CGNAT-based ranges below.
8686

8787
Cloudflare recommends adding back the IPs that are not explicitly used for Cloudflare One services. This reduces the risk of conflicts with existing private network configurations that may use CGNAT address space.
8888

@@ -98,4 +98,4 @@ Use the following calculator to determine which IP ranges to add back based on t
9898

9999
### Include mode
100100

101-
In **Include IPs and domains** mode, the Cloudflare One Client sends only traffic for the included routes to Cloudflare. You must explicitly add the reserved IP ranges that your deployment depends on. For example, if you use [hostname routing or egress policy host selectors](#gateway-initial-resolved-ips), add `172.64.128.0/20` (or your custom IPv4 range) and `2606:4700:0cf1:4000::/64` to your Split Tunnels include list.
101+
In **Include IPs and domains** mode, the Cloudflare One Client sends only traffic for the included routes to Cloudflare. You must explicitly add the reserved IP ranges that your deployment depends on, except the default [Gateway initial resolved IP range](#gateway-initial-resolved-ips) (`172.64.128.0/20`) and the entire `2606:4700:0cf1::/48` IPv6 range (which also covers [device IPs](#device-ips) and [Cloudflare source IPs](#cloudflare-source-ips) on IPv6) — the Cloudflare One Client automatically includes these. Refer to [Automatically managed ranges](/cloudflare-one/team-and-resources/devices/cloudflare-one-client/configure/route-traffic/split-tunnels/#automatically-managed-ranges) for details. If you use [hostname routing or egress policy host selectors](#gateway-initial-resolved-ips) with a custom IPv4 initial resolved IP range, add that custom range to your Split Tunnels include list.

src/content/docs/cloudflare-one/team-and-resources/devices/cloudflare-one-client/configure/route-traffic/split-tunnels.mdx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,17 @@ In [Traffic only mode](/cloudflare-one/team-and-resources/devices/cloudflare-one
6767
- `104.19.194.29`
6868
- `104.19.195.29`
6969

70+
## Automatically managed ranges
71+
72+
The Cloudflare One Client automatically includes the following ranges in Include mode, and automatically removes them from any exclusions configured in Exclude mode. This happens at runtime on the device: the ranges are not stored in your device profile, do not appear in the Split Tunnels list in the dashboard, and do not need to be added manually.
73+
74+
- **IPv4**: `172.64.128.0/20` — the default [Gateway initial resolved IP range](/cloudflare-one/networks/routes/reserved-ips/#gateway-initial-resolved-ips)
75+
- **IPv6**: `2606:4700:0cf1::/48` — covers [device IPs](/cloudflare-one/networks/routes/reserved-ips/#device-ips), [Cloudflare source IPs](/cloudflare-one/networks/routes/reserved-ips/#cloudflare-source-ips), and [Gateway initial resolved IPs](/cloudflare-one/networks/routes/reserved-ips/#gateway-initial-resolved-ips)
76+
77+
You do not need to add these ranges to your Split Tunnels configuration. If you are troubleshooting a feature that depends on one of these ranges (for example, [hostname routing](/cloudflare-one/networks/connectors/cloudflare-tunnel/private-net/cloudflared/connect-private-hostname/) or [Cloudflare Mesh](/cloudflare-one/networks/connectors/cloudflare-mesh/)), you can still add the range explicitly as a diagnostic step, but this should not be required for normal operation.
78+
79+
If your account uses a [custom initial resolved IP range](/cloudflare-one/networks/routes/configure-initial-resolved-ips/) instead of the default `172.64.128.0/20`, add that custom range to your Split Tunnels configuration.
80+
7081
## Domain-based Split Tunnels
7182

7283
Domain-based split tunneling has a few ramifications you should be aware of before deploying in your organization:.

0 commit comments

Comments
 (0)