If your internal APIs already sit behind a Cloudflare One connection, the shortest path to putting WAF, caching, bot management, and Workers in front of them is now a proxied DNS record pointing at a private IP address, not another cloudflared daemon. That is the practical result of Cloudflare’s GA announcement of services for private origins, published today, October 30, 2026. One important framing before the details: everything load-bearing in this article comes from Cloudflare’s own GA-day blog post, its developer docs, and the cloudflared repository, so treat the capability claims as vendor-reported and the decision framework as the part that will outlive the announcement.
With that caveat stated, the decision itself is real and immediate. For teams that already pay for Cloudflare One connectivity, the new path eliminates per-host connector software and moves exposure into DNS, where it is visible, auditable, and centrally managed. In exchange, you accept a return-route requirement, two documented feature give-ups, a health-checking cost, and a hard dependency on the Cloudflare One link for every service you expose this way. Whether that trade is worth making depends on which of the three reachability modes you are actually comparing.
What changed on 2026-10-30
Until now, Cloudflare’s own framing of the problem was blunt: “Before the beta, putting Cloudflare in front of these services meant exposing a public IP, opening a firewall port, or running cloudflared alongside the origin.” Each option had a real cost. A public IP or an open port puts an internal service on the Internet’s attack surface, which is what most teams were trying to avoid. cloudflared avoids that, but at the price of a daemon per origin, with everything that implies for patching and inventory.
The GA service adds a fourth option. You create a standard proxied A or AAAA record, except the target is a private address, and traffic reaches the origin over a Cloudflare One connection you already operate. Cloudflare’s claim is that the edge stack behaves as it does for public origins: “Your origin stays private, while web application firewall (WAF), caching, bot management, and Workers work just as they do for public origins.”
If that parity claim holds in practice, it is the substantive part of the announcement. Internal APIs, MCP servers, and agent backends that were never built to face the Internet can get the same request filtering, rate limiting, and edge compute treatment as a public site, without changing the origin’s network posture. Whether Workers parity matters to you depends on your usage, and it is not free: above a free tier of 100,000 requests per day with 10 ms of CPU per request, Cloudflare’s plans page prices paid Workers usage at $0.30 per million requests and $0.02 per million CPU ms. Notably, that page lists no pricing for the Private Origins entitlement itself, so the entitlement’s price is the open item in any cost comparison.
The three reachability modes
The GA post itself distinguishes the modes, and the distinction is the spine of the decision: “With Cloudflare WAN, no connector software on the origin is required. With Cloudflare Mesh, a connector runs within your private network and can serve multiple origins.” The third mode is the one you already know: a cloudflared daemon alongside each origin.
Cloudflare WAN is the connector-free path. If your private network reaches Cloudflare over IPsec, GRE, or CNI (Cloudflare Network Interconnect), proxied private records resolve and route without installing anything on or near the origin. The operational appeal is obvious: there is no per-host software lifecycle to manage at all.
Cloudflare Mesh runs one connector inside the private network that can serve multiple origins. This amortizes the connector footprint across a network segment rather than per host. One platform boundary is documented: per the Cloudflare One Client download documentation, “Cloudflare Mesh functionality using the Cloudflare One Client is now supported on RHEL 9 and 10.” That statement establishes support for those platforms; it does not establish coverage elsewhere, so confirm your connector platform before committing to Mesh.
Legacy cloudflared remains a first-class citizen, not a deprecated one. The cloudflared repository describes the model: “This daemon sits between Cloudflare network and your origin (e.g. a webserver). Cloudflare attracts client requests and sends them to you via this daemon, without requiring you to poke holes on your firewall --- your origin can remain as closed as possible.” Outbound-only connectivity is the property the new modes give up, and it is not a small thing.
One detail that reframes the whole comparison: Cloudflare Tunnel itself is listed as acceptable Cloudflare One connectivity for private origins. This is a routing-mode choice layered on top of connectivity you may already have, not a cloudflared retirement. If you run a tunnel into a network today, you may already satisfy the connectivity prerequisite for proxied private records in that network, and per the post, Tunnel connectivity is exempt from the Unified Routing requirement.
Eligibility gates before you can choose
The new path has four gates, all vendor-documented:
- The Private Origins entitlement. Per the GA post, this is enabled by your account team, not self-serve. Pricing for the entitlement does not appear on the pricing page reviewed here, and how the entitlement draws boundaries between WAN and Mesh modes is not stated in the reviewed material.
- Cloudflare One connectivity via IPsec, GRE, CNI, Cloudflare Tunnel, or Cloudflare Mesh.
- Unified Routing. The post requires “Unified Routing enabled on your account, unless you connect over Cloudflare Tunnel (Tunnel doesn’t need it). New and existing accounts can upgrade through their account team.” That is a second account-team action on top of the entitlement, so rollout planning involves two non-self-serve steps unless your connectivity is already Cloudflare Tunnel.
- Return routes. The post is specific: “If you connect over Cloudflare WAN or Cloudflare Mesh, configure a return route for Cloudflare’s source ranges: 100.64.0.0/12 for IPv4 and 2606:4700:cf1:5000::/64 for IPv6.”
The return route is the architectural price of removing the connector. With cloudflared, the daemon dials out, so replies flow back through an established outbound connection and your routing tables never change. With proxied private DNS, Cloudflare’s edge initiates connections into your network from its source ranges, and your routers must know how to send replies back. For networks with mature routing discipline this is a change ticket. For networks where routing is tribal knowledge, or where a SaaS-managed LAN does not let you add static routes, this gate can end the evaluation on its own.
There is also an address-plan subtlety worth flagging to your network team early. The required 100.64.0.0/12 return route sits inside the RFC 6598 carrier-grade NAT block, 100.64.0.0/10. The private-routing setting turns on automatically for proxied records targeting RFC 1918 private IPv4, the full RFC 6598 CGNAT range, and RFC 4193 ULA IPv6 (fc00::/7), per the GA post; it cannot be disabled for these ranges, and attempts to disable it via the API return an error. If your organization uses CGNAT space internally, as some large networks and service-provider-adjacent environments do, you need to reconcile that automatic behavior with your own addressing before anything routes.
The documented give-ups
The honest counterweight is one sentence in the announcement: “Argo Smart Routing and Dedicated CDN Egress IPs aren’t supported, and origin health checks require Load Balancing.”
Each give-up lands differently:
- Argo Smart Routing matters if you were buying routing acceleration for these services. Internal APIs serving partners or agents across geographies may have benefited; on the private-origins path, that option is gone.
- Dedicated CDN Egress IPs were the clean answer to origin firewall allowlisting: give the origin’s firewall a short, stable list of Cloudflare IPs and reject everything else. On the private-origins path that option is gone. The announcement does publish Cloudflare’s source ranges for return routing, 100.64.0.0/12 for IPv4 and 2606:4700:cf1:5000::/64 for IPv6, but it does not present those ranges as dedicated per-customer egress IPs or guarantee that origin-facing connections come only from them, so whether an allowlist-based firewall model survives is a question to verify against your own policy. For an origin whose entire security model is “only accept connections from these addresses,” this is the give-up most likely to be a hard blocker.
- Health checks behind Load Balancing is a cost gate. If your monitoring and failover logic depends on Cloudflare-side origin health checks, you now need the Load Balancing product to get them. Teams that health-check internally (through their own orchestrator or service mesh) will not feel this; teams that relied on Cloudflare’s checks for public services and expected the same here will.
One limit on that list: the GA post itself defers to the developer documentation for “the full list of current limitations,” so the three give-ups above are the confirmed floor, not necessarily the whole list. Check the developer documentation for the current full enumeration before a production cutover, because GA-day posts are not where complete constraint lists live.
Where cloudflared still wins
The case for staying on per-origin daemons rests on three documented properties.
First, outbound-only reachability. The cloudflared model requires no firewall holes and no return routes, which means it works in networks where you cannot add routes, cannot predict source ranges, or simply do not control routing. That includes a large share of real environments: branch sites, partner-managed networks, regulated segments where a routing change needs a review board.
Second, a connector you control. Some security postures want an explicit, inspectable software entity mediating every connection to the origin, something you can pin, log, and rotate on your own schedule. Moving reachability into DNS removes that per-service control point and replaces it with trust in the Cloudflare One link and your DNS configuration.
Third, the cost structure is known. cloudflared is software you run; there is no entitlement to negotiate.
The countervailing cost is operational, and it is also documented. Per the cloudflared downloads documentation, “Cloudflare supports versions of cloudflared that are within one year of the most recent release. Breaking changes unrelated to feature availability may be introduced that will impact versions released more than one year ago.” A one-year support window means every host running a daemon is on an upgrade cadence whether or not the service behind it changes. One daemon on one host is a chore. Fifty daemons across fifty origins is a patch-management program, and that is precisely the burden WAN mode eliminates.
The decision matrix
| Question | Cloudflare WAN | Cloudflare Mesh | Per-origin cloudflared |
|---|---|---|---|
| Connector on/near origin | None | One shared connector per private network | One daemon per origin |
| Network prerequisites | Cloudflare One link, Unified Routing, and return routes for 100.64.0.0/12 and 2606:4700:cf1:5000::/64 | Same, plus a supported connector platform (RHEL 9/10 documented for One Client Mesh) | Outbound-only connection; no firewall holes or return routes |
| Argo Smart Routing | Not supported | Not supported | Not addressed by the GA post; confirm with your plan |
| Dedicated CDN Egress IPs | Not supported | Not supported | Not addressed by the GA post; confirm with your account team |
| Origin health checks | Requires Load Balancing | Requires Load Balancing | Not addressed by the GA post; confirm with your plan |
| Software lifecycle on your side | None at origin | One connector to patch | Per-host daemon, one-year version support window |
| Blast radius of Cloudflare One link failure | Every service exposed via that link | Every service exposed via that link | Per-tunnel, scoped to each daemon |
My Read of this table: for a platform team already operating Cloudflare One over IPsec, GRE, or CNI, with controlled routing and internal health checking, new services should default to proxied private DNS in WAN mode. The connector-free posture and DNS-centric auditability are worth the give-ups in that posture. I would keep cloudflared wherever any of these conditions holds: you cannot add the return routes, your origin’s firewall model depends on Dedicated CDN Egress IPs (confirm with your account team what each path actually delivers before assuming either way), or your security model requires a connector you control at each service boundary. Mesh is the middle option for networks without WAN-style links but with many origins behind one segment, subject to confirming connector platform support.
What raises the stakes
Two consequences deserve weight in your decision.
Moving reachability from per-host connectors into DNS concentrates dependency. With fifty cloudflared daemons, a tunnel failure is scoped to a service. With reachability centralized over one Cloudflare One connection, that link and the Private Origins entitlement become a single point of failure for every service you expose this way. That is not an argument against consolidation; centralized dependencies are often easier to make redundant. It is an argument for treating the Cloudflare One link as tier-one infrastructure the moment you put internal APIs behind it, with the monitoring and failover budget to match.
The second consequence is subtler. The private-routing setting turns on automatically, and cannot be disabled, for proxied records targeting RFC 1918, 100.64.0.0/10, or fc00::/7 addresses, so the feature’s reach is defined by where your proxied DNS points, not only by the prefixes you intend to expose. Networks using CGNAT space internally, or with unusual ULA layouts, should validate routing behavior in a controlled segment before pointing production records at private addresses.
Evidence limits
Cloudflare’s developer documentation carries the full list of current limitations; this article confirms only the ones stated in the GA post. Private Origins entitlement pricing does not appear on the pricing page reviewed here, and the entitlement boundaries between WAN and Mesh modes are not stated in the reviewed material; the only pricing confirmed is Workers usage. No latency, throughput, or failover measurements and no independent migration accounts appear in the material reviewed here. The decision framework above follows from documented capability and constraints, not from observed production behavior, and the feature-parity claim for WAF, caching, bot management, and Workers on private origins remains a vendor assertion until independently exercised.
The right next step, if this decision is live for you, is a bounded one: ask your account team for the entitlement terms and the Unified Routing upgrade, stand up one low-stakes internal service behind a proxied private record in a segment where you control routing, and verify the edge features you actually depend on against it. That experiment answers for your environment what no GA-day post can.
Frequently Asked Questions
What network prerequisites are required to use Cloudflare WAN for private origins?
If you connect over Cloudflare WAN or Cloudflare Mesh, configure a return route for Cloudflare’s source ranges: 100.64.0.0/12 for IPv4 and 2606:4700:cf1:5000::/64 for IPv6.
Which features are not supported when using private origins?
Argo Smart Routing and Dedicated CDN Egress IPs aren’t supported, and origin health checks require Load Balancing.
What is the support window for cloudflared versions?
Cloudflare supports versions of cloudflared that are within one year of the most recent release. Breaking changes unrelated to feature availability may be introduced that will impact versions released more than one year ago.

Join the discussion
Share a useful perspective or ask a question about this article.