向 VPN 网关添加连接

您可以在 创建 VPN 网关 时或在供应一个 VPN 网关之后添加连接。 配置 VPN 连接时,可以选择使用自动协商进行连接,或者使用预定义的定制 IKE 或 IPsec 策略。 有关更多信息,请参阅 关于策略协商

为确保算法选择的一致性,请在 IBM Cloud VPN 网关和对等网关上准确匹配 IKE 和 IPsec 算法及其优先级顺序。 有关影响算法选择的因素的详细信息,请参阅 站点到站点 VPN 连接中如何为 IKE 和 IPsec 选择加密算法?

在控制台中添加连接

要将 VPN 连接添加到现有 VPN 网关,请执行以下步骤:

  1. 高亮显示 VPN 网关表中要处理的网关行,然后从操作菜单操作菜单 操作中单击创建连接

    或者,在网关的详细信息页面上,可以单击“VPN 连接”部分中的 创建

  2. 通过指定以下信息来定义此网关与 VPC 外部网络之间的连接:

    • VPN 连接名称- 输入连接名称,例如 my-connection

    • 连接类型- 选择静态或动态连接类型。

    • 对等网关地址 ——指定 VPC 外部网络的 VPN 网关的 IP 地址。

      配置完 VPN 连接后,您将无法将对等网关地址类型从 IP 地址更改为 FQDN,也无法从 FQDN 更改为 IP 地址。

    • 对等 ASN(仅基于动态路由)- 如果选择动态作为连接类型,则必须指定对等 ASN。 此值用于标识与 VPN 交换路由的外部对等网络。

    • 建立方式-选择 双向仅对等

      • 双向模式允许从VPN网关的任一侧发起IKE协议协商(或密钥更新过程)。
      • 仅对等 方式允许对等方对此 VPN 网关连接启动 IKE 协议协商。 建立连接后,对等方还负责启动密钥更新过程。

      如果同级设备位于 NAT 设备后面并且没有公共 IP 地址,请确保仅指定 同级

    • 预共享密钥- 指定 VPC 外部网络的 VPN 网关的身份验证密钥。 预共享密钥是十六进制数字的字符串,或者是可打印的 ASCII 字符的口令。 要与大多数对等网关类型兼容,此字符串必须遵循以下规则:

      • 可以是数字,小写或大写字符或以下特殊字符的组合: - + & ! @ # $ % ^ * ( ) . , :
      • 字符串的长度必须为 6-128 个字符。
      • 不能以 0x0s 开头。
    • 分配流量(仅限基于路由的 VPN)- 当 VPC 路由的下一跳是 VPN 连接时,启用此选项可在 VPN 网关的活动隧道之间自动分配流量。 当两个 VPN 隧道连接到远程对等网络时,该选项有助于最大限度地提高吞吐量。 如果不启用该选项,VPN 网关会选择公共 IP 较小的隧道作为主路径,只有在主隧道瘫痪时才切换到辅助隧道。 更多信息,请参阅 用例 4:为基于路由的 VPN 分配流量

    • 本地 IBM CIDR (仅限基于策略的 VPN)-在要通过 VPN 隧道连接的 VPC 中指定一个或多个 CIDR。

    • 对等 CIDR (仅限基于策略的 VPN)-指定要通过 VPN 隧道连接的另一网络中的一个或多个 CIDR。 不允许本地子网和对等子网之间的子网范围重叠。

  3. 隧道详细信息部分(仅基于动态路由),指定使用 BGP 进行动态路由所需的隧道和对等接口 IP。

    • 隧道接口 IP- 指定分配给 VPN 隧道 VPN 网关侧的 IP 地址。

    • 对等接口 IP- 指定分配给 VPN 隧道远程网络侧的 IP 地址。 该地址是您的内部设备或对等 VPN 网关。

      隧道和对等接口 IP 必须连续,并属于同一个 /30 子网。 该子网提供四个 IP 地址,但第一个(网络地址)和最后一个(广播地址)被保留。 例如,在子网 192.168.0.0/30 中,可用 IP 为 192.168.0.1192.168.0.2。 如果为隧道 1 接口分配 192.168.0.1,则对等 1 接口必须为 192.168.0.2。 同样,对于隧道 2,使用不同的 /30 子网,如 192.168.0.4/30。 在这种情况下,将 192.168.0.5 分配给隧道 2 接口,将 192.168.0.6 分配给对等网络 2 接口。

  4. 要配置 VPN 网关发送消息以检查对等网关是否处于活动状态的方式,请在 “对等网关失效检测”部分中指定以下信息。

    • 操作 ——当对等网关停止响应时应采取的操作。 例如,如果希望网关立即重新协商连接,请选择重新启动
    • 间隔(秒) ——检查对等网关是否处于活动状态的频率。 默认情况下,每2秒发送一次消息。
    • 超时(秒) ——等待对等网关响应的时间长度。 默认情况下,如果在 10 秒内未收到响应,则该对等网关将被视为处于非活动状态。
  5. 策略 部分中,指定用于连接的阶段 1 和阶段 2 协商的因特网密钥交换 (IKE) 和 Internet Protocol 安全性 (IPsec) 选项。

    • 如果希望网关尝试自动建立连接,请选择 “自动”

    • 选择或创建自定义策略,如果

      • 您需要执行特定的安全要求。
      • 另一个网络上的 VPN 网关不支持在设置过程中自动协商的安全建议。

      IKEv1 只支持一种算法。 如果 VPN 连接使用 IKEv1 策略,相关的 IPsec 策略也必须只包含一种算法。 IKEv1 不支持具有多种算法的 IPsec 策略。

  6. 高级选项 部分中,可以定制本地和同级 IKE 标识,而不是使用缺省 IKE 标识。 最多可以指定一个同级 IKE 标识。

    对于基于策略的 VPN 网关,最多可以配置一个本地 IKE 身份。 对于基于路由的 VPN 网关,如果要配置本地 IKE 身份,必须提供两个。 您可以为成员提供值,也可以将输入框留空。

    • 本地 IKE 标识-选择本地 IKE 标识的类型,然后输入其值。 例如,可以输入单个 4 个八位位组的 IPv4 地址 (9.168.3.4)、FQDN (my-vpn.example.com)、主机名 (my-host) 或 base64-encoded 密钥 ID (MTIzNA==)。

      • 静态路由方式由处于主动/主动方式的两个成员组成,其中第一身份适用于第一成员,第二身份适用于第二成员。 如果未指定本地 IKE 标识,那么类型为 IPv4 地址,值为成员的 VPN 连接隧道的公共 IP 地址。

      • 策略方式由处于活动/备用方式的两个成员组成。 本地 IKE 身份适用于活动成员。 如果未指定值,则本地 IKE 标识即为 VPN 网关的公网 IP 地址。

    • 对等 IKE 标识-选择对等 IKE 标识的类型,然后输入其值。 例如,您可以输入 IPv4 地址(9.168.3.4 )、完全合格域名(FQDN)(my-vpn.example.com )、主机名(my-host )或 base64-encoded 密钥ID(MTIzNA== )。

      对等方 IKE 身份适用于活动成员。 如果未指定值,请使用对等网关的 IPv4 地址或 FQDN。

  7. 查看“摘要”面板,然后单击 创建 VPN 连接

从 CLI 添加连接

开始之前,请 设置 CLI 环境

要从 CLI 创建 VPN 连接,请输入以下命令:

ibmcloud is vpn-gateway-connection-create CONNECTION_NAME VPN_GATEWAY PEER PRESHARED_KEY
[--vpc VPC] [--admin-state-up true | false]
[--routing-protocol bgp | none]
[--dead-peer-detection-action restart | clear | hold | none]
[--distribute-traffic true | false]
[--dead-peer-detection-interval INTERVAL] [--dead-peer-detection-timeout TIMEOUT] [--ike-policy IKE_POLICY_ID]
[--ipsec-policy IPSEC_POLICY_ID] [--peer-cidr CIDR1 --peer-cidr CIDR2 ... --local-cidr CIDR1 --local-cidr CIDR2 ...]
[[--local-ike-identity-type fqdn | hostname | ipv4_address | key_id --local-ike-identity-value VALUE] |
[--local-ike-identities LISTENER_POLICIES_JSON | @LISTENER_POLICIES_JSON_FILE]]
[--peer-asn]
[--tunnels NEIGHBOR_IP TUNNEL_INTERFACE_IP]
[--peer-ike-identity-type fqdn | hostname | ipv4_address | key_id --peer-ike-identity-value VALUE]
[--establish-mode bidirectional | peer_only] [--output JSON] [-q, --quiet]
ibmcloud is vpn-gateway-connection-create CONNECTION_NAME VPN_GATEWAY PEER PRESHARED_KEY

其中:

CONNECTION_NAME
连接的名称。
VPN_GATEWAY
VPN网关的ID。
PEER
对等 VPN 网关的 IP 地址或 FQDN。
PRESHARED_KEY
预共享密钥。
--vpc
VPC 的标识或名称。 仅当需要通过名称在该 VPC 内指定该唯一资源时,才需填写此字段。
--admin-state-up
如果设置为 false,则会关闭VPN网关连接。 该字段的值可以是 truefalse
--routing-protocol
确定模式是静态还是动态。 该字段值可以是 bgpnone。 将值设为 bgp,用于基于路由的动态 VPN。
--dead-peer-detection-action
“检测死对等”操作。 该字段值可以是 restart, clear, holdnone。 (默认值:restart )。
--dead-peer-detection-interval
死同级检测时间间隔 (以秒为单位) (缺省值: 2)。
--dead-peer-detection-timeout
死对等检测超时 (以秒为单位) (缺省值: 10)。
--distribute-traffic
当VPC路由的下一跳为VPN连接时,将该选项设置为“ true ”,以便在VPN网关连接的 Up 隧道之间分配流量。 该值可以是 truefalse。 更多信息,请参阅 为基于路由的 VPN 分配流量
--ike-policy
IKE策略的ID。
--ipsec-policy
IPsec 策略的 ID。
--local-ike-identity-type
本地 IKE 标识的类型。 该字段值可以是 fqdn, hostname, ipv4_addresskey_id
--local-ike-identity-value
本地 IKE 标识的值。
--local-ike-identities
本地 IKE 身份的标识。 JSON 或 JSON 文件中的 LOCAL_IKE_IDENTITIES_JSON | @LOCAL_IKE_IDENTITIES_JSON_FILE
--peer-asn
在动态路由中标识与 VPN 交换路由的外部对等网络。
--tunnels
指定使用 BGP 进行动态路由所需的隧道和对等接口 IP。 该字段包含本地(隧道)和远程(对等)接口的 IP 地址值。 隧道和对等接口 IP 必须连续,并属于同一个 /30 子网。
-peer-cidr
该资源的对等 CIDR 地址。
-local-cidr
该资源的本地 CIDR。
-peer-ike-identity-type
对等 IKE 身份的类型。 该字段值可以是 ipv4_address, fqdn, hostname,或 key_id
--peer-ike-identity-value
对等 IKE 身份的值。

基于策略的 VPN 网关只能有一个本地 IKE 标识。

如果基于路由的 VPN 网关指定了本地 IKE 身份,则必须至少有两个;第一个身份适用于 VPN 网关的第一个成员,第二个身份适用于第二个成员。

--establish-mode
该字段可以是 bidirectionalpeer_only。 双向模式允许从VPN网关的任一侧发起IKE协议协商(或密钥更新过程)。 仅对等方式允许对等方对此 VPN 网关连接启动 IKE 协议协商。 建立连接后,对等方还负责启动密钥更新过程。 如果未进行再加密,那么 VPN 网关连接将在其生存期到期后除去。
-output
指定输出格式为 JSON。
-q, --quiet
禁止详细输出。

命令示例

  • 使用其必需的配置值为特定网关标识创建 VPN 连接:

    ibmcloud is vpn-gateway-connection-create my-connection fee82deba12e4c0fb69c3b09d1f12345 169.21.50.5 lkj14b1oi0alcniejkso --local-cidr 10.240.0.0/24 --peer-cidr 192.168.1.0/24
    
  • 为基于路由的 VPN 网关创建 VPN 连接,并启用 流量分发功能

    ibmcloud is vpn-gateway-connection-create CONNECTION_NAME VPN_GATEWAY PEER PRESHARED_KEY --distribute-traffic true
    
  • 创建具有相同核心参数和指定 DPD 配置的 VPN 连接:

    ibmcloud is vpn-gateway-connection-create my-connection fee82deba12e4c0fb69c3b09d1f12345 169.21.50.5 lkj14b1oi0alcniejkso --local-cidr 10.240.0.0/24 --peer-cidr 192.168.1.0/24 --dead-peer-detection-action clear --dead-peer-detection-interval 33 --dead-peer-detection-timeout 100
    
  • 使用相同的核心参数和具有指定标识的定制策略创建 VPN 连接:

    ibmcloud is vpn-gateway-connection-create my-connection fee82deba12e4c0fb69c3b09d1f12345 169.21.50.5 lkj14b1oi0alcniejkso --local-cidr 10.240.0.0/24 --peer-cidr 192.168.1.0/24 --ipsec-policy 72251a2e-d6c5-42b4-97b0-b5f8e8d1f479 --ike-policy 72251a2e-d6c5-42b4-97b0-b5f8e8d1f480
    
  • 创建具有对等 FQDN 的 VPN 连接,并指定本地和对等 IKE 身份:

    ibmcloud is vpn-gateway-connection-create my-connection fee82deba12e4c0fb69c3b09d1f12345 on-prem.my-company.com lkj14b1oi0alcniejkso --local-cidr 10.240.0.0/24 --peer-cidr 192.168.1.0/24 --local-ike-identities '[{"type":"key_id","value":"MTIzNA=="}]' --peer-ike-identity-type fqdn --peer-ike-identity-value on-prem.my-company.com --establish-mode peer_only
    
  • 创建允许同级为此 VPN 网关连接启动 IKE 协议协商的 VPN 连接:

    ibmcloud is vpn-gateway-connection-create my-connection fee82deba12e4c0fb69c3b09d1f12345 169.21.50.5 lkj14b1oi0alcniejkso --establish-mode peer_only --local-ike-identities '[{type:ipv4_address,value:2.2.2.2},{type:fqdn,value:sadsadasd.com}]' --peer-ike-identity-type key_id --peer-ike-identity-value MTIzNA==
    
  • 使用高级配置选项创建 VPN 连接:

    ibmcloud is vpn-gateway-connection-create to-prem ${gateway_id} on-prem.test.com test123 --local-cidr 10.10.20.0/28 --peer-cidr 192.168.0.0/24 --peer-ike-identity-type ipv4_address --peer-ike-identity-value 192.168.0.1 --establish-mode peer_only
    
  • 使用对等 ASN 和隧道创建基于路由的动态 VPN 连接:

    ibmcloud is vpn-gateway-connection-create my-connection --routing-protocol bgp my-vpc-gateway 169.21.50.5 lkj14b1oi0alcniejkso --distribute-traffic true --local-ike-identities '[{"type":"fqdn","value":"example.com"},{"type":"fqdn","value":"example_1.com"}]' --peer-asn 65534 --tunnels '[{"neighbor_ip":{"address":"192.168.0.2"},"tunnel_interface_ip":{"address":"192.168.0.1"}},{"neighbor_ip":{"address":"192.168.0.6"},"tunnel_interface_ip":{"address":"192.168.0.5"}}]' --peer-ike-identity-type ipv4_address --peer-ike-identity-value 192.168.0.1
    
  • 获取 VPN 网关连接列表:

    ibmcloud is vpn-gateway-connection  my-vpc-gateway my-connection
    
  • 列出 VPN 网关的所有服务连接:

    ibmcloud is vpn-gateway-service-connections 0727-bc813695-d777-4ceb-acfb-bd68f4828358
    
  • 获取指定 VPN 网关的服务连接详情:

    ibmcloud is vpn-gateway-service-connection my-vpc-gateway --service-connection-id 72fd9e00-3117-4b2e-984d-9361a9a97801
    

从 CLI 将本地 CIDR 添加到 VPN 网关连接

开始之前,请 设置 CLI 环境

要从 CLI 将本地 CIDR 添加到 VPN 网关连接,请输入以下命令:

此命令仅受策略方式 VPN 网关支持。

ibmcloud is vpn-gateway-connection-local-cidr-add VPN_GATEWAY CONNECTION PREFIX_ADDRESS PREFIX_LENGTH [--vpc VPC] [--output JSON] [-q, --quiet]

其中:

VPN_GATEWAY
VPN网关的ID。
CONNECTION
VPN 连接的 ID 或名称。
PREFIX_ADDRESS
CIDR 的前缀地址部分。
PREFIX_LENGTH
CIDR 的前缀长度部分。
--output value
输出结果采用 JSON 格式。
-q, --quiet
禁止详细输出。

命令示例

为具有必需配置值的特定连接名称添加本地 CIDR:

ibmcloud is vpn-gateway-connection-local-cidr-add my-vpn-gateway my-connection 3.3.3.0/24

从 CLI 将对等 CIDR 添加到 VPN 网关连接

开始之前,请 设置 CLI 环境

要从 CLI 将对等 CIDR 添加到 VPN 网关连接,请输入以下命令:

此命令仅受策略方式 VPN 网关支持。

ibmcloud is vpn-gateway-connection-peer-cidr-add VPN_GATEWAY CONNECTION PREFIX_ADDRESS PREFIX_LENGTH [--vpc VPC] [--output JSON] [-q, --quiet]

其中:

VPN_GATEWAY
VPN 网关的标识。
CONNECTION
VPN 连接的标识或名称。
PREFIX_ADDRESS
CIDR中的前缀地址部分。
PREFIX_LENGTH
CIDR中的前缀长度部分。
--output value
以 JSON 格式输出。
-q, --quiet
抑制冗长输出。

命令示例

为具有所需配置值的特定连接名称添加对等 CIDR:

ibmcloud is vpn-gateway-connection-peer-cidr-add my-vpn-gateway my-connection 4.4.4.0/24

添加与 API 的连接

要使用 API 创建 VPN 连接,请执行以下步骤:

  1. 使用正确的变量设置 API 环境

  2. 存储要在 API 命令中使用的任何其他变量,例如:

    • vpnGatewayId-VPN 网关标识。

      export vpnGatewayId=<your_vpn_gateway_id>
      
    • ikePolicyId-此 IKE 策略的唯一标识。

      export ikePolicyId=<your_ike_policy_id>
      
    • ipsecPolicyId-此 IPsec 策略的唯一标识。

      export ipsecPolicyId=<your_ipsec_policy_id>
      
  3. 启动所有变量时,创建 VPN 网关连接。 例如,

       # To create a connection for policy-based VPN, use the following command:
       curl -X POST "$vpc_api_endpoint/v1/vpn_gateways/$vpnGatewayId/connections?version=$api_version&generation=2" \
         -H "Authorization: Bearer $iam_token" \
         -d '{
             "name": "my-vpn-connection",
             "psk": "'$psk'",
             "dead_peer_detection": {
                 "action": "restart",
                 "interval": 2,
                 "timeout": 10
             },
             "local": {
                 "cidrs": "'$localCidrs'"
             },
             "peer": {
                 "cidrs": "'$remoteCidrs'",
                 "address": "7.8.9.10"
             }
             "ike_policy": {
                 "id": "'$ikePolicyId'"
             },
             "ipsec_policy": {
                 "id": "'$ipsecPolicyId'"
             }
         }'
    
       # For a static route-based VPN connection, use the following command:
       curl -X POST "$vpc_api_endpoint/v1/vpn_gateways/$vpnGatewayId/connections?version=$api_version&generation=2" \
         -H "Authorization: Bearer $iam_token" \
         -d '{
             "name": "my-vpn-connection",
             "routing_protocol": "none",
             "psk": "'$psk'",
             "distribute_traffic":true,
             "dead_peer_detection": {
                 "action": "restart",
                 "interval": 2,
                 "timeout": 10
             },
             "ike_policy": {
                 "id": "'$ikePolicyId'"
             },
             "ipsec_policy": {
                 "id": "'$ipsecPolicyId'"
             }
         }'
    
      # For a dynamic route-based VPN connection, use the following command:
     curl -X POST "$vpc_api_endpoint/v1/vpn_gateways/$vpnGatewayId/connections?version=$api_version&generation=2" \
         -H "Authorization: Bearer $iam_token" \
         -H "Content-Type: application/json" \
         -H "Accept: application/json" \
         -H "X-Correlation-ID: 0ba2d683-cce9-404f-9b8e-463543888ff9" \
         -d '{
             "name": "vpn-new-connection",
             "psk": "'$psk'",
             "dead_peer_detection": {
                 "action": "restart",
                 "interval": 2,
                 "timeout": 10
             },
             "distribute_traffic": true,
             "establish_mode": "bidirectional",
             "peer": {
                 "address": "9.168.3.4",
                 "asn": 64543
             },
             "routing_protocol": "bgp",
             "tunnels": [
             {
                 "neighbor_ip": { "address": "192.168.0.2" },
                 "tunnel_interface_ip": { "address": "192.168.0.1" }
             },
             {
                 "neighbor_ip": { "address": "192.168.0.6" },
                 "tunnel_interface_ip": { "address": "192.168.0.5" }
             }
             ]
         }'
    
  4. (可选) 使用高级配置选项创建连接:

    curl -X POST "$vpc_api_endpoint/v1/vpn_gateways/$vpnGatewayId/connections?version=$api_version&generation=2"  \
          -H "Authorization: Bearer $iam_token"      -d '{  \
          "name": "my-advanced-vpn-connection",
          "establish_mode": "peer_only",
          "psk": "'$psk'",
          "dead_peer_detection": {
              "action": "restart",
              "interval": 2,
              "timeout": 10
          },
          "local": {
              "cidrs": "'$localCidrs'",
              "ike_identities": [
                  {
                      "type": "key_id",
                      "value": "dGVzdGtleQ=="
                  }
              ]
          },
          "peer": {
              "cidrs": "'$remoteCidrs'",
              "ike_identity": {
                  "type": "hostname",
                  "value": "cisco-asa"
              },
              "fqdn": "on-prem.test.com"
          }
          "ike_policy": {
              "id": "'$ikePolicyId'"
          },
          "ipsec_policy": {
              "id": "'$ipsecPolicyId'"
          },
          "distribute_traffic":true
      }'
    

使用 API 将本地 CIDR 添加到 VPN 网关连接

要使用 API 将本地 CIDR 添加到 VPN 网关连接,请执行以下步骤:

此 API 仅受策略方式 VPN 网关支持。

  1. 使用正确的变量设置 API 环境

  2. 存储要在 API 命令中使用的任何其他变量,例如:

    • vpnGatewayId-VPN 网关标识。

      export vpnGatewayId=<your_vpn_gateway_id>
      
    • connectionId-此 VPN 连接的唯一标识。

      export connectionId=<your_connection_id>
      
    • cidr_prefix- CIDR 中的前缀地址部分。

      export cidr_prefix=<your_cidr_prefix>
      
    • prefix_length- CIDR 中的前缀长度部分。

      export prefix_length=<your_prefix_length>
      
  3. 启动所有变量时,将本地 CIDR 添加到 VPN 网关连接。 例如,

       curl -X PUT "$vpc_api_endpoint/v1/vpn_gateways/$vpnGatewayId/connections/$connectionId/local_cidrs/${cidr_prefix}/${prefix_length}?version=$api_version&generation=2" \
         -H "Authorization: Bearer $iam_token"
    

使用 API 将对等 CIDR 添加到 VPN 网关连接

要使用 API 将对等 CIDR 添加到 VPN 网关连接,请执行以下步骤:

此 API 仅受策略方式 VPN 网关支持。

  1. 使用正确的变量设置 API 环境

  2. 存储要在 API 命令中使用的任何其他变量,例如:

    • vpnGatewayId-VPN 网关标识

      export vpnGatewayId=<your_vpn_gateway_id>
      
    • connectionId-此 VPN 连接的唯一标识

      export connectionId=<your_connection_id>
      
    • cidr_prefix- CIDR 中的前缀地址部分

      export cidr_prefix=<your_cidr_prefix>
      
    • prefix_length- CIDR 中的前缀长度部分。

      export prefix_length=<your_prefix_length>
      
  3. 启动所有变量时,将对等 CIDR 添加到 VPN 网关连接。 例如,

       curl -X PUT "$vpc_api_endpoint/v1/vpn_gateways/$vpnGatewayId/connections/$connectionId/peer_cidrs/${cidr_prefix}/${prefix_length}?version=$api_version&generation=2" \
         -H "Authorization: Bearer $iam_token"
    

要查看站点到站点 VPN 网关的整套 API,请参阅 VPC API 参考

使用 Terraform 添加连接

要使用 Terraform 添加连接,请运行以下命令:

   resource "ibm_is_vpn_gateway_connection" "is_vpn_gateway_connection" {
     name                 = "my-vpn-gateway-connection"
     vpn_gateway    = ibm_is_vpn_gateway.is_vpn_gateway.id
     peer_address   =  "7.8.9.10"
     preshared_key = var.presharedkey
     local_cidrs        = [var.localCIDR]
     peer_cidrs        = [var.peerCIDR]
   }

以下 Terraform 示例创建 VPN 网关连接:

resource "ibm_is_vpn_gateway_connection" "is_vpn_gateway_connection" {
  name           = "my-vpn-gateway-connection"
  vpn_gateway    = ibm_is_vpn_gateway.is_vpn_gateway.id
  preshared_key  = "VPNDemoPassword"
  establish_mode = "bidirectional"
  peer {
    cidrs   = [var.peerCIDR]
    address = "7.8.9.10"
  }
  local {
    cidrs = [var.localCIDR]
  }
  ike_policy   = ibm_is_ike_policy.is_ike_policy.id
  ipsec_policy = ibm_is_ipsec_policy.is_ipsec_policy.id
}

下面的 Terraform 示例为基于路由的 VPN 网关创建了一个 VPN 连接,并启用了 流量分发功能


resource "ibm_is_vpn_gateway_connection" "test_VPNGatewayConnection1" {
    name = "example-vpn-gateway-connection"
    vpn_gateway = "${ibm_is_vpn_gateway.example.id}"
    peer_address = "${ibm_is_vpn_gateway.example.public_ip_address}"
    preshared_key = "VPNDemoPassword"
    distribute-traffic = true
}

下面的 Terraform 示例使用高级配置选项创建了 VPN 连接:

resource "ibm_is_vpn_gateway_connection" "is_vpn_gateway_connection" {
  name           = "to-prem"
  vpn_gateway    = ibm_is_vpn_gateway.is_vpn_gateway.id
  preshared_key  = "test123"
  establish_mode = "peer_only"
  peer {
    cidrs   = ["192.168.0.0/24"]
    ike_identity {
      type  = "ipv4_address"
      value = "192.168.0.1"
    }
    fqdn = "on-prem.test.com"
  }
  local {
    cidrs = ["10.10.20.0/28"]
  }
}

以下 Terraform 示例为基于路由的 VPN 网关创建动态 VPN 连接,该网关支持 BGP:

resource "ibm_is_vpn_gateway" "example" {
  name      = "example-vpn-gateway"
  subnet    = ibm_is_subnet.example.id
  mode      = "route"
  local_asn = 64522
}
resource "ibm_is_vpn_gateway_connection" "example" {
  name               = "example-vpn-gateway-connection"
  vpn_gateway        = ibm_is_vpn_gateway.example.id
  preshared_key      = "VPNDemoPassword"
  distribute_traffic = true
  routing_protocol   = "bgp"
  local {
    ike_identities {
      type  = "fqdn"
      value = "fqdn.example.com"
    }
    ike_identities {
      type  = "fqdn"
      value = "fqdn.example.com"
    }
  }
  peer {
    ike_identity {
      type  = "fqdn"
      value = "example.fqdn.com"
    }
    fqdn = "peer-vpn.example.com"
    asn  = 65534
  }
  tunnel {
    neighbor_ip         = "192.168.1.8"
    tunnel_interface_ip = "10.0.0.8"
  }
  tunnel {
    neighbor_ip         = "192.168.1.6"
    tunnel_interface_ip = "10.0.0.6"
  }
}

有关更多信息,请参阅 Terraform 注册表

后续步骤