添加和除去冗余 GRE 隧道
您可以添加或除去连接到 GRE 冗余连接的隧道。 请记住,至少需要两个 GRE 隧道。
准备工作
在将隧道添加到冗余 GRE 之前,请确保查看常规和冗余 通用路由封装(GRE)注意事项。
在 UI 中向冗余 GRE 添加隧道
在 创建冗余 GRE 时,或者在供应具有冗余 GRE 的现有 Transit Gateway 之后,可以添加隧道。 要向现有冗余 GRE 添加隧道,请执行以下步骤:
-
从浏览器打开 IBM Cloud 控制台并登录账户。
-
从左上角选择导航菜单图标 导航
,然后单击基础架构 > 网络 > Transit Gateway。
-
单击要在其中添加隧道的 Transit Gateway 的名称。
-
在“连接”选项卡式视图中,单击要在其中添加隧道的连接的表行末尾的“操作”菜单
。
如果展开连接的行,那么将列出隧道详细信息及其状态。
-
单击 添加隧道。 您可以添加更多隧道,但每个专区不能超过两个隧道。
-
在“添加隧道”窗口中,选择要在其中创建隧道的可用性区域。 然后,填写以下字段。
为隧道选择区域时,仅 GRE 连接的有效区域显示为选项。
- (可选) 输入远程 BGP ASN,这是您选择的有效 2 或 4 字节值。 如果将此字段留空,那么将分配唯一的 ASN。
- 输入中转网关用于托管 GRE 隧道的底层网络的本地网关 IP。 此用户选择的 IP 地址在创建后在 Transit Gateway GRE 隧道上配置。
- 输入 GRE 隧道端点的远程网关 IP。
- 输入隧道两端的
/30
本地隧道 IP,例如192.168.103.1
。 - 输入隧道两端的
/30
远程隧道 IP,例如192.168.103.2
。 - 输入 GRE 隧道的连接名称。
-
单击添加创建隧道。
在 UI 中从冗余 GRE 除去隧道
要从冗余 GRE 中除去隧道,请执行以下步骤:
-
从浏览器打开 IBM Cloud 控制台并登录账户。
-
从左上角选择导航菜单图标 导航
,然后单击基础架构 > 网络 > Transit Gateway。
-
单击要在其中除去隧道的 Transit Gateway 的名称。
-
在“连接”选项卡式视图中,单击要除去隧道的连接的表行末尾的“操作”菜单
。
如果展开连接的行,那么将列出隧道详细信息及其状态。
-
单击 除去隧道。
-
在“删除 GRE 隧道”窗口中,选择要除去的 GRE 隧道的名称,然后单击 删除。 您无法撤销此操作。
连接连接到冗余 GRE 的隧道不能少于两个。
从 CLI 向冗余 GRE 添加隧道
您可以使用 CLI 选项或 JSON 文件将隧道添加到冗余 GRE。 使用 CLI 选项添加隧道的命令语法如下所示:
ibmcloud tg redundant-gre-tunnel-add|targre GATEWAY_ID REDUNDANT_GRE_ID --name NAME --zone ZONE --local-gateway-ip LOCAL_GATEWAY_IP --local-tunnel-ip LOCAL_TUNNEL_IP --remote-gateway-ip REMOTE_GATEWAY_IP --remote-tunnel-ip REMOTE_TUNNEL_IP [--remote-bgp-asn REMOTE_BGP_ASN] [--output json]
其中:
GATEWAY_ID
- 绑定新连接的网关的标识。
REDUNDANT_GRE_ID
- 冗余 GRE 的标识。
--name
- 新隧道的名称。
--zone
- GRE 隧道的可用性区域。 示例:
us-south-1
--local-gateway-ip
- GRE 隧道连接的本地网关 IP 地址[^ip2]。
--local-tunnel-ip
- GRE 隧道连接的本地隧道 IP 地址。
--remote-gateway-ip
- GRE 隧道连接的远程网关 IP 地址。
--remote-tunnel-ip
- GRE 隧道连接的远程隧道 IP 地址。
--remote-bgp-asn
- 可选: 如果未指定远程 BGP ASN,那么将生成一个。
--output json
- 可选: 指定是否要以 JSON 格式显示输出。
--help | -h
- 可选: 获取有关此命令的帮助。
要添加使用 JSON 文件作为输入的隧道,请输入以下命令:
ibmcloud tg redundant-gre-tunnel-add|targre JSON_FILE_PATH [--output json]
JSON 文件示例:
{
"gateway_id": "47f11b01-471c-47d0-9e84-550c88c94055",
"redundant_gre_id": "83792525-471c-47d0-9e84-jdy830jd",
"name": "unbound_gre_tunnel",
"local_gateway_ip": "192.168.100.1",
"local_tunnel_ip": "192.168.129.2",
"remote_bgp_asn": 65010,
"remote_gateway_ip": "10.242.63.12",
"remote_tunnel_ip": "192.168.129.1",
"zone": {
"name": "us-south-1"
}
}
从 CLI 从冗余 GRE 中除去隧道
要从冗余 GRE 中除去隧道,请输入以下命令:
ibmcloud tg redundant-gre-tunnel-remove|trrgre GATEWAY_ID REDUNDANT_GRE_ID TUNNEL_ID [--force | -f ] [--help | -h]
其中:
GATEWAY_ID
- 绑定连接的网关的标识。
REDUNDANT_GRE_ID
- 冗余 GRE 的标识。
TUNNEL_ID
- 要删除的隧道的 ID。
--force | -f
- 可选: 强制删除而不确认。
--help | -h
- 可选: 获取有关此命令的帮助。
使用 API 将隧道添加到冗余 GRE
您可以使用 API 向现有冗余 GRE 添加隧道。
请求示例
curl -H "Content-Type: application/json" -X POST https://$TS_ENDPOINT/v1/transit_gateways/$GATEWAY_ID/connections/$CONNECTION_ID/tunnels?version=2020-03-31 -H "authorization: Bearer $IAM_TOKEN" -d '{
"local_gateway_ip": "192.168.100.1",
"local_tunnel_ip": "192.168.129.2",
"name": "gre1",
"remote_bgp_asn": 65010,
"remote_gateway_ip": "10.242.63.12",
"remote_tunnel_ip": "192.168.129.1",
"zone": {
"name": "us-south-1"
}
}'
响应示例
{
"name": "gre1",
"id": "47f11b01-471c-47d0-9e84-550c88c94057",
"mtu": 9000,
"status": "up",
"updated_at": "2024-06-10T14:52:54.918Z",
"created_at": "2024-06-10T14:52:54.918Z",
"local_gateway_ip": "192.168.200.1",
"local_tunnel_ip": "192.168.239.2",
"remote_gateway_ip": "10.242.63.12",
"remote_tunnel_ip": "192.168.129.1",
"local_bgp_asn": 64490,
"remote_bgp_asn": 65010,
"zone": {
"name": "us-south-1"
}
}
有关更多信息,请参阅 Transit Gateway API 参考中的 添加到 Transit Gateway。
使用 API 从冗余 GRE 中除去隧道
您可以使用 API 将隧道添加到现有冗余 GRE,只要它具有两个以上的隧道:
curl -X DELETE https://$TS_ENDPOINT/v1/transit_gateways/$GATEWAY_ID/connections/$CONNECTION_ID/tunnels/$TUNNEL_ID?version=2020-03-31 -H "authorization: Bearer $IAM_TOKEN"
删除成功后会返回 HTTP 204
代码,且无响应正文。 有关 API 参数和示例,请参阅 Transit Gateway API 参考资料中的 删除指定的 Transit Gateway 冗余 GRE 隧道。
使用 Terraform 将隧道添加到冗余 GRE
要使用 Terraform,请下载 Terraform CLI 并配置 IBM Cloud 提供者插件。 有关更多信息,请参阅 Terraform 入门。
以下示例说明如何使用 Terraform 添加冗余 GRE 隧道:
resource "ibm_tg_connection_rgre_tunnel" "test_ibm_tg_connection_tunnel" {
gateway = ibm_tg_gateway.test_tg_gateway.id
connection_id = ibm_tg_connection.test_ibm_tg_connection.connection_id
local_gateway_ip = "192.139.200.1"
local_tunnel_ip = "192.178.239.2"
name = "tunnel_name"
remote_gateway_ip = "10.186.203.4"
remote_tunnel_ip = "192.178.239.1"
zone = "us-south-3"
}
有关更多信息,请参阅 Terraform 注册表。
使用 Terraform 从冗余 GRE 中除去隧道
以下示例说明如何使用 Terraform 除去到冗余 GRE 的隧道:
terraform destroy -target=ibm_tg_connection_rgre_tunnel.test_ibm_tg_connection_tunnel
有关更多信息,请参阅 Terraform 注册表。