Creating a DNAT Rule
Function
This API is used to create a DNAT rule.
You can create a DNAT rule only when status of the NAT gateway is ACTIVE and admin_state_up of the NAT gateway administrator is True. Specify either port_id or private_ip at a time. If you are going to create a DNAT rule that allows traffic to and from all ports of a server and an EIP, set internal_service_port to 0, external_service_port to 0, and protocol to any.
URI
POST /v2.0/dnat_rules
Request
Table 1 lists the request parameter.
Parameter | Mandatory | Type | Description |
---|---|---|---|
dnat_rule | Yes | Object | Specifies the DNAT rule object. For details, see Table 2. |
Parameter | Mandatory | Type | Description |
---|---|---|---|
nat_gateway_id | Yes | String | Specifies the NAT gateway ID. |
port_id | No | String | Specifies the port ID of the server. Either this parameter or private_ip must be specified. |
private_ip | No | String | Specifies the private IP address of a user, for example, the IP address of a VPC connected by a Direct Connect connection. You can specify either this parameter or port_id. |
internal_service_port | Yes | Integer | Specifies the port used by servers to provide services accessible from the Internet. The value ranges from 0 to 65535. |
floating_ip_id | Yes | String | Specifies the EIP ID. |
external_service_port | Yes | Integer | Specifies the port used by the floating IP address to provide services for external systems. The value ranges from 0 to 65535. |
protocol | Yes | String | Specifies the protocol. Its value can be tcp (6), udp (17), or any (0). |
Response
Table 3 lists response parameter.
Parameter | Type | Description |
---|---|---|
dnat_rule | Object | Specifies the DNAT rule object. For details, see Table 4. |
Parameter | Type | Description |
---|---|---|
id | String | Specifies the DNAT rule ID. |
tenant_id | String | Specifies the project ID. |
nat_gateway_id | String | Specifies the NAT gateway ID. |
port_id | String | Specifies the port ID of the server. This parameter is used in the VPC scenario. This parameter and private_ip are alternative. |
private_ip | String | Specifies the private IP address, for example, the IP address of a Direct Connect connection. This parameter is used in the Direct Connect scenario. This parameter and port_id are alternative. |
internal_service_port | Integer | Specifies the port used by servers to provide services accessible from the Internet. |
floating_ip_id | String | Specifies the EIP ID. |
floating_ip_address | String | Specifies the EIP address. |
external_service_port | Integer | Specifies the port used by the floating IP address to provide services for external systems. |
protocol | String | Specifies the protocol. Its value can be tcp (6), udp (17), or any (0). |
status | String |
|
admin_state_up | Boolean |
|
created_at | String | Specifies when the DNAT rule is created (UTC time). Its value rounds to 6 decimal places for seconds. The format is yyyy-mm-dd hh:mm:ss. |
Examples
- Example requests
- Creating a DNAT rule with specified internal_service_port and external_service_portPOST 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}}
- Creating a DNAT rule with both internal_service_port and external_service_port set to 0POST 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}}
- Creating a DNAT rule with specified internal_service_port and external_service_port
- Example responses
- Response to the request for creating a DNAT rule with specified internal_service_port and external_service_port{"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": ""}}
- Response to the request for creating a DNAT rule with both internal_service_port and external_service_port set to 0{"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}}
- Response to the request for creating a DNAT rule with specified internal_service_port and external_service_port
Status Codes
See Status Codes.
- Function
- URI
- Request
- Response
- Examples
- Status Codes