更新路由表
你可以使用控制台、CLI、API 或 Terraform 更新路由表。
在控制台中更新路由表
要在控制台中更新路由表,请按照以下步骤操作:
-
确保查看 限制和准则。
-
从 IBM Cloud 控制台,选择导航菜单
,然后单击基础架构
> 网络 > 路由表。 此时将显示“VPC 的路由表”页面。
-
在表中找到路由表。 您可以:
-
使用操作菜单 操作
重命名或删除路由表。
-
单击路由表的名称以查看其详细信息页面。 在“概述”选项卡中,您可以执行以下操作:
- 单击 添加标记 添加标记,或单击编辑图标
编辑路由表的标记。
- 点击编辑图标
重命名路由表。
- 单击操作菜单 操作
删除路由表。
- 在流量部分中,点击编辑图标
编辑交通配置和管理路线。
- 在路由部分,管理现有路由,或单击 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 "的路由表。 其中一个: false,true。
--internet-ingress, --internet
- 指示是否使用此路由表来路由来自因特网的流量。 更新为 true 时,如果 VPC 中没有其他路由表已将此属性设置为 true,则会选择该路由表。 更新为 false 会取消选择该路由表。 其中一个: false,true。
--transit-gateway-ingress, --transit-gateway
- 如果设置为 "true",则此路由表将用于将来自 Transit Gateway 的流量路由到此 VPC。 要使路由选择成功,VPC 必须还没有将此属性设置为 "true "的路由表。 其中一个: false,true。
--vpc-zone-ingress, --vpc-zone
- 如果设置为 "true",则此路由表将用于路由来自此 VPC 中其他区域子网的流量。 要使路由选择成功,VPC 必须还没有将此属性设置为 "true "的路由表。 其中一个: 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
- 是此路由表中路由的广告目标的逗号分隔列表。 当前,
direct_link
和transit_gateway
是允许的值。direct_link
要求将direct-link-ingress
设置为 true。transit_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 创建路由表,请执行以下步骤:
-
设置 API 环境。
-
将
VpcId
和RoutingTableId
值存储在要在 API 命令中使用的变量中:export VpcId=<your_vpc_id> export RoutingTableId=<your_routing_table_id>
-
更新路由表的名称:
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 更新路由表,请执行以下步骤:
-
设置 Terraform 环境
-
请使用下面的一个例子:
-
更新路由表
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 注册表。