Updated on 2024-04-19 GMT+08:00

Creating a DNAT Rule

Function

This API is used to create a DNAT rule.

Constraints

When you are creating a DNAT rule, status of the NAT gateway must be set to ACTIVE.

Calling Method

For details, see Calling APIs.

URI

POST /v3/{project_id}/private-nat/dnat-rules

Table 1 Path Parameters

Parameter

Mandatory

Type

Description

project_id

Yes

String

Specifies the project ID.

Minimum: 1

Maximum: 36

Request Parameters

Table 2 Request header parameters

Parameter

Mandatory

Type

Description

X-Auth-Token

Yes

String

Specifies the user token. It is a response to the API used to obtain a user token. This API is the only one that does not require authentication. The value of X-Subject-Token in the response header is the token value.

Minimum: 1

Maximum: 10240

Table 3 Request body parameters

Parameter

Mandatory

Type

Description

dnat_rule

Yes

CreatePrivateDnatOption object

Specifies the request body for creating a DNAT rule.

Table 4 CreatePrivateDnatOption

Parameter

Mandatory

Type

Description

description

No

String

Provides supplementary information about the DNAT rule. The description can contain up to 255 characters and cannot contain angle brackets (<>).

Minimum: 0

Maximum: 255

transit_ip_id

Yes

String

Specifies the ID of the transit IP address.

Minimum: 36

Maximum: 36

network_interface_id

No

String

Specifies the network interface ID. Network interfaces of an ECS, load balancer, or virtual IP address are supported.

Minimum: 36

Maximum: 36

gateway_id

Yes

String

Specifies the private NAT gateway ID.

Minimum: 36

Maximum: 36

protocol

No

String

Specifies the protocol type. TCP, UDP, and ANY are supported. The protocol number of TCP, UDP, and ANY are 6, 17, and 0, respectively.

Minimum: 1

Maximum: 3

Enumeration values:

  • tcp

  • udp

  • any

private_ip_address

No

String

Specifies the private IP address of the backend instance.

Minimum: 7

Maximum: 15

internal_service_port

No

String

Specifies the port number of the backend instance.

Minimum: 1

Maximum: 5

transit_service_port

No

String

Specifies the port number of the transit IP address.

Minimum: 1

Maximum: 5

Response Parameters

Status code: 201

Table 5 Response body parameters

Parameter

Type

Description

dnat_rule

PrivateDnat object

Specifies the response body of the DNAT rule.

request_id

String

Specifies the request ID.

Minimum: 1

Maximum: 36

Table 6 PrivateDnat

Parameter

Type

Description

id

String

Specifies the DNAT rule ID.

Minimum: 36

Maximum: 36

project_id

String

Specifies the project ID.

Minimum: 36

Maximum: 36

description

String

Provides supplementary information about the DNAT rule. The description can contain up to 255 characters and cannot contain angle brackets (<>).

Minimum: 1

Maximum: 36

transit_ip_id

String

Specifies the ID of the transit IP address.

Minimum: 36

Maximum: 36

gateway_id

String

Specifies the private NAT gateway ID.

Minimum: 1

Maximum: 36

network_interface_id

String

Specifies the network interface ID. Network interfaces of a compute instance, load balancer, virtual IP address are supported.

Minimum: 1

Maximum: 36

type

String

Specifies the backend resource type of the DNAT rule. The type can be: COMPUTE: The backend resource is a compute instance. VIP: The backend resource is a virtual IP address. ELB: The backend resource is a load balancer. ELBv3: The backend resource is a dedicated load balancer. CUSTOMIZE: The backend resource is a user-defined IP address.

Minimum: 1

Maximum: 10

protocol

String

Specifies the protocol type. TCP, UDP, and ANY are supported. The protocol number of TCP, UDP, and ANY are 6, 17, and 0, respectively.

Minimum: 1

Maximum: 3

Enumeration values:

  • tcp

  • udp

  • any

private_ip_address

String

Specifies the private IP address of the backend instance.

Minimum: 7

Maximum: 15

internal_service_port

String

Specifies the port number of the backend instance.

Minimum: 0

Maximum: 65535

Minimum: 1

Maximum: 5

transit_service_port

String

Specifies the port number of the transit IP address.

Minimum: 0

Maximum: 65535

Minimum: 1

Maximum: 5

enterprise_project_id

String

Specifies the ID of the enterprise project that is associated with the DNAT rule when the DNAT rule is being created.

Minimum: 1

Maximum: 36

created_at

String

Specifies when the DNAT rule was created. It is a UTC time in the yyyy-mm-ddThh:mm:ssZ format.

Minimum: 1

Maximum: 36

updated_at

String

Specifies when the DNAT rule was updated. It is a UTC time in the yyyy-mm-ddThh:mm:ssZ format.

Minimum: 1

Maximum: 36

Example Requests

Creating a DNAT rule (Settingtransit_ip_id to 3faa719d-6d18-4ccb-a5c7-33e65a09663e and gateway_id to 0adefb29-a6c2-48a5-8637-2be67fa03fec)

POST https://{Endpoint}/v3/da261828016849188f4dcc2ef94d9da9/private-nat/dnat-rules

{
  "dnat_rule" : {
    "description" : "aa",
    "gateway_id" : "0adefb29-a6c2-48a5-8637-2be67fa03fec",
    "transit_ip_id" : "3faa719d-6d18-4ccb-a5c7-33e65a09663e",
    "network_interface_id" : "dae9393a-b536-491c-a5a2-72edc1104707"
  }
}

Example Responses

Status code: 201

DNAT rule created.

{
  "dnat_rule" : {
    "id" : "24dd6bf5-48f2-4915-ad0b-5bb111d39c83",
    "project_id" : "da261828016849188f4dcc2ef94d9da9",
    "description" : "aa",
    "gateway_id" : "0adefb29-a6c2-48a5-8637-2be67fa03fec",
    "transit_ip_id" : "3faa719d-6d18-4ccb-a5c7-33e65a09663e",
    "enterprise_project_id" : "2759da7b-8015-404c-ae0a-a389007b0e2a",
    "network_interface_id" : "dae9393a-b536-491c-a5a2-72edc1104707",
    "type" : "COMPUTE",
    "protocol" : "any",
    "internal_service_port" : "0",
    "transit_service_port" : "0",
    "private_ip_address" : "192.168.1.72",
    "created_at" : "2019-04-29T07:10:01",
    "updated_at" : "2019-04-29T07:10:01"
  },
  "request_id" : "70505c941b9b4dfd82fd351932328a2f"
}

Status Codes

Status Code

Description

201

DNAT rule created.

Error Codes

See Error Codes.