调用CreateForwardEntry接口在DNAT列表中添加DNAT条目。
接口说明
每条 DNAT 条目由五部分组成,包括 ExternalIp、ExternalPort、IpProtocol、InternalIp 和 InternalPort。添加 DNAT 条目后,NAT 网关会将ExternalIp:ExternalPort上收到的指定协议的报文转发给InternalIp:InternalPort,并将回复消息原路返回。
调用本接口添加 DNAT 条目时,请注意:
- 
CreateForwardEntry 接口属于异步接口,即系统会先返回一个 DNAT 条目 ID,但该 DNAT 条目并未添加完成,系统后台的添加任务仍在进行。您可以调用 DescribeForwardTableEntries 查询 DNAT 条目的状态: - 
当 DNAT 条目处于 Pending 状态时,表示 DNAT 条目正在添加中,在该状态下,您只能执行查询操作,不能执行其他操作。 
- 
当 DNAT 条目处于 Available 状态时,表示 DNAT 条目添加完成。 
 
- 
- 
所有 DNAT 条目的 ExternalIp、ExternalPort 和 IpProtocol 三个字段组成的组合必须互不重复,即不允许将同一个源 IP、同一个端口、同一个协议的消息转发到多个目标 ECS 实例。 
- 
所有 DNAT 条目的 InternalIp、InternalPort 和 IpProtocol 三个字段组成的组合也必须互不重复。 
- 
所有 DNAT 条目的 ExternalIp 和 InternalIp 两个字段的 IP 地址不能相同,如果业务需要两个 IP 地址相同, 请联系商务经理。 
- 
一个 DNAT 表最多可添加 100 条 DNAT 条目。 
- 
DNAT 条目中配置了 IP 映射方式的 IP(公网 NAT 网关使用的 EIP 或 VPC NAT 网关使用的 NAT IP 地址)不能再被其他 DNAT 条目或 SNAT 条目使用。 
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
授权信息
下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:
- 操作:是指具体的权限点。
- 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
- 资源类型:是指操作中支持授权的资源类型。具体说明如下:- 对于必选的资源类型,用前面加 * 表示。
- 对于不支持资源级授权的操作,用全部资源表示。
 
- 条件关键字:是指云产品自身定义的条件关键字。
- 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
| 操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 | 
|---|---|---|---|---|
| vpc:CreateForwardEntry | create | *ForwardTable acs:vpc:{#regionId}:{#accountId}:forwardtable/{#ForwardTableId} | 
 | 无 | 
请求参数
| 名称 | 类型 | 必填 | 描述 | 示例值 | 
|---|---|---|---|---|
| RegionId | string | 是 | NAT 网关所在的地域 ID。 您可以通过调用 DescribeRegions 接口获取地域 ID。 | cn-hangzhou | 
| ForwardTableId | string | 是 | DNAT 列表的 ID。 | ftb-bp1mbjubq34hlcqpa**** | 
| ExternalIp | string | 是 | 
 | 116.28.XX.XX | 
| ExternalPort | string | 是 | 
 | 8080 | 
| InternalIp | string | 是 | 
 | 192.168.XX.XX | 
| InternalPort | string | 是 | 
 | 80 | 
| IpProtocol | string | 是 | 协议类型,取值: 
 | TCP | 
| ForwardEntryName | string | 否 | DNAT 规则的名称。 长度为 2~128 个字符,必须以大小写字母或中文开头,但不能以 | ForwardEntry-1 | 
| ClientToken | string | 否 | 客户端 Token,用于保证请求的幂等性。 从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken 只支持 ASCII 字符。 说明 
若您未指定,则系统自动使用 API 请求的 RequestId 作为 ClientToken 标识。每次 API 请求的 RequestId 可能不一样。
 | 0c593ea1-3bea-11e9-b96b-88e9fe6**** | 
| PortBreak | boolean | 否 | 是否开启端口突破,取值: 
 说明 
当 DNAT 条目和 SNAT 条目使用同一个公网 IP 地址时,如果您需要配置大于 1024 的端口号,您需要指定 PortBreak 为 true。
 | false | 
| DryRun | boolean | 否 | 是否只预检此次请求,取值: 
 | false | 
返回参数
示例
正常返回示例
JSON格式
{
  "ForwardEntryId": "fwd-119smw5tkasdf****",
  "RequestId": "A4AEE536-A97A-40EB-9EBE-53A6948A6928"
}错误码
| HTTP status code | 错误码 | 错误信息 | 描述 | 
|---|---|---|---|
| 400 | UnsupportedFeature.PrivateLinkEnabled | The feature of PrivateLinkEnabled is not supported. | - | 
| 400 | UnsupportedFeature.PortSegment | The feature of PortSegment is not supported. | - | 
| 400 | ExclusiveParam.%sAnd%s | The param of %s and %s are mutually exclusive. | 参数 %s 和 %s 相互排斥。 | 
| 400 | DuplicatedParam.InternalPort | The param of %s is duplicated. | InternalPort参数重复或已被占用 | 
| 400 | DuplicatedParam.ExternalPort | The param of %s is duplicated. | %s的参数重复。 | 
| 400 | OperationFailed.AnyPortConfig | Operation failed because any port correspondence any protocol | 操作失败. 与其他条目有冲突, 存在任何端口或任何协议类型. | 
| 400 | OperationUnsupported.ForwardEntry | Duplicated destination ip port is unsupported. | 不支持重复的目标IP端口。 | 
| 400 | InvalidIp.NotInNatgw | The specified Ip not belong to natgateway. | 该 IP 地址不属于该 NAT 网关。 | 
| 400 | QuotaExceeded.ForwardEntry | The quota of %s is exceeded, usage %s/%s. | - | 
| 400 | IncorrectStatus.NatIp | The status of %s [%s] is incorrect. | NatIp当前状态不正确。 | 
| 400 | Forbidden.IpHasBeenUsedInSnat | The source ip can't be used. Because it has been used in snat. | - | 
| 400 | InvalidExternalIp.Malformed | The specified ExternalIp is not a valid IP address. | 该公网IP不合法。 | 
| 400 | InvalidInternalIp.Malformed | The specified InternalIp is not a valid IP address. | 该目标私网IP不合法。 | 
| 400 | InvalidExternalPort.Malformed | The specified ExternalPort is not a valid port. | 该公网端口不合法。 | 
| 400 | InvalidInternalPort.Malformed | The specified InternalPort is not a valid port. | 该私网端口不合法。 | 
| 400 | Forbidden.DestnationIpOutOfVpcCIDR | The specified Internal Ip is Out of VPC CIDR. | 该私网IP不在VPC的网段范围内,请您填写在VPC的网段范围内的私网IP。 | 
| 400 | Forbidden.DestinationIpOutOfVswitchCIDR | The specified Internal Ip is Out of VSwitch CIDR. | - | 
| 400 | InvalidProtocal.ValueNotSupported | The specified IpProtocol does not support. | 该协议类型不支持。 | 
| 400 | IncorretForwardEntryStatus | Some Forward entry status blocked this operation.. | 无法执行该操作。DNAT表中有DNAT条目的状态处于Pending或Modifying状态。 | 
| 400 | QuotaExceeded.ForwardEntry | Forward entry quota exceeded in this route table. | - | 
| 400 | ForwardEntry.Duplicated | The specified ExternalIp, IpProtocol, ExternalPort,InternalIp, InternalPort is duplicated | - | 
| 400 | Forbidden.ExternalIp.UsedInSnatTable | The specified ExternalIp is already used in SnatTable | 该公网IP已经被SNAT使用,请更换其他公网IP或将当前公网IP的SNAT规则删除。 | 
| 400 | Forbindden | The specified Instance already bind eip | 该实例已经绑定了 EIP,请将 ECS 实例与 EIP 解绑后再添加该端口转发规则。 | 
| 400 | Forbidden.InternalIpOutOfVpcCIDR | The specified Internal Ip is Out of VPC CIDR. | 该私网IP不在VPC的网段范围内。 | 
| 400 | Invalid.natgwNotExist | The specified natgateway not exist. | 该NAT网关不存在。 | 
| 400 | MissingParameter | Missing mandatory parameter | 缺少必要参数,请您检查必填参数是否都已填后再进行操作。 | 
| 400 | AnyPort.PortMustBeZero | any port port must be zero. | - | 
| 400 | InvalidParameter.Name.Malformed | The specified Name is not valid. | 该名称不合法,请您按照正确的格式书写名称。 | 
| 400 | IncorrectStatus.ForwardEntry | The status of %s [%s] is incorrect. | 要删除的DNAT条目实例状态不对 | 
| 400 | Duplicated.DestinationPort | The specified param DestinationPort is duplicated. | - | 
| 400 | OperationUnsupported.EipInBinding | Create snat entry with eip in associating status is unsupported. | 创建snat不可以使用绑定中的eip | 
| 400 | QuotaExceeded.ForwardEntrySessionManytoOne | The dnat session quota is exceed. | dnat session 多对一的配额超限。 | 
| 400 | TaskConflict | The operation is too frequent, please wait a moment and try again. | 操作过于频繁,请稍等一会再重试 | 
| 400 | OperationFailed.DnatPortRangeLimit | The maximum number of port ranges that can be specified is exceeded. | 端口段数量超限。 | 
| 400 | IncorrectStatus.NATGW | NATGW status is invalid. | NAT网关的状态不正确。 | 
| 400 | OperationFailed.ForwardEntryNotAllowSrcIpEqualDstIp | The source IP of forward entry is not allowed to equal destination IP. | DNAT条目不允许公网IP地址等于私网IP地址 | 
| 404 | ResourceNotFound.NatIp | The specified resource of %s is not found. | NatIp资源找不到。 | 
| 404 | InvalidRegionId.NotFound | The specified RegionId does not exist in our records. | 指定的RegionId不存在。 | 
| 404 | InvalidForwardTableId.NotFound | Specified forward table does not exist. | 指定的 DNAT 表不存在,请您检查输入参数是否正确。 | 
| 404 | InvalidExternalIp.NotFound | Specified External Ip address does not found on the VRouter | 该公网IP不存在。 | 
| 500 | System.Error | ERROR SYSTEM ERROR. | - | 
| 500 | InternalError | The request processing has failed due to some unknown error. | 请求处理由于某些未知错误失败。 | 
访问错误中心查看更多错误码。
变更历史
| 变更时间 | 变更内容概要 | 操作 | 
|---|---|---|
| 2024-12-03 | OpenAPI 错误码发生变更、OpenAPI 入参发生变更 | 查看变更详情 | 
| 2024-10-23 | OpenAPI 错误码发生变更 | 查看变更详情 | 
| 2024-01-18 | OpenAPI 描述信息更新、OpenAPI 错误码发生变更 | 查看变更详情 | 
| 2023-06-14 | OpenAPI 错误码发生变更 | 查看变更详情 | 
| 2023-03-30 | OpenAPI 错误码发生变更 | 查看变更详情 | 
| 2023-03-01 | OpenAPI 错误码发生变更 | 查看变更详情 | 
