跳转到内容
本站为社区维护的非官方中文翻译,与 Cloudflare, Inc. 无关联。本站不提供账户登录,请勿在任何非官方站点输入您的 Cloudflare 账户信息。官方文档:developers.cloudflare.com

Cloudflare Mesh 的工作原理

最后更新 查看 MarkdownAgent 设置

Cloudflare Mesh 是 Cloudflare 账户中服务和设备使用的专用网络。它为每个已注册参与者分配一个专用地址,并通过 Cloudflare 在参与者之间传输流量。

参与者可以是 Linux 服务器、笔记本电脑、手机或台式机。它们可以通过 TCP、UDP 或 Internet Control Message Protocol (ICMP) 通信,无需公共 IP 地址,也无需向公共互联网公开服务。每个参与者上的 host firewall 仍会控制其接受哪些 Mesh 流量。

连接从 Cloudflare One Client 开始

使用同一个 client 将每个参与者连接到 Cloudflare。

每个参与者都运行 Cloudflare One Client,该 client 会为 Mesh 流量保持与 Cloudflare 的加密连接。Mesh node 在 Linux 服务器、虚拟机或 container 上以 headless 模式运行 client。client device 在笔记本电脑、手机或台式机上运行带用户界面的相同软件。

Cloudflare 从 100.96.0.0/12 为每个参与者分配一个 Mesh IP。这个运营商级 NAT 地址范围 ↗可避免与 10.0.0.0/8 等常见专用地址范围冲突。其他 Cloudflare One 文档将这些地址称为设备 IP;如果默认范围与你的网络冲突,你可以配置自定义 subnet。

任何参与者都可以向其他参与者的 Mesh IP 发起流量,因此设备到设备、设备到服务器和服务器到服务器的连接均可正常工作。client-to-client 连接不需要 Mesh node。

Not connected
Not connected

所有流量都经过 Cloudflare,因此 Gateway 网络策略、设备姿态检查和身份控制可以管理每个连接。连接和访问是相互独立的:参与者可以处于 online 状态,但其流量仍可能被策略阻止。

有关设置说明,请参阅快速入门。

使用 route 将 Mesh 扩展到专用网络

访问无法运行 Cloudflare One Client 的资源。

可以通过 Mesh node 自身的 Mesh IP 直接访问该 node。route 还可以让该 node 后面的资源可达。

  • CIDR route 通过 node 发送 IPv4 或 IPv6 地址范围的流量。
  • Hostname route 通过 node 发送专用或公共 hostname 的流量。
No matching route
No matching route

返回流量也必须通过 Mesh node 路由。有关详细信息,请参阅 Route。

Node 身份和高可用性

在 node host 发生故障时保持路由网络可用。

Mesh node 在 Cloudflare 账户中拥有稳定身份。多个 Linux host 可以注册为该 node 的 replica,并通告相同的 route。一个 replica 处于 active 状态,其他 replica 则保持 standby。如果 active replica 断开连接,Cloudflare 会提升一个 standby replica,用于传输发往已通告 CIDR route 的流量。

Replica A active
Replica A active

高可用性保护路由 prefix,而不保护对 replica Mesh IP 的直接访问。有关详细信息,请参阅高可用性。

协议要求

Mesh 默认使用 MASQUE 协议。Hostname route、IPv6 CIDR route 和高可用性需要 MASQUE。如果 Mesh node 的设备 profile 使用 WireGuard,则仅支持参与者直接连接和 IPv4 CIDR route。

Mesh 与 Cloudflare Tunnel 的比较

Mesh 和 Cloudflare Tunnel 都将专用基础设施连接到 Cloudflare。它们使用不同的连接模型:

Cloudflare Mesh Cloudflare Tunnel
连接模型 参与者可以从任一方向发起流量 client 连接到 cloudflared 后面的资源
寻址 每个参与者都会获得一个 Mesh IP 资源使用已发布的 hostname 或专用 route
连接器 Cloudflare One 客户端 cloudflared
主要用途 设备、服务器和网络之间的专用连接 发布应用程序或路由到专用资源

如果参与者需要任一方向的专用 IP 连接(包括数据库复制和远程管理等长连接),请使用 Mesh。使用 Tunnel 可以发布特定应用程序,或将 client 路由到仅出站 connector 后面的资源。

来自其他 mesh 网络产品?

常见概念与 Cloudflare Mesh 的对应关系如下:

其他产品 Cloudflare Mesh
Mesh 网络或 tailnet 你的 Cloudflare 账户 Mesh 网络
Node 或 peer Mesh node 或 client device
子网路由器 带 CIDR route 的 Mesh node
访问控制列表 Gateway 网络策略和设备姿态
管理控制台 Networking(网络) > Mesh 下的 Cloudflare 仪表板 ↗

与 peer-to-peer 产品不同,Mesh 流量通过 Cloudflare。你可以使用 Cloudflare One 管理策略、姿态和身份。

开始构建

选择要连接的参与者或网络。

添加 route

通过 Mesh node 访问专用 subnet 和 hostname。

相关资源

这篇文档对您有帮助吗?