本教程介绍如何在 Cloudflare WAN(原 Magic WAN)与 Oracle Cloud 站点到站点 VPN 之间配置 IPsec(互联网协议安全)。
您需要一个预共享密钥来建立 IPsec 隧道。您可以使用以下代码生成一个随机密钥:
const a = new Uint8Array(48);
crypto.getRandomValues(a);
let base64String = btoa(String.fromCharCode.apply(null, a));
base64String = base64String.replace(/\+/g, '')
.replace(/\//g, '')
.replace(/=/g, '');
console.log(base64String.substring(0, 32));您可以在 Workers playground ↗ 中试用此代码。
- 前往 Networking(网络)> Customer connectivity(客户连接),选择 Customer-premises equipment(客户驻地设备)。
- 选择 Create CPE(创建 CPE)。
- 选择以下设置(未提及的设置可保持默认值):
- Name(名称):输入名称。
- IP Address(IP 地址):输入您的 Cloudflare anycast IP 地址。
- CPE vendor information(CPE 供应商信息):选择 Other(其他)。
- 选择 Create CPE(创建 CPE)。
- 前往 Networking(网络)> Customer connectivity(客户连接),选择 Dynamic routing gateways(动态路由网关)。
- 选择 Create Dynamic routing gateways(创建动态路由网关)。
- 选择以下设置(未提及的设置可保持默认值):
- Name(名称):输入名称。
- 选择 Create Dynamic routing gateways(创建动态路由网关)。
- 前往 Networking(网络)> Customer connectivity(客户连接),选择 Site-to-Site VPN(站点到站点 VPN)。
- 选择 Create IPsec connection(创建 IPsec 连接)。
- 选择以下设置(未提及的设置可保持默认值):
- Name(名称):输入名称。
- Customer-premises equipment (CPE)(客户驻地设备):选择步骤 1 中创建的 CPE。
- Dynamic routing gateways (DRG)(动态路由网关):选择步骤 2 中创建的 DRG。
- Routes to your on-premises network(到本地网络的路由):输入您想通过 Cloudflare WAN 路由的 CIDR(无类别域间路由)范围。
- Tunnel 1
- Name(名称):输入名称。
- 选择 Provide custom shared secret(提供自定义共享密钥)。
- 输入在前提条件部分创建的预共享密钥。
- IKE (Internet Key Exchange) version(IKE 版本):IKEv2
- Routing type(路由类型):Static routing(静态路由)
- IPv4 inside tunnel interface - CPE(隧道内 IPv4 接口 - CPE):输入 IPsec 隧道 Cloudflare 侧的内部隧道 IP。本示例中为
10.200.1.0/31。 - IPv4 inside tunnel interface - Oracle(隧道内 IPv4 接口 - Oracle):输入 IPsec 隧道 Oracle 侧的内部隧道 IP。本示例中为
10.200.1.1/31,与此隧道的 Cloudflare 侧匹配。- 选择 Show advanced options(显示高级选项)
- 选择 Phase one (ISAKMP) configuration(第一阶段 (ISAKMP) 配置)
- 选择 Set custom configurations(设置自定义配置)
- Custom encryption algorithm(自定义加密算法):AES_256_CBC
- Custom authentication algorithm(自定义身份验证算法):SHA2_256
- Custom Diffie-Hellman group(自定义 Diffie-Hellman 组):GROUP20
- IKE session key lifetime in seconds(IKE 会话密钥生命周期(秒)):86400
- 选择 Phase two (IPsec) configuration(第二阶段 (IPsec) 配置)
- 选择 Set custom configurations(设置自定义配置)
- Custom encryption algorithm(自定义加密算法):AES_256_CBC
- HMAC (Hash-based Message Authentication Code)_SHA2_256_128:HMAC_SHA2_256_128
- IPsec session key lifetime in seconds(IPsec 会话密钥生命周期(秒)):28800
- Perfect forward secrecy Diffie-Hellman group(完美前向保密 Diffie-Hellman 组):GROUP20
- Tunnel 2
- 对 Tunnel 2 重复以上步骤。为 IPv4 inside tunnel interface - CPE(客户端设备) 选择正确的 IP:
10.200.2.0/31,为 IPv4 inside tunnel interface - Oracle(隧道内 IPv4 接口 - Oracle) 选择:10.200.2.1/31
- 对 Tunnel 2 重复以上步骤。为 IPv4 inside tunnel interface - CPE(客户端设备) 选择正确的 IP:
- 选择 Create IPsec connection(创建 IPsec 连接)
配置 Oracle 站点到站点 VPN 连接和隧道后,前往 Cloudflare 仪表板,在 Cloudflare WAN 侧创建对应的 IPsec 隧道和静态路由。
- 参阅 添加隧道了解如何添加 IPsec 隧道。创建 IPsec 隧道时,请确保定义以下设置:
- Tunnel name(隧道名称):输入名称。
- Interface address(接口地址):输入 IPsec 隧道 Cloudflare 侧的内部隧道 IP。本示例中为
10.200.1.0/31。 - Customer endpoint(客户端点):Oracle VPN 公共 IP 地址。
- Cloudflare endpoint(Cloudflare 端点):输入分配给您账户的 Cloudflare anycast IP 地址之一,可在 Leased IPs ↗ 中查看。
- Health check type(运行状况检查类型):Request(请求)
- Health check direction(健康检查方向):Unidirectional(单向)
- Health check target(健康检查目标):Default(默认)
- Pre-shared key(预共享密钥):选择 Use my own pre-shared key(使用我自己的预共享密钥),并输入在前提条件部分创建的预共享密钥。
- Replay protection(重放保护):Enabled(已启用)。
- 选择 Add tunnels(添加隧道)。
- 对 Tunnel 2 重复以上步骤。选择相同的 Cloudflare anycast IP 地址,并为 Interface address(接口地址) 选择正确的 IP:
10.200.2.0/31
Cloudflare WAN 中的静态路由应指向您在 Oracle 虚拟云网络 (VCN) 内创建的相应虚拟机 (VM) 子网。例如,如果您的虚拟机子网为 192.168.192.0/26,则应将其用作静态路由的前缀。
创建静态路由:
- 参阅 创建静态路由了解如何创建路由。
- 在 Prefix(前缀) 中,输入虚拟机的子网。例如,
192.xx.xx.xx/24。 - 在 Tunnel/Next hop(隧道/下一跳) 中,选择上一步创建的 IPsec 隧道。
- 对您创建的第二条 IPsec 隧道重复以上步骤。