华为云用户手册

  • 操作步骤 创建关联VPC的VPN网关。 发送“POST https://{endpoint}/v5/{project_id}/vpn-gateways”,project_id为项目ID。 在Request Header中增加“X-Auth-Token”。 在Request Body中传入参数如下。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 { "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" } } } 查看请求响应结果。 请求成功时,响应参数如下,id就是VPN网关的ID。 { "vpn_gateway": { "id": "620d99b8-demo-a8df-va86-200b868f2d7d", "name": "vpngw-3caf", "network_type": "public", "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": 64512, "access_vpc_id": "cb4a631d-demo-a8df-va86-ca3fa348c36c", "access_subnet_id": "f5741286-demo-a8df-va86-2c82bd9ee114", "flavor": "Professional1", "used_connection_number": 0, "used_connection_group": 0, "enterprise_project_id": "0" }, "request_id": "4a739f5c-edb7-4122-b31f-b77fb1b94857" } 查询VPN网关详情。 发送“GET https://{endpoint}/v5/{project_id}/vpn-gateways/{vgw_id}”,project_id为项目ID。 在Request Header中增加“X-Auth-Token”。 查看请求响应结果。 请求成功时,响应参数如下,id就是VPN网关的ID。 { "vpn_gateway": { "id": "620d99b8-demo-a8df-va86-200b868f2d7d", "name": "vpngw-3caf", "network_type": "public", "status": "ACTIVE", "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", "access_vpc_id": "cb4a631d-demo-a8df-va86-ca3fa348c36c", "access_subnet_id": "f5741286-demo-a8df-va86-2c82bd9ee114", "bgp_asn": 64512, "flavor": "Professional1", "availability_zone_ids": [ "cn-south-1f", "cn-south-1e" ], "used_connection_number": 0, "used_connection_group": 0, "enterprise_project_id": "0", "eip1": { "id": "cff40e5e-demo-a8df-va86-7366077bf097", "ip_version": 4, "type": "5_bgp", "ip_address": "88.***.***.8", "charge_mode": "bandwidth", "bandwidth_id": "593a1a79-demo-a8df-va86-64ec45fb23f6", "bandwidth_size": 300, "bandwidth_name": "vpngw-bandwidth-1391" }, "eip2": { "id": "d290f1ee-demo-a8df-va86-d701748f0851", "ip_version": 4, "type": "5_bgp", "ip_address": "88.***.***.6", "charge_mode": "bandwidth", "bandwidth_id": "0abb9d55-demo-a8df-va86-b7500ac2a338", "bandwidth_size": 300, "bandwidth_name": "vpngw-bandwidth-1392" }, "created_at": "2022-09-15T08:56:09.386Z", "updated_at": "2022-09-15T11:13:13.677Z" }, "request_id": "d099a7dc-ea71-45a6-a75b-dccbfe17d438" }
  • 前提条件 已创建VPC,具体请参见创建VPC。 您需要规划VPN网关所在的区域信息,并根据区域确定调用API的Endpoint。 当您使用Token认证方式完成认证鉴权时,需要获取用户Token并在调用接口时增加“X-Auth-Token”到业务接口请求消息头中。Token认证,具体操作请参考认证鉴权章节。 通过 IAM 服务获取到的Token有效期为24小时,需要使用同一个Token鉴权时,可以先将Token缓存,避免频繁调用。
  • 响应消息 响应参数 返回状态码为 200: 更新成功。 表5 响应Body参数列表 名称 类型 描述 customer_gateway ResponseCustomerGateway object customer_gateway对象。 request_id String 请求id。 表6 ResponseCustomerGateway 名称 类型 描述 id String 功能说明:对端网关的ID。 格式:36位UUID。 name String 功能说明:对端网关名称,不填时会自动生成。 取值范围:1-64个字符,包括数字、英文字母、中文(\u4e00 - \u9fa5)、_(下划线)、-(中划线)。 id_type String 功能说明:对端网关标识类型。 取值范围:ip,fqdn。 id_value String 对端网关标识值。 bgp_asn Long 对端网关的BGP自治域编号。仅当id_type为ip时返回。 created_at String 创建时间。 UTC时间格式:yyyy-MM-ddTHH:mm:ss。 非UTC时间格式:yyyy-MM-ddTHH:mm:ssZ。 updated_at String 最后一次更新时间。 UTC时间格式:yyyy-MM-ddTHH:mm:ss。 非UTC时间格式:yyyy-MM-ddTHH:mm:ssZ。 ca_certificate CaCertificate object 对端网关CA证书信息。仅当对端网关绑定CA证书时返回。 tags Array of VpnResourceTag objects 标签列表。 表7 CaCertificate 名称 类型 描述 id String 证书ID。 serial_number String 证书序列号。 signature_algorithm String 签名算法。 issuer String 证书颁发者。 subject String 证书使用者。 expire_time String 证书过期时间。 is_updatable boolean 是否能更新证书内容。 表8 VpnResourceTag 名称 类型 描述 key String 功能说明:标签的键。 取值范围:1-128个字符,支持数字、英文字母、中文、西班牙语、葡语、空格,以及以下字符:_.:=+-@。 value String 功能说明:标签的值。 取值范围:0-255个字符,支持数字、英文字母、中文、西班牙语、葡语、空格,以及以下字符:_.:=+-@。 响应样例 { "customer_gateway": { "id": "03c0aa3d-demo-a8df-va86-9d82473765d4", "name": "cgw-f846", "id_type": "ip", "id_value": "10.***.***.21", "bgp_asn": 65533, "ca_certificate": { "serial_number": "14257156674311863338", "signature_algorithm": "SM3WITHSM2", "issuer": "C=CN,O=a0002,CN=XXX", "subject": "C=CN,O=a0002,CN=XXX", "expire_time": "2024-05-22T07:34:22Z", "is_updatable": true }, "created_at": "2021-12-21T16:49:28.108+08:00", "updated_at": "2021-12-21T16:49:28.108+08:00" }, "request_id": "96718f4a-f57a-4e1f-8d05-7d5e903c8d90" }
  • 请求消息 请求参数 表2 请求参数 名称 类型 是否必选 描述 customer_gateway UpdateCgwRequestBodyContent object 是 customer_gateway对象。 表3 UpdateCgwRequestBodyContent 名称 类型 是否必选 描述 name String 否 功能说明:网关名称。 取值范围:1-64个字符,支持数字、英文字母、中文(\u4e00 - \u9fa5)、_(下划线)、-(中划线)、.(点)。 ca_certificate CaCertificateRequest object 否 功能说明:对端网关CA证书。 表4 CaCertificateRequest 名称 类型 是否必选 描述 id String 否 功能说明:证书ID。 格式:36位UUID。 content String 否 功能说明:对端网关CA证书内容。 取值范围:1-8192个字符。 请求样例 PUT https://{Endpoint}/v5/{project_id}/customer-gateways/{customer_gateway_id} { "customer_gateway": { "name": "cgw-f846", "ca_certificate": { "content":"******" } } }
  • 响应消息 响应参数 返回状态码为 200: successful operation。 表2 响应Body参数列表 名称 类型 描述 availability_zones AvailabilityZones object 可用区列表。 request_id String 请求ID。 表3 AvailabilityZones 名称 类型 描述 basic VpnGatewayAvailabilityZones object Basic网关规格。 professional1 VpnGatewayAvailabilityZones object Professional1网关规格。 Professional1-NonFixedIP VpnGatewayAvailabilityZones object Professional1-NonFixedIP网关规格。 professional2 VpnGatewayAvailabilityZones object Professional2网关规格。 Professional2-NonFixedIP VpnGatewayAvailabilityZones object Professional2-NonFixedIP网关规格。 gm VpnGatewayAvailabilityZones object GM网关规格。 表4 VpnGatewayAvailabilityZones 名称 类型 描述 vpc Array of String 关联VPC类型的可用区列表。 er Array of String 关联ER类型的可用区列表。 响应样例 { "availability_zones": { "basic": { "vpc": ["cn-south-1f"], "er": [] }, "professional1": { "vpc": ["cn-south-1f", "cn-south-1e", "cn-south-1c"], "er": ["cn-south-1f"] }, "professional2": { "vpc": ["cn-south-1f", "cn-south-1e", "cn-south-1c"], "er": ["cn-south-1f"] }, "gm": { "vpc": ["cn-south-1f", "cn-south-1e", "cn-south-1c"], "er": ["cn-south-1f"] } }, "request_id": "b60309ab-812c-4269-9de4-fb9a65e6db16" }
  • 操作步骤 创建VPN连接监控。 发送“POST https://{endpoint}/v5/{project_id}/connection-monitors”,project_id为项目ID。 在Request Header中增加“X-Auth-Token”。 在Request Body中传入参数如下。 { "connection_monitor": { "vpn_connection_id": "cae286f2-demo-a8df-va86-e22416ca1220" } } 查看请求响应结果。 请求成功时,响应参数如下,id就是VPN连接监控的ID。 { "connection_monitor": { "id": "76f64229-demo-a8df-va86-3907e2815b6d", "vpn_connection_id": "cae286f2-demo-a8df-va86-e22416ca1220", "type": "gateway", "source_ip": "88.***.***.60", "destination_ip": "192.***.***.0", "proto_type": "icmp" }, "request_id": "54af23d8-989e-445d-bb48-0a9da33d7f0f" } 查询VPN连接监控详情。 发送“GET https://{endpoint}/v5/{project_id}/connection-monitors/{connection_monitor_id}”,project_id为项目ID。 在Request Header中增加“X-Auth-Token”。 查看请求响应结果。 请求成功时,响应参数如下,id就是VPN连接监控的ID。 { "connection_monitor": { "id": "76f64229-demo-a8df-va86-3907e2815b6d", "status": "ACTIVE", "vpn_connection_id": "cae286f2-demo-a8df-va86-e22416ca1220", "type": "gateway", "source_ip": "88.***.***.60", "destination_ip": "192.***.***.0", "proto_type": "icmp" }, "request_id": "72d05395-0637-4f93-9844-b4979e9d7bdc" }
  • 响应消息 响应参数 返回状态码为 200: 查询成功。 表3 响应Body参数列表 名称 类型 描述 vpn_gateways Array of ResponseVpnGateway objects 网关信息。 request_id String 请求ID。 表4 ResponseVpnGateway 名称 类型 描述 id String 功能说明:VPN网关ID。 格式:36位UUID。 name String 功能说明:VPN网关名称,不填时会自动生成。 取值范围:1-64个字符,支持数字、英文字母、中文(\u4e00 - \u9fa5)、_(下划线)、-(中划线)、.(点)。 network_type String 功能说明:VPN网关网络类型。 取值范围:public,private。 默认值:public。 status String 功能说明:VPN网关状态。 取值范围: PENDING_CREATE:创建中。 PENDING_UPDATE:更新中。 PENDING_DELETE:删除中。 ACTIVE:正常。 FAULT:异常。 FREEZED:冻结。 attachment_type String 功能说明:关联模式。 取值范围:vpc,er。 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时,vpc_id是VPN网关的接入VPC的ID。 local_subnets Array of String 本端子网。本端子网是云上子网,该网段需要通过VPN与用户侧网络进行互通。单个网段格式示例:192.168.52.0/24。仅当attachment_type为vpc时返回。 connect_subnet String VPN网关所使用的VPC中的一个子网ID。 bgp_asn Long VPN网关的BGP自治域编号。 flavor String 功能说明:VPN网关的规格类型。 取值范围: Basic:最大转发带宽100Mbps。 Professional1:最大转发带宽300Mbps。 Professional1-NonFixedIP:最大转发带宽300Mbps。 Professional2:最大转发带宽1Gbps。 Professional2-NonFixedIP:最大转发带宽1Gbps。 GM:最大转发带宽500Mbps。 availability_zone_ids Array of String 部署VPN网关的可用区。当指定了可用区时则返回;当未指定可用区时,在VPN网关的状态为ACTIVE时返回。 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",表示资源属于default企业项目。 注:"0"并不是真实存在的企业项目ID。 eip1 ResponseEip object VPN网关使用的第一个EIP。在VPN网关的状态为ACTIVE时返回。 eip2 ResponseEip object VPN网关使用的第二个EIP。在VPN网关的状态为ACTIVE时返回。 created_at String 创建时间。在VPN网关的状态为ACTIVE时返回。 UTC时间格式:yyyy-MM-ddTHH:mm:ss。 非UTC时间格式:yyyy-MM-ddTHH:mm:ssZ。 updated_at String 最后一次更新时间。在VPN网关的状态为ACTIVE时返回。 UTC时间格式:yyyy-MM-ddTHH:mm:ss。 非UTC时间格式:yyyy-MM-ddTHH:mm:ssZ。 access_vpc_id String 功能说明:VPN网关使用的接入VPC ID。 格式:36位UUID。 access_subnet_id String 功能说明:VPN网关使用的接入VPC中的子网ID。 格式:36位UUID。 access_private_ip_1 String 私网类型VPN网关的接入私网IP,VPN网关使用该私网IP与对端网关建连。双活网关表示使用的第一个私网地址,主备表示主私网地址。 示例:192.168.52.9。仅当network_type为private时返回。 access_private_ip_2 String 私网类型VPN网关的接入私网IP,VPN网关使用该私网IP与对端网关建连。双活网关表示使用的第二个私网地址,主备表示备私网地址。 示例:192.168.52.9。仅当network_type为private时返回。 ha_mode String 功能说明:网关的HA模式,"active-active"表示双活,"active-standby"表示主备。 取值范围:active-active,active-standby。 默认值:active-active。 policy_template PolicyTemplate object 非固定IP接入VPN网关的策略模板配置,只有在规格为非固定IP接入VPN网关时返回。 supported_flavors Array of String 网关可升配到的目标规格。 tags Array of VpnResourceTag objects 标签列表。 表5 ResponseEip 名称 类型 描述 id String 功能说明:EIP的ID。 格式:36位UUID。当使用默认企业项目时返回"0"。 ip_version Integer 功能说明:EIP版本。 取值范围:4。 ip_billing_info String 功能说明:EIP的订单信息。包年/包月EIP才会返回订单信息,按需计费的EIP不返回。 格式:order_id:product_id:region_id:project_id,如: CS 22********LIBIV:00301-******-0--0:br-iaas-odin1:0605768a************c006c7e484aa。 type String 功能说明:EIP的类型。 取值范围:可查看申请EIP表6中type字段的取值范围。 ip_address String 功能说明:EIP的公网IPv4地址。 格式:ipv4类型地址。例如:88.***.***.11。 charge_mode String 功能说明:EIP的带宽计费模式。按流量计费或按带宽计费。 取值范围: bandwidth:按带宽计费。 traffic:按流量计费。 bandwidth_id String 功能说明:EIP的带宽ID。 格式:36位UUID。 bandwidth_size Integer 功能说明:EIP的带宽大小,单位:Mbit/s。每个region能够提供的EIP最大带宽不同,EIP的最大带宽受限于EIP服务,可以使用工单来提高账户下的EIP的最大带宽。 取值范围:1-1000。 bandwidth_name String 功能说明:EIP的带宽名称。 取值范围:1-64个字符,支持数字、英文字母、中文(\u4e00 - \u9fa5)、_(下划线)、-(中划线)、.(点)。 bandwidth_billing_info String 功能说明:EIP的带宽订单信息。包年/包月EIP带宽才会返回带宽订单信息,按需计费的EIP带宽不返回。 格式:order_id:product_id:region_id:project_id,如: CS22********LIBIV:00301-******-0--0:br-iaas-odin1:0605768a************c006c7e484aa。 表6 PolicyTemplate 名称 类型 描述 ike_policy IkePolicy object ike 策略对象。 ipsec_policy IpsecPolicy object ipsec 策略对象。 表7 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,单位:秒。 表8 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,单位:秒。 表9 VpnResourceTag 名称 类型 描述 key String 功能说明:标签的键。 取值范围:1-128个字符,支持数字、英文字母、中文、西班牙语、葡语、空格,以及以下字符:_.:=+-@。 value String 功能说明:标签的值。 取值范围:0-255个字符,支持数字、英文字母、中文、西班牙语、葡语、空格,以及以下字符:_.:=+-@。 响应样例 查询所有VPN网关的响应。 { "vpn_gateways": [{ "id": "8e1d0686-demo-a8df-va86-91f32fa1dfc8", "name": "vpngw-1af3", "network_type": "public", "status": "ACTIVE", "attachment_type": "vpc", "vpc_id": "91a74241-demo-a8df-va86-9b5f98c66c8c", "local_subnets": ["192.168.15.0/24"], "connect_subnet": "f5741286-demo-a8df-va86-2c82bd9ee114", "bgp_asn": 64512, "flavor": "Professional1", "availability_zone_ids": ["cn-south-1f", "cn-south-1e"], "connection_number": 200, "used_connection_number": 0, "used_connection_group": 0, "enterprise_project_id": "0", "eip1": { "id": "8ff5d6b5-demo-a8df-va86-b9d598033153", "ip_version": 4, "type": "5_bgp", "ip_address": "88.***.***.111", "charge_mode": "bandwidth", "bandwidth_id": "aa62f8f2-demo-a8df-va86-b05b2b999715", "bandwidth_size": 300, "bandwidth_name": "vpngw-bandwidth-13a3" }, "eip2": { "id": "08e7e927-demo-a8df-va86-26a6394021eb", "ip_version": 4, "type": "5_bgp", "ip_address": "88.***.***.199", "charge_mode": "bandwidth", "bandwidth_id": "887d61f7-demo-a8df-va86-38ee8232e27c", "bandwidth_size": 300, "bandwidth_name": "vpngw-bandwidth-1afb" }, "created_at": "2022-11-28T02:36:16.834Z", "updated_at": "2022-11-28T02:36:16.834Z", "access_vpc_id": "91a74241-demo-a8df-va86-9b5f98c66c8c", "access_subnet_id": "f5741286-demo-a8df-va86-2c82bd9ee114", "ha_mode": "active-active" }, { "id": "66ddeacb-demo-a8df-va86-9a414b5bd7d5", "name": "vpngw-2be4", "network_type": "public", "status": "ACTIVE", "attachment_type": "er", "er_id": "c62fad0d-demo-a8df-va86-e06c4c351b9f", "bgp_asn": 64512, "flavor": "Professional1", "availability_zone_ids": ["cn-south-1f", "cn-south-1e"], "connection_number": 200, "used_connection_number": 0, "used_connection_group": 0, "enterprise_project_id": "0", "eip1": { "id": "0f6d1415-demo-a8df-va86-edb2ee97c9cc", "ip_version": 4, "type": "5_bgp", "ip_address": "88.***.***.251", "charge_mode": "bandwidth", "bandwidth_id": "e93767cc-demo-a8df-va86-bac2987f90a4", "bandwidth_size": 300, "bandwidth_name": "vpngw-bandwidth-10c3" }, "eip2": { "id": "7b46b62f-demo-a8df-va86-6b8e44312416", "ip_version": 4, "type": "5_bgp", "ip_address": "88.***.***.102", "charge_mode": "bandwidth", "bandwidth_id": "bde3557e-demo-a8df-va86-629a3754ae07", "bandwidth_size": 300, "bandwidth_name": "vpngw-bandwidth-18bd", }, "created_at": "2022-11-28T02:22:27.24Z", "updated_at": "2022-11-28T02:22:27.24Z", "access_vpc_id": "0cf79a3f-demo-a8df-va86-d7ace626b0fa", "access_subnet_id": "f5741286-demo-a8df-va86-2c82bd9ee114", "ha_mode": "active-active" },{ "id":"66ddeacb-demo-a8df-va86-9a414b5bd7d5", "name":"vpngw-5bd6", "network_type":"public", "status":"ACTIVE", "attachment_type":"vpc", "vpc_id":"c62fad0d-demo-a8df-va86-e06c4c351b9f", "local_subnets":[ "192.168.0.0/24" ], "connect_subnet":"fd75bf7b--demo-a8df-va86-db13f03e299a", "bgp_asn":64512, "flavor":"Professional1-NonFixedIP", "availability_zone_ids":[ "cn-north-7c" ], "connection_number":200, "used_connection_number":0, "used_connection_group":0, "enterprise_project_id":"0", "ha_mode":"active-standby", "eip1":{ "id":"0f6d1415-demo-a8df-va86-edb2ee97c9cc", "ip_version":4, "type":"5_bgp", "ip_address":"88.***.***.251", "charge_mode":"bandwidth", "bandwidth_id":"e93767cc-demo-a8df-va86-bac2987f90a4", "bandwidth_size":300, "bandwidth_name":"vpngw-bandwidth-10c3" }, "eip2":{ "id":"7b46b62f-demo-a8df-va86-6b8e44312416", "ip_version":4, "type":"5_bgp", "ip_address":"88.***.***.102", "charge_mode":"bandwidth", "bandwidth_id":"bde3557e-demo-a8df-va86-629a3754ae07", "bandwidth_size":300, "bandwidth_name":"vpngw-bandwidth-18bd" }, "policy_template":{ "ike_policy":{ "encryption_algorithm":"aes-128", "dh_group":"group20", "authentication_algorithm":"sha2-256", "lifetime_seconds":86400 }, "ipsec_policy":{ "authentication_algorithm":"sha2-256", "encryption_algorithm":"aes-128", "pfs":"group20", "lifetime_seconds":3600 } }, "created_at":"2022-11-28T02:22:27.24Z", "updated_at":"2022-11-28T02:22:27.24Z", "access_vpc_id":"4d03fe2d--demo-a8df-va86-6def96440f2b", "access_subnet_id":"fd75bf7b--demo-a8df-va86-e-db13f03e299a" }], "request_id": "de1b6caf-d024-4dac-850e-645af40c84f3" } 根据enterprise_project_id查询VPN网关的响应。 { "vpn_gateways": [{ "id": "8e1d0686-demo-a8df-va86-91f32fa1dfc8", "name": "vpngw-1af3", "network_type": "public", "status": "ACTIVE", "attachment_type": "vpc", "vpc_id": "91a74241-demo-a8df-va86-9b5f98c66c8c", "local_subnets": ["192.168.15.0/24"], "connect_subnet": "f5741286-demo-a8df-va86-2c82bd9ee114", "bgp_asn": 64512, "flavor": "Professional1", "availability_zone_ids": ["cn-south-1f", "cn-south-1e"], "connection_number": 200, "used_connection_number": 0, "used_connection_group": 0, "enterprise_project_id": "7354dda9-demo-a8df-va86-a6b08fb92043", "eip1": { "id": "8ff5d6b5-demo-a8df-va86-b9d598033153", "ip_version": 4, "type": "5_bgp", "ip_address": "88.***.***.111", "charge_mode": "bandwidth", "bandwidth_id": "aa62f8f2-demo-a8df-va86-b05b2b999715", "bandwidth_size": 300, "bandwidth_name": "vpngw-bandwidth-13a3" }, "eip2": { "id": "08e7e927-demo-a8df-va86-26a6394021eb", "ip_version": 4, "type": "5_bgp", "ip_address": "88.***.***.199", "charge_mode": "bandwidth", "bandwidth_id": "887d61f7-demo-a8df-va86-38ee8232e27c", "bandwidth_size": 300, "bandwidth_name": "vpngw-bandwidth-1afb" }, "created_at": "2022-11-28T02:36:16.834Z", "updated_at": "2022-11-28T02:36:16.834Z", "access_vpc_id": "91a74241-demo-a8df-va86-9b5f98c66c8c", "access_subnet_id": "f5741286-demo-a8df-va86-2c82bd9ee114", "ha_mode": "active-active" }, { "id": "66ddeacb-demo-a8df-va86-9a414b5bd7d5", "name": "vpngw-2be4", "network_type": "private", "status": "ACTIVE", "attachment_type": "er", "er_id": "c62fad0d-demo-a8df-va86-e06c4c351b9f", "bgp_asn": 64512, "flavor": "Professional1", "availability_zone_ids": ["cn-south-1f", "cn-south-1e"], "connection_number": 200, "used_connection_number": 0, "used_connection_group": 0, "enterprise_project_id": "7354dda9-demo-a8df-va86-a6b08fb92043", "access_private_ip_1": "192.168.4.7", "access_private_ip_2": "192.168.4.99", "created_at": "2022-11-28T02:22:27.24Z", "updated_at": "2022-11-28T02:22:27.24Z", "access_vpc_id": "0cf79a3f-demo-a8df-va86-d7ace626b0fa", "access_subnet_id": "f5741286-demo-a8df-va86-2c82bd9ee114", "ha_mode": "active-active" },{ "id":"66ddeacb-demo-a8df-va86-9a414b5bd7d5", "name":"vpngw-5bd6", "network_type":"public", "status":"ACTIVE", "attachment_type":"vpc", "vpc_id":"c62fad0d-demo-a8df-va86-e06c4c351b9f", "local_subnets":[ "192.168.0.0/24" ], "connect_subnet":"fd75bf7b--demo-a8df-va86-db13f03e299a", "bgp_asn":64512, "flavor":"Professional1-NonFixedIP", "availability_zone_ids":[ "cn-north-7c" ], "connection_number":200, "used_connection_number":0, "used_connection_group":0, "enterprise_project_id":"0", "ha_mode":"active-standby", "eip1":{ "id":"0f6d1415-demo-a8df-va86-edb2ee97c9cc", "ip_version":4, "type":"5_bgp", "ip_address":"88.***.***.251", "charge_mode":"bandwidth", "bandwidth_id":"e93767cc-demo-a8df-va86-bac2987f90a4", "bandwidth_size":300, "bandwidth_name":"vpngw-bandwidth-10c3" }, "eip2":{ "id":"7b46b62f-demo-a8df-va86-6b8e44312416", "ip_version":4, "type":"5_bgp", "ip_address":"88.***.***.102", "charge_mode":"bandwidth", "bandwidth_id":"bde3557e-demo-a8df-va86-629a3754ae07", "bandwidth_size":300, "bandwidth_name":"vpngw-bandwidth-18bd" }, "policy_template":{ "ike_policy":{ "encryption_algorithm":"aes-128", "dh_group":"group20", "authentication_algorithm":"sha2-256", "lifetime_seconds":86400 }, "ipsec_policy":{ "authentication_algorithm":"sha2-256", "encryption_algorithm":"aes-128", "pfs":"group20", "lifetime_seconds":3600 } }, "created_at":"2022-11-28T02:22:27.24Z", "updated_at":"2022-11-28T02:22:27.24Z", "access_vpc_id":"4d03fe2d--demo-a8df-va86-6def96440f2b", "access_subnet_id":"fd75bf7b--demo-a8df-va86-e-db13f03e299a" }], "request_id": "bfa819a1-e824-4799-8e72-21a35dad97c9" }
  • 请求消息 请求参数 无。 请求样例 查询所有VPN网关。 GET https://{Endpoint}/v5/{project_id}/vpn-gateways 根据enterprise_project_id查询VPN网关。 GET https://{Endpoint}/v5/{project_id}/vpn-gateways?enterprise_project_id={enterprise_project_id}
  • 响应消息 响应参数 返回状态码为 200: 查询成功。 表2 响应Body参数列表 名称 类型 描述 quotas Quotas object quotas对象。 request_id String 请求ID。 表3 Quotas 名称 类型 描述 resources Array of QuotaInfo objects resources对象。 表4 QuotaInfo 名称 类型 描述 type String 功能说明:根据type过滤查询指定类型的配额。 取值范围: customer_gateway 对端网关。 vpn_connection 企业版VPN连接。 vpn_gateway 企业版VPN网关。 quota Integer 配额上限。 used Integer 已使用数。 响应样例 { "quotas": { "resources": [ { "type": "customer_gateway", "quota": 100, "used": 13 }, { "type": "vpn_connection", "quota": 5000, "used": 306 }, { "type": "vpn_gateway", "quota": 50, "used": 23 }, { "type": "vpngw", "quota": 5, "used": 4 }, { "type": "vpn", "quota": 30, "used": 4 } ] }, "request_id": "9aeb7f73-e1b6-42eb-96ad-b68aef8186e3" }
  • 认证鉴权 调用接口有如下两种认证方式,您可以选择其中一种进行认证鉴权。 Token认证:通过Token认证调用请求。 AK/SK认证:通过AK(Access Key ID)/SK(Secret Access Key)加密调用请求。推荐使用AK/SK认证,其安全性比Token认证要高。 Token认证 Token的有效期为24小时,需要使用一个Token鉴权时,可以先缓存起来,避免频繁调用。 Token在计算机系统中代表令牌(临时)的意思,拥有Token就代表拥有某种权限。Token认证就是在调用API的时候将Token加到请求消息头中,从而通过身份认证,获得操作API的权限。Token可通过调用获取用户Token接口获取。 云服务存在两种部署方式:项目级服务和全局级服务。 项目级服务需要获取项目级别的Token,此时请求body中auth.scope的取值为project。 全局级服务需要获取全局级别的Token,此时请求body中auth.scope的取值为domain。 调用 虚拟专用网络 API需要项目级别的Token,即调用获取用户Token接口时,请求body中auth.scope的取值需要选择project,如下所示。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", "password": "********", "domain": { "name": "domainname" } } } }, "scope": { "project": { "name": "xxxxxxxx" } } } } 获取Token 后,再调用其他接口时,您需要在请求消息头中添加“X-Auth-Token”,其值即为Token。例如Token值为“ABCDEFJ....”,则调用接口时将“X-Auth-Token: ABCDEFJ....”加到请求消息头即可,如下所示。 1 2 3 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/projects Content-Type: application/json X-Auth-Token: ABCDEFJ.... 您还可以通过这个视频教程了解如何使用Token认证:https://bbs.huaweicloud.com/videos/101333。 AK/SK认证 AK/SK签名认证方式仅支持消息体大小在12MB以内,12MB以上的请求请使用Token认证。 AK/SK认证就是使用AK/SK对请求进行签名,在请求时将签名信息添加到消息头,从而通过身份认证。 AK(Access Key ID):访问密钥ID。与私有访问密钥关联的唯一标识符;访问密钥ID和私有访问密钥一起使用,对请求进行加密签名。 SK(Secret Access Key):私有访问密钥。与访问密钥ID结合使用,对请求进行加密签名,可标识发送方,并防止请求被修改。 使用AK/SK认证时,您可以基于签名算法使用AK/SK对请求进行签名,也可以使用专门的签名SDK对请求进行签名。详细的签名方法和SDK使用方法请参见API签名指南。 签名SDK只提供签名功能,与服务提供的SDK不同,使用时请注意。 您还可以通过这个视频教程了解如何使用AK/SK认证:https://bbs.huaweicloud.com/videos/100697。 父主题: 如何调用API
  • 响应消息 响应参数 返回状态码为 201: successful operation。 表9 响应Body参数列表 名称 类型 描述 vpn_connection ResponseVpnConnection object vpn_connection对象。 request_id String 请求ID。 表10 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路由模式。 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:ss。 非UTC时间格式:yyyy-MM-ddTHH:mm:ssZ。 updated_at String 最后一次更新时间。 UTC时间格式:yyyy-MM-ddTHH:mm:ss。 非UTC时间格式:yyyy-MM-ddTHH:mm:ssZ。 enterprise_project_id String 功能说明:企业项目ID。 格式:36位UUID。与vgw_id所标识VPN网关的企业项目ID一致。 ha_role String 功能说明:主备模式VPN网关下的连接时,'master'表示主连接,'slave'表示备连接。双活模式下的连接ha_role都是'master'。 默认值:master。 tags Array of VpnResourceTag objects 标签列表。 表11 PolicyRule 名称 类型 描述 rule_index Integer 功能说明:规则ID。 取值范围:0-50。 source String 源地址网段。 destination Array of String 目的地址网段。单个网段格式示例:192.168.52.0/24。每个PolicyRule最多返回50个。 表12 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,fqdn。 peer_id String 对端ID。当peer_id_type为ip时返回对端网关的IP;当peer_id_type为fqdn时返回创建或更新VPN连接时指定的对端ID。 当VPN网关flavor为GM时不返回。 dpd Dpd object 对等体存活检测对象。 表13 Dpd 名称 类型 描述 timeout Integer 功能说明:对等体存活检测报文重传间隔。 取值范围:2-60,单位:秒。 interval Integer 功能说明:对等体存活检测空闲时间。 取值范围:10-3600,单位:秒。 msg String 功能说明:对等体存活检测报文格式。 取值范围: seq-hash-notify:指定DPD报文中的载荷顺序是hash-notify。 seq-notify-hash:指定DPD报文中的载荷顺序是notify-hash。 表14 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密钥组,当VPN网关flavor为GM时不返回。 取值范围:group1,group2,group5,group14,group15,group16,group19,group20,group21,disable。 transform_protocol String 功能说明:传输协议。 取值范围: esp:封装安全协议。 lifetime_seconds Integer 功能说明:表示配置IPSec连接建立的隧道以时间为基准的生存周期。 取值范围:30-604800,单位:秒。 encapsulation_mode String 功能说明:报文封装模式。 取值范围: tunnel:隧道模式。 表15 VpnResourceTag 名称 类型 描述 key String 功能说明:标签的键。 取值范围:1-128个字符,支持数字、英文字母、中文、西班牙语、葡语、空格,以及以下字符:_.:=+-@。 value String 功能说明:标签的值。 取值范围:0-255个字符,支持数字、英文字母、中文、西班牙语、葡语、空格,以及以下字符:_.:=+-@。 响应样例 创建静态路由模式连接的响应。 { "vpn_connection": { "id": "98c5af8a-6ee2-4482-99a2-ae2280a6f4c3", "name": "vpn-b2cb", "vgw_id": "b32d91a4-demo-a8df-va86-e907174eb11d", "vgw_ip": "0c464dad-demo-a8df-va86-c22bb0eb0bde", "style": "STATIC", "cgw_id": "5247ae10-demo-a8df-va86-dd36659a7f5d", "peer_subnets": ["192.168.44.0/24"], "tunnel_local_address": "169.254.56.225/30", "tunnel_peer_address": "169.254.56.226/30", "enable_nqa": false, "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" } 创建策略模式连接的响应。 { "vpn_connection": { "id": "98c5af8a-demo-a8df-va86-ae2280a6f4c3", "name": "vpn-799d", "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.44.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.44.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" } 创建bgp路由模式连接的响应。 { "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": "BGP", "cgw_id": "5247ae10-demo-a8df-va86-dd36659a7f5d", "peer_subnets": ["192.168.44.0/24"], "tunnel_local_address": "169.254.56.225/30", "tunnel_peer_address": "169.254.56.226/30", "ikepolicy": { "ike_version": "v2", "authentication_algorithm": "sha2-512", "encryption_algorithm": "aes-256", "dh_group": "group16", "authentication_method": "pre-share", "lifetime_seconds": 172800, "local_id_type": "fqdn", "local_id": "123***", "peer_id_type": "fqdn", "peer_id": "456***", "dpd": { "timeout": 30, "interval": 60, "msg": "seq-notify-hash" } }, "ipsecpolicy": { "authentication_algorithm": "sha2-512", "encryption_algorithm": "aes-256", "pfs": "group16", "transform_protocol": "esp", "lifetime_seconds": 7200, "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" }
  • 请求消息 请求参数 无。 请求样例 查询所有VPN连接监控。 GET https://{Endpoint}/v5/{project_id}/connection-monitors 根据vpn_connection_id查询VPN连接监控。 GET https://{Endpoint}/v5/{project_id}/connection-monitors?vpn_connection_id={vpn_connection_id}
  • 响应消息 响应参数 返回状态码为 200: 查询成功。 表3 响应Body参数列表 名称 类型 描述 connection_monitors Array of ConnectionMonitorInfo objects connection_monitor对象。 request_id String 请求ID。 表4 ConnectionMonitorInfo 名称 类型 描述 id String 功能说明:VPN连接监控ID。 格式:36位UUID。 status String 功能说明:VPN连接监控状态。 取值范围: ACTIVE:正常。 PENDING_CREATE:创建中。 PENDING_DELETE:删除中。 vpn_connection_id String 功能说明:VPN连接监控对应的VPN连接ID。 格式:36位UUID。 type String 功能说明:监控类型。 取值范围:gateway。 source_ip String VPN连接监控的源地址。 destination_ip String VPN连接监控的目的地址。 proto_type String 功能说明:nqa使用的协议类型。 取值范围:icmp。 响应样例 查询所有VPN连接监控的响应。 { "connection_monitors":[ { "id":"76f64229-demo-a8df-va86-3907e2815b6d", "status":"ACTIVE", "vpn_connection_id":"2342adf2-demo-a8df-va86-12aq511s0917", "type":"gateway", "source_ip":"88.***.***.60", "destination_ip":"88.***.***.32", "proto_type":"icmp" }, { "id":"85t53318-demo-a8df-va86-zq9312525f6t", "status":"ACTIVE", "vpn_connection_id":"cae286f2-demo-a8df-va86-e22416ca1220", "type":"gateway", "source_ip":"89.***.***.21", "destination_ip":"88.***.***.12", "proto_type":"icmp" } ], "request_id": "531f8b2c-ec55-45d8-90a3-ede922f7d63c" } 根据vpn_connection_id查询VPN连接监控的响应。 { "connection_monitors":[ { "id":"76f64229-demo-a8df-va86-3907e2815b6d", "status":"ACTIVE", "vpn_connection_id":"2342adf2-demo-a8df-va86-12aq511s0917", "type":"gateway", "source_ip":"88.***.***.60", "destination_ip":"88.***.***.32", "proto_type":"icmp" } ], "request_id": "05ab9b58-9b4c-4cee-8113-4b0f325f1dfc" }
  • URI GET /v5/{project_id}/connection-monitors 表1 参数说明 名称 类型 是否必选 说明 project_id String 是 项目ID,可以通过获取项目ID获取项目ID。 表2 请求Query参数列表 名称 类型 是否必选 描述 vpn_connection_id String 否 VPN连接Id。 enterprise_project_id Array 否 企业项目ID。
  • 响应消息 响应参数 返回状态码为 201: 创建成功。 表6 响应Body参数列表 名称 类型 描述 customer_gateway ResponseCustomerGateway object customer_gateway对象。 request_id String 请求id。 表7 ResponseCustomerGateway 名称 类型 描述 id String 功能说明:对端网关的ID。 格式:36位UUID。 name String 功能说明:对端网关名称,不填时会自动生成。 取值范围:1-64个字符,包括数字、英文字母、中文(\u4e00 - \u9fa5)、_(下划线)、-(中划线)。 id_type String 功能说明:对端网关标识类型。 取值范围:ip,fqdn。 id_value String 对端网关标识值。 bgp_asn Long 对端网关的BGP自治域编号。仅当id_type为ip时返回。 ca_certificate CaCertificate object 对端网关CA证书信息。仅当对端网关绑定CA证书时返回。 created_at String 创建时间。 UTC时间格式:yyyy-MM-ddTHH:mm:ss。 非UTC时间格式:yyyy-MM-ddTHH:mm:ssZ。 updated_at String 最后一次更新时间。 UTC时间格式:yyyy-MM-ddTHH:mm:ss。 非UTC时间格式:yyyy-MM-ddTHH:mm:ssZ。 tags Array of VpnResourceTag objects 标签列表。 表8 CaCertificate 名称 类型 描述 id String 证书ID。 serial_number String 证书序列号。 signature_algorithm String 签名算法。 issuer String 证书颁发者。 subject String 证书使用者。 expire_time String 证书过期时间。 is_updatable boolean 是否能更新证书内容。 表9 VpnResourceTag 名称 类型 描述 key String 功能说明:标签的键。 取值范围:1-128个字符,支持数字、英文字母、中文、西班牙语、葡语、空格,以及以下字符:_.:=+-@。 value String 功能说明:标签的值。 取值范围:0-255个字符,支持数字、英文字母、中文、西班牙语、葡语、空格,以及以下字符:_.:=+-@。 响应样例 { "customer_gateway": { "id": "03c0aa3d-demo-a8df-va86-9d82473765d4", "name": "cgw-2abf", "id_type": "ip", "id_value": "10.***.***.21", "bgp_asn": 65000, "ca_certificate": { "serial_number": "14257156674311863338", "signature_algorithm": "SM3WITHSM2", "issuer": "C=CN,O=a0002,CN=XXX", "subject": "C=CN,O=a0002,CN=XXX", "expire_time": "2024-05-22T07:34:22Z", "is_updatable": true }, "created_at": "2021-12-21T16:49:28.108+08:00", "updated_at": "2021-12-21T16:49:28.108+08:00" }, "request_id": "7e0383bf-a7fb-461b-a926-baa8a795bf1a" }
  • 响应消息 响应参数 返回状态码为 201: successful operation。 表4 响应Body参数列表 名称 类型 描述 certificate VpnGatewayCertificateConfig object VPN网关证书对象。 request_id String 请求ID。 表5 VpnGatewayCertificateConfig 名称 类型 描述 id String 功能说明:VPN网关证书ID。 格式:36位UUID。 name String 功能说明:VPN网关证书名称。 取值范围:3-63个字符、支持数字、英文字母、中文(\u4e00 - \u9fa5)、_(下划线)、-(中划线)。 vgw_id String 功能说明:VPN网关ID。 格式:36位UUID。 issuer String 功能说明:国密签名证书颁发者。 取值范围:1-256个字符。 signature_algorithm String 功能说明:国密签名证书签名算法。 取值范围:1-64个字符。 certificate_serial_number String 功能说明:国密签名证书序列号。 取值范围:1-64个字符。 certificate_subject String 功能说明:签名证书使用者。 取值范围:1-256个字符。 certificate_expire_time String 功能说明:国密签名证书过期时间。 certificate_chain_serial_number String 功能说明:CA证书序列号。 取值范围:1-64个字符。 certificate_chain_subject String 功能说明:CA证书使用者。 取值范围:1-256个字符。 certificate_chain_expire_time String 功能说明:CA证书过期时间。 enc_certificate_serial_number String 功能说明:国密加密证书序列号。 取值范围:1-64个字符。 enc_certificate_subject String 功能说明:加密证书使用者。 取值范围:1-256个字符。 enc_certificate_expire_time String 功能说明:国密加密证书过期时间。 created_at String 功能说明:创建时间。 响应样例 { "certificate": { "id": "73f072d8-demo-a8df-va86-2a755d95636f", "name": "cert-dce7", "vgw_id": "c7f1d3e3-0476-4a71-95a7-3ce8cbb969de", "issuer": "C=CN,ST=Beijing,L=HaiDian,O=GMCert.org,CN=GMCert GM Root CA - 01", "signature_algorithm": "SM3WITHSM2", "certificate_serial_number": "16548506527294397241", "certificate_subject": "C=CN,ST=beijing,L=beijing,O=huawei,OU=vpn,CN=hwcloud-vpn", "certificate_expire_time": "2024-02-20T15:41:39+08:00", "certificate_chain_serial_number": "12369133709000538078", "certificate_chain_subject": "C=CN,ST=Beijing,L=HaiDian,O=GMCert.org,CN=GMCert GM Root CA - 01", "certificate_chain_expire_time": "2039-07-11T20:31:33+08:00", "enc_certificate_serial_number": "16548506527294397242", "enc_certificate_subject": "C=CN,ST=beijing,L=beijing,O=huawei,OU=vpn,CN=hwcloud-vpn", "enc_certificate_expire_time": "2024-02-20T15:43:26+08:00", "created_at": "2023-03-30T10:47:16.657+08:00" } }
  • 请求消息 请求参数 表2 CreateVpnGatewayCertificateRequestBody 名称 类型 是否必选 描述 certificate CreateVpnGatewayCertificateRequestBodyContent object 是 VPN网关证书对象。 表3 CreateVpnGatewayCertificateRequestBodyContent 名称 类型 是否必选 描述 name String 否 功能说明:VPN网关证书名称。 取值范围:3-63个字符、支持数字、英文字母、中文(\u4e00 - \u9fa5)、_(下划线)、-(中划线)、.(英文句点)。 默认值:不填时会自动生成格式为vpngw-****的名称。例如:cert-a45b。 certificate String 是 功能说明:签名证书。 取值范围:1-4096个字符。 必须是国密型非CA证书。 private_key String 是 功能说明:国密签名证书私钥。 取值范围:1-4096个字符。 与签名证书的公钥匹配。 certificate_chain String 是 功能说明:CA证书内容。 取值范围:1-8192个字符。 必须是国密型CA证书。 enc_certificate String 是 功能说明:加密证书。 取值范围:1-4096个字符。 必须是国密型非CA证书。 enc_private_key String 是 功能说明:国密加密证书私钥。 取值范围:1-4096个字符。 与加密证书的公钥匹配。 请求样例 POST https://{Endpoint}/v5/{project_id}/vpn-gateways { "certificate": { "name": "cert-dce7", "certificate": "-----BEGIN CERTIFICATE-----******-----END CERTIFICATE-----", "private_key": "-----BEGIN EC PRIVATE KEY-----*******-----END EC PRIVATE KEY-----", "enc_certificate": "-----BEGIN CERTIFICATE-----********-----END CERTIFICATE-----", "enc_private_key": "-----BEGIN EC PRIVATE KEY-----********-----END EC PRIVATE KEY-----", "certificate_chain": "-----BEGIN CERTIFICATE-----******-----END CERTIFICATE-----" } }
  • 响应消息 响应参数 返回状态码为 200: 查询成功。 表2 响应Body参数列表 名称 类型 描述 tags Array of ResourceTag objects 资源标签列表。 表3 ResourceTag 名称 类型 描述 key String 标签的键。 value String 标签的值。 响应样例 { "tags":[ { "key":"key1", "value":"value1" } ] }
  • URI GET /v5/{project_id}/{resource_type}/{resource_id}/tags 表1 参数说明 名称 类型 是否必选 描述 project_id String 是 项目ID,可以通过获取项目ID获取项目ID。 resource_type String 是 功能说明:资源类型。 取值范围:vpn-gateway,customer-gateway,vpn-connection。 resource_id String 是 资源ID。
  • URI POST /v5/{project_id}/{resource_type}/resource-instances/count 表1 参数说明 名称 类型 是否必选 说明 project_id String 是 项目ID,可以通过获取项目ID获取项目ID。 resource_type String 是 功能说明:资源类型。 取值范围:vpn-gateway,customer-gateway,vpn-connection。
  • 请求消息 请求参数 表2 请求参数 名称 类型 是否必选 描述 without_any_tag Boolean 否 功能说明:该字段为true时查询所有不带标签的资源,此时忽略 “tags”字段。该字段为false或者未提供该参数时,该条件不生效,即返回所有资源或按"tags","matches"等条件过滤。 tags Array of Tag objects 否 功能说明:标签列表。 约束:最多填写20个。 matches Array of Match objects 否 功能说明:搜索字段,包含key和value。key为要匹配的字段,如resource_name等。value为匹配的值。key为固定字典值。 表3 Tag 名称 类型 是否必选 描述 key String 是 功能说明:标签的键。 取值范围:1-128个字符。 values Array of String 是 功能说明:标签的值列表。如果values为空列表,则表示any_value。value之间为或的关系。 取值范围:0-255个字符。 约束:最多填写20个。 表4 Match 名称 类型 是否必选 描述 key String 是 功能说明:匹配的键。 取值范围:resource_name。 value String 是 功能说明:匹配的值。 取值范围:0-255个字符。 请求样例 POST https://{Endpoint}/v5/{project_id}/{resource_type}/resource-instances/count { "tags": [{ "key": "key1", "values": [ "value1", "value2" ] }, { "key": "key2", "values": [ "value1", "value2" ] } ], "matches": [{ "key": "resource_name", "value": "resource1" }], "without_any_tag": "false" }
  • 调用API获取项目ID 项目ID可以通过调用查询指定条件下的项目列表API获取。 获取项目ID的接口为“GET https://{Endpoint}/v3/projects”,其中{Endpoint}为IAM的终端节点。接口的认证鉴权请参见认证鉴权章节。 响应示例如下,其中projects下的“id”即为项目ID。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 { "projects": [ { "domain_id": "65382450e8f64ac0870cd180d14e684b", "is_domain": false, "parent_id": "65382450e8f64ac0870cd180d14e684b", "name": "project_name", "description": "", "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects/a4a5d4098fb4474fa22cd05f897d6b99" }, "id": "a4a5d4098fb4474fa22cd05f897d6b99", "enabled": true } ], "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects" } }
  • 返回结果 状态码 请求发送以后,您会收到响应,其中包含状态码、响应消息头和消息体。 状态码是一组从1xx到5xx的数字代码,状态码表示了请求响应的状态,完整的状态码列表请参见状态码。 对于获取用户Token接口,如果调用后返回状态码为“201”,则表示请求成功。 响应消息头 对应请求消息头,响应同样也有消息头,如“Content-type”。 对于获取用户Token接口,返回如图1所示的消息头,其中“x-subject-token”就是需要获取的用户Token。有了Token之后,您就可以使用Token认证调用其他API。 图1 获取用户Token响应消息头 响应消息体(可选) 该部分可选。响应消息体通常以结构化格式(如JSON或XML)返回,与响应消息头中Content-Type对应,传递除响应消息头之外的内容。 对于获取用户Token接口,返回如下消息体。为篇幅起见,这里只展示部分内容。 1 2 3 4 5 6 7 8 9 10 11 12 { "token": { "expires_at": "2022-09-10T06:52:13.855000Z", "methods": [ "password" ], "catalog": [ { "endpoints": [ { "region_id": "cn-north-04", ...... 当接口调用出错时,会返回错误码及错误信息说明,错误响应的Body体格式如下所示。 1 2 3 4 { "error_msg": "The format of message is error", "error_code": "AS.0001" } 其中,error_code表示错误码,error_msg表示错误描述信息。 父主题: 如何调用API
  • URI POST /v5/{project_id}/{resource_type}/{resource_id}/tags/delete 表1 参数说明 名称 类型 是否必选 描述 project_id String 是 项目ID,可以通过获取项目ID获取项目ID。 resource_type String 是 功能说明:资源类型。 取值范围:vpn-gateway,customer-gateway,vpn-connection。 resource_id String 是 资源ID。
  • 请求消息 请求参数 表2 请求参数 名称 类型 是否必选 描述 tags Array of ResourceTag objects 是 功能说明:标签列表。 约束:最多填写20个。 表3 ResourceTag 名称 类型 是否必选 描述 key String 是 功能说明:标签的键。 取值范围:1-128个字符,支持数字、英文字母、中文、西班牙语、葡语、空格,以及以下字符:_.:=+-@。 value String 否 功能说明:标签的值。 取值范围:0-255个字符,支持数字、英文字母、中文、西班牙语、葡语、空格,以及以下字符:_.:=+-@。 请求样例 DELETE https://{Endpoint}/v5/{project_id}/{resource_type}/{resource_id}/tags/delete { "tags": [{ "key": "key1", "value": "value1" }] }
  • 响应消息 响应参数 返回状态码为 200: 查询成功。 表2 响应Body参数列表 名称 类型 描述 connection_monitor ConnectionMonitorInfo object connection_monitor对象。 request_id String 请求ID。 表3 ConnectionMonitorInfo 名称 类型 描述 id String 功能说明:VPN连接监控ID。 格式:36位UUID。 status String 功能说明:VPN连接监控状态。 取值范围: ACTIVE:正常。 PENDING_CREATE:创建中。 PENDING_DELETE:删除中。 vpn_connection_id String 功能说明:VPN连接监控对应的VPN连接ID。 格式:36位UUID。 type String 功能说明:监控类型。 取值范围:gateway。 source_ip String VPN连接监控的源地址。 destination_ip String VPN连接监控的目的地址。 proto_type String 功能说明:nqa使用的协议类型。 取值范围:icmp。 响应样例 { "connection_monitor": { "id": "76f64229-demo-a8df-va86-3907e2815b6d", "status": "ACTIVE", "vpn_connection_id": "cae286f2-demo-a8df-va86-e22416ca1220", "type": "gateway", "source_ip": "88.***.***.60", "destination_ip": "88.***.***.32", "proto_type": "icmp" }, "request_id": "6d212bc0-ecb1-457b-977b-5e815fce658d" }
  • 构造请求 本节介绍REST API请求的组成,并以调用IAM服务的获取用户Token来说明如何调用API,该API获取用户的Token,Token可以用于调用其他API时鉴权。 您还可以通过这个视频教程了解如何构造请求调用API:https://bbs.huaweicloud.com/videos/102987。 请求URI 请求URI由如下部分组成: {URI-scheme}://{Endpoint}/{resource-path}?{query-string} 尽管请求URI包含在请求消息头中,但大多数语言或框架都要求您从请求消息中单独传递它,所以在此单独强调。 表1 URI中的参数说明 参数 描述 URI-scheme 表示用于传输请求的协议,当前所有API均采用HTTPS协议。 Endpoint 指定承载REST服务端点的服务器域名或IP,不同服务不同区域的Endpoint不同。 例如IAM服务在“华北-北京四”区域的Endpoint为“iam.cn-north-4.myhuaweicloud.com”。 resource-path 资源路径,即API访问路径。从具体API的URI模块获取,例如“获取用户Token”API的resource-path为“/v3/auth/tokens”。 query-string 查询参数,是可选部分,并不是每个API都有查询参数。查询参数前面需要带一个“?”,形式为“参数名=参数取值”,例如“?limit=10”,表示查询不超过10条数据。 例如您需要获取IAM在“华北-北京四”区域的Token,则需使用“华北-北京四”区域的Endpoint(iam.cn-north-4.myhuaweicloud.com),并在获取用户Token的URI部分找到resource-path(/v3/auth/tokens),拼接起来如下所示。 https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens 图1 URI示意图 为方便查看,在每个具体API的URI部分,只给出resource-path部分,并将请求方法写在一起。这是因为URI-scheme都是HTTPS,而Endpoint在同一个区域也相同,所以简洁起见将这两部分省略。 请求方法 HTTP请求方法(也称为操作或动词),它告诉您服务正在请求什么类型的操作。 表2 HTTP方法 方法 说明 GET 请求服务器返回指定资源。 PUT 请求服务器更新指定资源。 POST 请求服务器新增资源或执行特殊操作。 DELETE 请求服务器删除指定资源,如删除对象等。 HEAD 请求服务器资源头部。 PATCH 请求服务器更新资源的部分内容。 当资源不存在的时候,PATCH可能会去创建一个新的资源。 在获取用户Token的URI部分,您可以看到其请求方法为“POST”,则其请求为: POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens 请求消息头 附加请求头字段,如指定的URI和HTTP方法所要求的字段。例如定义消息体类型的请求头“Content-Type”,请求鉴权信息等。 详细的公共请求消息头字段请参见公共请求消息头。 表3 公共请求消息头 名称 描述 是否必选 示例 Host 请求的服务器信息,从服务API的URL中获取。值为hostname[:port]。端口缺省时使用默认的端口,https的默认端口为443。 否 使用AK/SK认证时该字段必选。 code.test.com or code.test.com:443 Content-Type 消息体的类型(格式)。推荐用户使用默认值application/json,有其他取值时会在具体接口中专门说明。 是 application/json Content-Length 请求body长度,单位为Byte。 否 3495 X-Project-Id project id,项目编号。请参考获取项目ID章节获取项目编号。 否 如果是专属云场景采用AK/SK认证方式的接口请求,或者多project场景采用AK/SK认证的接口请求,则该字段必选。 e9993fc7************baa340f9c0f4 X-Auth-Token 用户Token。 用户Token也就是调用获取用户Token接口的响应值,该接口是唯一不需要认证的接口。 请求响应成功后在响应消息头(Headers)中包含的“X-Subject-Token”的值即为Token值。 否 使用Token认证时该字段必选。 注:以下仅为Token示例片段。 MIIPAgYJKoZIhvcNAQcCo...ggg1BBIINPXsidG9rZ API同时支持使用AK/SK认证,AK/SK认证使用SDK对请求进行签名,签名过程会自动往请求中添加Authorization(签名认证信息)和X-Sdk-Date(请求发送的时间)请求头。 AK/SK认证的详细说明请参见认证鉴权的“AK/SK认证”。 对于获取用户Token接口,由于不需要认证,所以只添加“Content-Type”即可,添加消息头后的请求如下所示。 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokensContent-Type:application/json 请求消息体(可选) 该部分可选。请求消息体通常以结构化格式(如JSON或XML)发出,与请求消息头中Content-Type对应,传递除请求消息头之外的内容。若请求消息体中的参数支持中文,则中文字符必须为UTF-8编码。 每个接口的请求消息体内容不同,也并不是每个接口都需要有请求消息体(或者说消息体为空),GET、DELETE操作类型的接口就不需要消息体,消息体具体内容需要根据具体接口而定。 对于获取用户Token接口,您可以从接口的请求部分看到所需的请求参数及参数说明。将消息体加入后的请求如下所示,加粗的斜体字段需要根据实际值填写,其中username为用户名,domainname为用户所属的帐号名称,********为用户登录密码,xxxxxxxxxxxxxxxxxx为project的名称,如“cn-north-1”。 scope参数定义了Token的作用域,下面示例中获取的Token仅能访问project下的资源。您还可以设置Token的作用域为某个帐号下所有资源或帐号的某个project下的资源,详细定义请参见获取用户Token。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokensContent-Type:application/json { "auth":{ "identity":{ "methods":[ "password" ], "password":{ "user":{ "name":"username", "password":"********", "domain":{ "name":"domainname" } } } }, "scope":{ "project":{ "name":"xxxxxxxxxxxxxxxxxx" } } } } 到这里为止这个请求需要的内容就具备齐全了,您可以使用curl、Postman或直接编写代码等方式发送请求调用API。对于获取用户Token接口,返回的响应消息头中的“x-subject-token”就是需要获取的用户Token。有了Token之后,您就可以使用Token认证调用其他API。 父主题: 如何调用API
  • 响应消息 响应参数 返回状态码为 200: successful operation。 表7 响应Body参数列表 名称 类型 描述 vpn_gateway ResponseVpnGateway object vpn_gateway对象。 request_id String 请求ID。 表8 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。 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时,vpc_id是VPN网关的接入VPC的ID。 local_subnets Array of String 本端子网。本端子网是云上子网,该网段需要通过VPN与用户侧网络进行互通。单个网段格式示例:192.168.52.0/24。仅当attachment_type为vpc时返回。 connect_subnet String VPN网关所使用的VPC中的一个子网ID。 bgp_asn Long VPN网关的BGP自治域编号。 flavor String 功能说明:VPN网关的规格类型: 取值范围: Basic:最大转发带宽100Mbps。 Professional1:最大转发带宽300Mbps。 Professional1-NonFixedIP:最大转发带宽300Mbps。 Professional2:最大转发带宽1Gbps。 Professional2-NonFixedIP:最大转发带宽1Gbps。 GM:最大转发带宽500Mbps。 availability_zone_ids Array of String 部署VPN网关的可用区。当指定了可用区时则返回;当未指定可用区时,在VPN网关的状态为ACTIVE时返回。 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",表示资源属于default企业项目。 注:"0"并不是真实存在的企业项目ID。 eip1 ResponseEip object 双活VPN网关表示使用的第一个EIP,主备VPN网关表示主EIP。在VPN网关的状态为ACTIVE时返回。 eip2 ResponseEip object 双活VPN网关表示使用的第二个EIP,主备VPN网关表示备EIP。在VPN网关的状态为ACTIVE时返回。 created_at String 创建时间。在VPN网关的状态为ACTIVE时返回。 UTC时间格式:yyyy-MM-ddTHH:mm:ss。 非UTC时间格式:yyyy-MM-ddTHH:mm:ssZ。 updated_at String 最后一次更新时间。在VPN网关的状态为ACTIVE时返回。 UTC时间格式:yyyy-MM-ddTHH:mm:ss。 非UTC时间格式:yyyy-MM-ddTHH:mm:ssZ。 access_vpc_id String 功能说明:VPN网关使用的接入VPC ID。 格式:36位UUID。 access_subnet_id String 功能说明:VPN网关使用的接入VPC中的子网ID。 格式:36位UUID。 access_private_ip_1 String 私网类型VPN网关的接入私网IP,VPN网关使用该私网IP与对端网关建连。双活网关表示使用的第一个私网地址,主备表示主私网地址。 示例:192.168.52.9。仅当network_type为private时返回。 access_private_ip_2 String 私网类型VPN网关的接入私网IP,VPN网关使用该私网IP与对端网关建连。双活网关表示使用的第二个私网地址,主备表示备私网地址。 示例:192.168.52.9。仅当network_type为private时返回。 ha_mode String 功能说明:网关的HA模式,"active-active"表示双活,"active-standby"表示主备。 取值范围:active-active,active-standby。 policy_template PolicyTemplate object 非固定IP接入VPN网关的策略模板配置,只有在规格为非固定IP接入VPN网关时返回。 tags Array of VpnResourceTag objects 标签列表。 表9 ResponseEip 名称 类型 描述 id String 功能说明:EIP的ID。 格式:36位UUID。当使用默认企业项目时返回"0"。 ip_version Integer 功能说明:EIP版本。 取值范围:4。 ip_billing_info String 功能说明:EIP的订单信息。包年/包月EIP才会返回订单信息,按需计费的EIP不返回。 格式:order_id:product_id:region_id:project_id,如: CS22********LIBIV:00301-******-0--0:br-iaas-odin1:0605768a************c006c7e484aa。 type String 功能说明:EIP的类型。 取值范围:可查看申请EIP表6中type字段的取值范围。 ip_address String 功能说明:EIP的公网IPv4地址。 格式:ipv4类型地址。例如:88.***.***.11。 charge_mode String 功能说明:EIP的带宽计费模式。按流量计费或按带宽计费。 取值范围: bandwidth:按带宽计费。 traffic:按流量计费。 bandwidth_id String 功能说明:EIP的带宽ID。 格式:36位UUID。 bandwidth_size Integer 功能说明:EIP的带宽大小,单位:Mbit/s。每个region能够提供的EIP最大带宽不同,EIP的最大带宽受限于EIP服务,可以使用工单来提高账户下的EIP的最大带宽。 取值范围:1-1000,具体取值请参考弹性公网服务创建eip资料。 bandwidth_name String 功能说明:EIP的带宽名称。 取值范围:1-64个字符,支持数字、英文字母、中文(\u4e00 - \u9fa5)、_(下划线)、-(中划线)、.(点)。 bandwidth_billing_info String 功能说明:EIP的带宽订单信息。包年/包月EIP带宽才会返回带宽订单信息,按需计费的EIP带宽不返回。 格式:order_id:product_id:region_id:project_id,如: CS22********LIBIV:00301-******-0--0:br-iaas-odin1:0605768a************c006c7e484aa。 表10 PolicyTemplate 名称 类型 描述 ike_policy IkePolicy object ike策略对象。 ipsec_policy IpsecPolicy object ipsec策略对象。 表11 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,单位:秒。 表12 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,单位:秒。 表13 VpnResourceTag 名称 类型 描述 key String 功能说明:标签的键。 取值范围:1-128个字符,支持数字、英文字母、中文、西班牙语、葡语、空格,以及以下字符:_.:=+-@。 value String 功能说明:标签的值。 取值范围:0-255个字符,支持数字、英文字母、中文、西班牙语、葡语、空格,以及以下字符:_.:=+-@。 响应样例 更新固定IP接入VPN网关的响应。 { "vpn_gateway": { "id": "620d99b8-demo-a8df-va86-200b868f2d7d", "name": "vpngw-4321", "attachment_type": "vpc", "network_type": "public", "vpc_id": "cb4a631d-demo-a8df-va86-ca3fa348c36c", "local_subnets": [ "192.168.0.0/24" ], "connect_subnet": "f5741286-demo-a8df-va86-2c82bd9ee114", "bgp_asn": 64512, "flavor": "Professional1", "availability_zone_ids": ["cn-south-1f", "cn-south-1e"], "connection_number": 200, "used_connection_number": 0, "used_connection_group": 0, "enterprise_project_id": "0", "eip1": { "id": "f1469b4a-demo-a8df-va86-bb7de91cf493", "ip_version": 4, "type": "5_bgp", "ip_address": "88.***.***.102", "charge_mode": "bandwidth", "bandwidth_id": "cff40e5e-demo-a8df-va86-7366077bf097", "bandwidth_size": 300, "bandwidth_name": "vpngw-bandwidth-1391" }, "eip2": { "id": "6ad8e297-demo-a8df-va86-da0f885ccb98", "ip_version": 4, "type": "5_bgp", "ip_address": "88.***.***.188", "charge_mode": "bandwidth", "bandwidth_id": "d290f1ee-demo-a8df-va86-d701748f0851", "bandwidth_size": 300, "bandwidth_name": "vpngw-bandwidth-1392" }, "created_at": "2022-09-15T08:56:09.386Z", "updated_at": "2022-09-15T11:13:13.677Z", "access_vpc_id": "0cf79a3f-demo-a8df-va86-d7ace626b0fa", "access_subnet_id": "f5741286-demo-a8df-va86-2c82bd9ee114", "ha_mode": "active-active" }, "request_id": "33a2b77a-65f9-4fa0-90bd-4bd42038eb41" } 更新非固定IP接入VPN网关的响应。 { "vpn_gateway":{ "id":"620d99b8-demo-a8df-va86-200b868f2d7d", "name":"vpngw-4321", "attachment_type":"vpc", "network_type":"public", "vpc_id":"cb4a631d-demo-a8df-va86-ca3fa348c36c", "local_subnets":[ "192.168.0.0/24" ], "connect_subnet":"f5741286-demo-a8df-va86-2c82bd9ee114", "bgp_asn":64512, "flavor":"Professional1", "availability_zone_ids":[ "cn-south-1f", "cn-south-1e" ], "connection_number":200, "used_connection_number":0, "used_connection_group":0, "enterprise_project_id":"0", "eip1":{ "id":"f1469b4a-demo-a8df-va86-bb7de91cf493", "ip_version":4, "type":"5_bgp", "ip_address":"88.***.***.102", "charge_mode":"bandwidth", "bandwidth_id":"cff40e5e-demo-a8df-va86-7366077bf097", "bandwidth_size":300, "bandwidth_name":"vpngw-bandwidth-1391" }, "eip2":{ "id":"6ad8e297-demo-a8df-va86-da0f885ccb98", "ip_version":4, "type":"5_bgp", "ip_address":"88.***.***.188", "charge_mode":"bandwidth", "bandwidth_id":"d290f1ee-demo-a8df-va86-d701748f0851", "bandwidth_size":300, "bandwidth_name":"vpngw-bandwidth-1392" }, "created_at":"2022-09-15T08:56:09.386Z", "updated_at":"2022-09-15T11:13:13.677Z", "access_vpc_id":"0cf79a3f-demo-a8df-va86-d7ace626b0fa", "access_subnet_id":"f5741286-demo-a8df-va86-2c82bd9ee114", "ha_mode":"active-active", "policy_template":{ "ike_policy":{ "authentication_algorithm":"sha2-256", "encryption_algorithm":"aes-128-gcm-16", "dh_group":"group21", "lifetime_seconds":86400 }, "ipsec_policy":{ "authentication_algorithm":"sha2-256", "encryption_algorithm":"aes-128-gcm-16", "pfs":"disable", "lifetime_seconds":3600 } } }, "request_id":"33a2b77a-65f9-4fa0-90bd-4bd42038eb41" } VPN状态为“创建中”,更新失败。 { "error_code":"VPN.0003", "error_msg":"resource (type=GATEWAY, ID=ff9bdca6-demo-a8df-va86-e4bcc1ea52bc) is not ready, currently CREATING", "request_id": "abafe41c-7744-41af-bf3d-4452872af799" }
  • 请求消息 请求参数 表2 请求参数 名称 类型 是否必选 描述 vpn_gateway UpdateVgwRequestBodyContent object 是 vpn_gateway对象。 表3 UpdateVgwRequestBodyContent 名称 类型 是否必选 描述 name String 否 功能说明:VPN网关名称。 取值范围:1-64个字符,支持数字、英文字母、中文(\u4e00 - \u9fa5)、_(下划线)、-(中划线)、.(点)。 local_subnets Array of String 否 功能说明:本端子网。本端子网是云上子网,该网段需要通过VPN与用户侧网络进行互通。单个网段格式示例:192.168.52.0/24。 约束:当attachment_type配置为"vpc"时可填写,否则不填。每个VPN网关最多填写50个本端子网。 eip_id_1 String 否 功能说明:有效的EIP的ID,表示绑定新的EIP作为双活VPN网关使用的第一个EIP或主备VPN网关的主EIP。绑定新的EIP前必须先解绑掉原有的EIP。可以通过解绑弹性公网IP解绑VPN网关使用的EIP。 约束:36位UUID,当network_type配置为public时可填写,否则不填。 eip_id_2 String 否 功能说明:有效的EIP的ID,表示绑定新的EIP作为双活VPN网关使用的第二个EIP或主备VPN网关的备EIP。绑定新的EIP前必须先解绑掉原有的EIP。可以通过解绑弹性公网IP解绑VPN网关使用的EIP。 约束:36位UUID,当network_type配置为public时可填写,否则不填。 policy_template PolicyTemplate object 否 功能说明:策略模板。 约束:只有当VPN网关的规格为Professional1-NonFixedIP或Professional2-NonFixedIP时使用,用于更新网关的策略模板。 表4 PolicyTemplate 名称 类型 描述 ike_policy IkePolicy object ike 策略对象。 ipsec_policy IpsecPolicy object ipsec 策略对象。 表5 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,单位:秒。 表6 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,单位:秒。 请求样例 更新固定IP接入网关。 PUT https://{Endpoint}/v5/{project_id}/vpn-gateways/{vgw_id} { "vpn_gateway": { "name": "vpngw-4321", "local_subnets": [ "192.168.0.0/24" ], "eip_id_1": "f1469b4a-demo-a8df-va86-bb7de91cf493", "eip_id_2": "6ad8e297-demo-a8df-va86-da0f885ccb98" } } 更新非固定IP接入VPN网关策略模板。 PUT https://{Endpoint}/v5/{project_id}/vpn-gateways/{vgw_id} { "vpn_gateway":{ "policy_template":{ "ike_policy":{ "authentication_algorithm":"sha2-256", "encryption_algorithm":"aes-128-gcm-16", "dh_group":"group21", "lifetime_seconds":86400 }, "ipsec_policy":{ "authentication_algorithm":"sha2-256", "encryption_algorithm":"aes-128-gcm-16", "pfs":"disable", "lifetime_seconds":3600 } } } }
  • 数据准备 表1 创建VPN连接请求关键参数 参数 说明 取值样例 vgw_id VPN网关ID。 b32d91a4-demo-a8df-va86-e907174eb11d vgw_ip VPN网关EIP的ID。 0c464dad-demo-a8df-va86-c22bb0eb0bde cgw_id 对端网关ID。 5247ae10-demo-a8df-va86-dd36659a7f5d peer_subnets 对端子网。 192.168.44.0/24 psk 预共享密钥。 abcd****
共100000条