IBM Cloud Docs
管理 VPN 路由

管理 VPN 路由

每个客户机到站点 VPN 都使用路由表来列示网络流量定向到的目标网络路由。 要指定哪些客户机有权访问目标网络,请为每个客户机到站点 VPN 路由配置授权规则。

专用 IP 不是静态的,可以随时更改。 请勿创建路由并尝试使用专用 IP 地址。

在客户机到站点 VPN 上使用分割隧道

在拆分隧道配置中建立 VPN 时,会将客户机到站点 VPN 服务器路由表中的所有路由添加到客户机路由表中。 如果稍后添加路由,那么必须重置连接,以确保将新路由传递到客户机。

要避免路由耗尽,请先记下客户机设备的路由容量,然后再修改客户机到站点 VPN 服务器路由表。

在控制台中创建路由

通过创建路由来指定目标网络流量的定向方式。 要创建路由,VPN 客户端服务器必须具有运行状况状态 "Healthy" 和服务器状态 "Stable"。

添加 0.0.0.0/0 作为使客户机能够访问因特网的路径。

  1. 从浏览器打开 IBM Cloud 控制台并登录账户。
  2. 选择导航菜单 导航菜单图标,然后单击基础设施 VPC 图标 > 网络 > VPN
  3. 选择 客户机到站点服务器 选项卡。
  4. 选择要在其中添加路由的 VPN 服务器。 然后,选择 VPN 服务器路由 选项卡。
  5. 选择创建 +
  6. 为路线命名
  7. 指定目标网络的目标 CIDR 范围。 例如:
    • 对于因特网访问,请输入 0.0.0.0/0
    • 对于本地网络,请输入站点到站点网关连接的 IPv4 CIDR 范围。
    • 对于 VPC 子网,输入 VPC 子网 CIDR。
  8. 选择一项操作:
    • 交付-当路由目标位于 VPC 或使用 VPN 网关连接的本地专用子网中时使用。 当 VPN 路由使用“交付”操作时,将保留客户机 IP。
    • 删除-在要阻止来自客户机的流量时使用,以将不需要或不需要的网络流量转发到空或“黑洞”路由。
    • 转换-用于在从 VPN 服务器发送源 IP 之前将其转换为 VPN 服务器专用 IP,从而使 VPN 客户机 IP 对目标设备不可见。
  9. 单击创建

您可以从 VPN 服务器路由的“操作”菜单中选择 编辑 以更改路由的名称。

在控制台中删除路由

要使用 UI 删除路由,请执行以下步骤:

  1. 从浏览器打开 IBM Cloud 控制台并登录账户。
  2. 选择导航菜单 导航菜单图标,然后单击基础设施 VPC 图标 > 网络 > VPN
  3. 选择 客户机到站点服务器 选项卡。
  4. 选择要在其中删除路由的 VPN 服务器。 然后,从“操作”菜单中选择 删除
  5. 再次选择 删除 以确认删除。

通过 CLI 创建路由

开始之前,请 设置 CLI 环境

要从 CLI 创建 VPN 服务器路由,请输入以下命令:

ibmcloud is vpn-server-route-create VPN_SERVER_ID --destination DESTINATION_CIDR [--action translate | deliver | drop] [--name NAME] [--output JSON] [-q, --quiet]

其中:

  • VPN_SERVER_ID: VPN 服务器的标识。
    • -action(动作 ):对匹配路由的数据包执行的操作。 下列其中一项: translate拯救者drop。(缺省值: 拯救人)。
    • -destination(目的地 ):是 VPN 服务器中该 VPN 路由要使用的目的地。 在 VPN 服务器中必须是唯一的。 如果传入的数据包与任何目的地不匹配,就会被丢弃。
  • -- name:VPN 路由的名称。
  • -- output: 指定输出格式,仅支持 JSON。 JSON 之一。
  • -q, --quiet: 禁止冗长输出。

例如:

  • ibmcloud is vpn-server-route-create r006-77e21079-7291-44c2-866a-8f1848bc10f0 --name myroute --action deliver --destination 10.0.0.0/24

  • ibmcloud is vpn-server-route-create r006-77e21079-7291-44c2-866a-8f1848bc10f0 --name myroute --action drop --destination 10.0.0.0/24

从 CLI 更新路由

要从 CLI 更新 VPN 服务器路由,请输入以下命令:

ibmcloud is vpn-server-route-update VPN_SERVER_ID ROUTE_ID [--name NAME] [--output JSON] [-q, --quiet]

其中:

  • VPN_SERVER_ID: VPN 服务器的标识。
  • ROUTE_ID:VPN 路由的标识。
    • -name:VPN 路由的新名称。
  • -- output: 指定输出格式,仅支持 JSON。 JSON 之一。
  • -q, --quiet: 禁止冗长输出。

例如:

ibmcloud is vpn-server-route-update r006-77e21079-7291-44c2-866a-8f1848bc10f0 1233a60b-fc95-4dbc-96ab-a976b723bfb0 --name myroute

从 CLI 查看 VPN 路由详细信息

要查看 VPN 路由的详细信息,请输入以下命令:

ibmcloud is vpn-server-route VPN_SERVER_ID ROUTE_ID [--output JSON] [-q, --quiet]

其中:

  • VPN_SERVER_ID: VPN 服务器的标识。
  • ROUTE_ID:VPN 路由的标识。
  • -- output: 指定输出格式,仅支持 JSON。 JSON 之一。
  • -q, --quiet: 禁止冗长输出。

使用 CLI 查看所有路由

开始之前,请 设置 CLI 环境

要从 CLI 查看 VPN 服务器的 VPN 服务器路由列表,请输入以下命令:

ibmcloud is vpn-server-routes VPN_SERVER_ID [--resource-group-id RESOURCE_GROUP_ID | --resource-group-name RESOURCE_GROUP_NAME | --all-resource-groups] [--output JSON] [-q, --quiet]

其中:

  • VPN_SERVER_ID: VPN 服务器的标识。
    • -资源组 ID:资源组的 ID。 该选项与 --resource-group-name 互斥。
    • -resource-group-name:资源组名称。 该选项与 --resource-group-id 相互排斥。
  • --all-resource-groups: 查询所有资源组。
  • -- output: 指定输出格式,仅支持 JSON。 JSON 之一。
  • -q, --quiet: 禁止冗长输出。

使用 CLI 删除路由

要从 CLI 中删除 VPN 服务器路由,请输入以下命令:

ibmcloud is vpn-server-route-delete VPN_SERVER_ID (ROUTE_ID1 ROUTE_ID2 ...) [--output JSON] [-f, --force] [-q, --quiet]

其中:

  • VPN_SERVER_ID: VPN 服务器的标识。
  • ROUTE_ID1:VPN 路由的标识。
  • ROUTE_ID2:VPN 路由的标识。
  • -- output: 指定输出格式,仅支持 JSON。 JSON 之一。
    • -force, -f: 无需确认即可执行操作。
  • -q, --quiet: 禁止冗长输出。

使用 API 创建路由

要使用 API 在 VPN 服务器上创建 VPN 路由,请执行以下步骤:

  1. 使用正确的变量设置 API 环境

  2. /vpn_servers/{vpn_server_id}/routes 执行 POST。

       curl -X POST "$vpc_api_endpoint/v1/vpn_servers/$vpn_server_id/routes?version=$api_version&generation=2" \
         -H "Authorization: $iam_token" \
         -d '{
            "name":"my-route-1",
             "destination": "10.10.10.0/24",
             "action": "translate"
          }'
    

使用 API 更新路由

要使用 API 更新 VPN 服务器上的路由,请执行以下步骤:

  1. 使用正确的变量设置 API 环境

  2. /vpn_servers/{vpn_server_id}/routes/{id} 上执行 PATCH

       curl -X PUT "$vpc_api_endpoint/v1/vpn_servers/$vpn_server_id/routes/$route_id?version=$api_version&generation=2" \
         -H "Authorization: $iam_token" \
         -d '{
            "name":"new-route-name"
          }'
    

使用 API 查看路由

要使用 API 查看 VPN 服务器上的路由,请执行以下步骤:

  1. 使用正确的变量设置 API 环境

  2. 启动所有变量时,请列出您的路径:

    curl -sS -X GET \
    -H "Authorization: $iam_token" \
    "$vpc_api_endpoint/v1/vpn_servers/$vpn_server_id/routes?version=$api_version&generation=2" | jq
    

    jq jq 可能不会预装在创建实例时可用的所有 VPC 映像 。 在使用前,您可能需要安装 jq 或使用您选择的其他解析器。

  3. /vpn_servers/{vpn_server_id}/routes/{id} 执行 GET。 有关详细信息,请参阅 list_vpn-server_routes

    curl -sS -X GET \
    -H "Authorization: $iam_token" \
    "$vpc_api_endpoint/v1/vpn_servers/$vpn_server_id/routes/$route_id?version=$api_version&generation=2" | jq
    

使用 API 删除路由

要使用 API 删除 VPN 服务器上的路由,请执行以下步骤:

  1. 使用正确的变量设置 API 环境

  2. /vpn_servers/{vpn_server_id}/routes/{id} 执行 DELETE。

    curl -sS -X DELETE \
    -H "Authorization: $iam_token" \
    "$vpc_api_endpoint/v1/vpn_servers/$vpn_server_id/routes/$route_id?version=$api_version&generation=2"