更新时间:2024-08-23 GMT+08:00
分享

更新VPN连接

功能介绍

根据连接ID,更新指定的VPN连接的参数。

调用方法

请参见如何调用API

URI

PUT /v5/{project_id}/vpn-connection/{vpn_connection_id}

表1 参数说明

名称

类型

是否必选

说明

project_id

String

项目ID,可以通过获取项目ID获取项目ID。

vpn_connection_id

String

VPN连接ID。

请求消息

  • 请求参数
    表2 请求参数

    名称

    类型

    是否必选

    描述

    vpn_connection

    UpdateVpnConnectionRequestBodyContent object

    vpn_connection对象。

    表3 UpdateVpnConnectionRequestBodyContent

    名称

    类型

    是否必选

    描述

    name

    String

    • 功能说明:VPN连接名称。
    • 取值范围:1-64个字符,支持数字、英文字母、中文(\u4e00 - \u9fa5)、_(下划线)、-(中划线)、.(点)。

    cgw_id

    String

    • 功能说明:对端网关ID。
    • 约束:36位UUID。

    peer_subnets

    Array of String

    • 功能说明:对端子网。
    • 约束:

      VPN网关的关联模式为er并且style字段为policy或bgp时不填,其他场景必填。

      部分网段是VPC预留网段,不能作为对端子网,比如100.64.0.0/10,214.0.0.0/8。

      每个VPN连接最多填写50个对端子网。

    tunnel_local_address

    String

    • 功能说明:路由模式下配置在VPN网关上的tunnel接口地址。例如:169.254.76.1/30。
    • 约束:

      前16位必须是169.254,不能使用169.254.195.xxx。

      掩码长度必须是30。必须和tunnel_peer_address在同一个30掩码范围。

      应填写网段中的主机地址。

    tunnel_peer_address

    String

    • 功能说明:路由模式下配置在用户侧设备上的tunnel接口地址。例如:169.254.76.1/30。
    • 约束:

      前16位必须是169.254,不能使用169.254.195.xxx。

      掩码长度必须是30。必须和tunnel_local_address在同一个30掩码范围。

      应填写网段中的主机地址。

    psk

    String

    • 功能说明:预共享密钥。ike版本为v2时,只修改该字段不生效。

      当VPN网关的flavor为GM时,psk不支持更新。

    • 约束:8-128个字符,只能包含大写字母、小写字母、数字和特殊字符(~!@#$%^()-_+={ },./:;)且至少包含四种字符的三种。

    policy_rules

    Array of PolicyRule objects

    • 功能说明:策略模式的策略规则组。
    • 约束:最多填写5个。仅当style为policy时填写

    可以通过查询VPN连接查看VPN连接的style。

    ikepolicy

    UpdateIkePolicy object

    ike策略对象。

    ipsecpolicy

    UpdateIpsecPolicy object

    ipsec策略对象。

    表4 PolicyRule

    名称

    类型

    是否必选

    描述

    rule_index

    Integer

    • 功能说明:规则ID,用于区分配置的策略规则顺序。建议不填。
    • 取值范围:0-50。
    • 约束:不能与其他PolicyRule下的rule_index相同,ResponseVpnConnection中的rule_index可能与该值不同,因为vpn服务会将多个destination拆成不同rule。

    source

    String

    • 功能说明:源地址网段。
    • 约束:不能与其他PolicyRule下的source相同。

    destination

    Array of String

    • 功能说明:目的地址网段。

      单个网段格式示例:192.168.52.0/24。

    • 约束:每个PolicyRule最多填写50个。
    表5 UpdateIkePolicy

    名称

    类型

    是否必选

    描述

    ike_version

    String

    • 功能说明:IKE版本号。
    • 取值范围:
      • 当VPN网关的flavor配置为GM时,取值范围为v1。
      • 其他场景下取值范围为v1,v2。
    • 默认值:
      • 当VPN网关的flavor配置为GM时,默认值为v1。
      • 其他场景下,默认值为v2。

    phase1_negotiation_mode

    String

    • 功能说明:协商模式。
    • 取值范围:

      当VPN网关的flavor配置为GM时,取值范围为main。

      其他场景下取值范围为main,aggressive。

      main:主模式,协商过程安全性高。

      aggressive:野蛮模式,协商快速且协商成功率高。

    • 约束:ike版本为v2时忽略此字段,IKE版本为v1时生效。

    authentication_algorithm

    String

    • 功能说明:认证算法。修改该字段后需要等SA协商一阶段老化后生效。
    • 取值范围:
      • 当VPN网关的flavor配置为GM时,取值范围为sm3。
      • 其他场景下取值范围为sha2-512,sha2-384,sha2-256,sha1,md5。

      其中,sha1和md5安全性较低,请慎用。

    encryption_algorithm

    String

    • 功能说明:加密算法。修改该字段后需要等SA协商一阶段老化后生效。
    • 取值范围:

      当VPN网关的flavor配置为GM时,取值范围为sm4。

      其他场景下取值范围为aes-256-gcm-16,aes-128-gcm-16,aes-256,aes-192,aes-128,3des。

      其中,3des安全性较低,请慎用。

    dh_group

    String

    • 功能说明:第一阶段密钥交换使用的DH组。修改该字段后需要等协商一阶段老化后生效。

      当VPN网关的flavor配置为GM时,该字段无法修改。

    • 取值范围:group1,group2,group5,group14,group15,group16,group19,group20,group21。

      其中,group1,group2,group5,group14安全性较低,请慎用。

    lifetime_seconds

    Integer

    • 功能说明:表示SA的生存周期,当该生存周期超时后IKE SA将自动更新。修改该字段后需要等协商一阶段老化后生效。
    • 取值范围:60-604800,单位:秒。

    local_id_type

    String

    • 功能说明:本端ID类型

      当VPN网关的flavor配置为GM时,该字段无法修改。

    • 取值范围:
      • ip。
      • fqdn。

    local_id

    String

    • 功能说明:本端ID。

      当VPN网关的flavor配置为GM时,该字段无法修改。

    • 约束:最大长度255个字符,只能由大小写字母、数字和特殊符号组成,不支持以下特殊字符:&、<、>、[、]、\、空格、?,区分大小写。当local_id_type为fqdn时填写,需要和对端设备的peer_id一致。

    peer_id_type

    String

    • 功能说明:对端ID类型。

      当VPN网关的flavor配置为GM时,该字段无法修改。

    • 取值范围:
      • ip。
      • fqdn。

    peer_id

    String

    • 功能说明:对端ID。

      当VPN网关的flavor配置为GM时,该字段无法修改。

    • 约束:最大长度255个字符,只能由大小写字母、数字和特殊符号组成,不支持以下特殊字符:&、<、>、[、]、\、空格、?,区分大小写。当peer_id_type为fqdn时填写,需要和对端设备的local_id一致。

    dpd

    UpdateDpd object

    对等体存活检测对象。

    表6 UpdateDpd

    名称

    类型

    是否必选

    描述

    timeout

    Integer

    • 功能说明:对等体存活检测报文重传间隔。
    • 取值范围:2-60,单位:秒,不填时默认为15。

    interval

    Integer

    • 功能说明:对等体存活检测空闲时间.
    • 取值范围:10-3600,单位:秒,不填时默认为30。

    msg

    String

    • 功能说明:对等体存活检测报文格式。
    • 取值范围:

      seq-hash-notify:指定DPD报文中的载荷顺序是hash-notify。

      seq-notify-hash:指定DPD报文中的载荷顺序是notify-hash。

      默认为seq-hash-notify。

    表7 UpdateIpsecPolicy

    名称

    类型

    是否必选

    描述

    authentication_algorithm

    String

    • 功能说明:认证算法。SHA1和MD5安全性较低,请慎用。修改该字段后需要等协商二阶段老化后生效。
    • 取值范围:

      当VPN网关的flavor配置为GM时,取值范围为sm3。

      其他场景下取值范围为sha2-512,sha2-384,sha2-256,sha1,md5。

    encryption_algorithm

    String

    • 功能说明:加密算法。3DES安全性较低,请慎用。修改该字段后需要等协商二阶段老化后生效。
    • 取值范围:

      当VPN网关的flavor配置为GM时,取值范围为sm4。

      其他场景下取值范围为aes-256-gcm-16,aes-128-gcm-16,aes-256,aes-192,aes-128,3des。

    pfs

    String

    • 功能说明:PFS使用的DH密钥组。

      当VPN网关的flavor配置为GM时,该字段不生效,无法修改。

    • 取值范围:group1,group2,group5,group14,group15,group16,group19,group20,group21,disable,默认为group15。

      其中,group1,group2,group5,group14安全性较低,请慎用。

    transform_protocol

    String

    • 功能说明:传输协议。
    • 取值范围:

      esp:封装安全协议。

      默认为esp。

    lifetime_seconds

    Integer

    • 功能说明:表示配置IPSec连接建立的隧道以时间为基准的生存周期。修改该字段后需要等协商二阶段老化后生效。
    • 取值范围:30-604800,单位:秒,默认为3600。

    encapsulation_mode

    String

    • 功能说明:报文封装模式。
    • 取值范围:

      tunnel:隧道模式。

      默认为tunnel。

  • 请求样例
    1. 更新对端子网。
      PUT https://{Endpoint}/v5/{project_id}/vpn-connection/{vpn_connection_id}
      
      {
          "vpn_connection": {
              "peer_subnets": [
                  "192.168.1.0/24"
              ]
          }
      }
    2. 更新策略规则。
      PUT https://{Endpoint}/v5/{project_id}/vpn-connection/{vpn_connection_id}
      
      {
          "vpn_connection": {
              "policy_rules": [{
                  "rule_index": 1,
                  "source": "10.0.0.0/24",
                  "destination": [
                      "192.168.1.0/24"
                  ]
              }]
          }
      }
    3. 更新生命周期。
      PUT https://{Endpoint}/v5/{project_id}/vpn-connection/{vpn_connection_id}
      
      {
          "vpn_connection": {
              "ikepolicy": {
                  "lifetime_seconds": 3600
              },
              "ipsecpolicy": {
                  "lifetime_seconds": 3600
              }
          }
      }
    4. 更新连接名称。
      PUT https://{Endpoint}/v5/{project_id}/vpn-connection/{vpn_connection_id}
      
      {
          "vpn_connection": {
              "name": "vpn_connection_name"
          }
      }

响应消息

  • 响应参数

    返回状态码为 200: successful operation。

    表8 响应Body参数列表

    名称

    类型

    描述

    vpn_connection

    ResponseVpnConnection object

    vpn_connection对象。

    request_id

    String

    请求ID。

    表9 ResponseVpnConnection

    名称

    类型

    描述

    id

    String

    • 功能说明:VPN连接ID。
    • 格式:36位UUID。

    name

    String

    • 功能说明:VPN连接名称。
    • 取值范围:1-64个字符,支持数字、英文字母、中文(\u4e00 - \u9fa5)、_(下划线)、-(中划线)。

    vgw_id

    String

    • 功能说明:VPN网关ID。
    • 格式:36位UUID。

    vgw_ip

    String

    • 功能说明: VPN网关EIP的ID或接入私网IP。
    • 格式:36位UUID或点分十进制IPv4地址(如192.168.45.7)。

    style

    String

    • 功能说明:连接模式。
    • 取值范围:

      POLICY: 策略模式。

      STATIC: 静态路由模式。

      BGP: bgp路由模式。

      POLICY-TEMPLATE: 策略模板模式。

    cgw_id

    String

    • 功能说明:对端网关ID。
    • 格式:36位UUID。

    peer_subnets

    Array of String

    对端子网。当VPN网关的关联模式为ER并且style字段为BGP或POLICY时不返回。

    tunnel_local_address

    String

    路由模式下配置在VPN网关上的tunnel接口地址。仅当style为STATIC或BGP时有效。

    tunnel_peer_address

    String

    路由模式下配置在用户侧设备上的tunnel接口地址。仅当style为STATIC或BGP时有效。

    enable_nqa

    Boolean

    • 功能说明:开启NQA检测。仅当style为STATIC时返回。
    • 取值范围:true,false。

    policy_rules

    Array of PolicyRule objects

    策略模式的策略规则组。仅当style为POLICY时返回实际的策略规则组。

    ikepolicy

    IkePolicy object

    ike策略对象。

    ipsecpolicy

    IpsecPolicy object

    ipsec策略对象。

    created_at

    String

    • 创建时间。
    • UTC时间格式:yyyy-MM-ddTHH:mm:ssZ。

    updated_at

    String

    • 最后一次更新时间。
    • UTC时间格式:yyyy-MM-ddTHH:mm:ssZ。

    enterprise_project_id

    String

    • 功能说明:企业项目ID。
    • 格式:36位UUID。与vgw_id所标识VPN网关的企业项目ID一致。

    connection_monitor_id

    String

    • 功能说明:VPN连接监控ID。仅当VPN连接下创建有连接监控时返回。
    • 格式:36位UUID。

    ha_role

    String

    • 功能说明:主备模式VPN网关下的连接时,'master'表示主连接,'slave'表示备连接。双活模式下的连接ha_role都是'master'。
    • 默认值:master。

    tags

    Array of VpnResourceTag objects

    标签列表。

    表10 PolicyRule

    名称

    类型

    描述

    rule_index

    Integer

    • 功能说明:规则ID。
    • 取值范围:0-50。

    source

    String

    源地址网段。

    destination

    Array of String

    目的地址网段。单个网段格式示例:192.168.52.0/24。每个PolicyRule最多返回50个。

    表11 IkePolicy

    名称

    类型

    描述

    ike_version

    String

    • 功能说明:IKE版本号。
    • 取值范围:v1, v2。

    phase1_negotiation_mode

    String

    • 功能说明:协商模式。仅当IKE版本为v1时返回。
    • 取值范围:

      main:主模式,协商过程安全性高。

      aggressive:野蛮模式,协商快速且协商成功率高。

    authentication_algorithm

    String

    • 功能说明:认证算法。
    • 取值范围:sha2-512,sha2-384,sha2-256,sha1,md5,sm3。

    encryption_algorithm

    String

    • 功能说明:加密算法。
    • 取值范围:aes-256-gcm-16,aes-128-gcm-16,aes-256,aes-192,aes-128,3des,sm4。

    dh_group

    String

    • 功能说明:第一阶段密钥交换使用的DH组,当VPN网关flavor为GM时不返回。
    • 取值范围:group1,group2,group5,group14,group15,group16,group19,group20,group21。

    authentication_method

    String

    • 功能说明:ike协商时的认证方法。
    • 取值范围:

      pre-share:预共享密钥。

      digital-envelope-v2:国密数字信封。

    lifetime_seconds

    Integer

    • 功能说明:表示SA的生存周期,当该生存周期超时后IKE SA将自动更新。
    • 取值范围:60-604800,单位:秒。

    local_id_type

    String

    • 功能说明:本端ID类型,当VPN网关flavor为GM时不返回。
    • 取值范围:
      • ip。
      • fqdn。

    local_id

    String

    本端ID。当local_id_type为ip时返回VPN连接所使用的网关IP;当local_id_type为fqdn时返回创建或更新VPN连接时指定的本端ID。

    当VPN网关flavor为GM时不返回。

    peer_id_type

    String

    • 功能说明:对端ID类型,当VPN网关flavor为GM时不返回。
    • 取值范围:
      • ip。
      • any。
      • fqdn。

    peer_id

    String

    对端ID。当peer_id_type为ip时返回对端网关的IP;当peer_id_type为fqdn时返回创建或更新VPN连接时指定的对端ID;当peer_id_type为any时不返回。

    当VPN网关flavor为GM时不返回。

    dpd

    Dpd object

    对等体存活检测对象。

    表12 Dpd

    名称

    类型

    描述

    timeout

    Integer

    • 功能说明:对等体存活检测报文重传间隔。
    • 取值范围:2-60,单位:秒。

    interval

    Integer

    • 功能说明:对等体存活检测空闲时间。
    • 取值范围:10-3600,单位:秒。

    msg

    String

    • 功能说明:对等体存活检测报文格式。
    • 取值范围:

      seq-hash-notify:指定DPD报文中的载荷顺序是hash-notify。

      seq-notify-hash:指定DPD报文中的载荷顺序是notify-hash。

    表13 IpsecPolicy

    名称

    类型

    描述

    authentication_algorithm

    String

    • 功能说明:认证算法。
    • 取值范围:sha2-512,sha2-384,sha2-256,sha1,md5,sm3。

    encryption_algorithm

    String

    • 功能说明:加密算法。
    • 取值范围:aes-256-gcm-16,aes-128-gcm-16,aes-256,aes-192,aes-128,3des,sm4。

    pfs

    String

    功能说明:PFS使用的DH密钥组

    • 取值范围:group1,group2,group5,group14,group15,group16,group19,group20,group21,disable。

    transform_protocol

    String

    • 功能说明:传输协议。
    • 取值范围:

      esp:封装安全协议。

    lifetime_seconds

    Integer

    • 功能说明:表示配置IPSec连接建立的隧道以时间为基准的生存周期。
    • 取值范围:30-604800,单位:秒。

    encapsulation_mode

    String

    • 功能说明:报文封装模式。
    • 取值范围:

      tunnel:隧道模式。

    表14 VpnResourceTag

    名称

    类型

    描述

    key

    String

    • 功能说明:标签的键。
    • 取值范围:1-128个字符,支持数字、英文字母、中文、西班牙语、葡语、空格,以及以下字符:_.:=+-@。

    value

    String

    • 功能说明:标签的值。
    • 取值范围:0-255个字符,支持数字、英文字母、中文、西班牙语、葡语、空格,以及以下字符:_.:=+-@。
  • 响应样例
    1. 更新VPN连接的响应。
      {
          "vpn_connection": {
              "id": "98c5af8a-demo-a8df-va86-ae2280a6f4c3",
              "name": "vpn-1655",
              "vgw_id": "b32d91a4-demo-a8df-va86-e907174eb11d",
              "vgw_ip": "0c464dad-demo-a8df-va86-c22bb0eb0bde",
              "style": "POLICY",
              "cgw_id": "5247ae10-demo-a8df-va86-dd36659a7f5d",
              "peer_subnets": ["192.168.1.0/24"],
              "tunnel_local_address": "169.254.56.225/30",
              "tunnel_peer_address": "169.254.56.226/30",
              "policy_rules": [{
                  "rule_index": 1,
                  "source": "10.0.0.0/24",
                  "destination": [
                      "192.168.1.0/24"
                  ]
              }],
              "ikepolicy": {
                  "ike_version": "v2",
                  "authentication_algorithm": "sha2-256",
                  "encryption_algorithm": "aes-128",
                  "dh_group": "group15",
                  "authentication_method": "pre-share",
                  "lifetime_seconds": 86400,
                  "local_id_type": "ip",
                  "local_id": "10.***.***.134",
                  "peer_id_type": "ip",
                  "peer_id": "88.***.***.164",
                  "dpd": {
                      "timeout": 15,
                      "interval": 30,
                      "msg": "seq-hash-notify"
                  }
              },
              "ipsecpolicy": {
                  "authentication_algorithm": "sha2-256",
                  "encryption_algorithm": "aes-128",
                  "pfs": "group15",
                  "transform_protocol": "esp",
                  "lifetime_seconds": 3600,
                  "encapsulation_mode": "tunnel"
              },
              "created_at": "2022-11-26T13:41:34.626Z",
              "updated_at": "2022-11-26T13:41:34.626Z",
              "enterprise_project_id": "0",
              "ha_role": "master"
          },
          "request_id": "f91082d4-6d49-479c-ad1d-4e552a9f5cae"
      }
    2. 冻结场景下更新失败。
      {
          "error_code": "VPN.0001",
          "error_msg": "invalid request: ILLEGAL not allowed update vpnConnection",
          "request_id": "8c833634-4560-7897-7740-a7462f5bcbd4"
      }

状态码

请参见状态码

相关文档