模块 8 — Cloudflare WAN(连接办公室与数据中心)
目标: 把整个站点——办公室、数据中心、云网络——接入 Cloudflare,让其全部流量(不只是装了 WARP 的笔记本)都被路由和保护,从而替代昂贵的 MPLS 线路和站点间 VPN 网状连接。
| 👤 谁来做 | 网络团队(需要路由器/防火墙权限) |
| ⏱️ 用时 | 每站点约 90 分钟 |
| 🎯 完成后你将拥有 | 一个通过冗余隧道接入 Cloudflare 的站点,其流量受你的策略过滤 |
| ✋ 开始前 | 已启用企业版网络附加组件(Cloudflare WAN);站点路由器/防火墙的管理权限;你的 IP 地址规划 |
⚠️ 本模块涉及生产网络。 请安排维护窗口,准备好路由器的控制台访问和回滚方案。先做一个站点。
流程:(0) MSS 预处理 →(A) 选择入口匝道 →(B) 建立隧道 →(C) 路由 →(D) 安全 →(E) 测试与故障切换。
0 部分 — 预处理:MSS 钳制(别跳过!)
由于 Cloudflare 会在你的数据包外再套一层报头,大数据包可能被悄悄丢弃,除非你在边缘设备上限制 TCP 段大小(MSS)。
在隧道启用之前,在你的路由器/防火墙上设置:
| 隧道类型 | 将 MSS 设为 |
|---|---|
| GRE | 1436 字节 |
| IPsec | 1360 字节 |
示例(Cisco):ip tcp adjust-mss 1436 · (Juniper):set … tcp-mss 1436
⚠️ 忘记这步的典型症状: 普通 http:// 站点正常,但 https:// 站点卡住或超时。之后若遇到此现象,回到这里。
A 部分 — 选择你的入口匝道
决定每个站点如何连接:
| 入口匝道 | 适用于 | 说明 |
|---|---|---|
| Cloudflare WAN Connector | 分支办公室、最简单 | 一个小型 Cloudflare 设备(硬件或虚拟);近乎零接触 |
| IPsec 隧道 | 已有防火墙/路由器的站点 | 加密;支持动态路由(BGP) |
| GRE 隧道 | 数据中心、高吞吐 | 不加密;支持 BGP |
| CNI(直连) | 私有高带宽链路 | 物理/虚拟交叉连接 |
| 云(MNC) | AWS/Azure/GCP VPC | 自动化云入口匝道 |
本模块演示 IPsec 隧道(与现有防火墙搭配最常见)。GRE 几乎相同。
B 部分 — 建立隧道(带冗余)
⭐ 始终从两台不同的路由器建立两条隧道。 Cloudflare 一侧是“任播(anycast)”——一条隧道就已触达所有 Cloudflare 位置——因此冗余是为了防止你这边的硬件故障。
B1 步 — 在 Cloudflare 中创建第一条 IPsec 隧道
- 👉 在控制台前往 Cloudflare WAN → Configuration → Tunnels。
- 👉 点击 Create → IPsec tunnel。
- ⌨️ 填入:
字段 取值 Tunnel name hq-london-fw1Customer endpoint 你防火墙的公网 IP(若在 NAT 后则留空) Cloudflare endpoint Cloudflare 分配给你的任播 IP Interface address Cloudflare 为隧道提供的小段(如 /31)Pre-shared key (PSK) 点击生成,或粘贴你自己的——安全保存 Health check 开启(推荐) - 👉 点击 Save。
B2 步 — 在你的防火墙上匹配这些设置
在你的设备上创建对应的 IPsec 隧道,使用完全相同的:
| 参数 | 取值 |
|---|---|
| IKE 版本 | IKEv2(仅) |
| Phase 1 & 2 加密 | AES-256-GCM-16 |
| Phase 1 & 2 完整性 / PRF | SHA2-256 |
| Phase 1 & 2 DH group(PFS) | Group 20 |
| 预共享密钥 | 来自 B1 的 PSK |
| Cloudflare 对端 IP | 来自 B1 的任播端点 |
(UDP 500→4500 的 NAT 穿越会自动处理。)
B3 步 — 为第二条隧道重复
👉 在你的第二台路由器上创建 hq-london-fw2,并在 Cloudflare 中创建对应的第二条隧道。
✅ 检查点: 在 Cloudflare WAN → Tunnels 中,两条隧道都显示 Healthy(健康检查通过)。
C 部分 — 告诉 Cloudflare 你的网络如何路由
- 👉 Cloudflare WAN → Configuration → Routes。
- 选择你的方式:
方式 1 — 静态路由(简单、稳定的站点)
- 👉 点击 Create route。
- ⌨️ 填入:
字段 取值 Prefix 你站点的网段,如 10.10.0.0/16Tunnel / next hop hq-london-fw1Priority 100(越小越优先)Weight 用于两条隧道间的负载分担(ECMP) - 👉 再添加一条经
hq-london-fw2的路由(如优先级也设100做负载分担,或设200作备用)。
方式 2 — BGP(多站点/易变环境推荐)
- 👉 在隧道上启用 BGP,配置 eBGP 对等体:你路由器的 ASN、Cloudflare 的 ASN,以及 MD5 密码。
- 📺 路由现在会自动交换——在站点添加一个网段就会自动传播,无需改控制台。
⚠️ 注意: 规划好你的 IP 空间。 若两个站点使用重叠网段(如都用 192.168.1.0/24),Cloudflare WAN 路由会中断。请重新编址或使用唯一网段。
✅ 检查点: 你的站点网段出现在 Magic 路由表中,可经隧道到达。
D 部分 — 添加安全并把流量送往 Gateway
- 对网络流量做防火墙: 👉 前往 Magic Firewall → Create rule,在网络层(L3/L4)允许/拒绝流量。⚠️ 在你添加规则前,这些网络流量是不过滤的。
- 把你的 Web 策略应用到整个站点: 把站点去往互联网的流量经 Gateway 路由,让模块 5–6 的 DNS/HTTP/DLP 策略保护站点上的每台设备——即使它没装 WARP。
- 获取告警: 👉 Cloudflare Notifications → Add → Magic Tunnel Health → 选择你的隧道 → 添加接收人,以便在用户察觉前你就先知道隧道问题。
E 部分 — 测试并验证故障切换
测试 1 — 连通性
- 👉 从站点内(隧道后)的一台机器,访问隧道另一端的资源(另一站点,或经 Cloudflare 上网)。
- 👉 运行
curl http://ifconfig.me和curl https://ifconfig.me。 - 📺 两者都应快速返回。若只有
http正常而https卡住 → 你的 MSS 钳制设错了(0 部分)。
测试 2 — 故障切换
- 👉 在受控测试中禁用第一条隧道(或让路由器 1 下线)。
- 📺 流量应在数秒内重新收敛到第二条隧道;控制台把隧道 1 标为不健康。
- 👉 重新启用并确认它恢复。
✅ 检查点: 站点连通正常、HTTPS 健康(MSS 正确)、故障切换有效,且站点流量受 Gateway 过滤。🎉
✅ 模块 8 完成!
你现在拥有:
- ✅ 正确设置的 MSS 钳制
- ✅ 显示健康的冗余隧道(两台路由器)
- ✅ 配置好的路由(静态或 BGP),且 IP 规划清晰
- ✅ Magic Firewall 规则 + 站点流量经 Gateway
- ✅ 经验证的连通性与故障切换,外加健康告警
快速排障
| 问题 | 解决办法 |
|---|---|
https:// 卡住、http:// 正常 |
MSS 钳制设错——GRE 1436 / IPsec 1360(0 部分) |
| 隧道起不来 | Phase 1/2 设置不匹配——复查 IKEv2 / AES-256-GCM-16 / SHA2-256 / DH 20(B2 步) |
| 隧道通了但没流量 | 路由缺失/错误,或网段重叠(C 部分) |
| 间歇性丢包 | 非对称路由或 MTU 不匹配——核对两条隧道的路由与 MSS |
| 网络流量未过滤 | 添加 Magic Firewall 规则和/或路由到 Gateway(D 部分) |
🏁 你已完成整个上手流程!
回到**总清单**,确认每一项都已打勾。最后的上线事项:
- [ ] 日志推送到你的 SIEM(Logpush)
- [ ] 试点验证通过,已扩大到全公司
- [ ] 已迁移应用的旧 VPN 已下线
- [ ] 为任何 IdP 客户端密钥/证书设置续期提醒
恭喜——你已端到端部署了 Cloudflare Zero Trust。🎉