更新时间:2023-12-06 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参数二选一。

获取虚拟机Port ID的方法请参考查询云服务器网卡信息,获取裸机Port ID的方法请参考查询裸金属服务器IP地址

private_ip

String

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

internal_service_port

Integer

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

取值范围:0~65535。

floating_ip_id

String

弹性公网IP的id。获取弹性公网IP的id的方法请参考查询弹性公网IP列表

external_service_port

Integer

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

取值范围:0~65535。

protocol

String

协议类型,目前支持TCP/UDP/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。
  • 约束:只能以’-’字符连接端口范围。

响应消息

响应参数如表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

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

在专线场景时使用此参数,与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”:解冻
    • “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.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
          }
      }
      
    2. 指定端口范围创建规则
      POST https://{Endpoint}/v2.0/dnat_rules 
       { 
           "dnat_rule": { 
              "floating_ip_id": "0cc38f0c-f26b-4556-b956-f5831061bb86", 
              "nat_gateway_id": "dcb80bee-3e67-4282-8cc3-981431a63583", 
              "private_ip": "172.16.1.197", 
              "internal_service_port": 0,
              "internal_service_port_range": "55-66",
              "protocol": "udp", 
              "external_service_port": 0,
              "external_service_port_range": "55-66",  
              "description": "my dnat rule 01"
           } 
       }
  • 响应样例
    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
          }
      }
    3. 指定端口范围创建规则的响应
      {  
            "dnat_rule": {  
                "floating_ip_id": "0cc38f0c-f26b-4556-b956-f5831061bb86",  
                "status": "ACTIVE",  
                "nat_gateway_id": "dcb80bee-3e67-4282-8cc3-981431a63583",  
                "admin_state_up": true,  
                "private_ip": "172.16.1.197",  
                "internal_service_port": 0,  
                "protocol": "udp",  
                "tenant_id": "057ef081ad80d2732fcec011fdbc01c0",  
                "created_at": "2020-09-21 11:46:11.474729",  
                "id": "0de17f1a-686a-4484-9d8b-973889f8654c",  
                "external_service_port": 0,  
                "floating_ip_address": "10.185.74.219", 
                "port_id": "", 
                "internal_service_port_range":"55-66", 
                "external_service_port_range":"55-66" 
            }  
        }

状态码

请参考状态码

相关文档