Skip to content

DNS: Private Origins GA prerequisites, limitations, and setup guides - #34628

Open
esomoza-cf wants to merge 17 commits into
productionfrom
private-origins-ga
Open

esomoza-cf wants to merge 17 commits into
productionfrom
private-origins-ga

Conversation

@esomoza-cf

Copy link
Copy Markdown
Collaborator

Summary

Part A of the Private Origins GA docs update (branch private-origins-ga). Part B (beta label removal, title rename to "Cloudflare Services for Private Origins", changelog entry) will follow on publish day from private-origins-ga-labels.

One commit per step:

  1. Overview intro — intro paragraph now lists all three connectivity types (Cloudflare WAN IPsec/GRE/CNI, Cloudflare Tunnel, Cloudflare Mesh); getting-started paragraph points to prerequisites and the per-connectivity setup guides.
  2. Prerequisites — entitlement, connectivity, default virtual network route, Unified Routing (WAN/Mesh only), and return routes for 100.64.0.0/12 (configurable) and 2606:4700:cf1:5000::/64 (not configurable).
  3. Limitations — Argo Smart Routing, Aegis, Load Balancing requirement for health checks, default virtual network, Spectrum beta + Proxy Protocol, and the Tiered Cache known issue (CACHE-14020) as a caution. Note for reviewers: remove the Tiered Cache caution block once CACHE-14020 is fixed.
  4. Related products — Spectrum/Workers VPC line added; RelatedProduct entries for Cloudflare WAN (updated description), Cloudflare Tunnel, Cloudflare Mesh, Spectrum, Workers VPC (product ids use the local icon set: tunnel, cloudflare-mesh, spectrum, workers-vpc, cloudflare-wan).
  5. Routing page intro + aspects — per-connectivity setup links (the Tunnel/Mesh links resolve now that steps 9-10 added those pages), entitlement + connectivity bullet, Unified Routing bullet.
  6. Cloudflare source IP ranges — new section with the IPv4/IPv6 table, return routes, and the Tunnel exception.
  7. Detected ranges — renamed ## IP ranges to ## Automatically detected ranges, fixed the one #ip-ranges anchor in the repo, added the CGNAT overlap caution (100.64.0.0/12 sits inside detected 100.64.0.0/10).
  8. Cloudflare WAN guide — GRE/CNI note, updated prerequisite bullets (Unified Routing, MSS clamp 1360, IPv6 return route), IPv6 tcpdump example, three new pitfall rows.
  9. New: Cloudflare Tunnel setup guide — set-up-via-cloudflare-tunnel.mdx (no Unified Routing or return routes needed; cloudflared host is the source).
  10. New: Cloudflare Mesh setup guide — set-up-via-cloudflare-mesh.mdx.
  11. Sidebar order — WAN 1, Tunnel 2, Mesh 3, private network routing 4, troubleshooting 5.
  12. Troubleshooting — order of checks, reworded Error 1002, per-connectivity health checks, merged timeout sections, MSS clamp, Tiered Cache 403, 525/526, legacy routing, asymmetric return path.

Deviation from the original spec

The Enterprise <Plan> component was removed from the overview at Enrique's request. The Private Origins entitlement requirement itself is unchanged throughout.

Needs SME confirmation

  • Zero Trust network session logs are not available for this traffic — SME: Steve Welham
  • Whether the Tiered Cache issue (CACHE-14020) also affects Tunnel and Mesh, or WAN only — SME: Cache team / Steve Welham
  • Cloudflare Mesh source-IP behavior (traffic arrives from the Cloudflare source IP ranges) — SME: Steve Welham
  • 525 or 526 errors: origin certificate mismatch / private CA not in Custom Origin Trust Store — SME: Steve Welham / ZTC
  • Origin sees public Cloudflare IPs as the source: legacy routing → request Unified Routing — SME: Steve Welham / ZTC
  • Packets reach the origin but no response returns: asymmetric return path or stateful firewall drop — SME: Steve Welham / ZTC

Checks

  • pnpm run check (astro + worker): clean
  • Full pnpm run build: 9,541 pages, exit 0
  • Redirect and component-docs validators: pass
  • htmltest anchor audit: no new failures on /dns/private-origins/ pages (only the repo-wide pre-existing index.md / hash noise that the anchor-link-audit workflow already tracks)

cc @esomoza-cf — @marcio Florindo, loop-in requested (couldn't resolve your handle; please self-assign).

@cloudflare-docs-bot

cloudflare-docs-bot Bot commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

AI Review

✅ Reviewed 0740977 · 0 findings · incremental

Commands
  • /review Run a review now.
  • /full-review Review the entire PR diff.
  • /disable-auto-review Stop automatic reviews.
  • /rebase Rebase against production.

@cloudflare-docs-bot

Copy link
Copy Markdown
Contributor

Review coverage

🟡 1 ownership area needs approval.

Suggested reviewers: @chreo @hannes-cf

Needs approval Eligible approvers Suggested
dns @chreo, @dklbreitling, @esomoza-cf, @fattouche, @hannes-cf, @kerolasa, @matildeopbravo, @mworsley-cloudflare, @sebastiaanyn, @svenr-cf, @vavrusa, @vendemiat, @Woutifier, @xofyarg, @cloudflare/cf1-reviewers, @cloudflare/product-owners chreo, hannes-cf
CODEOWNERS mappings for displayed areas (1)
Pattern Owners
/src/content/docs/dns/private-origins/ @chreo, @dklbreitling, @esomoza-cf, @fattouche, @hannes-cf, @kerolasa, @matildeopbravo, @mworsley-cloudflare, @sebastiaanyn, @svenr-cf, @vavrusa, @vendemiat, @Woutifier, @xofyarg, @cloudflare/cf1-reviewers, @cloudflare/product-owners

@github-actions

github-actions Bot commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

🚀 Deploying Preview to Cloudflare 🚀

Preview URL: https://private-origins-ga.previews.developers.cloudflare.com (commit 0740977)

This URL reflects your latest Preview deployment

Preview Deployments by commit

Status Deployment URL Commit Updated (UTC) See this deployment's details
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://be83a93c.previews.developers.cloudflare.com 0740977 2026-11-02T09:39:38.043Z Visit the dashboard ↗
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://4119b805.previews.developers.cloudflare.com b22e448 2026-10-31T13:42:27.567Z Visit the dashboard ↗
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://cd2b2f65.previews.developers.cloudflare.com ba58642 2026-10-30T19:16:35.814Z Visit the dashboard ↗
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://04d3ae86.previews.developers.cloudflare.com ee33e38 2026-10-30T11:26:15.475Z Visit the dashboard ↗
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://ba9f4254.previews.developers.cloudflare.com f7c43c3 2026-10-27T00:11:21.990Z Visit the dashboard ↗

## Limitations

- Argo Smart Routing is not supported for private origins.
- Aegis is not supported for private origins.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch. Dedicated Egress IPs are not part of the private origins path today. Origin-bound traffic rides the private overlay (WAN, Tunnel, or Mesh), and the source IPs your origin sees are the Cloudflare source IP ranges documented above: 100.64.0.0/12 for IPv4 (default, configurable) and 2606:4700:cf1:5000::/64 for IPv6. Added a limitations line making that explicit in ee33e38, and I'll raise dedicated egress support for private origins with eng as a roadmap question.

Connect Cloudflare's application services to your private network through secure tunnels. The CDN, WAF, Cache, and other proxied features apply to this traffic the same way they apply to traffic destined for public origins.

Getting started takes three steps. Follow the [setup guide](/dns/private-origins/set-up-via-cloudflare-wan/) to configure a tunnel, create a DNS record with [private network routing](/dns/private-origins/private-network-routing/), and verify end-to-end connectivity.
To get started, check the [prerequisites](#prerequisites), follow the setup guide for your connectivity type, then create a DNS record with [private network routing](/dns/private-origins/private-network-routing/).

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
To get started, check the [prerequisites](#prerequisites), follow the setup guide for your connectivity type, then create a DNS record with [private network routing](/dns/private-origins/private-network-routing/).
To get started, check the [prerequisites](#prerequisites), follow the setup guide for your connectivity type, then create a DNS record with [private network routing](/dns/private-origins/private-network-routing/) enabled.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Applied in 0740977, and I think yours reads better, the added "enabled." is what makes the line complete. Thanks for sticking with it!


## Prerequisites

- **Private Origins entitlement** on your account. Contact your account team to enable it.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- **Private Origins entitlement** on your account. Contact your account team to enable it.
- **Private Origins** is available for your account. Contact your account team to enable it.

We shouldn't mention entitlement in the dev docs.

- **Cloudflare One connectivity** to the network where your origin lives: Cloudflare WAN (IPsec, GRE, or CNI), Cloudflare Tunnel, or Cloudflare Mesh.
- **A route to the origin in your default virtual network.** Private network routing does not support selecting another virtual network.
- **For Cloudflare WAN and Cloudflare Mesh only:**
- [Unified Routing](/cloudflare-wan/reference/traffic-steering/#unified-routing) on your account. Contact your account team to enable it. This applies to new and existing accounts.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- [Unified Routing](/cloudflare-wan/reference/traffic-steering/#unified-routing) on your account. Contact your account team to enable it. This applies to new and existing accounts.
- [Unified Routing](/cloudflare-wan/reference/traffic-steering/#unified-routing) is available for your account. Contact your account team to enable it. This applies to new and existing accounts.

Just to be consistent with the private origins bullet point above.

- Zero Trust network session logs are not available for this traffic.
- [Spectrum](/spectrum/) private origins are in beta. Proxy Protocol is not delivered over private networks yet.

:::caution[Known issue: Tiered Cache]

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
:::caution[Known issue: Tiered Cache]
:::caution

To my knowledge the convention for our dev docs is not to use titles in caution / warning / info boxes.

Before you enable private network routing, consider the following:

- You need an active tunnel connection to Cloudflare through one of the supported on-ramp methods. Refer to [Cloudflare WAN](/cloudflare-wan/on-ramps/) for further guidance.
- You need the Private Origins entitlement and a working connection to your private network through Cloudflare WAN (IPsec, GRE, or CNI), Cloudflare Tunnel, or Cloudflare Mesh. The route to the origin must be in your default virtual network.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- You need the Private Origins entitlement and a working connection to your private network through Cloudflare WAN (IPsec, GRE, or CNI), Cloudflare Tunnel, or Cloudflare Mesh. The route to the origin must be in your default virtual network.
- Private Origins needs to be available on your account and you need a working connection to your private network through Cloudflare WAN (IPsec, GRE, or CNI), Cloudflare Tunnel, or Cloudflare Mesh. The route to the origin must be in your default virtual network.

As mentioned before, we shouldn't mention entitlements.

| `fc00::/7` | Private ([RFC 4193](https://www.rfc-editor.org/rfc/rfc4193.html)) |
| `100.64.0.0/10` | CGNAT ([RFC 6598](https://www.rfc-editor.org/rfc/rfc6598.html)) |

:::caution[CGNAT origins and the Cloudflare source range]

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
:::caution[CGNAT origins and the Cloudflare source range]
:::caution

same comment as before

- **Active Cloudflare WAN subscription**: This capability requires a Cloudflare WAN subscription on your account.
- **Access to private origins enabled on your account**: This is a separate entitlement from standard authoritative DNS access. Contact your Cloudflare account team to request access.
- **Active Cloudflare WAN subscription**: this guide requires a Cloudflare WAN subscription on your account.
- **Private Origins entitlement**: required on your account. It is separate from standard authoritative DNS access. Contact your account team to enable it.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same comment as before, we shouldn't mention entitlements


Confirm the following before you start:

- **Private Origins entitlement**: required on your account. It is separate from standard authoritative DNS access. Contact your account team to enable it.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same comment as before, we shouldn't mention entitlements


Confirm the following before you start:

- **Private Origins entitlement**: required on your account. It is separate from standard authoritative DNS access. Contact your account team to enable it.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same comment as before, we shouldn't mention entitlements

Comment on lines 32 to 34
:::note[Closed beta]
This feature is in closed beta. Contact your account team to request access.
:::

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
:::note[Closed beta]
This feature is in closed beta. Contact your account team to request access.
:::

Shouldn't we remove this now it's GA?

If not, let's change the box to:

:::note

@esomoza-cf

Copy link
Copy Markdown
Collaborator Author

Thanks for the review @hannes-cf — all comments addressed in b22e448:

  • Removed the Closed beta note from the overview (agreed, it's GA). Heads-up: DNS: Private Origins GA labels and changelog #34641 also strips beta boxes folder-wide, so that PR's rebase will drop this hunk.
  • Reworded the Private Origins + Unified Routing bullets to "is available for your account" in the overview, and removed entitlement wording from private-network-routing and all three setup guides, using your suggested text where provided.
  • Removed titles from both caution boxes per docs convention.
  • The "To get started" line already matched your suggested wording, so no change was needed there.

One for your call: troubleshooting.mdx still says "your account does not have the Private Origins entitlement" (line 24) because it describes an actual error message customers see. Left as-is for accuracy, but happy to align it if you'd rather drop the word there too.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

product:dns Issues or PRs related to DNS size/m

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants