IBM Cloud Docs
创建 GRE 隧道连接

创建 GRE 隧道连接

您可以使用通用路由封装 (GRE) 隧道传输网关连接来连接端点。 此连接允许 Transit Gateway 连接到经典基础架构资源上托管的覆盖网络。

现在不推荐使用这种形式的 GRE 隧道,我们建议改为使用未绑定的 GRE 隧道。 未绑定的 GRE 隧道提供以下优点:

  • 从经典连接接收经典网络子网的能力。
  • 通过同一可用性区域中同一传输网关上的其他未绑定 GRE 隧道进行通信的能力。
  • 在 Transit Gateway 上不需要经典连接。 因此,经典网络的子网将不会向中转网关上的连接发布广告 (反之亦然)。

有关更多信息,请参阅 创建未绑定的 GRE 隧道

要将 GRE 隧道迁移到未绑定的 GRE 隧道,需要先删除任何现有 GRE 隧道,然后再创建新的未绑定的 GRE 隧道。 迁移还将对使用旧 GRE 隧道的任何对象造成网络中断,直到您创建新的 GRE 隧道为止。

要从 GRE 隧道迁移到未绑定的 GRE 隧道:

  1. 收集现有 GRE 隧道的配置信息,以便在新的未绑定 GRE 隧道上使用。

  2. 删除旧的 GRE 隧道

  3. 如有必要,删除任何经典连接。

    如果经典连接被其他 GRE 隧道使用,则无法删除。

  4. 创建新的未绑定 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) 隧道连接时,可以为资源指定以下参数引用:

创建 GRE 的 Terraform 参数引用
参数 详细信息
base_connection_id
可选
强制使用新资源
字符串
配置隧道的 network_type classic 连接的标识。
此字段仅适用于网络类型 gre_tunnel 连接。
gateway
必需
强制使用新资源
字符串
输入 Transit Gateway 标识。
local_gateway_ip
可选
强制使用新资源
字符串
本地网关 IP 地址。
此字段是必需的,并且仅适用于 gre_tunnelunbound_gre_tunnel 连接类型。
local_tunnel_ip
可选
强制使用新资源
字符串
本地隧道 IP 地址。
此字段对于 gre_tunnelunbound_gre_tunnel 类型的连接是必需的,并且仅适用于这些连接。
name
可选
字符串
输入名称。 如果未提供名称,那么将根据网络类型 (例如 gre_tunnel) 提供缺省名称。
network_type
必需
强制使用新资源
字符串
网络类型。 允许值为 gre_tunnel
remote_bgp_asn
可选
强制使用新资源
整数
远程网络 BGP ASN。 如果未指定,那么将为连接生成此值。
此字段仅适用于 gre_tunnelunbound_gre_tunnel 类型的连接。
remote_gateway_ip
可选
强制使用新资源
字符串
远程网关 IP 地址。 此字段仅适用于 gre_tunnelunbound_gre_tunnel 类型的连接。
remote_tunnel_ip
可选
强制使用新资源
字符串
远程隧道 IP 地址。 此字段仅适用于 gre_tunnelunbound_gre_tunnel 类型的连接。
zone
可选
强制使用新资源
字符串
GRE 隧道的位置。 此字段仅适用于 gre_tunnelunbound_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
}