更新时间:2022-08-08 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.

URI

POST /v2/{project_id}/dnat_rules

表1 参数说明

参数

是否必选

参数类型

描述

project_id

String

项目ID。

请求消息

请求参数如表2所示。

表2 请求参数

参数

是否必选

参数类型

描述

dnat_rule

Object

dnat_rule对象。请参考表3

表3 dnat_rule字段说明

参数

是否必选

参数类型

描述

nat_gateway_id

String

NAT网关的id。

port_id

String

虚拟机或者裸机的Port ID,与private_ip参数二选一。

private_ip

String

用户私有IP地址,例如专线连接的私有云地址,与port_id参数二选一。

internal_service_port

Integer

虚拟机或者裸机对外提供服务的协议端口号。

取值范围:0~65535。

floating_ip_id

String

弹性公网IP的id。

external_service_port

Integer

Floatingip对外提供服务的端口号。

取值范围:0~65535。

protocol

String

协议类型,目前支持TCP/tcp、UDP/udp、ANY/any。

对应协议号6、17、0。

description

String

DNAT规则的描述。

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。
  • 约束:只能以’-’字符连接端口范围。

响应消息

响应参数如表4所示。

表4 响应参数

参数

参数类型

描述

dnat_rule

Object

dnat_rule对象。请参考表5

表5 dnat_rule字段说明

参数

参数类型

描述

id

String

DNAT规则的id。

tenant_id

String

项目ID。

nat_gateway_id

String

NAT网关的id。

port_id

String

虚拟机或者裸机的Port ID,与private_ip参数二选一。

private_ip

String

用户私有IP地址,例如专线连接的私有云地址。

internal_service_port

Integer

虚拟机或者裸机对外提供服务的协议端口号。

floating_ip_id

String

弹性公网IP的id。

floating_ip_address

String

弹性公网IP的IP地址。

external_service_port

Integer

Floatingip对外提供服务的端口号。

protocol

String

协议类型,目前支持TCP、UDP、ANY。

对应协议号6、17、0。

description

String

DNAT规则的描述。

status

String

admin_state_up

Boolean

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

created_at

String

  • DNAT规则的创建时间戳,遵循UTC时间,保留小数点后6位,格式是yyyy-mm-dd hh:mm:ss

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。

示例

  • 请求样例
    1. 创建指定端口的规则
      POST https://{Endpoint}/v2/d199ba7e0ba64899b2e81518104b1526/dnat_rules
      { 
           "dnat_rule": { 
               "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"
           } 
       }
    1. 创建all port类型的规则。
      POST https://{Endpoint}/v2/d199ba7e0ba64899b2e81518104b1526/dnat_rules
      { 
           "dnat_rule": { 
               "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" 
           } 
       }
    2. 指定端口范围创建规则
      POST https://{Endpoint}/v2/d199ba7e0ba64899b2e81518104b1526/dnat_rules
      { 
           "dnat_rule": { 
               "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": "tcp", 
               "external_service_port": 0, 
               "description": "my dnat rule 01" ,
               "external_service_port_range":"100-200",
               "internal_service_port_range":"100-200"
           } 
       }
  • 响应样例
    1. 创建指定端口的规则的响应
      {          
           "dnat_rule": { 
               "floating_ip_id": "bf99c679-9f41-4dac-8513-9c9228e713e1", 
               "status": "ACTIVE", 
               "nat_gateway_id": "cda3a125-2406-456c-a11f-598e10578541", 
               "admin_state_up": true, 
               "port_id": "9a469561-daac-4c94-88f5-39366e5ea193", 
               "internal_service_port": 993, 
               "protocol": "tcp", 
               "tenant_id": "abc", 
               "created_at": "2017-11-15 15:44:42.595173", 
               "id": "79195d50-0271-41f1-bded-4c089b2502ff", 
               "external_service_port": 242, 
               "floating_ip_address": "5.21.11.226",
               "description": "my dnat rule 01" 
           } 
       }
    2. 创建all port类型的规则的响应
      { 
           "dnat_rule": { 
               "floating_ip_id": "cf99c679-9f41-4dac-8513-9c9228e713e1", 
               "status": "ACTIVE", 
               "nat_gateway_id": "dda3a125-2406-456c-a11f-598e10578541", 
               "admin_state_up": true, 
               "private_ip": "192.168.1.100", 
               "internal_service_port": 0, 
               "protocol": "any", 
               "tenant_id": "abc", 
               "created_at": "2017-11-15 15:44:42.595173", 
               "id": "79195d50-0271-41f1-bded-4c089b2502ff", 
               "external_service_port": 0, 
               "floating_ip_address": "5.21.11.227",
               "description": "my dnat rule 01" 
           } 
       }
    3. 指定端口范围创建规则
      { 
           "dnat_rule": { 
               "floating_ip_id": "cf99c679-9f41-4dac-8513-9c9228e713e1", 
               "status": "ACTIVE", 
               "nat_gateway_id": "dda3a125-2406-456c-a11f-598e10578541", 
               "admin_state_up": true, 
               "private_ip": "192.168.1.100", 
               "internal_service_port": 0, 
               "protocol": "tcp", 
               "tenant_id": "abc", 
               "created_at": "2017-11-15 15:44:42.595173", 
               "id": "79195d50-0271-41f1-bded-4c089b2502ff", 
               "external_service_port": 0, 
               "floating_ip_address": "5.21.11.227",
               "description": "my dnat rule 01",
               "internal_service_port_range":"100-200",
               "external_service_port_range":"100-200"
           } 
       }

状态码

请参考状态码