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 set to ACTIVE and admin_state_up of the NAT gateway administrator to True. Either port_id or private_ip is used each time. If you create a rule that applies to all port types, set internal_service_port to 0, external_service_port to 0, and protocol to ANY.
URI
POST /v2/{project_id}/dnat_rules
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
project_id |
Yes |
String |
Specifies the project ID. |
Request
Table 2 describes the request parameters.
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
dnat_rule |
Yes |
Object |
Specifies the DNAT rule object. For details, see Table 3. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
nat_gateway_id |
Yes |
String |
Specifies the NAT gateway ID. |
port_id |
No |
String |
Specifies the port ID of an ECS or a BMS. This parameter and private_ip are alternative. |
private_ip |
No |
String |
Specifies the private IP address of a user, for example, the IP address of a VPC for Direct Connect connection. This parameter and port_id are alternative. |
internal_service_port |
Yes |
Integer |
Specifies the port used by ECSs or BMSs to provide services for external systems. The value ranges from 0 to 65535. |
floating_ip_id |
Yes |
String |
Specifies the EIP ID. |
external_service_port |
Yes |
Integer |
Specifies the port for providing external services. The value ranges from 0 to 65535. |
protocol |
Yes |
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. |
description |
No |
String |
Provides supplementary information about the DNAT rule. |
internal_service_port_range |
No |
String |
Specifies the port range used by ECSs or BMSs to provide services for external systems.
|
external_service_port_range |
No |
String |
Specifies the port range used by the floating IP address for providing external services.
|
Response
Table 4 lists response parameters.
Parameter |
Type |
Description |
---|---|---|
dnat_rule |
Object |
Specifies the DNAT rule object. For details, see Table 5. |
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 an ECS or a BMS. This parameter and private_ip are alternative. |
private_ip |
String |
Specifies the private IP address of a user, for example, the IP address of a VPC for Direct Connect connection. |
internal_service_port |
Integer |
Specifies the port used by ECSs or BMSs to provide services for external systems. |
floating_ip_id |
String |
Specifies the EIP ID. |
floating_ip_address |
String |
Specifies the EIP. |
external_service_port |
Integer |
Specifies the port for providing external services. |
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. |
description |
String |
Provides supplementary information about the DNAT rule. |
status |
String |
|
admin_state_up |
Boolean |
|
created_at |
String |
|
internal_service_port_range |
String |
Specifies the port range used by ECSs or BMSs to provide services for external systems.
|
external_service_port_range |
String |
Specifies the port range used by the floating IP address for providing external services.
|
Examples
- Example request
- Create a rule for a specified port.
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" } }
- Create a rule for all ports.
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" } }
- Create a rule based on the specified port range.
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" } }
- Create a rule for a specified port.
- Example response
- Create a response for a specified 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", "external_service_port": 242, "floating_ip_address": "5.21.11.226", "description": "my dnat rule 01" } }
- Create a response for all ports.
{ "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" } }
- Create a rule based on the specified port range.
{ "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" } }
- Create a response for a specified port.
Status Codes
See Status Codes.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.