调用CreateForwardEntry接口在DNAT列表中添加DNAT条目。

使用说明

每条DNAT条目由五部分组成,包括ExternalIpExternalPortIpProtocolInternalIpInternalPort。添加DNAT条目后,NAT网关会将ExternalIp:ExternalPort上收到的指定协议的报文转发给InternalIp:InternalPort,并将回复消息原路返回。

调用本接口添加DNAT条目时,请注意:

  • CreateForwardEntry接口属于异步接口,即系统会先返回一个DNAT条目ID,但该DNAT条目并未添加完成,系统后台的添加任务仍在进行。您可以调用DescribeForwardTableEntries查询DNAT条目的状态:
    • 当DNAT条目处于Pending状态时,表示DNAT条目正在添加中,在该状态下,您只能执行查询操作,不能执行其他操作。
    • 当DNAT条目处于Available状态时,表示DNAT条目添加完成。
  • CreateForwardEntry接口在同一个NAT网关内不支持并发添加DNAT条目。
  • 所有DNAT条目的ExternalIpExternalPortIpProtocol三个字段组成的组合必须互不重复,即不允许将同一个源IP、同一个端口、同一个协议的消息转发到多个目标ECS实例。
  • 所有DNAT条目的IpProtocolInternalIpInternalPort三个字段组成的组合也必须互不重复。
  • 当DNAT表中有DNAT条目的状态处于PendingModifying状态时,无法添加DNAT条目。
  • 一个DNAT表最多可添加100条DNAT条目。
  • DNAT条目中配置了IP映射方式的IP(公网NAT网关使用的EIP或VPC NAT网关使用的NAT IP地址)不能再被其他DNAT条目或SNAT条目使用。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

请求参数

名称 类型 是否必选 示例值 描述
Action String CreateForwardEntry

系统规定参数。取值:CreateForwardEntry

RegionId String cn-hangzhou

NAT网关所在的地域ID。

您可以通过调用DescribeRegions接口获取地域ID。

ForwardTableId String ftb-bp1mbjubq34hlcqpa****

DNAT列表的ID。

ExternalIp String 116.28.XX.XX
  • 当为公网NAT网关配置DNAT条目时,提供公网访问的弹性公网IP地址。
  • 当为VPC NAT网关配置DNAT条目时,提供外部网络访问的NAT IP地址。
ExternalPort String 8080
  • 当为公网NAT网关配置DNAT条目时, 需要进行端口转发的外部端口或端口段。
    • 输入的端口范围需要在1~65535之间。
    • 如果需要在端口段内转发,请在输入时以正斜线(/)隔开起始端口,例如10/20
    • 如果ExternalPort设置为端口段,则InternalPort也需要设置为端口段,且端口段的端口个数相同,例如ExternalPort设置为10/20InternalPort设置为80/90
  • 当为VPC NAT网关配置DNAT条目时,NAT IP地址被外部网络访问的端口,取值范围:1~65535
InternalIp String 192.168.XX.XX
  • 当为公网NAT网关配置DNAT条目时,需要进行公网通信的ECS实例的私网IP地址,该私网IP地址需满足以下条件:
    • 必须属于NAT网关所在的VPC的网段。
    • 必须被一个ECS实例使用且该实例没有绑定EIP时,DNAT条目才生效。
  • 当为VPC NAT网关配置DNAT条目时,需要通过DNAT规则进行通信的私网IP地址。
InternalPort String 80
  • 当为公网NAT网关配置DNAT条目时,需要进行端口转发的内部端口或端口段,取值范围:1~65535
  • 当为VPC NAT网关配置DNAT条目时,需要映射的目标ECS实例端口,取值范围:1~65535
IpProtocol String TCP

协议类型,取值:

  • TCP:转发TCP协议的报文。
  • UDP:转发UDP协议的报文。
  • Any:转发所有协议的报文。如果IpProtocol配置为Any,则ExternalPortInternalPort也必须配置为Any,实现DNAT IP映射。
ForwardEntryName String ForwardEntry-1

DNAT规则的名称。

长度为2~128个字符,必须以大小写字母或中文开头,但不能以http://https://开头。

ClientToken String 0c593ea1-3bea-11e9-b96b-88e9fe6****

客户端Token,用于保证请求的幂等性。

从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符。

说明 若您未指定,则系统自动使用API请求的RequestId作为ClientToken标识。每次API请求的RequestId可能不一样。
PortBreak Boolean false

是否开启端口突破,取值:

  • true:开启端口突破。
  • false(默认值):不开启端口突破。
说明 当DNAT条目和SNAT条目使用同一个公网IP地址时,如果您需要配置大于1024的端口号,您需要指定PortBreaktrue

返回数据

名称 类型 示例值 描述
ForwardEntryId String fwd-119smw5tkasdf****

DNAT条目的ID。

RequestId String A4AEE536-A97A-40EB-9EBE-53A6948A6928

请求ID。

示例

请求示例

http(s)://[Endpoint]/?Action=CreateForwardEntry
&RegionId=cn-hangzhou
&ForwardTableId=ftb-bp1mbjubq34hlcqpa****
&ExternalIp=116.28.XX.XX
&ExternalPort=8080
&InternalIp=192.168.XX.XX
&InternalPort=80
&IpProtocol=TCP
&ForwardEntryName=ForwardEntry-1
&ClientToken=0c593ea1-3bea-11e9-b96b-88e9fe6****
&PortBreak=false
&公共请求参数

正常返回示例

XML格式

HTTP/1.1 200 OK
Content-Type:application/xml

<CreateForwardEntryResponse>
    <ForwardEntryId>fwd-119smw5tkasdf****</ForwardEntryId>
    <RequestId>A4AEE536-A97A-40EB-9EBE-53A6948A6928</RequestId>
</CreateForwardEntryResponse>

JSON格式

HTTP/1.1 200 OK
Content-Type:application/json

{
  "ForwardEntryId" : "fwd-119smw5tkasdf****",
  "RequestId" : "A4AEE536-A97A-40EB-9EBE-53A6948A6928"
}

错误码

HttpCode 错误码 错误信息 描述
400 ExclusiveParam.%sAnd%s The param of %s and %s are mutually exclusive. 参数 %s 和 %s 相互排斥。
400 OperationUnsupported.ForwardEntry Duplicated destination ip port is unsupported. 不支持重复的目标IP端口。
400 InvalidIp.NotInNatgw The specified Ip not belong to natgateway. 该 IP 地址不属于该 NAT 网关。
400 IncorrectStatus.NatIp The status of %s [%s] is incorrect. NatIp当前状态不正确。
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 InvalidProtocal.ValueNotSupported The specified IpProtocol does not support. 该协议类型不支持。
400 IncorretForwardEntryStatus Some Forward entry status blocked this operation.. 无法执行该操作。DNAT表中有DNAT条目的状态处于Pending或Modifying状态。
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 InvalidParameter.Name.Malformed The specified Name is not valid. 该名称不合法,请您按照正确的格式书写名称。
400 IncorrectStatus.ForwardEntry The status of %s [%s] is incorrect. 要删除的DNAT条目实例状态不对
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 InternalError The request processing has failed due to some unknown error. 请求处理由于某些未知错误失败。

访问错误中心查看更多错误码。