首页 专有网络 VPC 开发参考 API参考 API目录 NAT SNAT规则 CreateSnatEntry - 在SNAT列表中添加SNAT条目

CreateSnatEntry - 在SNAT列表中添加SNAT条目

更新时间: 2023-12-06 18:32:42

调用CreateSnatEntry接口在SNAT列表中添加SNAT条目。

接口说明

本接口可以为增强型公网NAT网关和VPC NAT网关添加SNAT条目,文中出现的NAT网关不做具体的区分。

调用本接口添加SNAT条目时,请了解以下内容:

  • CreateSnatEntry接口属于异步接口,即系统会先返回一个SNAT条目ID,但该SNAT条目并未添加完成,系统后台的添加任务仍在进行。您可以调用DescribeSnatTableEntries查询SNAT条目的状态:

    • 当SNAT条目处于Pending状态时,表示SNAT条目正在添加中,在该状态下,您只能执行查询操作,不能执行其他操作。

    • 当SNAT条目处于Available状态时,表示SNAT条目添加完成。

  • CreateSnatEntry接口在同一个NAT网关内不支持并发添加SNAT条目。

  • SNAT条目中指定的交换机和ECS实例必须在NAT网关所属的VPC内。

  • 每个交换机和ECS实例只能属于一个SNAT条目。

  • 如果交换机中存在高可用虚拟IP实例,则无法添加SNAT条目。

调试

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

调试

授权信息

下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:

  • 操作:是指具体的权限点。
  • 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
  • 资源类型:是指操作中支持授权的资源类型。具体说明如下:
    • 对于必选的资源类型,用背景高亮的方式表示。
    • 对于不支持资源级授权的操作,用全部资源表示。
  • 条件关键字:是指云产品自身定义的条件关键字。
  • 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作访问级别资源类型条件关键字关联操作
vpc:CreateSnatEntryWrite
  • SnatEntry
    acs:vpc:{#regionId}:{#accountId}:snattable/*

请求参数

名称类型必填描述示例值
RegionIdstring

NAT网关所在的地域ID。

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

枚举值:
  • ap-northeast-2-popap-northeast-2-pop
cn-hangzhou
SnatTableIdstring

SNAT表的ID。

stb-bp190wu8io1vgev****
SourceVSwitchIdstring

交换机的ID。

  • 当为公网NAT网关添加SNAT条目时,该参数表示该交换机内的ECS实例均可以通过SNAT规则访问公网。指定多个EIP配置SNAT IP地址池时,业务连接会通过哈希算法分配到多个EIP,由于每个连接的流量不同,可能会出现多EIP业务流量不均匀的情况,建议您将每个EIP都加入到同一个共享带宽中以避免单EIP带宽达到上限导致业务受损。

  • 当为VPC NAT网关添加SNAT条目时,该参数表示该交换机内的ECS实例均可以通过SNAT规则访问外部网络。

vsw-bp1nhx2s9ui5o****
SourceCIDRstring

输入VPC、交换机或ECS实例的网段,还可以输入任意网段。

SNAT条目有以下几种粒度:

  • VPC粒度:NAT网关所在VPC的网段,该VPC下的所有ECS实例均可以通过SNAT规则访问互联网或者外部网络。

  • 交换机粒度:指定交换机的网段(如192.168.1.0/24),该交换机下的ECS实例均可以通过SNAT规则访问互联网或者外部网络。

  • ECS粒度:指定ECS实例的地址(如192.168.1.1/32),该ECS实例可以通过SNAT规则访问互联网或者外部网络。

  • 输入任意网段,该网段下的所有ECS实例均可以通过SNAT服务访问互联网或者外部网络。

当为公网NAT网关添加SNAT条目时,如果SnatIp仅指定了一个公网IP,ECS实例使用指定的公网IP访问互联网;

如果SnatIp指定了多个公网IP,ECS实例随机使用SnatIp中的公网IP访问互联网。

此参数和SourceVSwtichId参数互斥,不能同时配置。如果指定了SourceVSwitchId,则不能指定SourceCIDR参数。如果指定了SourceCIDR参数,则不能指定SourceVSwitchId参数。

10.1.1.0/24
SnatIpstring
  • 为公网NAT网关添加SNAT条目时,该参数为SNAT条目中的EIP,多个EIP之间用半角逗号(,)隔开。
说明 指定多个EIP配置SNAT IP地址池时,业务连接会通过哈希算法分配到多个EIP,由于每个连接的流量不同,可能会出现多EIP业务流量不均匀的情况,建议您将每个EIP都加入到同一个共享带宽中以避免单EIP带宽达到上限导致业务受损。
  • 为VPC NAT网关添加SNAT条目时,该参数为SNAT条目中的NAT IP地址,多个NAT IP地址之间用半角逗号(,)隔开。
47.98.XX.XX
SnatEntryNamestring

SNAT条目的名称。

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

SnatEntry-1
ClientTokenstring

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

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

说明 若您未指定,则系统自动使用API请求的Requestld作为ClientToken标识。每次API请求的Requestld可能不一样。
02fb3da4-130e-11e9-8e44****
EipAffinityinteger

是否打开EIP亲和性,取值:

  • 0:关闭EIP亲和性。

  • 1:打开EIP亲和性。

说明 打开EIP亲和性开关后,如果SNAT绑定多个EIP,同一个客户端将使用相同的EIP访问公网,否则客户端将从绑定的EIP中随机选取EIP访问公网。
1

返回参数

名称类型描述示例值
object

SNAT条目ID。

SnatEntryIdstring

SNAT条目ID。

snat-kmd6nv8fy****
RequestIdstring

请求ID。

2315DEB7-5E92-423A-91F7-4C1EC9AD97C3

示例

正常返回示例

JSON格式

{
  "SnatEntryId": "snat-kmd6nv8fy****",
  "RequestId": "2315DEB7-5E92-423A-91F7-4C1EC9AD97C3"
}

错误码

HTTP status code错误码错误信息描述
400UnsupportedFeature.PrivateLinkEnabledThe feature of PrivateLinkEnabled is not supported.-
400InvalidSourceCIDR.MalformedSourceCIDR is illegal.-
400NOT_ALLOW_USE_SOURCECIDR_OUTSIDEVPCThe User not in sourcecidr_unlimited_outsidevpc white list. Cannot use SourceCidr outside VpcCidr.-
400NOT_ALLOW_USE_SOURCECIDR_AUTODEFINEThe User not in sourcecidr_unlimited_insidevpc white list. Cannot use SourceCidr auto defined.-
400NOT_ALLOW_USE_SOURCECIDR_CONTAINSZEROThe User not in sourcecidr_unlimited_outsidevpc_containszero white list. Cannot use SourceCidr outside VpcCidr.-
400Forbidden.IpHasBeenUsedInDnatThe snat ip can't be used. Because it has been used in dnat-
400Forbidden.SourceVSwitchId.IncludeHaVipThere is some HaVips under specified VSwitch该交换机下有关联的HaVip。
400InvalidSnatIp.MalformedThe specified SnatIp is not a valid IP address.该公网IP不合法。
400SNAT_IP_POOL_COUNT_TOO_MANYThe Snat pool ip too many.SNAT IP池的IP达到配额。
400Forbidden.SnatEntryCountLimitedSNAT entry in the specified SNAT table reach its limit.SNAT条目数量已达到配额。
400NOT_ALLOW_USE_SOURCECIDRThe User not in nat_scope_unlimited white list. Cannot use SourceCidr param.内网IP超出VPC网段范围。
400INVALID_PARAMETERThe parameter invalid.参数不合法。
400Forbidden.SourceVSwitchId.DuplicatedThe specified SourceCIDRis duplicated.该交换机已配置了 SNAT 规则,请您不要重复设置。
400Forbidden.IpUsedInForwardTableThe specified SnatIp already used in forward table该公网IP已经被DNAT使用,请更换其他公网IP地址或将当前公网IP的DNAT规则删除。
400ForbinddenThe specified Instance already bind eip该实例已经绑定了 EIP,请将 ECS 实例与 EIP 解绑后再添加该端口转发规则。
400EIP_NOT_SUPPORT_SNAT_POOLThe Eip cannot support snat pool-
400EIP_NOT_IN_GATEWAYThe Eip not in nat gateway-
400OperationUnsupported.CidrConflictThe specified CIDR block conflicts with an existing SNAT entry.您指定的CIDR的网段与已有的SNAT条目冲突。
400OperationUnsupported.EipNatIpCheck%s-
400OperationUnsupported.EipNatBWPCheck%s-
400OperationUnsupported.EipNatGWCheck%s-
400OperationFailed.SnatIpPoolBwpRules%s-
400OperationFailed.SnatIpsCheck%s-
400OperationFailed.SnatIpPoolCbwpRules%s-
400CreateSnatEntry.ParamExclusive.sourceVSwitchIdAndsourceCIDR%s-
400InvalidNatGatewayId.NotFoundThe NatGateway instance not exist.-
400InvalidParameter.Name.MalformedThe specified Name is not valid.该名称不合法,请您按照正确的格式书写名称。
400InvalidParameter.SnatIpIp semgment must be subnet cidr.-
400InvalidParameter.SnatIpError public ip must in same bandwidth package.-
400InvalidNatGatewayId.NotFoundError natgateway not exist.-
400IncorrectStatus.SnatEntry%s-
400QuotaExceeded.SnatIpPublic ip number exceeds quota.-
400OperationUnsupported.EipInBindingCreate snat entry with eip in associating status is unsupported.创建snat不可以使用绑定中的eip
400OperationFailed.VSwitchNotInVpcThe specified vswitch and natgateway are not in the same vpc.-
400QuotaExceeded.SnatEntrySNAT entry in the specified SNAT table reach it?s limit.-
400IncorrectStatus.NatIp%s-
400IncorrectStatus.NATGWNATGW status is invalid.NAT网关的状态不正确。
404InvalidRegionId.NotFoundThe specified RegionId does not exist in our records.指定的RegionId不存在。
404InvalidSnatTableId.NotFoundSpecified SNAT table does not exist.指定的 SNAT 表不存在,请您检查输入参数是否正确。
404InvalidVSwitchId.NotFoundThe specified virtual switch does not exists.该交换机不存在,请您检查输入的交换机是否正确。
404InvalidSnatIp.NotFoundSpecified SnatIp does not found on the NAT Gateway该公网IP不在NAT网关中。
404ResourceNotFound.NatGatewayThe NatGateway instance not exist.此nat网关不存在
404ResourceNotFound.NatIpThe NatIp instance not exist.-
500DefaultValidate.Errorvalidte fail.-
500OperationFailed.CrateSnatEntryTimeOutOperation failed because create snatEntry timeout.-

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

变更历史

变更时间变更内容概要操作
2023-09-18OpenAPI 描述信息更新,OpenAPI 错误码发生变更看变更集
变更项变更内容
API 描述OpenAPI 描述信息更新
错误码OpenAPI 错误码发生变更
    错误码 400 变更
    删除错误码:404
    删除错误码:500
2023-03-01OpenAPI 错误码发生变更看变更集
变更项变更内容
错误码OpenAPI 错误码发生变更
    删除错误码:400
    删除错误码:404
    删除错误码:500
阿里云首页 专有网络 VPC 相关技术圈