调用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:CreateSnatEntry | create | *SnatEntry acs:vpc:{#regionId}:{#accountId}:snattable/* |
| 无 |
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
---|---|---|---|---|
RegionId | string | 是 | NAT 网关所在的地域 ID。 您可以通过调用 DescribeRegions 接口获取地域 ID。 枚举值:
| cn-hangzhou |
SnatTableId | string | 是 | SNAT 表的 ID。 | stb-bp190wu8io1vgev**** |
SourceVSwitchId | string | 否 | 交换机的 ID。
说明
参数 SourceCIDR 和参数 SourceVSwtichId 必须输入一个且不能都输入。
| vsw-bp1nhx2s9ui5o**** |
SourceCIDR | string | 否 | 输入 VPC、交换机或 ECS 实例的网段,还可以输入任意网段。 SNAT 条目有以下几种粒度:
说明
参数 SourceCIDR 和参数 SourceVSwtichId 必须输入一个且不能都输入。
| 10.1.1.0/24 |
SnatIp | string | 否 | 为公网 NAT 网关添加 SNAT 条目时 :
说明
指定多个 EIP 配置 SNAT IP 地址池时,业务连接会通过哈希算法分配到多个 EIP,由于每个连接的流量不同,可能会出现多 EIP 业务流量不均匀的情况,建议您将每个 EIP 都加入到同一个共享带宽中以避免单 EIP 带宽达到上限导致业务受损。
为 VPC NAT 网关添加 SNAT 条目时:
| 47.98.XX.XX |
SnatEntryName | string | 否 | SNAT 条目的名称。 长度为 2~128 个字符,必须以大小写字母或中文开头,但不能以 | SnatEntry-1 |
ClientToken | string | 否 | 客户端 Token,用于保证请求的幂等性。 从您的客户端生成一个参数值,确保不同请求间该参数值唯一。 说明
若您未指定,则系统自动使用 API 请求的 Requestld 作为 ClientToken 标识。每次 API 请求的 Requestld 可能不一样。
| 02fb3da4-130e-11e9-8e44**** |
EipAffinity | integer | 否 | 是否打开 IP 亲和性。取值:
说明
打开 IP 亲和性开关后,如果 SNAT 条目绑定多个 EIP 或 NAT IP,同一个客户端访问同一目的 IP 时将使用相同的 EIP 或 NAT IP 进行访问,否则客户端将从绑定的 EIP 或 NAT IP 中随机选取进行访问。
| 1 |
NetworkInterfaceId | string | 否 | 弹性网卡 ID。 说明
会将弹性网卡的 IPv4 地址集作为 SNAT 地址。
| eni-gw8g131ef2dnbu3k**** |
返回参数
示例
正常返回示例
JSON
格式
{
"SnatEntryId": "snat-kmd6nv8fy****",
"RequestId": "2315DEB7-5E92-423A-91F7-4C1EC9AD****"
}
错误码
HTTP status code | 错误码 | 错误信息 | 描述 |
---|---|---|---|
400 | UnsupportedFeature.PrivateLinkEnabled | The feature of PrivateLinkEnabled is not supported. | - |
400 | InvalidSourceCIDR.Malformed | SourceCIDR is illegal. | - |
400 | NOT_ALLOW_USE_SOURCECIDR_OUTSIDEVPC | The User not in sourcecidr_unlimited_outsidevpc white list. Cannot use SourceCidr outside VpcCidr. | - |
400 | NOT_ALLOW_USE_SOURCECIDR_AUTODEFINE | The User not in sourcecidr_unlimited_insidevpc white list. Cannot use SourceCidr auto defined. | - |
400 | NOT_ALLOW_USE_SOURCECIDR_CONTAINSZERO | The User not in sourcecidr_unlimited_outsidevpc_containszero white list. Cannot use SourceCidr outside VpcCidr. | - |
400 | Forbidden.IpHasBeenUsedInDnat | The snat ip can't be used. Because it has been used in dnat | - |
400 | Forbidden.SourceVSwitchId.IncludeHaVip | There is some HaVips under specified VSwitch | 该交换机下有关联的HaVip。 |
400 | InvalidSnatIp.Malformed | The specified SnatIp is not a valid IP address. | 该公网IP不合法。 |
400 | SNAT_IP_POOL_COUNT_TOO_MANY | The Snat pool ip too many. | SNAT IP池的IP达到配额。 |
400 | Forbidden.SnatEntryCountLimited | SNAT entry in the specified SNAT table reach its limit. | SNAT条目数量已达到配额。 |
400 | NOT_ALLOW_USE_SOURCECIDR | The User not in nat_scope_unlimited white list. Cannot use SourceCidr param. | 内网IP超出VPC网段范围。 |
400 | INVALID_PARAMETER | The parameter invalid. | 参数不合法。 |
400 | Forbidden.SourceVSwitchId.Duplicated | The specified SourceCIDRis duplicated. | 该交换机已配置了 SNAT 规则,请您不要重复设置。 |
400 | Forbidden.IpUsedInForwardTable | The specified SnatIp already used in forward table | 该公网IP已经被DNAT使用,请更换其他公网IP地址或将当前公网IP的DNAT规则删除。 |
400 | Forbindden | The specified Instance already bind eip | 该实例已经绑定了 EIP,请将 ECS 实例与 EIP 解绑后再添加该端口转发规则。 |
400 | EIP_NOT_SUPPORT_SNAT_POOL | The Eip cannot support snat pool | - |
400 | EIP_NOT_IN_GATEWAY | The Eip not in nat gateway | - |
400 | OperationUnsupported.CidrConflict | The specified CIDR block conflicts with an existing SNAT entry. | 您指定的CIDR的网段与已有的SNAT条目冲突。 |
400 | OperationUnsupported.EipNatIpCheck | %s | - |
400 | OperationUnsupported.EipNatBWPCheck | %s | - |
400 | OperationUnsupported.EipNatGWCheck | %s | - |
400 | OperationFailed.SnatIpPoolBwpRules | %s | - |
400 | OperationFailed.SnatIpsCheck | %s | - |
400 | OperationFailed.SnatIpPoolCbwpRules | %s | - |
400 | CreateSnatEntry.ParamExclusive.sourceVSwitchIdAndsourceCIDR | %s | - |
400 | InvalidNatGatewayId.NotFound | The NatGateway instance not exist. | - |
400 | InvalidParameter.Name.Malformed | The specified Name is not valid. | 该名称不合法,请您按照正确的格式书写名称。 |
400 | InvalidParameter.SnatIp | Ip semgment must be subnet cidr. | - |
400 | InvalidParameter.SnatIp | Error public ip must in same bandwidth package. | - |
400 | InvalidNatGatewayId.NotFound | Error natgateway not exist. | - |
400 | IncorrectStatus.SnatEntry | %s | - |
400 | QuotaExceeded.SnatIp | Public ip number exceeds quota. | - |
400 | OperationUnsupported.EipInBinding | Create snat entry with eip in associating status is unsupported. | 创建snat不可以使用绑定中的eip |
400 | OperationFailed.VSwitchNotInVpc | The specified vswitch and natgateway are not in the same vpc. | - |
400 | QuotaExceeded.SnatEntry | SNAT entry in the specified SNAT table reach it?s limit. | - |
400 | IncorrectStatus.NatIp | %s | - |
400 | IncorrectStatus.NATGW | NATGW status is invalid. | NAT网关的状态不正确。 |
400 | IncorrectStatus.VSwitch | The specified vSwitch status is invalid. | 虚拟交换机状态异常。 |
400 | MissingParam.SnatIp | The input parameter SnatIp that is mandatory for processing this request is not supplied. | 为公网NAT或私网NAT创建Snat规则时需要指定SnatIp参数。 |
400 | MissingParam.NetworkInterfaceId | The input parameter NetworkInterfaceId that is mandatory for processing this request is not supplied. | 为开启了私网链接服务的NAT创建Snat规则时需要指定NetworkInterfaceId参数。 |
400 | ParamExclusive.SnatIpAndNetworkInterfaceId | SnatIp and NetworkInterfaceId is mutually exclusive when create a snat entry for nat. | 为NAT网关实例创建SNAT规则时,不能同时传入SnatIp参数和NetworkInterfaceId参数。 |
400 | IllegalParam.NetworkInterfaceId | The param of NetworkInterfaceId is illegal. | NetworkInterfaceId参数不合法。 |
404 | InvalidRegionId.NotFound | The specified RegionId does not exist in our records. | 指定的RegionId不存在。 |
404 | InvalidSnatTableId.NotFound | Specified SNAT table does not exist. | 指定的 SNAT 表不存在,请您检查输入参数是否正确。 |
404 | InvalidVSwitchId.NotFound | The specified virtual switch does not exists. | 该交换机不存在,请您检查输入的交换机是否正确。 |
404 | InvalidSnatIp.NotFound | Specified SnatIp does not found on the NAT Gateway | 该公网IP不在NAT网关中。 |
404 | ResourceNotFound.NatGateway | The NatGateway instance not exist. | 此nat网关不存在 |
404 | ResourceNotFound.NatIp | The NatIp instance not exist. | - |
404 | ResourceNotFound.VSwitch | The specified resource of %s is not found. | 指定的vSwitch不存在,请检查您的输入是否正确 |
500 | DefaultValidate.Error | validte fail. | - |
500 | OperationFailed.CrateSnatEntryTimeOut | Operation failed because create snatEntry timeout. | - |
访问错误中心查看更多错误码。
变更历史
变更时间 | 变更内容概要 | 操作 |
---|---|---|
2024-12-03 | OpenAPI 错误码发生变更、OpenAPI 入参发生变更 | 查看变更详情 |
2024-08-09 | OpenAPI 错误码发生变更、OpenAPI 入参发生变更 | 查看变更详情 |
2024-01-18 | OpenAPI 错误码发生变更 | 查看变更详情 |
2023-09-18 | OpenAPI 描述信息更新、OpenAPI 错误码发生变更 | 查看变更详情 |
2023-03-01 | OpenAPI 错误码发生变更 | 查看变更详情 |