阅读106 返回首页    go 阿里云


自建SNAT网关平滑迁移到NAT网关__最佳实践_用户指南_专有网络 VPC-阿里云

概述

在VPC中搭建一个SNAT网关,可以实现无公网IP的ECS实例安全的访问互联网。

用户可以选择使用ECS实例自己搭建SNAT网关(如何自建SNAT网关),也可以使用NAT网关的SNAT功能(最佳实践-高可用的SNAT网关)。相比而言,后一种方案比前一种方案有更好的可用性和性能。

如果已经在VPC中基于ECS搭建了SNAT网关,又想将架构切换为基于NAT网关实现SNAT,需要先将原有自建SNAT网关拆除,再进行NAT网关的创建和配置。这样的操作会导致SNAT功能中断一段时间。

本文提供一种操作方法,可以利用路由表的一些特性(主要是“最长匹配原则”),实现自建SNAT网关和NAT网关的无缝切换。切换过程中,不会出现SNAT功能不可用,仅在切换的一瞬间发生已有TCP连接的断开,只需应用进行重连即可;

环境

当前VPC中有两个ECS实例:

  • i-9410jeo5i为自建的SNAT网关;这台ECS上绑定了一个EIP,并且开启了转发服务、配置了iptables规则以实现SNAT转发;
  • i-94kjwn5ds为需要SNAT功能来访问互联网的服务器;

图1-当前ECS实例

当前VPC的路由器上,添加了一条自定义路由,将公网访问请求转发给i-9410jeo5i;

图2-路由表现有配置

操作步骤

添加8条路由,对原有路由进行覆盖

添加8条路由,目的CIDR分别为1.0.0.0/8;2.0.0.0/7;4.0.0.0/6;8.0.0.0/5;16.0.0.0/4;32.0.0.0/3;64.0.0.0/2;128.0.0.0/1;下一跳均为i-9410jeo5i。

图3-添加精细路由

配置结果如下图所示:

图4-精细路由配置结果

由于路由表按照“最长匹配原则”,会优先匹配子网掩码最长的路由条目;而去往任意IP地址的数据包,都会匹配到这8条中的一条;因此,0.0.0.0/0这条路由实际上已经不再有用了。

删除目的地址段为0.0.0.0/0的路由

图5-删除默认路由

创建NAT网关

在该VPC中创建NAT网关。

图6-创建NAT网关

创建出的NAT网关如图所示:

图7-创建出的NAT网关

创建NAT网关时,系统会自动添加一条0.0.0.0/0的路由,指向NAT网关

图8-指向NAT GW的路由

为NAT网关配置公网IP与带宽

在NAT网关上创建一个公网带宽包,为NAT网关配置公网IP与带宽。

图9-添加共享带宽包1

图10-添加共享带宽包2

图11-生成的共享带宽包

在NAT网关上配置SNAT规则

在NAT网关的控制台上,进入“SNAT表”管理界面,添加SNAT规则;交换机ID是需要SNAT功能的ECS所属的交换机的ID;外部IP地址 是NAT网关上执行SNAT转换时使用的公网IP地址。

图12-配置SNAT规则1

添加出的SNAT规则如图所示:

图13-添加出的SNAT规则

至此,NAT网关上SNAT相关的所有配置已经完成,NAT网关已经开始对收到的所有公网访问请求进行SNAT转换;但是,由于指向NAT网关的路由的优先级较低,因而没有数据包被转发到NAT网关上

去除之前添加的八条路由,启用NAT网关

删除之前添加的八条指向i-9410jeo5i的明细路由,让路由器把公网访问请求不再转发给自建SNAT,而是转发给NAT网关。

图14-删除明细路由

八条路由全部删除后,路由表中的内容如图所示:

图15-删除明细路由后的路由表

至此,已经完成了从自建SNAT网关到使用官方NAT网关的SNAT功能的全部切换流程。

最后更新:2016-11-23 16:04:16

  上一篇:go 高可用的SNAT网关__最佳实践_用户指南_专有网络 VPC-阿里云
  下一篇:go 专有网络环境做端口映射__配置_用户指南_专有网络 VPC-阿里云