向 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 个字符。
      • 不能以 0x 或 0s 开头。
    • 分配流量(仅限基于路由的 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.1 和 192.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网关连接。 该字段的值可以是 true 或 false。
--routing-protocol
确定模式是静态还是动态。 该字段值可以是 bgp 或 none。 将值设为 bgp,用于基于路由的动态 VPN。
--dead-peer-detection-action
“检测死对等”操作。 该字段值可以是 restart, clear, hold 或 none。 (默认值:restart )。
--dead-peer-detection-interval
死同级检测时间间隔 (以秒为单位) (缺省值: 2)。
--dead-peer-detection-timeout
死对等检测超时 (以秒为单位) (缺省值: 10)。
--distribute-traffic
当VPC路由的下一跳为VPN连接时,将该选项设置为“ true ”,以便在VPN网关连接的 Up 隧道之间分配流量。 该值可以是 true 或 false。 更多信息,请参阅 为基于路由的 VPN 分配流量。
--ike-policy
IKE策略的ID。
--ipsec-policy
IPsec 策略的 ID。
--local-ike-identity-type
本地 IKE 标识的类型。 该字段值可以是 fqdn, hostname, ipv4_address 或 key_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
该字段可以是 bidirectional 或 peer_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 注册表。

后续步骤