NAT网关之SNAT进阶使用(二)构建ECS级别SNAT出网方式

背景

NAT网关是云上VPC ECS访问Internet的出入口。阿里云NAT网关控制台创建SNAT条目默认只支持交换机粒度。也就是说,创建了SNAT条目后,指定交换机后挂的全部VPC ECS都只能使用同一条SNAT规则主动访问互联网。

但是问题来了,如果业务忽然发生调整,需要不在同一个交换机后的若干台VPC ECS使用同一个公网IP或公网IP池访问互联网,同时又不希望影响其他服务。下面2张图给出了这种业务场景变化的示意图。
NAT网关之SNAT进阶使用(二)构建ECS级别SNAT出网方式

NAT网关之SNAT进阶使用(二)构建ECS级别SNAT出网方式

该如何处理呢?很简单,阿里云NAT网关API提供的SNAT SourceCIDR/32功能可以简单而又完美的搞定这种场景。

SNAT SourceCIDR /32 API接口

接口介绍

调用阿里云NAT网关API接口:CreateSnatEntry。下图给出了CreatSnatEntry的请求参数。

NAT网关之SNAT进阶使用(二)构建ECS级别SNAT出网方式

在使用SNAT SourceCIDR/32来创建ECS粒度的SNAT条目时,请求参数SourceCIDR为必须项,SourceCIDR的网段填写VPC ECS的网段,如xx.xx.xx.xx/32。此时一定不要指定请求参数SourceVSwitchId

说明:通过SourceCIDR设置ECS粒度的SNAT规则默认不开放,使用前请先通过工单进行申请。

操作验证

在设置ECS粒度的SNAT规则前,可以在控制台上可以看到为原有业务设置的交换机粒度的SNAT条目。

NAT网关之SNAT进阶使用(二)构建ECS级别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条目。

NAT网关之SNAT进阶使用(二)构建ECS级别SNAT出网方式

然后我们分别登录5台VPC ECS查看SNAT条目是否生效,是否可以实现ECS1、ECS2、ECS5使用SNAT IP=118.31.xx.210访问互联网,ECS3和ECS4则使用SNAT IP=114.55.xx.200访问互联网。

NAT网关之SNAT进阶使用(二)构建ECS级别SNAT出网方式

NAT网关之SNAT进阶使用(二)构建ECS级别SNAT出网方式

NAT网关之SNAT进阶使用(二)构建ECS级别SNAT出网方式

NAT网关之SNAT进阶使用(二)构建ECS级别SNAT出网方式

NAT网关之SNAT进阶使用(二)构建ECS级别SNAT出网方式

可以看到,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网关之间区别, 合理选择云上公网入口】

上一篇:最佳实践:阿里云VPC、ECS支持IPv6啦!


下一篇:【SQL 性能优化】参数设置