跳转到内容
搜索文档

配置路由

最后更新 查看 MarkdownAgent 设置

Cloudflare 虚拟网络 使用路由表将流量从 Cloudflare 的全球网络通过下一跳(next-hop)引导至您连接的网络。您可以通过静态路由配置或从 BGP 对等互连(BGP peering,Beta)中学习到的路由(适用于采用 Dataplane v2 的 CNI 以及 IPsec 和 GRE 隧道)向 Cloudflare 虚拟网络路由表 添加条目。

有关与以下内容相关的所有技术方面的更多信息,请参阅 流量引导(Traffic Steering)

  • 路由的优先级和权重
  • 流量的区域范围划分以降低延迟
  • BGP 对等互连(BGP peering,Beta)

配置静态路由

Cloudflare 虚拟网络(Virtual Network)路由表中允许使用以下 IPv4 地址范围:

  • RFC 1918 地址空间,具体为 10.0.0.0/8172.16.0.0/12192.168.0.0/16

当同时使用 Cloudflare WAN 和 Cloudflare Tunnel 时,在为 Cloudflare WAN 选择静态路由时,请考虑 Cloudflare Tunnel 静态路由中使用的 IP 范围。有关更多信息,请参阅 Cloudflare Tunnel

对于 RFC 1918 之外的前缀,请联系您的 Cloudflare 客户服务经理。

创建静态路由

  1. 登录 Cloudflare One,然后转到 Networks(网络)
  2. 转到 Routes(路由) > WAN Routes(WAN 路由),然后选择 Create(创建) 以添加新路由。
  1. Description(描述) 中为您的路由输入描述性名称。

  2. Prefix(前缀) 中输入您的 IP 地址范围。例如,10.10.10.100/24

  3. Tunnel/Next hop(隧道/下一跳) 中,从您在 配置隧道端点 中创建的隧道中选择一条作为路由。

  4. 选择路由的 Priority(优先级)。数字越低,优先级越高。

  5. (可选)为您的路由选择 Weight(权重)。有关示例,请参阅 设置静态路由的优先级和权重

  6. (可选)如果需要将路由范围限定到特定区域,可以在 Region code(区域代码) 中进行设置。

  7. (可选)我们强烈建议在添加路由之前,通过选择 Test routes(测试路由) 来测试您的路由。

  8. 选择 Add routes(添加路由)

通过 API 创建一个 POST 请求以创建一个或多个静态路由。

示例:

Required API token permissions

At least one of the following token permissions is required:
  • Magic WAN Write
  • Magic Transit Write
Create a Routebash
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/magic/routes" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"nexthop": "<IP_NEXT_HOP>",
		"prefix": "<YOUR_IP_PREFIX>",
		"priority": 0,
		"id": "023e105f4ecef8ad9ca31a8372d0c353",
		"description": "<ROUTE_DESCRIPTION>",
		"scope": {
				"colo_names": [
						"den01"
				],
				"colo_regions": [
						"APAC"
				]
		},
		"weight": 0
	}'
{
  "errors": [
    {
      "code": 1000,
      "message": "message"
    }
  ],
  "messages": [
    {
      "code": 1000,
      "message": "message"
    }
  ],
  "result": {
    "routes": [
      {
        "nexthop": "203.0.113.1",
        "prefix": "192.0.2.0/24",
        "priority": 0,
        "id": "023e105f4ecef8ad9ca31a8372d0c353",
        "description": "New route for new prefix 203.0.113.1",
        "scope": {
          "colo_names": [
            "den01"
          ],
          "colo_regions": [
            "APAC"
          ]
        },
        "weight": 0
      }
    ]
  },
  "success": true
}

编辑静态路由

  1. Routes(路由) > WAN Routes(WAN 路由) 中,找到要修改的路由。
  2. 选择其旁边的三个点 > Edit(编辑)
  1. 输入更新后的路由信息。
  2. (可选)我们强烈建议在添加路由之前,通过选择 Test routes(测试路由) 来测试您的路由。
  3. 选择 Edit routes(编辑路由)

通过 API 创建一个 PUT 请求以更新一个或多个静态路由。

示例:

Required API token permissions

At least one of the following token permissions is required:
  • Magic WAN Write
  • Magic Transit Write
Update Routebash
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/magic/routes/$ROUTE_ID" \
	--request PUT \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"nexthop": "<IP_NEXT_HOP>",
		"prefix": "<YOUR_IP_PREFIX>",
		"priority": 0,
		"id": "023e105f4ecef8ad9ca31a8372d0c353",
		"description": "<ROUTE_DESCRIPTION>",
		"scope": {
				"colo_names": [
						"den01"
				],
				"colo_regions": [
						"APAC"
				]
		},
		"weight": 0
	}'
{
  "errors": [
    {
      "code": 1000,
      "message": "message"
    }
  ],
  "messages": [
    {
      "code": 1000,
      "message": "message"
    }
  ],
  "result": {
    "modified": true,
    "modified_route": {
      "nexthop": "203.0.113.1",
      "prefix": "192.0.2.0/24",
      "priority": 0,
      "id": "023e105f4ecef8ad9ca31a8372d0c353",
      "description": "New route for new prefix 203.0.113.1",
      "scope": {
        "colo_names": [
          "den01"
        ],
        "colo_regions": [
          "APAC"
        ]
      },
      "weight": 0
    }
  },
  "success": true
}

删除静态路由

  1. Routes(路由) > WAN Routes(WAN 路由) 中,找到要删除的静态路由。
  2. 选择其旁边的三个点 > Delete(删除)
  1. 勾选复选框确认该操作,然后选择 Delete(删除)

通过 API 创建一个 DELETE 请求以删除静态路由。

示例:

Required API token permissions

At least one of the following token permissions is required:
  • Magic WAN Write
  • Magic Transit Write
Delete Routebash
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/magic/routes/$ROUTE_ID" \
	--request DELETE \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
{
  "errors": [
    {
      "code": 1000,
      "message": "message"
    }
  ],
  "messages": [
    {
      "code": 1000,
      "message": "message"
    }
  ],
  "result": {
    "deleted": true,
    "deleted_route": {
      "nexthop": "203.0.113.1",
      "prefix": "192.0.2.0/24",
      "priority": 0,
      "id": "023e105f4ecef8ad9ca31a8372d0c353",
      "description": "New route for new prefix 203.0.113.1",
      "scope": {
        "colo_names": [
          "den01"
        ],
        "colo_regions": [
          "APAC"
        ]
      },
      "weight": 0
    }
  },
  "success": true
}

配置自动返回路由(Beta)

自动返回路由(ARR,Beta) 允许 Cloudflare 跟踪来自您已连接的 Cloudflare WAN(前称 Magic WAN)位置的网络流,从而确保返回流量被路由回接收它的连接,而不需要静态或动态路由。此功能需要新的 Unified Routing 模式(Beta)

要启用 ARR:

  1. 遵循 添加隧道 信息,了解如何创建 IPsec 或 GRE 隧道。
  2. 在隧道的选项上,选择 Automatic return routing(自动回程路由)
  3. 选择 Add tunnels(添加隧道) 以保存您的更改。

创建一个 POST 请求,以创建启用了 ARR 的 IPsecGRE 隧道。例如:

Required API token permissions

At least one of the following token permissions is required:
  • Magic WAN Write
  • Magic Transit Write
Create an IPsec tunnelbash
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/magic/ipsec_tunnels" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"cloudflare_endpoint": "<CLOUDFLARE_ENDPOINT>",
		"interface_address": "<INTERFACE_ADDRESS>",
		"name": "IPsec_1",
		"customer_endpoint": "<CUSTOMER_ENDPOINT>",
		"description": "Tunnel for ISP X",
		"psk": "<PSK>",
		"automatic_return_routing": "true"
	}'

配置 BGP 路由

使用以下 on-ramp 时可以使用 BGP 对等互连:

为 BGP 对等互连选择 ASN

Cloudflare 虚拟网络路由表 由客户管理。您可以同时选择 Cloudflare 端的 ASN(自治系统号)和您客户设备的 ASN。客户设备 ASN 可以是 2 字节或 4 字节。

默认情况下,每个 BGP 对等互连会话都使用相同的 Cloudflare 端 ASN 来代表与 Cloudflare 虚拟网络路由表 的对等互连。此 ASN 称为 CF Account ASN(Cloudflare 账户 ASN),并设置为 13335。您可以将其配置为私有 2 字节 ASN(6451265534 之间的任何值,例如 65000)。

设置此 ASN:

  1. 登录 Cloudflare One,然后转到 Networks(网络)
  2. 转到 Routes(路由) > WAN configuration(WAN 配置)
  3. Border Gateway Protocol (BGP) configuration(边界网关协议 (BGP) 配置) 中,选择 Edit(编辑) 并输入您的 ASN。
  4. 选择 Save(保存)

Cloudflare WAN 客户还应注意以下几点:

  • 客户选择其设备 ASN,该 ASN 必须与 Cloudflare 端 ASN 不同。
  • Cloudflare 端 ASN 将包含在向任何启用了 BGP 的 on-ramp(互连、IPsec 或 GRE 隧道)宣告路由的 AS_PATH 中。
  • 客户宣告的 AS_PATH 在 on-ramp 之间是可传递的 —— 这意味着在通过 BGP 从 Cloudflare 接收到的路由的 AS_PATH 中,源(客户)ASN 是可见的。由于默认的 BGP 环路防范机制,路由器将拒绝在 AS_PATH 中包含其自身 ASN 的任何路由。例如,如果两个连接到 Cloudflare WAN 的站点都使用 ASN 65000,则站点 A 将不接受来自站点 B 的路由,反之亦然,因为每个站点都在播发的 AS_PATH 中看到了自己的 ASN。
    若要启用私有网络之间通过 Cloudflare WAN 的路由,您应该采取以下任一措施:
    • 为每个站点/网络分配一个唯一的 ASN,或者
    • 配置您的边缘 CPE,以接受在 AS_PATH 中包含其自身 ASN 的 BGP 路由。

设置 BGP 对等互连

您需要配置两个 ASN:

  • 名为 CF Account ASN(Cloudflare 账户 ASN) 的 Cloudflare 账户范围的 ASN
  • 为您想要配置 BGP 的每个 on-ramp 分配一个 ASN。

如果您已经设置了 Cloudflare 账户 ASN,请跳过下面的第二和第三步。

为互连设置 BGP

  1. 登录 Cloudflare One,然后转到 Networks(网络)
  2. 转到 Routes(路由) > WAN configuration(WAN 配置)
  3. Border Gateway Protocol (BGP) configuration(边界网关协议 (BGP) 配置) 中,选择 Edit ASN(编辑 ASN) 并输入您的 ASN。
  4. 转到 Networks(网络)> Connectors(连接器) > Interconnects(互连)
  1. 找到要配置 BGP 的带有 Dataplane v2 的 CNI 互连 > 选择其旁边的 三个点 > Configure BGP(配置 BGP)
  2. Customer device ASN 中,输入您的网络 ASN。

  3. MD5 key 中,您可以选择输入网络的密钥。请注意,这旨在防止意外的误配置,而不是一种安全机制。

  4. (可选)在 Additional Advertised prefix list 中,输入您想要与现有路由一起播发的任何其他前缀。如果您不想播发额外的路由,请将此项留空。此处配置的典型前缀包括:

    • 指向 0.0.0.0/0(默认路由)的路由 —— 如果使用 Cloudflare WAN with Gateway,这将吸引所有发往互联网的流量。
    • 指向 100.96.0.0/12 的路由 —— 这是 Cloudflare One 客户端默认使用的 CGNAT 空间部分。
  5. 选择 Save(保存)

为 IPsec/GRE 隧道设置 BGP

  1. 登录 Cloudflare One,然后转到 Networks(网络)
  2. 转到 Routes(路由) > WAN configuration(WAN 配置)
  3. Border Gateway Protocol (BGP) configuration(边界网关协议 (BGP) 配置) 中,选择 Edit ASN(编辑 ASN) 并输入您的 ASN。
  4. 转到 Networks(网络)> Connectors(连接器) > Cloudflare WAN
  1. IPsec/GRE tunnels(IPsec/GRE 隧道) 中,找到要配置 BGP 的隧道 > 选择其旁边的 三个点 > Configure BGP(配置 BGP)
  2. Customer device ASN 中,输入您的网络 ASN。

  3. MD5 key 中,您可以选择输入网络的密钥。请注意,这旨在防止意外的误配置,而不是一种安全机制。

  4. (可选)在 Additional Advertised prefix list 中,输入您想要与现有路由一起播发的任何其他前缀。如果您不想播发额外的路由,请将此项留空。此处配置的典型前缀包括:

    • 指向 0.0.0.0/0(默认路由)的路由 —— 如果使用 Cloudflare WAN with Gateway,这将吸引所有发往互联网的流量。
    • 指向 100.96.0.0/12 的路由 —— 这是 Cloudflare One 客户端默认使用的 CGNAT 空间部分。
  5. 选择 Save(保存)

GRE/IPsec 隧道的注意事项

如果您正在为隧道(GRE 或 IPsec)配置 BGP 对等互连,您必须注意以下几点:

  • 您的客户终端设备 (CPE) 必须发起 BGP 对等互连会话。Cloudflare 将不会主动发起。

  • 您的 BGP 说话者(speaker)必须与隧道的 IPv4 接口地址进行对等互连。您的 CPE 可以使用任何 IPv4 地址作为其对等互连连接的本侧地址;它不需要使用来自 /31/30 接口子网的另一个地址。

  • 保持时间(Hold time)必须大于 0 秒(需要 BGP KEEPALIVE 消息)。Cloudflare 建议至少为 45 秒。Cloudflare 为 GRE/IPsec 隧道播发的保持时间为 90 秒。如果您设置的值大于 90 秒,根据 BGP 协商保持时间的标准方式,协商后的保持时间将为 90 秒。

  • 连接重试时间(Connect retry time)应该较低(例如,5 秒或 10 秒)。

  • 您的 CPE 在一个 BGP 会话上最多可以播发 5,000 个前缀。

  • MD5 身份验证是可选的。您最多可以使用 80 个字符。支持的字符包括 a-zA-Z0-9'!@#$%^&*()+[]{}<>/.,;:_-~`= \\|

后续步骤

现在您已经配置了隧道和路由,下一步就是创建站点。

站点(Sites)代表数据中心、办公室或其他物理位置的本地网络,并结合了那里可用的所有 on-ramp。站点还允许您一目了然地检查 on-ramp 的状态并设置健康警报设置,以便 Cloudflare 在站点的 on-ramp 出现问题时通知您。

有关更多信息,请参阅 设置站点

这篇文档对您有帮助吗?