本教程提供了关于如何将 Cloudflare WAN(前称 Magic WAN)连接到 Microsoft Azure Virtual WAN 虚拟中心(Hub)的信息。
您需要在您的 Azure 账户中已创建资源组、虚拟网络和虚拟机。请参阅 Microsoft 文档 ↗以了解有关如何创建这些资源的更多信息。
要通过虚拟 WAN 中心将一个或多个 VNet 连接到 Cloudflare WAN,您首先需要创建一个代表您 Azure 网络的虚拟 WAN (vWAN) 资源。如果您已经拥有一个希望连接到 Cloudflare WAN 的 vWAN,请继续执行下一步。请参阅 Microsoft 文档 ↗以了解更多信息。
- 在 Azure 门户中,转到您的 Virtual WANs(虚拟 WAN) 页面。
- 选择创建 Virtual WAN 的选项。
- 创建一个将 Type(类型) 设置为 Standard(标准) 的虚拟 WAN。
使用传统的轴辐式架构术语,部署在 vWAN 内的虚拟 WAN 中心(Virtual WAN Hub)是您的 VNet 和 Cloudflare WAN 作为“辐条(Spokes)”连接到的“中心(Hub)”。在此步骤中部署的 vWAN 中心将包含一个用于连接到 Cloudflare WAN 的 VPN 网关。
- 创建 Virtual WAN Hub(虚拟 WAN 中心)。
- 在 **Basics(基本信息)**中:
- 选择您的资源组以及所需的区域、容量和中心路由偏好。Microsoft 建议使用默认的中心路由偏好 ExpressRoute,除非您有特定的需要来更改此设置。请参阅 Microsoft 文档 ↗以了解有关 Azure 中心路由偏好的更多信息。
- 配置 Hub Private Address Space(中心私有地址空间)。选择一个子网掩码为
/24或更大 ↗且不与您希望挂载到 vWAN 中心的任何 VNet 的地址空间重叠的地址空间,也不要与您的任何 Cloudflare WAN 站点重叠。
- 在 **Site to Site(站点到站点)**中:
- 在 Do you want to create a Site to site (VPN gateway)?(是否要创建站点到站点 (VPN 网关)?) 中选择 Yes(是)。
- 选择您所需的 Gateway scale units(网关缩放单元) 和 Routing Preference(路由偏好)。请参阅 Microsoft 文档 ↗以了解有关 Azure 路由偏好的更多信息。
- 选择 Create(创建)。请注意,vWAN 中心和 VPN 网关的部署时间可能需要 30 分钟或更长时间。
- VPN 网关完成预配后,转到 Virtual WAN > Hubs(中心) > 你的虚拟中心 > Connectivity(连接) > VPN (Site to site)(VPN(站点到站点))。
- 在 Essentials(基本信息) 下拉菜单中,选择列出的 VPN 网关。
- 选择该 VPN 网关的 JSON 视图,并记下路径
properties.ipConfigurations[0].publicIpAddress和properties.ipConfigurations[1].publicIpAddress下的 JSON 属性。这些将是为 Cloudflare WAN 配置 IPsec 隧道时所需的客户方端点。
VPN 站点代表您的 Azure vWAN 可以通过 VPN 连接到达的远程站点。这通常是本地物理位置。在本例中,VPN 站点代表 Cloudflare WAN。
- 转到 Virtual WAN > VPN sites(VPN 站点) > Create site(创建站点)。
- 在 Basics(基本信息) 中:
- 配置您所需的区域和名称。
- 将 **Device vendor(设备供应商)**配置为 Cloudflare。
- 在 Private address space(私有地址空间) 中,指定您希望从 vWAN 通过 Cloudflare WAN 访问的地址范围。这可以包括连接到您 Cloudflare WAN 的其他私有网络,或者如果您希望互联网出口流量穿过 Cloudflare WAN(即被 Cloudflare Gateway 扫描),则可以使用默认路由(
0.0.0.0/0)。地址空间可在创建 VPN 站点后进行修改。
- 在 **Links(链接)**中:
- 配置单个链接。为您的链接提供名称、速度(以 Mbps 为单位)和提供商名称(此处输入
Cloudflare)。对于 Link IP address(链接 IP 地址),输入您的 Cloudflare Anycast 地址。BGP address(BGP 地址) 和 ASN 字段应留空。在撰写本教程时,暂不支持 BGP。
- 配置单个链接。为您的链接提供名称、速度(以 Mbps 为单位)和提供商名称(此处输入
- 选择 Create(创建)。
Cloudflare WAN 使用隧道健康检查来监控隧道是否可用。
隧道健康检查利用了从 IPsec 隧道 Cloudflare 侧发送到远程端点 (Azure) 的 ICMP 探测包。探测包从隧道的接口地址发送,您需要在两个地方指定该地址:
- Cloudflare 仪表板:在您的 IPsec 隧道配置中,作为虚拟隧道接口 (VTI) 的地址(以便 Cloudflare 知道从哪个地址发送探测)。Cloudflare 要求此地址采用带有
/31子网掩码的 CIDR 表示法。 - Azure 门户:在您的 VPN 站点的地址空间中(以便 Azure 将探测响应路由回隧道)。Azure 要求此地址采用带有
/32子网掩码的 CIDR 表示法。
Cloudflare 建议您为每个 IPsec 隧道选择一个唯一的 /31 子网(RFC 1918 — 专用互联网的地址分配 ↗),该子网被视为点对点链路,并提供了满足这两个要求的理想寻址方案。
示例:
- 选择
169.254.251.137/31作为您的点对点链路子网。 - 在 Cloudflare 仪表板中,将
169.254.251.137/31设置为隧道的 IPv4 接口地址。(参阅下方的配置 Cloudflare WAN。) - 在 Azure 门户中,将
169.254.251.137/32添加到您 VPN 站点的**Private address space(私有地址空间)**中。
要配置本地网络网关 (Local Network Gateway) 的地址空间以支持隧道健康检查:
- 转到 Virtual WAN > VPN sites(VPN 站点) > 你的 VPN 站点 > Edit site(编辑站点) 来编辑在上一节中配置的 VPN 站点。
- 更新 Private address space(私有地址空间) 以包含如上所述的两个 CIDR 表示法
/32子网。当在 vWAN 中心使用 Azure VPN 网关时,单个 VPN 网关连接会映射到两个 Cloudflare WAN IPsec 隧道。因此,我们需要选择两个唯一的/31子网,每个 Cloudflare IPsec 隧道分配一个。然后,将每个/31的高位地址作为/32子网添加到该 VPN 站点的私有地址空间中。 - 选择 Confirm(确认)。
要将您现有的 VNet 连接到新创建的虚拟中心(vHub):
- 转到 Virtual WAN > Virtual network connections(虚拟网络连接),然后选择 Add connection(添加连接)。
- 配置该连接以将所需的 VNet 连接到上面创建的虚拟中心 (vHub)。
- 确保在连接的 **Routing configuration(路由配置)**内:
- **Propagate to none(不传播)**设置为 No(否)。
- **Bypass Next Hop IP for workloads within this VNet(对此 VNet 中的工作负载绕过下一跳 IP)**设置为 No(否)
- 且 **Propagate static route(传播静态路由)**设置为 Yes(是)。
- 选择 Create(创建)。
当将您的 Azure vHub VPN 网关连接到 Cloudflare WAN 时,您需要创建两个 Cloudflare WAN IPsec 隧道,以映射到上面创建的单个 Azure VPN 网关连接。这是因为 Azure VPN 网关是使用两个公共 IP 地址部署的。
- 在 Cloudflare 仪表板中创建一个IPsec 隧道。
- 确保您具有以下设置:
- 接口地址:添加在“开始 Azure 配置”部分的第 4 步中选择的第一条
/31子网内的高位 IP 地址。请参阅隧道端点以了解更多详情。 - 客户方端点:与您的 Azure VPN 网关相关联的第一条公共 IP。例如,
40.xxx.xxx.xxx。 - Cloudflare 端点:使用分配给您账户的 Cloudflare Anycast 地址之一,可在租用 IP ↗ 中获取。这也将是 Azure 中 VPN 站点对应的 IP 地址。例如,
162.xxx.xxx.xxx。 - 健康检查速率:Medium(默认)。
- 健康检查类型:Reply(默认)。
- 健康检查方向:Bidirectional(默认)。
- 健康检查目标:自定义(Custom),并输入客户方端点。
- 稍后添加预共享密钥:选择此选项以创建一个稍后将在 Azure 中使用的 PSK。
- 重放保护:启用。
- 接口地址:添加在“开始 Azure 配置”部分的第 4 步中选择的第一条
- 编辑隧道。生成新的预共享密钥,并将该密钥复制到安全位置。
- 为您的 Azure 虚拟网络子网创建静态路由,指定新创建的隧道作为下一跳。
- 在 Cloudflare 仪表板中创建第二个 IPsec 隧道。复制第一个隧道的配置,但有以下例外:
- 接口地址:添加在“开始 Azure 配置”部分的第 4 步中选择的第二条
/31子网内的高位 IP 地址。 - 客户方端点:与您的 Azure VPN 网关相关联的第二条公共 IP。
- 健康检查目标:将新的客户方端点输入为自定义目标。
- 使用我自己的预共享密钥:选择此选项,并输入为第一个隧道生成的密钥。
- 接口地址:添加在“开始 Azure 配置”部分的第 4 步中选择的第二条
- 为您的 Azure 虚拟网络子网创建静态路由,指定新创建的隧道作为下一跳。若要将一条隧道用作主隧道而另一条用作备用隧道,请为主隧道的路由赋予更低的优先级(更小的值)。若要在两条隧道之间进行 ECMP 负载均衡,请为两条路由分配相同的优先级。
要创建 VPN 网关连接:
- 转到 Virtual WAN > Hubs(中心) > 你的虚拟中心 > Connectivity(连接) > VPN (Site to site)(VPN(站点到站点)),然后移除默认的筛选器 Hub association: Connected(中心关联:已连接),以显示上面创建的 VPN site(VPN 站点)。
- 勾选您的 VPN 站点旁边的复选框,然后选择 Connect VPN sites(连接 VPN 站点)。
选择以下设置。这些设置已通过 Cloudflare 的测试。但在设置您的 VPN 连接时,请注意其他配置参数在技术上也是可行的,如 Azure 文档 ↗和 Cloudflare 文档中所述。
-
PSK:提供由 Cloudflare 为您的 IPsec 隧道生成的 PSK。
-
Protocol(协议):IKEv2
-
IPsec:Custom(自定义)
- 以秒为单位的 IPsec SA 生存周期:28800
- IKE 阶段 1
- Encryption(加密):AES256
- Integrity/PRF(完整性/PRF):SHA256
- DH Group(DH 组):ECP384
- IKE 阶段 2 (IPsec)
- IPsec Encryption(IPsec 加密):AES256
- IPsec Integrity(IPsec 完整性):SHA256
- PFS Group(PFS 组):ECP384
- 传播默认路由:禁用
- 使用基于策略的流量选择器:禁用
- 连接模式:仅限发起方
- 配置流量选择器?:已禁用
-
选择 Connect(连接)。