更新时间:2024-11-29 GMT+08:00

创建VPN网关

功能介绍

创建VPN网关。当前仅支持创建按需计费的VPN网关。

调用方法

请参见如何调用API

URI

POST /v5/{project_id}/vpn-gateways
表1 参数说明

名称

类型

是否必选

描述

project_id

String

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

请求消息

  • 请求参数
    表2 请求参数

    名称

    类型

    是否必选

    描述

    vpn_gateway

    CreateVgwRequestBodyContent object

    VPN网关对象。

    表3 CreateVgwRequestBodyContent

    名称

    类型

    是否必选

    描述

    name

    String

    • 功能说明:VPN网关名 称。
    • 取值范围:1-64个字符,支持数字、英文字母、中文(\u4e00 - \u9fa5)、_(下划线)、-(中划线)、.(点)。
    • 默认值:不填时会自动生成格式为vpngw-****的名称。例如:vpngw-a45b。

    network_type

    String

    • 功能说明:VPN网关网络类型,公网(public)类型的VPN网关通过EIP与对端网关建连;私网(private)类型的VPN网关通过VPC内的私网IP与对端网关建连。
    • 取值范围:public,private。
    • 默认值:public。

    attachment_type

    String

    • 功能说明:关联模式。
    • 取值范围:vpc,er。
    • 默认值:vpc。

    ip_version

    String

    • 功能说明:VPN网关的IP协议版本。
    • 取值范围:ipv4、ipv6。
    • 默认值:ipv4

    er_id

    String

    • 功能说明:VPN网关所连接的ER实例的ID。
    • 约束:36位UUID。

      当attachment_type配置为"er"时填写,否则不填。

      er_id和vpc_id不能同时为空。

    vpc_id

    String

    • 功能说明:
      • 当attachment_type为vpc时,vpc_id是VPN网关关联的业务VPC的ID。
      • 当attachment_type为er时,vpc_id是VPN网关的接入VPC的ID,此时可以使用任意VPC的ID。
    • 约束:36位UUID。

      当attachment_type配置为"vpc"时必填;当attachment_type配置为"er"时可不填写,当vpc_id和access_vpc_id都填写时,access_vpc_id生效。

      vpc_id和er_id不能同时为空。

    可以通过查询VPC列表查看VPC的ID。

    local_subnets

    Array of String

    • 功能说明:IPv4本端子网是云上子网,该子网需要通过VPN与云下对端子网进行互通。

      每个VPN网关最多填写50个本端子网,单个子网格式示例:192.168.52.0/24。

    • 约束:当attachment_type配置为"vpc"时、且ip_version配置为"ipv4"时必填,否则不填。

    local_subnets_v6

    Array of String

    • 功能说明:IPv6本端子网是云上子网,该子网需要通过VPN与云下对端子网进行互通。

      每个VPN网关最多填写50个本端子网,单个子网格式示例:16af:cacc:1097::/48。

    • 约束:当attachment_type配置为"vpc"时、且ip_version配置为"ipv6"时必填,否则不填。

    connect_subnet

    String

    • 功能说明:VPN网关使用的VPC子网ID。
    • 约束:36位UUID。

      当attachment_type配置为"vpc"时必填;当attachment_type配置为"er"时可不填写,当connect_subnet和access_subnet_id都填写时,access_subnet_id生效。

      当attachment_type为er时,子网中需要有至少2个空闲IP。

      当attachment_type为vpc时,如果access_subnet_id与connect_subnet相同,则子网中需要有至少4个空闲IP;如果不同,则需要至少2个空闲IP。

    bgp_asn

    Long

    • 功能说明:VPN网关的BGP自治域编号。
    • 取值范围:1-4294967295。
    • 默认值:64512。

    flavor

    String

    • 功能说明:VPN网关的规格类型。实际可选范围请参考VPN控制台创建VPN网关页面的Specification选项。
    • 取值范围:
      • Basic
      • Professional1
      • Professional2
      • Professional1-NonFixedIP
      • Professional2-NonFixedIP
      • GM
      不同规格类型的特性,请参考站点入云VPN产品规格
      • 华北-乌兰察布一:Basic、Professional1、Professional2、GM
      • 华南-广州:Basic、Professional1、Professional2
      • 华北-北京四:Basic、Professional1、Professional2
      • 华东-上海一:Basic、Professional1、Professional2
      • 西南-贵阳一:Basic、Professional1、Professional2
      • 中国-香港:Professional1、Professional2
      • 亚太-曼谷:Professional1、Professional2
      • 亚太-新加坡:Professional1、Professional2
      • 亚太-雅加达:Professional1、Professional2
      • 欧洲-都柏林:Professional1、Professional2
      • 中东-阿布扎比-OP5:Professional1、Professional2
      • 拉美-墨西哥城二:Professional1、Professional2
      • 土耳其-伊斯坦布尔:Professional1、Professional2
    • 约束:当network_type为private时不能填写Basic;当attachment_type为er时不能填写Basic。
    • 默认值:Professional1。

    availability_zone_ids

    Array of String

    • 功能说明:部署VPN网关的可用区。不填时自动为VPN网关选择可用区。如果需要指定可用区可以通过查询VPN网关可用区查询可用区列表,再根据flavor、attachment_type、ip_version的参数组合确定VPN网关支持的可用区。
    • 约束:如果VPN网关支持两个及以上的可用区时,必须填写两个可用区;支持一个可用区时填写一个;无支持可用区时不能创建VPN网关。

    enterprise_project_id

    String

    • 功能说明:企业项目ID。
    • 约束:36位UUID或者"0"。
    • 默认值:"0",表示资源属于default企业项目。

    eip1

    CreateRequestEip object

    • 功能说明:双活VPN网关表示使用的第一个EIP,主备模式网关表示主EIP。
    • 约束:network_type为public时必选,为private时不需要填写。

    eip2

    CreateRequestEip object

    • 功能说明:双活VPN网关表示使用的第二个EIP,主备模式网关表示备EIP。
    • 约束:network_type为public时必选,为private时不需要填写。

    access_vpc_id

    String

    • 功能说明:VPN网关使用的接入VPC ID。
    • 约束:36位UUID。
    • 默认值:同vpc_id字段所填的值。

      可以通过查询VPC列表查看VPC的ID。

    access_subnet_id

    String

    • 功能说明:VPN网关使用的接入VPC中的子网ID。
    • 约束:36位UUID。

      当attachment_type为er时,子网中需要有至少2个空闲IP。

      当attachment_type为vpc时,如果access_subnet_id与connect_subnet相同,则子网中需要有至少4个空闲IP;如果不同,则需要至少2个空闲IP。

    • 默认值:同connect_subnet字段所填的值。

    ha_mode

    String

    • 功能说明:网关的HA模式,"active-active"表示双活,"active-standby"表示主备。
    • 取值范围:active-active,active-standby。
    • 默认值:active-active。

    access_private_ip_1

    String

    • 功能说明:私网类型VPN网关的接入私网IP1,指定ip创建私网网关时设置,主备网关时为主ip,双活网关时为主ip1。
    • 取值范围:接入子网网段内的可分配ip。
    • 约束:需与接入ip2同时指定,不能与接入ip2重复。

    access_private_ip_2

    String

    • 功能说明:私网类型VPN网关的接入私网IP2,指定ip创建私网网关时设置,主备网关时为备ip,双活网关时为主ip2。
    • 取值范围:接入子网网段内的可分配ip。
    • 约束:需与接入ip1同时指定,不能与接入ip1重复。

    tags

    Array of VpnResourceTag objects

    • 功能说明:标签列表。
    • 约束:最多填写20个。
    表4 CreateRequestEip

    名称

    类型

    是否必选

    描述

    id

    String

    • 功能说明:EIP的ID。
    • 取值范围:36位UUID。
    • 约束:当使用已有EIP时填写,当新创建EIP时不填。

    可以通过查询弹性公网IP列表查看EIP的ID。

    type

    String

    • 功能说明:EIP的类型。
    • 取值范围:0-36个字符。

      可查看申请EIP表6中type字段的取值范围。如果对应局点支持5_bgp类型,建议优先选择该类型。

    • 约束:当新创建EIP场景时需要填写,否则不填。

      具体约束可查看申请EIP表3中type字段的约束。

    charge_mode

    String

    • 功能说明:EIP的带宽计费模式。按流量计费或按带宽计费。
    • 取值范围:

      bandwidth:按带宽计费。

      traffic:按流量计费。

    • 约束:当新创建EIP场景且不绑定共享带宽时需要填写,否则不填。
    • 默认值:bandwidth。

    bandwidth_size

    Integer

    • 功能说明:EIP的带宽大小,单位:Mbit/s。每个region能够提供的EIP最大带宽不同,EIP的最大带宽受限于EIP服务,可以使用工单来提高帐户下的EIP的最大带宽。
    • 取值范围:1-1000,具体取值请参考弹性公网服务创建EIP资料。
    • 约束:当新创建EIP场景且不绑定共享带宽时需要填写,否则不填。

      flavor为Basic时,取值不能大于100;flavor为Professional1时,取值不能大于300;flavor为Professional2时,取值不能大于1000;flavor为GM时,取值不能大于500。

    bandwidth_name

    String

    • 功能说明:EIP的带宽名称。
    • 取值范围:1-64个字符,支持数字、英文字母、中文(\u4e00 - \u9fa5)、_(下划线)、-(中划线)、.(点)。
    • 约束:当新创建EIP场景且不绑定共享带宽时需要填写,否则不填。
    • 默认值:当新创建EIP场景时,不填此字段会自动生成格式为vpngw-bandwidth-****的EIP带宽名称。例如:vpngw-bandwidth-e1fa。

    bandwidth_id

    String

    • 功能说明:带宽ID,创建弹性公网IP时可以指定已有的共享带宽。
    • 取值范围:36位UUID。
    • 约束:绑定共享带宽时需要填写,否则不填。
    表5 VpnResourceTag

    名称

    类型

    是否必选

    描述

    key

    String

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

    value

    String

    • 功能说明:标签的值。
    • 取值范围:0-255个字符,支持数字、英文字母、中文、西班牙语、葡语、空格,以及以下字符:_.:=+-@。
  • 请求样例
    1. 使用已有EIP创建关联VPC的VPN网关。
      POST https://{Endpoint}/v5/{project_id}/vpn-gateways
      
      {
          "vpn_gateway": {
              "vpc_id": "cb4a631d-demo-a8df-va86-ca3fa348c36c",
              "local_subnets": [
                  "192.168.0.0/24", "192.168.1.0/24"
              ],
              "connect_subnet": "f5741286-demo-a8df-va86-2c82bd9ee114",
              "eip1": {
                  "id": "cff40e5e-demo-a8df-va86-7366077bf097"
              },
              "eip2": {
                  "id": "d290f1ee-demo-a8df-va86-d701748f0851"
              }
          }
      }
    2. 新建EIP创建关联ER的VPN网关。
      POST https://{Endpoint}/v5/{project_id}/vpn-gateways
      
      {
          "vpn_gateway": {
              "name": "vpngw-1234",
              "attachment_type": "er",
              "er_id": "cb4a631d-demo-a8df-va86-ca3fa348c36c",
              "vpc_id": "584a238f-demo-a8df-va86-edca746f6277",
              "connect_subnet": "f5741286-demo-a8df-va86-2c82bd9ee114",
              "bgp_asn": 65533,
              "flavor": "Professional2",
              "availability_zone_ids": [
                  "cn-south-1f",
                  "cn-south-1e"
              ],
              "eip1": {
                  "type": "5_bgp",
                  "charge_mode": "bandwidth",
                  "bandwidth_size": 1000,
                  "bandwidth_name": "vpngw-bandwidth-1391"
              },
              "eip2": {
                  "type": "5_bgp",
                  "charge_mode": "bandwidth",
                  "bandwidth_size": 1000,
                  "bandwidth_name": "vpngw-bandwidth-1392"
              }
          }
      }
    3. 创建私网关联VPC的VPN网关。
      POST https://{Endpoint}/v5/{project_id}/vpn-gateways
      
      {
          "vpn_gateway": {
              "vpc_id": "cb4a631d-demo-a8df-va86-ca3fa348c36c",
              "local_subnets": [
                  "192.168.0.0/24", "192.168.1.0/24"
              ],
              "connect_subnet": "f5741286-demo-a8df-va86-2c82bd9ee114",
              "network_type": "private"
          }
      }

响应消息

  • 响应参数

    返回状态码为 201: successful operation。

    表6 响应Body参数列表

    名称

    类型

    描述

    vpn_gateway

    ResponseVpnGateway object

    VPN网关对象。

    request_id

    String

    请求ID。

    表7 ResponseVpnGateway

    名称

    类型

    描述

    id

    String

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

    name

    String

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

    network_type

    String

    • 功能说明:VPN网关网络类型。
    • 取值范围:public,private。
    • 默认值:public。

    attachment_type

    String

    • 功能说明:关联模式。
    • 取值范围:vpc,er。

    ip_version

    String

    • 功能说明:VPN网关的IP协议版本。
    • 取值范围:ipv4、ipv6。

    certificate_id

    String

    • 功能说明:证书ID。
    • 格式:36位UUID。

    er_id

    String

    VPN网关所连接的ER实例的ID。仅当attachment_type为er时返回。

    vpc_id

    String

    当attachment_type为vpc时,vpc_id是VPN网关关联的业务VPC的ID。

    当attachment_type为er时,不返回此字段。可以通过access_vpc_id字段查看VPN网关的接入VPC的ID。

    local_subnets

    Array of String

    IPv4本端子网。本端子网是云上子网,该网段需要通过VPN与用户侧网络进行互通。单个网段格式示例:192.168.52.0/24。仅当attachment_type为vpc且ip_version为ipv4时返回。

    local_subnets_v6

    Array of String

    IPv6本端子网。本端子网是云上子网,该网段需要通过VPN与用户侧网络进行互通。单个网段格式示例:16af:cacc:1097::/48。仅当attachment_type为vpc且ip_version为ipv6时返回。

    connect_subnet

    String

    VPN网关所使用的VPC中的一个子网ID。

    bgp_asn

    Long

    VPN网关的BGP自治域编号。

    flavor

    String

    • 功能说明:VPN网关的规格类型。实际可选范围请参考VPN控制台创建VPN网关页面的Specification选项。
    • 取值范围:

      v300:最大转发带宽300Mbps。该取值已经废弃,但仍然保留兼容性支持,建议不要使用该取值。

      v1g:最大转发带宽1Gbps。该取值已经废弃,但仍然保留兼容性支持,建议不要使用该取值。

      Basic:最大转发带宽100Mbps。

      Professional1:最大转发带宽300Mbps。

      Professional1-NonFixedIP:最大转发带宽300Mbps。

      Professional2:最大转发带宽1Gbps。

      Professional2-NonFixedIP:最大转发带宽1Gbps。

      GM: 最大转发带宽500Mbps。

    connection_number

    Integer

    VPN网关下的最大VPN连接数。

    used_connection_number

    Integer

    VPN网关下当前已经使用的VPN连接数。

    used_connection_group

    Integer

    VPN网关下当前已经使用的VPN连接组个数。同一用户网关入云的两条连接组成一个连接组。VPN网关默认支持10个免费的VPN连接组。

    enterprise_project_id

    String

    • 功能说明:企业项目ID。
    • 格式:36位UUID或者"0"。

    access_vpc_id

    String

    • 功能说明:VPN网关使用的接入VPC ID。
    • 格式:36位UUID。

    access_subnet_id

    String

    • 功能说明:VPN网关使用的接入VPC中的子网ID。
    • 格式:36位UUID。

    ha_mode

    String

    • 功能说明:网关的HA模式,"active-active"表示双活,"active-standby"表示主备。
    • 取值范围:active-active,active-standby。
    • 默认值:active-active。

    policy_template

    PolicyTemplate object

    非固定IP接入VPN网关网关的策略模板配置,只有在规格为非固定IP接入VPN网关时返回。

    tags

    Array of VpnResourceTag objects

    标签列表。

    表8 VpnResourceTag

    名称

    类型

    描述

    key

    String

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

    value

    String

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

    名称

    类型

    描述

    ike_policy

    IkePolicy object

    ike 策略对象。

    ipsec_policy

    IpsecPolicy object

    ipsec 策略对象。

    表10 IkePolicy

    名称

    类型

    描述

    encryption_algorithm

    String

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

    dh_group

    String

    • 功能说明:第一阶段密钥交换使用的DH组。
    • 取值范围:group14,group15,group16,group19,group20,group21,disable。

    authentication_algorithm

    String

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

    lifetime_seconds

    Integer

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

    名称

    类型

    描述

    authentication_algorithm

    String

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

    encryption_algorithm

    String

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

    pfs

    String

    • 功能说明:PFS使用的DH密钥组。
    • 取值范围:group14,group15,group16,group19,group20,group21,disable。

    lifetime_seconds

    Integer

    • 功能说明:表示配置IPSec连接建立的隧道以时间为基准的生存周期。
    • 取值范围:30-604800,单位:秒。
  • 响应样例
    1. 使用已有EIP创建关联VPC的VPN网关的响应。
      {
          "vpn_gateway": {
              "id": "134f9fb1-demo-a8df-va86-2040a5c13325",
              "name": "vpngw-9f24",
              "network_type": "public",
              "attachment_type": "vpc",
              "vpc_id": "0cf79a3f-demo-a8df-va86-d7ace626b0fa",
              "local_subnets": ["192.168.0.0/24"],
              "connect_subnet": "f5741286-demo-a8df-va86-2c82bd9ee114",
              "bgp_asn": 64512,
              "flavor": "Professional1",
              "connection_number": 200,
              "used_connection_number": 0,
              "used_connection_group": 0,
              "enterprise_project_id": "0",
              "access_vpc_id": "0cf79a3f-demo-a8df-va86-d7ace626b0fa",
              "access_subnet_id": "f5741286-demo-a8df-va86-2c82bd9ee114",
              "ha_mode": "active-active"
          },
          "request_id": "7b37532a-d6e4-46b9-98dc-9169ec2ca58f"
      }
    2. 新建EIP创建关联ER的VPN网关的响应。
      {
          "vpn_gateway": {
              "id": "80ac167b-demo-a8df-va86-a9a2a23223b8",
              "name": "vpngw-1234",
              "network_type": "public",
              "attachment_type": "er",
              "ip_version": "ipv4",
              "er_id": "cb4a631d-demo-a8df-va86-ca3fa348c36c",
              "bgp_asn": 65533,
              "flavor": "Professional2",
              "connection_number": 200,
              "used_connection_number": 0,
              "used_connection_group": 0,
              "enterprise_project_id": "0",
              "access_vpc_id": "0cf79a3f-demo-a8df-va86-d7ace626b0fa",
              "access_subnet_id": "f5741286-demo-a8df-va86-2c82bd9ee114",
              "ha_mode": "active-active"
          },
          "request_id": "cd71cade-bfbd-410b-b672-4bfe46cfc311"
      }
    3. 创建私网关联VPC的VPN网关的响应。
      {
          "vpn_gateway": {
              "id": "80ac167b-demo-a8df-va86-a9a2a23223b8",
              "name": "vpngw-1234",
              "network_type": "private",
              "attachment_type": "vpc",
              "vpc_id": "cb4a631d-demo-a8df-va86-ca3fa348c36c",
              "local_subnets": ["192.168.0.0/24", "192.168.1.0/24"],
              "connect_subnet": "f5741286-demo-a8df-va86-2c82bd9ee114",
              "bgp_asn": 65533,
              "flavor": "Professional2",
              "connection_number": 200,
              "used_connection_number": 0,
              "used_connection_group": 0,
              "enterprise_project_id": "0",
              "access_vpc_id": "cb4a631d-demo-a8df-va86-ca3fa348c36c",
              "access_subnet_id": "f5741286-demo-a8df-va86-2c82bd9ee114",
              "ha_mode": "active-active"
          },
          "request_id": "cd71cade-bfbd-410b-b672-4bfe46cfc311"
      }

状态码

请参见状态码