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

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

接口说明

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

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

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

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

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

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

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

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

调试

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

授权信息

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

  • 操作:是指具体的权限点。
  • 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
  • 资源类型:是指操作中支持授权的资源类型。具体说明如下:
    • 对于必选的资源类型,用背景高亮的方式表示。
    • 对于不支持资源级授权的操作,用全部资源表示。
  • 条件关键字:是指云产品自身定义的条件关键字。
  • 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作访问级别资源类型条件关键字关联操作
vpc:CreateSnatEntrycreate
  • 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 规则访问外部网络。

说明 参数 SourceCIDR 和参数 SourceVSwtichId 必须输入一个且不能都输入。
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 服务访问互联网或者外部网络。

说明 参数 SourceCIDR 和参数 SourceVSwtichId 必须输入一个且不能都输入。
10.1.1.0/24
SnatIpstring

为公网 NAT 网关添加 SNAT 条目时 :

  • 参数 SnatIp 必填。

  • 该参数为 SNAT 条目中的 EIP,多个 EIP 之间用半角逗号(,)隔开。

  • 如果 SnatIp 仅指定了一个公网 IP,ECS 实例使用指定的公网 IP 访问互联网。

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

说明 指定多个 EIP 配置 SNAT IP 地址池时,业务连接会通过哈希算法分配到多个 EIP,由于每个连接的流量不同,可能会出现多 EIP 业务流量不均匀的情况,建议您将每个 EIP 都加入到同一个共享带宽中以避免单 EIP 带宽达到上限导致业务受损。

为 VPC NAT 网关添加 SNAT 条目时:

  • 该参数为 SNAT 条目中的 NAT IP 地址,多个 NAT IP 地址之间用半角逗号(,)隔开。

  • 参数 SnatIp 和参数 NetworkInterfaceId 必须输入一个且不能都输入。

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

是否打开 IP 亲和性。取值:

  • 0(默认值):关闭 IP 亲和性。

  • 1:打开 IP 亲和性。

说明 打开 IP 亲和性开关后,如果 SNAT 条目绑定多个 EIP 或 NAT IP,同一个客户端访问同一目的 IP 时将使用相同的 EIP 或 NAT IP 进行访问,否则客户端将从绑定的 EIP 或 NAT IP 中随机选取进行访问。
1
NetworkInterfaceIdstring

弹性网卡 ID。

说明 会将弹性网卡的 IPv4 地址集作为 SNAT 地址。
eni-gw8g131ef2dnbu3k****

返回参数

名称类型描述示例值
object

SNAT 条目 ID。

SnatEntryIdstring

SNAT 条目 ID。

snat-kmd6nv8fy****
RequestIdstring

请求 ID。

2315DEB7-5E92-423A-91F7-4C1EC9AD****

示例

正常返回示例

JSON格式

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

错误码

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网关的状态不正确。
400IncorrectStatus.VSwitchThe specified vSwitch status is invalid.虚拟交换机状态异常。
400MissingParam.SnatIpThe input parameter SnatIp that is mandatory for processing this request is not supplied.为公网NAT或私网NAT创建Snat规则时需要指定SnatIp参数。
400MissingParam.NetworkInterfaceIdThe input parameter NetworkInterfaceId that is mandatory for processing this request is not supplied.为开启了私网链接服务的NAT创建Snat规则时需要指定NetworkInterfaceId参数。
400ParamExclusive.SnatIpAndNetworkInterfaceIdSnatIp and NetworkInterfaceId is mutually exclusive when create a snat entry for nat.为NAT网关实例创建SNAT规则时,不能同时传入SnatIp参数和NetworkInterfaceId参数。
400IllegalParam.NetworkInterfaceIdThe param of NetworkInterfaceId is illegal.NetworkInterfaceId参数不合法。
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.-
404ResourceNotFound.VSwitchThe specified resource of %s is not found.指定的vSwitch不存在,请检查您的输入是否正确
500DefaultValidate.Errorvalidte fail.-
500OperationFailed.CrateSnatEntryTimeOutOperation failed because create snatEntry timeout.-

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

变更历史

变更时间变更内容概要操作
2024-08-09OpenAPI 错误码发生变更、OpenAPI 入参发生变更查看变更详情
2024-01-18OpenAPI 错误码发生变更查看变更详情
2023-09-18OpenAPI 描述信息更新、OpenAPI 错误码发生变更查看变更详情
2023-03-01OpenAPI 错误码发生变更查看变更详情