Updating a DNAT Rule
Function
This API is used to update a DNAT rule.
Constraints
You can update a DNAT rule only when its status is set to ACTIVE and admin_state_up of the NAT gateway administrator to True. Specify either port_id or private_ip at a time. If you are going to update 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.The following fields must be updated together: port_id, private_ip, internal_service_port, external_service_port, floating_ip_id, protocol, internal_service_port_range, and external_service_port_range.
Calling Method
For details, see Calling APIs.
URI
PUT /v2/{project_id}/dnat_rules/{dnat_rule_id}
| 
        Parameter  | 
      
        Mandatory  | 
      
        Type  | 
      
        Description  | 
     
|---|---|---|---|
| 
        project_id  | 
      
        Yes  | 
      
        String  | 
      
        Specifies the project ID.  | 
     
| 
        dnat_rule_id  | 
      
        Yes  | 
      
        String  | 
      
        Specifies the DNAT rule ID.  | 
     
Request Parameters
| 
        Parameter  | 
      
        Mandatory  | 
      
        Type  | 
      
        Description  | 
     
|---|---|---|---|
| 
        X-Auth-Token  | 
      
        Yes  | 
      
        String  | 
      
        Specifies the user token. It is a response to the API for obtaining 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.  | 
     
| 
        Parameter  | 
      
        Mandatory  | 
      
        Type  | 
      
        Description  | 
     
|---|---|---|---|
| 
        dnat_rule  | 
      
        Yes  | 
      
        Specifies the request body for updating the DNAT rule.  | 
     
| 
        Parameter  | 
      
        Mandatory  | 
      
        Type  | 
      
        Description  | 
     
|---|---|---|---|
| 
        nat_gateway_id  | 
      
        Yes  | 
      
        String  | 
      
        Specifies the NAT gateway ID.  | 
     
| 
        description  | 
      
        No  | 
      
        String  | 
      
        Provides supplementary information about the DNAT rule. The description can contain up to 255 characters and cannot contain angle brackets (<>).  | 
     
| 
        port_id  | 
      
        No  | 
      
        String  | 
      
        Specifies the port ID of an ECS or BMS. This parameter applies to VPC scenarios. Configure either port_id or private_ip.  | 
     
| 
        private_ip  | 
      
        No  | 
      
        String  | 
      
        Specifies the private IP address of a user. This parameter applies to Direct Connect and Cloud Connect scenarios. Configure either private_ip or port_id.  | 
     
| 
        protocol  | 
      
        No  | 
      
        String  | 
      
        Specifies the protocol. TCP, UDP, and ANY are supported. The protocol number of TCP, UDP, and ANY are 6, 17, and 0, respectively.  | 
     
| 
        global_eip_id  | 
      
        No  | 
      
        String  | 
      
        Specifies the global EIP ID. Configure either the EIP ID or the global EIP ID.  | 
     
| 
        floating_ip_id  | 
      
        No  | 
      
        String  | 
      
        Specifies the EIP ID.  | 
     
| 
        internal_service_port  | 
      
        No  | 
      
        Integer  | 
      
        Specifies the port used by ECSs or BMSs to provide services for external systems. Supported range: 0 to 65535  | 
     
| 
        external_service_port  | 
      
        No  | 
      
        Integer  | 
      
        Specifies the port used by the floating IP address to provide services for external systems. Supported range: 0 to 65535  | 
     
| 
        internal_service_port_range  | 
      
        No  | 
      
        String  | 
      
        Specifies the port range used by ECSs or BMSs to provide services for external systems. The number of ports must be the same as that of external _service_port_range. The value ranges from 1 to 65535. Specify two port numbers connected by a single hyphen (-) and no blank spaces in the x-y format, where x is lower than y.  | 
     
| 
        external_service_port_range  | 
      
        No  | 
      
        String  | 
      
        Specifies the port range used by the floating IP address to provide services for external systems. The number of ports must be the same as that of internal _service_port_range. The value ranges from 1 to 65535. Specify two port numbers connected by a single hyphen (-) and no blank spaces in the x-y format, where x is lower than y.  | 
     
Response Parameters
Status code: 200
| 
        Parameter  | 
      
        Type  | 
      
        Description  | 
     
|---|---|---|
| 
        dnat_rule  | 
      
        Specifies the response body of the DNAT rule.  | 
     
| 
        Parameter  | 
      
        Type  | 
      
        Description  | 
     
|---|---|---|
| 
        id  | 
      
        String  | 
      
        Specifies the DNAT rule ID.  | 
     
| 
        tenant_id  | 
      
        String  | 
      
        Specifies the project ID.  | 
     
| 
        description  | 
      
        String  | 
      
        Provides supplementary information about the DNAT rule. The description can contain up to 255 characters and cannot contain angle brackets (<>).  | 
     
| 
        port_id  | 
      
        String  | 
      
        Specifies the port ID of an ECS or BMS. This parameter applies to VPC scenarios. Configure either port_id or private_ip.  | 
     
| 
        private_ip  | 
      
        String  | 
      
        Specifies the private IP address of a user. This parameter applies to Direct Connect and Cloud Connect scenarios. Configure either private_ip or port_id.  | 
     
| 
        internal_service_port  | 
      
        Integer  | 
      
        Specifies the port used by ECSs or BMSs to provide services for external systems. Supported range: 0 to 65535  | 
     
| 
        nat_gateway_id  | 
      
        String  | 
      
        Specifies the public NAT gateway ID.  | 
     
| 
        global_eip_id  | 
      
        String  | 
      
        Specifies the global EIP ID. Configure either the EIP ID or the global EIP ID.  | 
     
| 
        global_eip_address  | 
      
        String  | 
      
        Specifies the global EIP.  | 
     
| 
        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. Supported range: 0 to 65535  | 
     
| 
        status  | 
      
        String  | 
      
        Specifies the DNAT rule status. The value can be: 
  | 
     
| 
        admin_state_up  | 
      
        Boolean  | 
      
        Specifies whether the DNAT rule is frozen. The value can be: 
  | 
     
| 
        internal_service_port_range  | 
      
        String  | 
      
        Specifies the port range used by ECSs or BMSs to provide services for external systems. The number of ports must be the same as that of external _service_port_range. The value ranges from 1 to 65535. Specify two port numbers connected by a single hyphen (-) and no blank spaces in the x-y format, where x is lower than y.  | 
     
| 
        external_service_port_range  | 
      
        String  | 
      
        Specifies the port range used by the floating IP address to provide services for external systems. The number of ports must be the same as that of internal _service_port_range. The value ranges from 1 to 65535. Specify two port numbers connected by a single hyphen (-) and no blank spaces in the x-y format, where x is lower than y.  | 
     
| 
        protocol  | 
      
        String  | 
      
        Specifies the protocol. TCP, UDP, and ANY are supported. The protocol number of TCP, UDP, and ANY are 6, 17, and 0, respectively.  | 
     
| 
        created_at  | 
      
        String  | 
      
        Specifies when the DNAT rule was created. The time is in yyyy-mm-dd hh:mm:ss.SSSSSS format.  | 
     
Example Requests
PUT https://{NAT_endpoint}/v2/d199ba7e0ba64899b2e81518104b1526/dnat_rules/79195d50-0271-41f1-bded-4c089b2502ff
{
  "dnat_rule" : {
    "nat_gateway_id" : "a78fb3eb-1654-4710-8742-3fc49d5f04f8",
    "description" : "my dnat-rules"
  }
}
 Example Responses
Status code: 200
DNAT rule updated.
{
  "dnat_rule" : {
    "status" : "ACTIVE",
    "nat_gateway_id" : "a78fb3eb-1654-4710-8742-3fc49d5f04f8",
    "admin_state_up" : true,
    "port_id" : "9a469561-daac-4c94-88f5-39366e5ea193",
    "internal_service_port" : 993,
    "protocol" : "tcp",
    "tenant_id" : "d199ba7e0ba64899b2e81518104b1526",
    "floating_ip_id" : "cf99c679-9f41-4dac-8513-9c9228e713e1",
    "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,
    "description" : "my dnat rule"
  }
}
 Status Codes
| 
        Status Code  | 
      
        Description  | 
     
|---|---|
| 
        200  | 
      
        DNAT rule updated.  | 
     
Error Codes
See Error Codes.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.