背景
NAT网关是云上VPC ECS访问Internet的出入口。阿里云NAT网关控制台创建SNAT条目默认只支持交换机粒度。也就是说,创建了SNAT条目后,指定交换机后挂的全部VPC ECS都只能使用同一条SNAT规则主动访问互联网。
但是问题来了,如果业务忽然发生调整,需要不在同一个交换机后的若干台VPC ECS使用同一个公网IP或公网IP池访问互联网,同时又不希望影响其他服务。下面2张图给出了这种业务场景变化的示意图。
该如何处理呢?很简单,阿里云NAT网关API提供的SNAT SourceCIDR/32功能可以简单而又完美的搞定这种场景。
SNAT SourceCIDR /32 API接口
接口介绍
调用阿里云NAT网关API接口:CreateSnatEntry。下图给出了CreatSnatEntry的请求参数。
在使用SNAT SourceCIDR/32来创建ECS粒度的SNAT条目时,请求参数SourceCIDR为必须项,SourceCIDR的网段填写VPC ECS的网段,如xx.xx.xx.xx/32。此时一定不要指定请求参数SourceVSwitchId。
说明:通过SourceCIDR设置ECS粒度的SNAT规则默认不开放,使用前请先通过工单进行申请。
操作验证
在设置ECS粒度的SNAT规则前,可以在控制台上可以看到为原有业务设置的交换机粒度的SNAT条目。
调用CreateSnatEntry接口,分别使SourceCIDR=172.16.1.193/32(ECS3)映射另一个SNAT IP=114.55.xx.200,SourceCIDR=172.31.2.227/32也映射到SNAT IP=114.55.xx.200。
这时可以看到控制台上新创建的ECS粒度的SNAT条目。
然后我们分别登录5台VPC ECS查看SNAT条目是否生效,是否可以实现ECS1、ECS2、ECS5使用SNAT IP=118.31.xx.210访问互联网,ECS3和ECS4则使用SNAT IP=114.55.xx.200访问互联网。
可以看到,5台VPC ECS访问互联网时的源IP地址均已经按照设置的SNAT规则发生转换,其中ECS3和ECS4为通过SourceCIDR/32实现的ECS粒度的SNAT。
注意
EIP和老的NAT带宽包里的公网IP均可以调用API实现SNAT SourceCIDR/32为ECS粒度设置SNAT条目。后续控制台上即将开放此功能,敬请期待。
使用此功能前必须通过工单申请开通。
ECS粒度的SNAT条目可以搭配SNAT POOL功能一起使用,轻松构建更灵活更可靠的出网方式。
其他链接
阿里云NAT网关API文档之详解CreateSnatEntry --【CreateSnatEntry】
阿里云NAT网关之产品图解 --【一张图看懂阿里云网络产品【四】NAT网关】
阿里云NAT网关之产品图解 --【NAT网关之SNAT进阶使用(一)SNAT POOL】
阿里云专有网络公网出入口管理之必读 --【详解SLB、EIP、NAT网关之间区别, 合理选择云上公网入口】