Magic Transit Virtual Network 使用路由表将流量从 Cloudflare 的全球网络通过下一跳(next-hop)引导至您连接的网络。您可以通过静态路由配置或从 BGP 对等互连(BGP peering,Beta)中学习到的路由(适用于采用 Dataplane v2 的 CNI 以及 IPsec 和 GRE 隧道)向 Magic Transit Virtual Network routing table 添加条目。
有关与以下内容相关的所有技术方面的更多信息,请参阅 流量引导(Traffic Steering):
- 路由的优先级和权重
- 流量的区域范围划分以降低延迟
- BGP 对等互连(BGP peering,Beta)
- 转到 Routes(路由) 页面。
- 在 Routes(路由) 选项卡中,选择 Create route(创建路由),然后选择 WAN 作为路由类型。
-
在 Description(描述) 中为您的路由输入描述性名称。
-
在 Prefix(前缀) 中输入您的 IP 地址范围。例如,
10.10.10.100/24。 在 Tunnel/Next hop(隧道/下一跳) 中,从您在 配置隧道端点 中创建的隧道中选择一条作为路由。
-
选择路由的 Priority(优先级)。数字越低,优先级越高。
(可选)为您的路由选择 Weight(权重)。有关示例,请参阅 设置静态路由的优先级和权重。
-
(可选)如果需要将路由范围限定到特定区域,可以在 Region code(区域代码) 中进行设置。
-
(可选)我们强烈建议在添加路由之前,通过选择 Test routes(测试路由) 来测试您的路由。
-
选择 Add routes(添加路由)。
通过 API 创建一个 POST 请求以创建一个或多个静态路由。
示例:
Required API token permissions
At least one of the following token permissions is required:Magic WAN WriteMagic Transit Write
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
}- 在 Routes(路由) 选项卡中,找到要修改的路由。
- 选择其旁边的三个点 > Edit(编辑)。
- 输入更新后的路由信息。
- (可选)我们强烈建议在添加路由之前,通过选择 Test routes(测试路由) 来测试您的路由。
- 选择 Edit routes(编辑路由)。
通过 API 创建一个 PUT 请求以更新一个或多个静态路由。
示例:
Required API token permissions
At least one of the following token permissions is required:Magic WAN WriteMagic Transit Write
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
}- 在 Routes(路由) 选项卡中,找到要删除的静态路由。
- 选择其旁边的三个点 > Delete(删除)。
- 勾选复选框确认该操作,然后选择 Delete(删除)。
通过 API 创建一个 DELETE 请求以删除静态路由。
示例:
Required API token permissions
At least one of the following token permissions is required:Magic WAN WriteMagic Transit Write
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
}使用以下 on-ramp 时可以使用 BGP 对等互连:
Magic Transit Virtual Network routing table 由客户管理。您可以同时选择 Cloudflare 端的 ASN(自治系统号)和您客户设备的 ASN。客户设备 ASN 可以是 2 字节或 4 字节。Magic Transit 使用的公共 ASN 会在接入过程中进行验证。
默认情况下,每个 BGP 对等互连会话都使用相同的 Cloudflare 端 ASN 来代表与 Magic Transit Virtual Network routing table 的对等互连。此 ASN 称为 CF Account ASN(Cloudflare 账户 ASN),并设置为 13335。您可以将其配置为私有 2 字节 ASN(64512 到 65534 之间的任何值,例如 65000)。
设置此 ASN:
- 转到 Routes 页面。
- 选择 WAN configuration(WAN 配置)。
- 在 CF Account ASN(Cloudflare 账户 ASN) 中输入 Cloudflare 的 ASN。
- 选择 Update(更新)。
Magic Transit 客户还应注意以下几点:
- Cloudflare 端 ASN 永远不会在 Cloudflare 边缘的任播宣告的
AS_PATH中公开。在这些宣告中,Cloudflare 将始终使用13335的 Cloudflare ASN,并且可以选择在前头附加一个自带的 ASN,如 Cloudflare ASN 与您自己的 ASN 的对比 中所述。 - 客户设备 ASN 可以是私有 ASN,或者是他们在边缘进行 Magic Transit 任播宣告所使用的 ASN:这对于 Cloudflare 全球网络边缘任播宣告前缀的 ASN 没有影响。
您需要配置两个 ASN:
- 名为 CF Account ASN(Cloudflare 账户 ASN) 的 Cloudflare 账户范围的 ASN。
- 为您想要配置 BGP 的每个 on-ramp 分配一个 ASN。
如果您已经设置了 Cloudflare 账户 ASN,请跳过下面的第二和第三步。
- 转到 Routes 页面。
- 选择 WAN configuration(WAN 配置)。
- 在 CF Account ASN(Cloudflare 账户 ASN) 中输入 Cloudflare 的 ASN,然后选择 Update(更新)。
- 转到 Interconnects(互连)。
- 找到要配置 BGP 的带有 Dataplane v2 的 CNI 互连 > 选择其旁边的 三个点 > Configure BGP(配置 BGP)。
-
在 Customer device ASN 中,输入您的网络 ASN。
-
在 MD5 key 中,您可以选择输入网络的密钥。请注意,这旨在防止意外的误配置,而不是一种安全机制。
-
(可选)在 Additional Advertised prefix list 中,输入您想要与现有路由一起播发的任何其他前缀。如果您不想播发额外的路由,请将此项留空。此处配置的典型前缀包括:
- 指向
0.0.0.0/0(默认路由)的路由 —— 如果使用 Magic Transit with Egress,这将吸引所有发往互联网的流量。 - 指向
100.96.0.0/12的路由 —— 这是 Cloudflare One 客户端默认使用的 CGNAT 空间部分。
- 指向
-
选择 Save(保存)。
- 转到 Routes 页面。
- 选择 WAN configuration(WAN 配置)。
- 在 CF Account ASN(Cloudflare 账户 ASN) 中输入 Cloudflare 的 ASN,然后选择 Update(更新)。
- 转到 Connectors(连接器)。
- 在 IPsec/GRE tunnels(IPsec/GRE 隧道) 中,找到要配置 BGP 的隧道 > 选择其旁边的 三个点 > Configure BGP(配置 BGP)。
-
在 Customer device ASN 中,输入您的网络 ASN。
-
在 MD5 key 中,您可以选择输入网络的密钥。请注意,这旨在防止意外的误配置,而不是一种安全机制。
-
(可选)在 Additional Advertised prefix list 中,输入您想要与现有路由一起播发的任何其他前缀。如果您不想播发额外的路由,请将此项留空。此处配置的典型前缀包括:
- 指向
0.0.0.0/0(默认路由)的路由 —— 如果使用 Magic Transit with Egress,这将吸引所有发往互联网的流量。 - 指向
100.96.0.0/12的路由 —— 这是 Cloudflare One 客户端默认使用的 CGNAT 空间部分。
- 指向
-
选择 Save(保存)。
如果您正在为隧道(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'!@#$%^&*()+[]{}<>/.,;:_-~`= \\|