Skip to content

Commit e8b6b0c

Browse files
authored
[CF1] Reserved Cloudflare IPs (#28836)
* reserved cloudflare IPs page * refine split tunnel section * link to new reserved IPs page * edit cloudflare source ips * make intro more precise * add Access sprivate apps * LB IP is configurable * edit calculator terminology
1 parent 1baf1e1 commit e8b6b0c

16 files changed

Lines changed: 133 additions & 64 deletions

File tree

public/__redirects

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2248,6 +2248,7 @@
22482248
/cloudflare-one/connections/connect-networks/install-and-setup/tunnel-guide/ /cloudflare-one/connections/connect-networks/get-started/ 301
22492249
/cloudflare-one/connections/connect-networks/downloads/system-requirements/ /cloudflare-one/connections/connect-networks/configure-tunnels/tunnel-availability/system-requirements/ 301
22502250
/cloudflare-one/networks/connectors/cloudflare-tunnel/routing-to-tunnel/lb/ /cloudflare-one/networks/connectors/cloudflare-tunnel/routing-to-tunnel/public-load-balancers/ 301
2251+
/cloudflare-one/networks/routes/ /cloudflare-one/networks/routes/add-routes/ 301
22512252
/cloudflare-one/tutorials/vnc-client-in-browser/ /cloudflare-one/networks/connectors/cloudflare-tunnel/use-cases/vnc-browser-rendering/ 301
22522253
/cloudflare-one/policies/data-loss-prevention/dlp-policies/payload-logging/ /cloudflare-one/policies/data-loss-prevention/dlp-policies/logging-options/#log-the-payload-of-matched-rules 301
22532254
/cloudflare-one/connections/connect-apps/configuration/private-networks/ /cloudflare-one/connections/connect-networks/private-net/ 301

src/components/SubtractIPCalculator.tsx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,23 +7,23 @@ export default function SubtractIPCalculator({
77
}: {
88
defaults: {
99
base?: string;
10-
exclude?: string[];
10+
subtract?: string[];
1111
};
1212
}) {
1313
const [base, setBase] = useState(defaults?.base ?? "");
14-
const [exclude, setExclude] = useState<string[]>(defaults?.exclude ?? []);
14+
const [subtract, setSubtract] = useState<string[]>(defaults?.subtract ?? []);
1515

1616
const [result, setResult] = useState<string[]>([]);
1717

1818
function calculate() {
19-
setResult(excludeCidr(base, exclude));
19+
setResult(excludeCidr(base, subtract));
2020
track("interacted with docs calculator", { value: "split ip calculator" });
2121
}
2222

2323
function disableButton() {
2424
try {
2525
parseCidr(base);
26-
exclude.map((cidr) => parseCidr(cidr));
26+
subtract.map((cidr) => parseCidr(cidr));
2727

2828
return false;
2929
} catch {
@@ -49,11 +49,11 @@ export default function SubtractIPCalculator({
4949
/>
5050
</label>
5151
<label>
52-
<strong>Excluded CIDRs: </strong>
52+
<strong>Subtracted CIDRs: </strong>
5353
<input
5454
type="text"
55-
value={exclude}
56-
onChange={(e) => setExclude(e.target.value.split(","))}
55+
value={subtract}
56+
onChange={(e) => setSubtract(e.target.value.split(","))}
5757
/>
5858
</label>
5959
</div>

src/content/changelog/access/2026-02-17-clientless-access-for-private-apps.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ A new **Allow clientless access** setting makes it easier to connect users witho
1010

1111
![Allow clientless access setting in the Cloudflare One dashboard](~/assets/images/changelog/access/allow-clientless-access.png)
1212

13-
Previously, to provide clientless access to a private hostname or IP without a [published application](/cloudflare-one/networks/routes/#add-a-published-application-route), you had to create a separate [bookmark application](/cloudflare-one/access-controls/applications/bookmarks/) pointing to a prefixed [Clientless Web Isolation](/cloudflare-one/remote-browser-isolation/setup/clientless-browser-isolation/) URL (for example, `https://<your-teamname>.cloudflareaccess.com/browser/https://10.0.0.1/`). This bookmark was visible to all users in the App Launcher, regardless of whether they had access to the underlying application.
13+
Previously, to provide clientless access to a private hostname or IP without a [published application](/cloudflare-one/networks/routes/add-routes/#add-a-published-application-route), you had to create a separate [bookmark application](/cloudflare-one/access-controls/applications/bookmarks/) pointing to a prefixed [Clientless Web Isolation](/cloudflare-one/remote-browser-isolation/setup/clientless-browser-isolation/) URL (for example, `https://<your-teamname>.cloudflareaccess.com/browser/https://10.0.0.1/`). This bookmark was visible to all users in the App Launcher, regardless of whether they had access to the underlying application.
1414

1515
Now, you can manage clientless access directly within your [private self-hosted application](/cloudflare-one/access-controls/applications/non-http/self-hosted-private-app/). When **Allow clientless access** is turned on, users who pass your Access application policies will see a tile in their App Launcher pointing to the prefixed URL. Users must have [remote browser permissions](/cloudflare-one/remote-browser-isolation/setup/clientless-browser-isolation/) to open the link.
1616

src/content/docs/cloudflare-one/networks/connectors/cloudflare-tunnel/configure-tunnels/index.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,5 +45,5 @@ Maximize tunnel uptime with:
4545
## Next steps
4646

4747
- [Monitor your tunnels](/cloudflare-one/networks/connectors/cloudflare-tunnel/monitor-tunnels/) to track performance and troubleshoot issues.
48-
- [Configure routes](/cloudflare-one/networks/routes/) to control how traffic reaches your applications.
48+
- [Configure routes](/cloudflare-one/networks/routes/add-routes/) to control how traffic reaches your applications.
4949
- [Set up private networks](/cloudflare-one/networks/connectors/cloudflare-tunnel/private-net/) for internal resource access.

src/content/docs/cloudflare-one/networks/connectors/cloudflare-tunnel/private-net/warp-connector/user-to-site.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ WARP clients and WARP Connectors are accessed using their [device IP](/cloudflar
4444

4545
1. In your WARP Connector device profile, go to [Split Tunnels](/cloudflare-one/team-and-resources/devices/warp/configure-warp/route-traffic/split-tunnels/).
4646
2.
47-
<Render file="tunnel/cgnat-split-tunnels" product="cloudflare-one" params={{ feature: "WARP Connector"}} />
47+
<Render file="tunnel/cgnat-split-tunnels" product="cloudflare-one" />
4848

4949
3. Repeat the previous steps for all WARP client device profiles.
5050

src/content/docs/cloudflare-one/networks/connectors/cloudflare-tunnel/private-net/warp-to-warp.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ This guide covers how to:
3636
3. Turn on [**Allow all Cloudflare One traffic to reach enrolled devices**](/cloudflare-one/team-and-resources/devices/warp/configure-warp/warp-settings/#allow-all-cloudflare-one-traffic-to-reach-enrolled-devices).
3737
4. Go to **Team & Resources** > **Devices** > **Device profiles** > **General profiles** and select the device group that needs WARP-to-WARP connectivity.
3838
5.
39-
<Render file="tunnel/cgnat-split-tunnels" product="cloudflare-one" params={{ feature: "WARP-to-WARP"}} />
39+
<Render file="tunnel/cgnat-split-tunnels" product="cloudflare-one" />
4040

4141
This will instruct WARP to begin proxying any traffic destined for a `100.96.0.0/12` IP address to Cloudflare for routing and policy enforcement.
4242

src/content/docs/cloudflare-one/networks/connectors/cloudflare-tunnel/use-cases/ssh/ssh-warp-to-tunnel.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ For example, if your SSH hostname is `ssh.internal.local`, remove `internal.loca
164164

165165
### 4.1 Add an IP route
166166

167-
To connect to the SSH server using its IP address (instead of a [hostname](#3-use-hostname-routes)), [add a CIDR route](/cloudflare-one/networks/routes/#add-a-cidr-route) that includes the server's private IP address.
167+
To connect to the SSH server using its IP address (instead of a [hostname](#3-use-hostname-routes)), [add a CIDR route](/cloudflare-one/networks/routes/add-routes/#add-a-cidr-route) that includes the server's private IP address.
168168

169169
### 4.2 Configure WARP clients
170170

src/content/docs/cloudflare-one/networks/routes.mdx renamed to src/content/docs/cloudflare-one/networks/routes/add-routes.mdx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@ title: Add routes
44
tags:
55
- Private networks
66
sidebar:
7-
order: 3
8-
label: Routes
7+
order: 1
98
---
109

1110
import { Render } from "~/components";
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
---
2+
pcx_content_type: navigation
3+
title: Routes
4+
sidebar:
5+
order: 3
6+
group:
7+
hideIndex: true
8+
---
9+
10+
import { DirectoryListing } from "~/components";
11+
12+
Routes map IP addresses, hostnames, and published applications to Cloudflare One connectors on your private network.
13+
14+
<DirectoryListing />
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
---
2+
pcx_content_type: reference
3+
title: Reserved IP addresses
4+
sidebar:
5+
order: 2
6+
---
7+
8+
import SubtractIPCalculator from "~/components/SubtractIPCalculator.tsx";
9+
10+
Cloudflare reserves several IPv4 and IPv6 ranges for internal routing and service functionality. These ranges are drawn from the CGNAT address space (`100.64.0.0/10`). To avoid routing conflicts, your Cloudflare Tunnel, WARP Connector, or WAN routes should not include subsets of these reserved ranges. Broader routes that contain a reserved range, such as `0.0.0.0/0`, are unaffected because longest-prefix match ensures the reserved ranges still take priority.
11+
12+
When planning your private network addressing and configuring [Split Tunnel](/cloudflare-one/team-and-resources/devices/warp/configure-warp/route-traffic/split-tunnels/) entries, use the tables below to identify which IP ranges Cloudflare has reserved and whether they can be reconfigured.
13+
14+
## IPv4 ranges
15+
16+
| Name | Default CIDR | Configurable |
17+
| ------------------------------------------------------------- | ---------------- | ------------ |
18+
| [Cloudflare source IPs](#cloudflare-source-ips) | `100.64.0.0/12` | Yes |
19+
| [Gateway initial resolved IPs](#gateway-initial-resolved-ips) | `100.80.0.0/16` | No |
20+
| [WARP device IPs](#warp-device-ips) | `100.96.0.0/12` | Yes |
21+
| [Private Load Balancer IPs](#private-load-balancer-ips) | `100.112.0.0/16` | Yes |
22+
23+
## IPv6 ranges
24+
25+
| Name | Default CIDR | Configurable |
26+
| ------------------------------------------------------------- | -------------------------- | ------------ |
27+
| [WARP device IPs](#warp-device-ips) | `2606:4700:0cf1:1000::/64` | No |
28+
| [Gateway initial resolved IPs](#gateway-initial-resolved-ips) | `2606:4700:0cf1:4000::/64` | No |
29+
| [Cloudflare source IPs](#cloudflare-source-ips) | `2606:4700:0cf1:5000::/64` | No |
30+
31+
## Cloudflare source IPs
32+
33+
Cloudflare source IPs are the source addresses used when a Cloudflare service sends traffic to your private networks. This range applies to customers using [Unified Routing (beta)](/cloudflare-one/networks/connectors/cloudflare-wan/reference/traffic-steering/#unified-routing-mode-beta). Examples of requests that are sourced from this range include:
34+
35+
- [Load Balancing](/load-balancing/monitors/) — health check requests to private endpoints
36+
- [Gateway DNS resolver](/cloudflare-one/networks/resolvers-and-proxies/dns/locations/dns-resolver-ips/) — DNS resolution for private hostnames
37+
- [Cloudflare Workers](/workers/) — requests from Workers to private origins
38+
39+
The default IPv4 range is `100.64.0.0/12`. You can change this to a different `/12` CIDR to avoid conflicts with your existing IP address management plan. For more information on affected services and configuration instructions, refer to [Configure Cloudflare source IPs](/cloudflare-one/networks/connectors/cloudflare-wan/configuration/manually/how-to/configure-cloudflare-source-ips/).
40+
41+
## Gateway initial resolved IPs
42+
43+
Gateway initial resolved IPs are ephemeral addresses used to map hostnames to destination IPs at the network layer, where hostname information is not usually available.
44+
45+
The following features use this range:
46+
47+
- [Private hostname routing](/cloudflare-one/networks/connectors/cloudflare-tunnel/private-net/cloudflared/connect-private-hostname/) — routes traffic to private applications behind Cloudflare Tunnel using their hostnames.
48+
- [Public hostname routing](/cloudflare-one/traffic-policies/egress-policies/egress-cloudflared/) — egresses traffic through Cloudflare Tunnel to anchor source IPs for public destinations.
49+
- [Egress policy host selectors](/cloudflare-one/traffic-policies/egress-policies/host-selectors/) — evaluates Gateway egress policies using hostname-based selectors.
50+
- [Access private applications](/cloudflare-one/access-controls/applications/non-http/self-hosted-private-app/) — manage access to private applications using their private hostnames.
51+
52+
Initial resolved IPs are assigned from the `100.80.0.0/16` (IPv4) or `2606:4700:0cf1:4000::/64` (IPv6) range. This range is not configurable.
53+
54+
## WARP device IPs
55+
56+
WARP device IPs are virtual addresses assigned to each WARP device registration. These IPs identify and route traffic to specific devices for the following features:
57+
58+
- [Peer-to-peer connectivity (WARP-to-WARP)](/cloudflare-one/networks/connectors/cloudflare-tunnel/private-net/warp-to-warp/) — allows WARP devices to communicate directly with each other over Cloudflare's network.
59+
- [WARP Connector](/cloudflare-one/networks/connectors/cloudflare-tunnel/private-net/warp-connector/) — routes traffic between your private network and WARP devices.
60+
- [Cloudflare WAN](/cloudflare-one/networks/connectors/cloudflare-wan/) — on-ramps traffic from WAN tunnels to WARP devices.
61+
62+
The default IPv4 range is `100.96.0.0/12`. If this range conflicts with services on your private network, you can configure custom IPv4 subnets drawn from RFC 1918 or CGNAT address space. For configuration instructions, refer to [Device IPs](/cloudflare-one/team-and-resources/devices/warp/configure-warp/device-ips/).
63+
64+
## Private Load Balancer IPs
65+
66+
Private Load Balancer IPs are virtual addresses allocated to [Private Network Load Balancers](/load-balancing/private-network/). Each private load balancer receives a `/32` address from the `100.112.0.0/16` range by default, which serves as the load balancer's virtual IP for traffic distribution to private endpoints. Alternatively, you can configure a custom [RFC 1918](https://datatracker.ietf.org/doc/html/rfc1918) `/32` address for each load balancer.
67+
68+
## WARP Split Tunnel configuration
69+
70+
For deployments that use the [WARP client](/cloudflare-one/team-and-resources/devices/warp/), ensure that the [reserved IP ranges](#ipv4-ranges) required by your deployment route through [WARP Split Tunnels](/cloudflare-one/team-and-resources/devices/warp/configure-warp/route-traffic/split-tunnels/) to Cloudflare. Configuration depends on whether your [Split Tunnels mode](/cloudflare-one/team-and-resources/devices/warp/configure-warp/route-traffic/split-tunnels/#change-split-tunnels-mode) is set to **Exclude IPs and domains** or **Include IPs and domains**.
71+
72+
### Exclude mode (default)
73+
74+
In **Exclude IPs and domains** mode, the CGNAT range (`100.64.0.0/10`) is excluded from WARP routing by default. You must delete the [reserved IP ranges](#ipv4-ranges) from your Split Tunnels exclude list, or the associated features will stop working.
75+
76+
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.
77+
78+
You can use the calculator below to determine which IP ranges to add back based on the Cloudflare One features you use. For example, if your deployment requires [Gateway initial resolved IPs](#gateway-initial-resolved-ips) (`100.80.0.0/16`) and [WARP device IPs](#warp-device-ips) (`100.96.0.0/12`), delete `100.64.0.0/10` from Split Tunnels and add back `100.64.0.0/12`, `100.81.0.0/16`, `100.82.0.0/15`, `100.84.0.0/14`, `100.88.0.0/13`, and `100.112.0.0/12`.
79+
80+
<SubtractIPCalculator
81+
client:load
82+
defaults={{
83+
base: "100.64.0.0/10",
84+
subtract: ["100.80.0.0/16", "100.96.0.0/12"],
85+
}}
86+
/>
87+
88+
### Include mode
89+
90+
In **Include IPs and domains** mode, only traffic for the included routes is sent 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 `100.80.0.0/16` to your Split Tunnels include list.

0 commit comments

Comments
 (0)