本教程提供了关于如何在 Cloudflare WAN(前称 Magic WAN)与 AWS Transit Gateway 之间配置 IPsec VPN 的信息和示例。
您需要在您的 AWS 账户中创建 AWS Transit Gateway。这用于在您的 AWS 专有网络 (VPC) 和 Cloudflare WAN 之间路由流量。请参阅 AWS 文档 ↗以了解有关创建 Transit Gateway 的更多信息。
此外,您还需要为您 VPC 中的虚拟机 (VM) 配置必要的路由表条目,以及为 Transit Gateway 配置路由表条目。否则,您的 VM 与通过 Cloudflare WAN 路由的另一个 VM 之间的连接将无法正常工作。请参阅 AWS 文档 ↗以了解有关路由表的更多信息。
- 转到 Transit gateways > Transit gateway attachments(Transit Gateway 附件),然后选择 Create transit gateway attachment(创建 Transit Gateway 附件)。
- 从下拉菜单中选择您之前创建的 Transit gateway ID。
- 对于 Attachment type(附件类型),选择 VPN。
- 在 VPN 附件下,选择以下设置(未在此处提及的设置可以保持其默认值):
- Customer Gateway(客户网关):选择 New(新建)。
- IP Address(IP 地址):输入您的 Cloudflare Anycast IP 地址。
- Routing options(路由选项):选择 Static(静态)。
- 选择 Create transit gateway attachment(创建 Transit Gateway 附件)。
-
选择您创建的 VPN 连接 > Download configuration(下载配置)。
-
此操作会下载一个文本文件。在其中搜索 AWS Transit Gateway 分配给您隧道的 IP 范围。第一个 IP 范围应该是 AWS Transit Gateway 使用的那个。使用第二个 IP 范围来在 Cloudflare WAN 中配置您的接口地址。
-
选择您创建的 VPN 连接 > Actions(操作)> Modify VPN tunnel options(修改 VPN 隧道选项)。
-
从 **VPN tunnel outside IP address(VPN 隧道外部 IP 地址)**下拉菜单中,选择其中一个隧道。
-
记下您选择的 IP address(IP 地址),因为这对应于您需要在 IPsec 隧道的 Cloudflare 侧配置的客户方端点 IP。
-
VPN 连接的选项数量将展开。记下 Pre-shared key(预共享密钥)。您在 Cloudflare 侧创建 IPsec 隧道时需要它。
-
在 **Inside IPv4 CIDR(内部 IPv4 CIDR)**中,AWS 要求只能使用
169.254.0.0/16范围内的/30网段。为适应这一点,Cloudflare 支持该 IP 网段的子集。具体而言,Cloudflare 支持将169.254.240.0/20分配为 IPsec 隧道的(内部)接口 IP。本例将使用169.254.244.0/30作为 IPsec 隧道的 CIDR 网段:隧道 AWS 侧为169.254.244.1,隧道 Cloudflare 侧为169.254.244.2。 -
为 IPsec 隧道配置以下设置。请注意,**Startup action(启动操作)**需要设置为 Start,这意味着 AWS 侧将发起 IPsec 协商。此处未提及的设置可以保持其默认设置:
- Phase 1 encryption algorithms(阶段 1 加密算法):
AES256-GCM-16 - Phase 2 encryption algorithms(阶段 2 加密算法):
AES256-GCM-16 - Phase 1 integrity algorithms(阶段 1 完整性算法):
SHA2-256 - Phase 2 integrity algorithms(阶段 2 完整性算法):
SHA2-256 - Phase 1 DH group numbers(阶段 1 DH 组号):
20 - Phase 2 DH group numbers(阶段 2 DH 组号):
20 - IKE Version(IKE 版本):
ikev2 - Startup action(启动操作):Start
- DPD timeout action(DPD 超时操作):
Restart
- Phase 1 encryption algorithms(阶段 1 加密算法):
-
选择 Save changes(保存更改)。
-
重复上述步骤来配置第二个 VPN 连接。使用第二个外部 IP 地址,并且在配置 Cloudflare 侧的隧道时也要对 IP 地址进行相应的更改。
在配置了上述 AWS Transit Gateway VPN 连接和隧道之后,转到 Cloudflare 仪表板,在 Cloudflare WAN 侧创建相应的 IPsec 隧道和静态路由。
- 请参阅添加隧道以了解如何添加 IPsec 隧道。在创建 IPsec 隧道时,确保定义了以下设置:
- Tunnel name(隧道名称):
tunnel01 - Interface address(接口地址):AWS 要求的
/30CIDR 网段(第一个可用 IP 用于 AWS 侧)。例如,169.254.244.2。 - Customer endpoint(客户方端点):来自 AWS VPN 隧道外部 IP 地址的 IP 地址。例如,
35.xx.xx.xx。 - Cloudflare endpoint(Cloudflare 端点):输入您两个 Anycast IP 中的第一个。
- Pre-shared key(预共享密钥):选择 Use my own pre-shared key(使用我自己的预共享密钥),并输入您为 AWS VPN 隧道创建的 PSK。
- Health check type(健康检查类型):选择 Request(请求)
- Health check direction(健康检查方向):选择 Bidirectional(双向)
- Replay protection(重放保护):选择 Enabled(已启用)。
- Tunnel name(隧道名称):
- 选择 Save(保存)。
- 为
tunnel02重复上述步骤。选择相同的前缀,但在 **Tunnel/Next hop(隧道/下一跳)**中选择第二个 IPsec 隧道。
Cloudflare WAN 中的静态路由应该指向您在 AWS 专有网络内部创建的相应虚拟机 (VM) 子网。例如,如果您的 VM 具有 192.168.192.0/26 的子网,您应该使用它作为静态路由的前缀。
要创建静态路由:
- 请参阅创建静态路由以了解如何创建一个。
- 在前缀中,输入您 VM 的子网。例如,
192.xx.xx.xx/24。 - 对于 Tunnel/Next hop(隧道/下一跳),选择您在上一步中创建的 IPsec 隧道。
- 为您创建的第二个 IPsec 隧道重复上述步骤。