更新时间:2024-04-18 GMT+08:00

批量创建DNAT规则

功能介绍

批量创建DNAT规则。

接口约束

批量创建规则时,要求网关状态status = ACTIVE,要求网关管理员状态admin_state_up = True。 port_id和private_ip不能同时生效。 对于all port类型的规则,要求internal_service_port = 0,external_service_port = 0,protocol = ANY。

调用方法

请参见如何调用API

URI

POST /v2/{project_id}/dnat_rules/batch

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

项目的ID。

最小长度:1

最大长度:36

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

用户Token。 用户Token也就是调用获取用户Token获取请求认证接口的响应值,该接口是唯一不需要认证的接口。 请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。

最小长度:1

最大长度:10240

表3 请求Body参数

参数

是否必选

参数类型

描述

dnat_rules

Array of CreateNatGatewayDnatOption objects

DNAT规则批量创建对象的请求体。

表4 CreateNatGatewayDnatOption

参数

是否必选

参数类型

描述

description

String

DNAT规则的描述,长度范围小于等于255个字符,不能包含“<”和“>”。

最小长度:0

最大长度:255

port_id

String

虚拟机或者裸机的Port ID,对应虚拟私有云场景,与private_ip参数二选一。

最小长度:36

最大长度:36

private_ip

String

用户私有IP地址,对应专线、云连接场景,与port_id参数二选一。

最小长度:7

最大长度:15

nat_gateway_id

String

公网NAT网关实例的ID。

最小长度:36

最大长度:36

internal_service_port

Integer

虚拟机或者裸机对外提供服务的协议端口号。 取值范围:0~65535。

最小值:0

最大值:65535

floating_ip_id

String

弹性公网IP的id。

最小长度:36

最大长度:36

external_service_port

Integer

Floatingip对外提供服务的端口号。 取值范围:0~65535。

最小值:0

最大值:65535

protocol

String

协议类型,目前支持TCP/tcp、UDP/udp、ANY/any。 对应协议号6、17、0。

internal_service_port_range

String

虚拟机或者裸机对外提供服务的协议端口号范围。 功能说明:该端口范围与external _service_port_range按顺序实现1:1映射。 取值范围:1~65535。 约束:只能以’-’字符连接端口范围。

external_service_port_range

String

Floatingip对外提供服务的端口号范围。 功能说明:该端口范围与internal _service_port_range按顺序实现1:1映射。 取值范围:1~65535。 约束:只能以’-’字符连接端口范围。

global_eip_id

String

全域弹性公网IP的id。

最小长度:36

最大长度:36

响应参数

状态码: 201

表5 响应Body参数

参数

参数类型

描述

dnat_rules

Array of NatGatewayDnatRuleResponseBody objects

DNAT规则批量创建对象的响应体。

表6 NatGatewayDnatRuleResponseBody

参数

参数类型

描述

id

String

DNAT规则的ID。

最小长度:36

最大长度:36

tenant_id

String

项目的ID。

最小长度:1

最大长度:36

description

String

DNAT规则的描述。长度范围小于等于255个字符,不能包含“<”和“>”。

最小长度:0

最大长度:255

port_id

String

虚拟机或者裸机的Port ID,对应虚拟私有云场景,与private_ip参数二选一。

最小长度:36

最大长度:36

private_ip

String

用户私有IP地址,对应专线、云连接场景,与port_id参数二选一。

最小长度:7

最大长度:15

internal_service_port

Integer

虚拟机或者裸机对外提供服务的协议端口号。 取值范围:0~65535。

最小值:0

最大值:65535

最小长度:1

最大长度:5

nat_gateway_id

String

公网NAT网关实例的ID。

最小长度:1

最大长度:36

floating_ip_id

String

弹性公网IP的id。

最小长度:1

最大长度:36

floating_ip_address

String

弹性公网IP的IP地址。

最小长度:7

最大长度:15

external_service_port

Integer

Floatingip对外提供服务的端口号。 取值范围:0~65535。

status

String

DNAT规则的状态。 取值为: "ACTIVE": 可用 "PENDING_CREATE":创建中 "PENDING_UPDATE":更新中 "PENDING_DELETE":删除中 "EIP_FREEZED":EIP冻结 "INACTIVE":不可用

枚举值:

  • ACTIVE

  • PENDING_CREATE

  • PENDING_UPDATE

  • PENDING_DELETE

  • EIP_FREEZED

  • INACTIVE

admin_state_up

Boolean

解冻/冻结状态。 取值范围: − “true”: 解冻 − “false”: 冻结

internal_service_port_range

String

虚拟机或者裸机对外提供服务的协议端口号范围。 功能说明:该端口范围与external _service_port_range按顺序实现1:1映射。 取值范围:1~65535。 约束:只能以’-’字符连接端口范围。

external_service_port_range

String

Floatingip对外提供服务的端口号范围。 功能说明:该端口范围与internal _service_port_range按顺序实现1:1映射。 取值范围:1~65535。 约束:只能以’-’字符连接端口范围

protocol

String

协议类型,目前支持TCP/tcp、UDP/udp、ANY/any。 对应协议号6、17、0。

最小长度:1

最大长度:3

枚举值:

  • tcp

  • udp

  • any

created_at

String

DNAT规则的创建时间,格式是yyyy-mm-dd hh:mm:ss.SSSSSS。

最小长度:1

最大长度:36

global_eip_id

String

全域弹性公网IP的id。

最小长度:36

最大长度:36

global_eip_address

String

全域弹性公网IP的地址。

最小长度:7

最大长度:15

请求示例

批量创建规则(第一条为指定端口的规则,第二条为all port类型的规则)。

POST https://{Endpoint}/v2/d199ba7e0ba64899b2e81518104b1526/dnat_rules/batch

{
  "dnat_rules" : [ {
    "floating_ip_id" : "bf99c679-9f41-4dac-8513-9c9228e713e1",
    "nat_gateway_id" : "cda3a125-2406-456c-a11f-598e10578541",
    "port_id" : "9a469561-daac-4c94-88f5-39366e5ea193",
    "internal_service_port" : 993,
    "protocol" : "tcp",
    "external_service_port" : 242,
    "description" : "my dnat rule 01"
  }, {
    "floating_ip_id" : "cf99c679-9f41-4dac-8513-9c9228e713e1",
    "nat_gateway_id" : "dda3a125-2406-456c-a11f-598e10578541",
    "private_ip" : "192.168.1.100",
    "internal_service_port" : 0,
    "protocol" : "any",
    "external_service_port" : 0,
    "description" : "my dnat rule 01"
  } ]
}

响应示例

状态码: 201

POST操作正常返回。

{
  "dnat_rules" : [ {
    "floating_ip_id" : "bf99c679-9f41-4dac-8513-9c9228e713e1",
    "status" : "PENDING_CREATE",
    "nat_gateway_id" : "cda3a125-2406-456c-a11f-598e10578541",
    "admin_state_up" : true,
    "port_id" : "9a469561-daac-4c94-88f5-39366e5ea193",
    "private_ip" : "",
    "internal_service_port" : 993,
    "protocol" : "tcp",
    "tenant_id" : "d199ba7e0ba64899b2e81518104b1526",
    "created_at" : "2019-11-15 15:44:42.595173",
    "id" : "79195d50-0271-41f1-bded-4c089b2502ff",
    "floating_ip_address" : "5.21.11.226",
    "external_service_port" : 242,
    "description" : "my dnat rule 01"
  }, {
    "floating_ip_id" : "cf99c679-9f41-4dac-8513-9c9228e713e1",
    "status" : "PENDING_CREATE",
    "nat_gateway_id" : "dda3a125-2406-456c-a11f-598e10578541",
    "admin_state_up" : true,
    "port_id" : "",
    "private_ip" : "192.168.1.100",
    "internal_service_port" : 0,
    "protocol" : "any",
    "tenant_id" : "d199ba7e0ba64899b2e81518104b1526",
    "created_at" : "2019-11-15 15:44:42.595173",
    "id" : "79195d50-0271-41f1-bded-4c089c2502ff",
    "floating_ip_address" : "5.21.11.227",
    "external_service_port" : 0,
    "description" : "my dnat rule 01"
  } ]
}

状态码

状态码

描述

201

POST操作正常返回。

错误码

请参见错误码