更新时间:2024-03-30 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.0/dnat_rules

请求消息

请求参数如表1所示。

表1 请求参数

参数

是否必选

参数类型

描述

dnat_rule

Object

dnat_rule对象。详见表2

表2 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/UDP/ANY

对应协议号6/17/0

响应消息

响应参数如表3所示。

表3 响应参数

参数

参数类型

描述

dnat_rule

Object

dnat_rule对象。详见表4

表4 dnat_rule字段说明

参数

参数类型

描述

id

String

DNAT规则的id。

tenant_id

String

项目的ID。

nat_gateway_id

String

所属NAT网关的id。

port_id

String

云主机(弹性云服务器裸金属服务器)的Port ID,在VPC场景时使用此参数,与private_ip参数二选一。

private_ip

String

专线连接的私有云地址,

在专线场景时使用此参数,与port_id参数二选一。

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

status

String

admin_state_up

Boolean

  • 开启/关闭状态。
  • 取值范围:
    • “true”:DNAT规则已启动。
    • “false”:DNAT规则已关闭。

created_at

String

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

示例

  • 请求样例
    1. 创建指定端口的规则
      POST https://{Endpoint}/v2.0/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
          }
      }
    1. 创建all port类型的规则
      POST https://{Endpoint}/v2.0/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
          }
      }
  • 响应样例
    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",
              "floating_ip_address": "5.21.11.226",
              "external_service_port": 242,
              "private_ip": ""
          }
      }
    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",
              "floating_ip_address": "5.21.11.227",
              "external_service_port": 0
          }
      }

状态码

请参考状态码