创建 GRE 隧道连接
您可以使用通用路由封装 (GRE) 隧道传输网关连接来连接端点。 此连接允许 Transit Gateway 连接到经典基础架构资源上托管的覆盖网络。
现在不推荐使用这种形式的 GRE 隧道,我们建议改为使用未绑定的 GRE 隧道。 未绑定的 GRE 隧道提供以下优点:
- 从经典连接接收经典网络子网的能力。
- 通过同一可用性区域中同一传输网关上的其他未绑定 GRE 隧道进行通信的能力。
- 在 Transit Gateway 上不需要经典连接。 因此,经典网络的子网将不会向中转网关上的连接发布广告 (反之亦然)。
有关更多信息,请参阅 创建未绑定的 GRE 隧道。
要将 GRE 隧道迁移到未绑定的 GRE 隧道,需要先删除任何现有 GRE 隧道,然后再创建新的未绑定的 GRE 隧道。 迁移还将对使用旧 GRE 隧道的任何对象造成网络中断,直到您创建新的 GRE 隧道为止。
要从 GRE 隧道迁移到未绑定的 GRE 隧道:
-
收集现有 GRE 隧道的配置信息,以便在新的未绑定 GRE 隧道上使用。
-
如有必要,删除任何经典连接。
如果经典连接被其他 GRE 隧道使用,则无法删除。
Transit Gateway GRE 连接需要网关所有者针对其需求专门配置 HA。 GRE 连接是点到点连接,没有内置冗余,是单点故障。 在 Transit Gateway 上配置 GRE 连接时,必须指定可用性区域。 对于稳健的 HA 解决方案,请使用不同的可用性区域配置多个 GRE 连接。
准备工作
必须先满足以下先决条件,然后才能创建 GRE 隧道连接:
- 请确保您具有现有经典基础架构连接,或者创建一个经典基础架构连接。 有关更多信息,请参阅 添加连接。 GRE 隧道连接仅与经典基础架构上的端点连接。
- 查看 GRE 连接注意事项 以了解其他先决条件。
在 UI 中创建 GRE 隧道连接
只能在 UI 中创建未绑定的 GRE 隧道。 有关更多信息,请参阅 创建未绑定的 GRE 隧道。
从 CLI 创建 GRE 隧道连接
在给定的传输网关上创建通用路由封装 (GRE) 隧道连接。
ibmcloud tg connection-create-gre|ccgre GATEWAY_ID --name NAME --zone ZONE --base-connection-id BASE_CONNECTION_ID --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: 绑定新连接的网关的标识。
-
- -name:新连接的名称。
-
-- zone: GRE 隧道的可用性区域。 示例:
us-south-1
-
--base-connection-id: 将作为 GRE 隧道底层的经典网络连接的标识。
-
--local-gateway-ip: GRE 隧道连接的本地网关 IP 地址。
-
--local-Tunnel-ip: GRE 隧道连接的本地隧道 IP 地址。
-
--remote-gateway-ip: GRE 隧道连接的远程网关 IP 地址。
-
--local-Tunnel-ip: GRE 隧道连接的远程隧道 IP 地址。
-
--remote-bgp-asn: 可选: 如果未指定远程 BGP ASN,那么将生成一个。
-
-- output json: 可选: 显示 JSON 格式的输出。
-
--help |-h:可选:获取该命令的帮助。
示例
创建名为 gre-connection
使用经典连接 9037f710-8dfb-4948-a2bd-847c8dde96d3
作为基本连接的 GRE 隧道连接:
ibmcloud tg connection-create-gre $gateway --name gre-connection --base-connection-id 9037f710-8dfb-9999-a2bd-847c8dde96d3 --zone us-south-2 --local-gateway-ip 192.168.100.1 --local-tunnel-ip 192.168.101.1 --remote-gateway-ip 10.242.63.12 --remote-tunnel-ip 192.168.101.2
使用 API 创建 GRE 隧道连接
请求示例
此示例说明了请求 GRE 连接:
curl -X POST "https://transit.cloud.ibm.com/v1/transit_gateways/test/connections?version=2022-01-27" -H "accept: application/json" -H "Content-Type: application/json" -d "{\"base_connection_id\":\"975f58c1-afe7-469a-9727-7f3d720f2d32\",\"local_gateway_ip\":\"192.168.100.1\",\"local_tunnel_ip\":\"192.168.129.2\",\"name\":\"Transit_Service_BWTN_SJ_DL\",\"network_type\":\"gre_tunnel\",\"remote_bgp_asn\":65010,\"remote_gateway_ip\":\"10.242.63.12\",\"remote_tunnel_ip\":\"192.168.129.1\"}"
该请求的有效载荷如下:
{
"base_connection_id": "975f58c1-afe7-469a-9727-7f3d720f2d32",
"local_gateway_ip": "192.168.100.1",
"local_tunnel_ip": "192.168.129.2",
"name": "Transit_Service_BWTN_SJ_DL",
"network_type": "gre_tunnel",
"remote_bgp_asn": 65010,
"remote_gateway_ip": "10.242.63.12",
"remote_tunnel_ip": "192.168.129.1"
}
响应示例
此示例说明了来自创建 GRE 隧道的响应:
{
"created_at": "2020-03-31T12:08:05Z",
"id": "1a15dca5-7e33-45e1-b7c5-bc690e569531",
"name": "example-connection",
"network_type": "gre_tunnel",
"status": "pending",
"updated_at": "2020-03-31T12:08:05Z"
}
有关更多信息,请参阅 Transit Gateway API 参考中的 添加与 Transit Gateway。
使用 Terraform 创建 GRE 隧道连接
在创建通用路由封装 (GRE) 隧道连接时,可以为资源指定以下参数引用:
参数 | 详细信息 |
---|---|
base_connection_id 可选 强制使用新资源 字符串 |
配置隧道的 network_type classic 连接的标识。此字段仅适用于网络类型 gre_tunnel 连接。 |
gateway 必需 强制使用新资源 字符串 |
输入 Transit Gateway 标识。 |
local_gateway_ip 可选 强制使用新资源 字符串 |
本地网关 IP 地址。 此字段是必需的,并且仅适用于 gre_tunnel 和 unbound_gre_tunnel 连接类型。 |
local_tunnel_ip 可选 强制使用新资源 字符串 |
本地隧道 IP 地址。 此字段对于 gre_tunnel 和 unbound_gre_tunnel 类型的连接是必需的,并且仅适用于这些连接。 |
name 可选 字符串 |
输入名称。 如果未提供名称,那么将根据网络类型 (例如 gre_tunnel ) 提供缺省名称。 |
network_type 必需 强制使用新资源 字符串 |
网络类型。 允许值为 gre_tunnel |
remote_bgp_asn 可选 强制使用新资源 整数 |
远程网络 BGP ASN。 如果未指定,那么将为连接生成此值。 此字段仅适用于 gre_tunnel 和 unbound_gre_tunnel 类型的连接。 |
remote_gateway_ip 可选 强制使用新资源 字符串 |
远程网关 IP 地址。 此字段仅适用于 gre_tunnel 和 unbound_gre_tunnel 类型的连接。 |
remote_tunnel_ip 可选 强制使用新资源 字符串 |
远程隧道 IP 地址。 此字段仅适用于 gre_tunnel 和 unbound_gre_tunnel 类型的连接。 |
zone 可选 强制使用新资源 字符串 |
GRE 隧道的位置。 此字段仅适用于 gre_tunnel 和 unbound_gre_tunnel 类型的连接。 |
示例
此示例说明请求 GRE 隧道连接:
resource "ibm_tg_connection" "test_ibm_tg_connection" {
gateway = ibm_tg_gateway.test_tg_gateway.id
network_type = "gre_tunnel"
name = "myconnection"
base_connection_id = testgretunnel
local_gateway_ip = 192.168.0.1
local_tunnel_ip = 10.0.0.1
remote_bgp_asn = 36361
remote_gateway_ip = 192.168.1.1
remote_tunnel_ip = 10.0.1.1
zone = us-east
}