IBM Cloud Docs
更新路由表

更新路由表

你可以使用控制台、CLI、API 或 Terraform 更新路由表。

在控制台中更新路由表

要在控制台中更新路由表,请按照以下步骤操作:

  1. 确保查看 限制和准则

  2. IBM Cloud 控制台,选择导航菜单 菜单图标,然后单击基础架构 VPC 图标 > 网络 > 路由表。 此时将显示“VPC 的路由表”页面。

  3. 在表中找到路由表。 您可以:

    • 使用操作菜单 操作菜单 重命名或删除路由表。

    • 单击路由表的名称以查看其详细信息页面。 在“概述”选项卡中,您可以执行以下操作:

      • 单击 添加标记 添加标记,或单击编辑图标 编辑图标 编辑路由表的标记。
      • 点击编辑图标編輯圖標 重命名路由表。
      • 单击操作菜单 操作菜单 删除路由表。
      • 在流量部分中,点击编辑图标編輯圖標 编辑交通配置和管理路线。
      • 在路由部分,管理现有路由,或单击 Create 添加路由。

从 CLI 更新路由表

开始之前,请 设置 CLI 环境

要从 CLI 更新路由表,请运行以下命令:

ibmcloud is vpc-routing-table-update VPC ROUTING_TABLE [--name NEW_NAME] [--direct-link-ingress false | true] [--internet-ingress, --internet false | true] [--transit-gateway-ingress false | true] [--vpc-zone-ingress false | true] [--accept-routes-from-resource-type-filters, --ar-rtf vpn_server | vpn_gateway | --clean-all-accept-routes-from-filters, --cl-arf] [--advertise_routes_to TARGETS] [--output JSON] [-q, --quiet]

其中:

VPC
是 VPC 的 ID 或名称。
ROUTING_TABLE
是 VPC 路由表的 ID 或名称。
--name
是路由表的新名称。
--direct-link-ingress, ``direct-link
可选。 如果设置为 "true",路由表将用于将源自 IBM Cloud Direct Link 的流量路由到此 VPC。 要使路由选择成功,VPC 必须还没有将此属性设置为 "true "的路由表。 其中一个: falsetrue
--internet-ingress, --internet
指示是否使用此路由表来路由来自因特网的流量。 更新为 true 时,如果 VPC 中没有其他路由表已将此属性设置为 true,则会选择该路由表。 更新为 false 会取消选择该路由表。 其中一个: falsetrue
--transit-gateway-ingress, --transit-gateway
如果设置为 "true",则此路由表将用于将来自 Transit Gateway 的流量路由到此 VPC。 要使路由选择成功,VPC 必须还没有将此属性设置为 "true "的路由表。 其中一个: falsetrue
--vpc-zone-ingress, --vpc-zone
如果设置为 "true",则此路由表将用于路由来自此 VPC 中其他区域子网的流量。 要使路由选择成功,VPC 必须还没有将此属性设置为 "true "的路由表。 其中一个: falsetrue
--accept-routes-from-resource-type-filters, --ar-rtf
可以在此路由表中创建路由的以逗号分隔的资源类型过滤器。 移除现有资源过滤器时,将移除来自匹配资源过滤器的资源的所有了解到的路由。 vpn_servervpn_gateway 之一。
--clean-all-accept-routes-from-filters, --cl-arf
从过滤器中除去所有接受路由,并从路由表中删除所有了解到的路由。
--advertise_routes_to TARGETS
是此路由表中路由的广告目标的逗号分隔列表。 当前,direct_linktransit_gateway 是允许的值。direct_link 要求将 direct-link-ingress 设置为 truetransit_gateway 要求将 transit—gateway-ingress 设置为 true。 将 publicse 选项设置为 true 的路由表中的所有路由都发布到 "publicse_routes_to" 指定的入口源。
--output
是输出格式。 JSON 之一。
-q, --quiet
禁止详细输出。

具有 交付 操作的路由将被视为 删除,除非下一个中继段是绑定到路由区域中子网上的网络接口的 IP 地址。 因此,如果入局包将路由与因特网绑定 IP 地址的下一个中继段或 VPN 网关连接相匹配,那么将丢弃该包。

您只能在每个 VPC 的一个路由表上将入口选项设置为 true,然后仅当该路由表未连接到任何子网时才可以执行此操作。

CLI 示例

ibmcloud is vpc-routing-table-update 72b27b5c-f4b0-48bb-b954-5becc7c1dcb3 72b27b5c-f4b0-48bb-b954-5becc7c1d456 --name my-renamed-vpc-routing-table --output JSON

ibmcloud is vpc-routing-table-update my-vpc my-vpc-routing-table --name my-renamed-vpc-routing-table --output JSON

ibmcloud is vpc-routing-table-update vpc-doloremque-6364-us-east test-vpc-cli-routing-tb2 --direct-link-ingress true --internet-ingress false --transit-gateway-ingress true --vpc-zone-ingress false

ibmcloud is vpc-routing-table-update 979b4bc6-f018-40a2-92f5-0b1cf777b55d 27415d55-9d3b-4adb-a993-236ef59a45ec --direct-link-ingress false --internet-ingress false --transit-gateway-ingress false --vpc-zone-ingress false

使用 API 更新路由表

要使用 API 创建路由表,请执行以下步骤:

  1. 设置 API 环境

  2. VpcIdRoutingTableId 值存储在要在 API 命令中使用的变量中:

    export VpcId=<your_vpc_id>
    export RoutingTableId=<your_routing_table_id>
    
  3. 更新路由表的名称:

    curl -X PATCH \
    "$vpc_api_endpoint/v1/vpcs/$VpcId/routing_tables/$RoutingTableId?version=$api_version&generation=2" \
    -H "Authorization: ${iam_token}" \
    -d '{
          "name": "test-routing-table-updated"
        }'
    

    更新路由表以用于从因特网路由流量:

    curl -X PATCH \
    "$vpc_api_endpoint/v1/vpcs/$VpcId/routing_tables/$RoutingTableId?version=$api_version&generation=2" \
    -H "Authorization: ${iam_token}" \
    -d '{
          "route_internet_ingress": true
        }'
    

使用 Terraform 更新路由表

要使用 Terraform 更新路由表,请执行以下步骤:

  1. 设置 Terraform 环境

  2. 请使用下面的一个例子:

    • 更新路由表

      resource "ibm_is_vpc_routing_table" "example" {
        vpc                           = ibm_is_vpc.example.id
        name                          = "example-vpc-routing-table"
      }
      
    • 要使用 route-internet-ingress 属性更新现有路由表,请执行以下操作:

      resource "ibm_is_vpc_routing_table" "example" {
        vpc                              = ibm_is_vpc.example.id
        name                             = "example-vpc-routing-table"
        route_internet_ingress           = true
      }
      

      如果 route_internet_ingress 设置为 true,那么此路由表用于路由源自因特网的流量。 要使路由选择成功,VPC 必须还没有将此属性设置为 true 的路由表。

有关 ibm_is_vpc_routing_table 资源的文档,请参阅 Terraform 注册表