# ModifyDnatEntry

## 1. 接口描述

本接口(ModifyDnatEntry)用于修改DNAT规则。

## 2. 请求参数

以下请求参数列表仅列出了接口中需要的请求参数

| 参数名称         | 必选 | 类型                                                                                                    | 描述                               |
| ------------ | -- | ----------------------------------------------------------------------------------------------------- | -------------------------------- |
| dnatEntryId  | 是  | String                                                                                                | DNAT规则 ID。                       |
| eipId        | 是  | String                                                                                                | 修改DNAT关联的弹性公网IP ID。              |
| privateIp    | 是  | String                                                                                                | DNAT规则的内网IP地址。                   |
| protocol     | 是  | [DnatEntryProtocol](https://docs.console.zenlayer.com/api/cn/compute/datastructure#dnatentryprotocol) | DNAT规则的协议类型。                     |
| listenerPort | 否  | String                                                                                                | DNAT规则端口转发的外部端口或端口段，取值范围1-65535。 |
| internalPort | 否  | String                                                                                                | DNAT规则端口转发的内部端口或端口段，取值范围1-65535。 |

## 3. 响应结果

| 参数名称      | 类型     | 描述                                                       |
| --------- | ------ | -------------------------------------------------------- |
| requestId | String | <p>唯一请求 ID。</p><p>每次请求都会返回。定位问题时需要提供该次请求的 requestId。</p> |

## 4. 代码示例

{% tabs %}
{% tab title="示例" %}
**1. 修改DNAT规则。**

```json
POST /api/v2/zec HTTP/1.1
Host: console.zenlayer.com
Content-Type: application/json
X-ZC-Action: ModifyDnatEntry
<Common Request Params>

Request：
{
    "dnatEntryId": "<dnatEntryId>",
    "eipId": "<eipId>",
    "privateIp": "10.0.0.2",
    "protocol": "TCP",
    "listenerPort": "1-30",
    "internalPort": "1-30"
}

Response：
{
  "requestId": "T05992D0C-7E8B-4047-B0C0-780F2CD549D3",
  "response": {
    "requestId": "T05992D0C-7E8B-4047-B0C0-780F2CD549D3"
  }
}
```

{% endtab %}
{% endtabs %}

## 5. 开发者工具

Zenlayer Cloud API 2.0 提供了配套的[开发工具集（SDK）](https://docs.console.zenlayer.com/api/cn/api-introduction/toolkit)，未来会陆续支持更多开发语言，方便快速接入和使用Zenlayer的产品和服务。

## 6. 错误码

下面包含业务逻辑中遇到的错误码，其他错误码见[公共错误码](https://docs.console.zenlayer.com/api/cn/api-introduction/instruction/commonerrorcode)

| HTTP状态码 | 错误码                                      | 说明                |
| ------- | ---------------------------------------- | ----------------- |
| 404     | INVALID\_DNAT\_ENTRY\_NOT\_FOUND         | DNAT规则不存在。        |
| 404     | INVALID\_NAT\_NOT\_FOUND                 | NAT网关不存在。         |
| 400     | OPERATION\_DENIED\_NAT\_STATUS           | NAT网关状态不是RUNNING。 |
| 404     | INVALID\_EIP\_NOT\_FOUND                 | EIP不存在。           |
| 400     | OPERATION\_DENIED\_EIP\_NOT\_ASSIGNED    | EIP状态未绑定。         |
| 400     | OPERATION\_DENIED\_EIP\_NOT\_ASSIGN\_NAT | EIP没有与NAT网关绑定。    |
