亚马逊AWS官方博客
利用 SD-WAN 和专线混合组网,加速境内外企业 IDC 和多云数据中心
国内目前有很多企业涉及境外业务,比如跨境电商、游戏、社交、区块链等,会用到 AWS 的海外区域,同时这些企业在国内有自己的机房、 IDC 或者使用了国内的其他云厂家的机房,如果希望彼此进行互联互通或者数据传输。除了使用专线的方式之外,还能选择 SD-WAN 方案,或者专线加 SD-WAN 的混合组网方法。
图例1. SD-WAN 方案打通不同云厂商和机房,办公室的示例
SD-WAN 组网的几个常见例子:
- 如果公司在国内,但是用到了 AWS 海外区域的资源,开发人员需要进行日常代码上传,云端资源的管理(使用 AWS 控制台),并且希望网络稳定。
- 国内有自建机房,分支机构,海外有分支机构和 AWS 区域,希望所有地方都建立互联互通
- AWS 国内和 AWS 海外区域有数据传输的需要,或者国内海外有不同云厂家的资源,希望互联互通
另外一般来说 SD-WAN 合作伙伴在全球不同的 IDC,主流云厂商所在的 POP 点都有自己的设备和资源,因此也可以通过专线方式接入到你的 AWS 区域,IDC 机房,各大云厂商的 VPC 内。
SD-WAN 是什么?
在文章正式开始之前,先花一点点时间介绍一下什么是 SD-WAN 吧。
SD-WAN 的全称是 Software Defined Wide Area Network,指用软件来控制、管理本地网络和远程分支机构或云之间的连接,通常由控制平面和数据平面组成,有专门的控制器作为控制层面,物理的路由器/交换机作为数据转发平面。
一般来说,SD-WAN 可以充分利用企业内不同的线路类型(MPLS,普通 Internet,专线,4G/5G),根据线路状态(丢包,负载等)动态选择路径,进行线路的负载均衡,智能路由,从而可以在使用低廉线路的情况下,得到有 SLA 保障的线路质量。
为什么使用 SD-WAN
- 统一的管理平台,通过 Controller 可以对所有 SD-WAN 设备进行管理和配置,而不需要像传统的方式每一台单独进行管理
- 提高用户体验,如果线路出现故障,控制器能基于应用层的感知切换线路,用户无感知
- 全网 CPE 设备支持零配置(ZTP)自动上线
- 既能得到近似于 MPLS 线路的稳定性,又能享受普通 Internet 线路的廉价带宽
- 节省大量运维成本
- 交付时间快(设备到货1-2天就能交付)
我们当然也可以直接通过 Internet 搭建 Site-to-Site VPN 来打通不同的机房和办公室,但是在网络高峰期,或者重大节日的时候会出现不稳定和丢包极其严重的现象。
以下的模拟场景都是基于云网通的设备和 SD-WAN 网络进行测试的,该合作伙伴有丰富的多云互联和专线上云,以及 SD-WAN 的经验。
场景模拟1:纯 SD-WAN 组网
在这里模拟一个使用场景,分别是连接企业自己的数据中心/办公室, AWS 北京区域和 AWS 海外区域(这里以新加坡区域和加利福尼亚区域为例,其他区域也可以)。并且通过 SD-WAN 技术做到全网打通,两两彼此能通信。
图例2. 纯SD-WAN组网
在这个场景中,EC2 虚拟机通过软路由(合作伙伴提供的 AMI 镜像)的方式,通过 Internet Gateway 做 IPSec VPN 来连接最近的 SD-WAN POP 点。
在机房/IDC 终端设备这一端,我们可以选择用自己的服务器安装 SD-WAN 合作伙伴的预制镜像,或者直接租借 CPE 设备。对于手持设备来说,也会有类似随身 Wifi 的 mCPE 设备可以接入 SD-WAN。
图中可以看到,每一个 vCPE 都是连接到2个 SD-WAN 的 POP 点(一般是不同城市),如果一个 POP 点出现故障,会自动切换到另一个 POP 点。
部署方法
首先先确保自己的 VPC,子网,路由表都已经按公有子网和私有子网的标准进行配置,并且公有子网已经附加了一个 Internet 网关。接着进行下面的操作:
1.让合作伙伴共享 vCPE 的 AMI 镜像给自己的 AWS 账号
2.根据AMI镜像创建一个 EC2 的实例
3.编辑实例的安全组,放开 ICMP 协议和8022端口
4.关闭源/目标检查。因为 vCPE 将会作为软路由存在,因此需要关闭源/目标检查,否则所有经过 vCPE 的包都会被丢弃。
5.合作伙伴进行后台配置,生成一个与自己已用网络都不重合的网段,作为 SD-WAN 的管理网络,此处以10.254.0.0/16为例。
6.配置路由表,私有子网配置到10.254.0.0/16的路由,下一跳是 vCPE。
7.登陆私有子网的测试客户端,可以分别 ping 通北京(2.3ms 延迟)和石家庄(7.5ms 延迟)的 POP 点,并且延迟都在 10ms 以内。
8.重复步骤1-7,在新加坡区域区域部署一个 vCPE 和测试客户端,并且能 ping 通位于新加坡和印尼的 POP 点。
9.重复步骤1-7,在加利福尼亚区域区域部署一个 vCPE 和测试客户端,并且能 ping 通最近的2个 POP 点。
10.合作伙伴会发送一个1U 的 CPE 设备到你的办公室/数据中心,作为 SD-WAN 的终端接入点。只需要接上电源, WAN 口接外网线路(DIA),LAN 口接内网设备就可以了。并且 CPE 是自带 DHCP 的,所以这个设备可以直接作为办公室的唯一网关。如果公司已有自身的边界路由器,也可以将 CPE 放置在边界路由器以内,只需要保证 CPE 能连通 Internet 就可以注册到 SD-WAN 控制器。设备大小如下图所示,是一个1U 的小盒子。
11.合作伙伴会协助在 SD-WAN 控制器上下发全量配置,创建 CPE 以及定义业务网段,路由设置等。
12.配置完成后可以看到 CPE 的详情和在线状态,带宽等信息。
13.配置互通路由,在3个不同的 AWS 区域,分别更改私网路由表,写入对端的网络,下一跳为 vCPE。如下图所示为北京区域的子网路由配置,其他区域也是类似配置,在这里不做详细展示了。
配置完成后,所有站点就能互联互通了。
性能比较
以3小时为测试范围(粒度为5分钟的平均值),测试了从加利福尼亚分别到北京区域,新加坡区域和深圳办公室的延迟和丢包率,并且分别以内网和公网的传输做对比。
延迟
可以从以下两图看出,如果是走 SD-WAN 网的话,延迟效果很稳定;走公网的话,延迟波动性较大。但是从绝对数值来看,其实走公网的平均延迟其实还更小一些。这里主要原因是 SD-WAN 内部网络还有优化空间,以及 POP 点的覆盖也还有改进空间。测试用的合作伙伴里加利福尼亚最近的 POP 点是洛杉矶,两者相距也有400多公里,离我们经常说的最后一公里还是差距蛮大的。如果使用的 AWS 区域是美西区域,这个延迟可能会更大。
丢包率
从下面两图可以看出,在丢包率方面如果是走 SD-WAN 情况是零丢包(时间戳即使延长到一周的长度也没有看到任何的丢包)。而纯公网的环境下,跨境的部分丢包率特别高,这个观测时间如果拉长到24小时,可以看到在夜间(凌晨3点到7点)会略有好转。
SD-WAN控制器管理
另外我们可以通过 SD-WAN 控制器的 Portal 来查看所以已上线的 SD-WAN 的网络状态和延迟报告,我们也可以对所有 SD-WAN 网络进行在线的路由配置,主备线路切换,HA 设置和 QoS 设置等。
图例3. SD-WAN在线控制界面
场景模拟2: SD-WAN 和专线混合组网
这里模拟另一个场景,即将连接 AWS 区域的 SD-WAN 线路都替换成 Direct Connect 线路。如图所示,AWS 北京将会通过 Direct Connect 专线接入,AWS 新加坡和加利福尼亚将会通过 Direct Connect Gateway 接入。Direct Connect Gateway 可以将一个 Private VIF 连接到多个不同的 AWS 区域内的 VPC。
另外需要注意的是,因为目前 Direct Connect Gateway 不支持 Transit Routing,所以新加坡区域和加利福尼亚区域之间的流量是不能经过 Direct Connect Gateway 进行流量转发的。Transit Gateway 能解决这个问题,但是目前 Transit Gateway 还不能跨越 Region。因此在这里只能做 VPC Peering 来解决。
图例4. SD-WAN 和专线混合组网
部署方法
首先需要在每一个区域创建一个 Virtual Private Gateway,并且将这个 VGW 附在相应的 VPC 中,然后操作以下步骤:
1.提供 AWS 账号给合作伙伴,合作伙伴会发送一个 Direct Connect 连接到你的账号,需要到自己的账号上接受这个连接的请求。进入 Direct Connect – 连接,可以看到一个新的连接。
2.选择此连接,点击接受按钮,勾选条款并点击确认。
3.Direct Connect 状态会在几分钟后从 Pending 状态变为 Available 状态
4.创建私有 VIF,这个地方需要选择之前接受的连接,相应的 VPC 所对应的 VGW。需要特别注意的是,VLAN ID 可以在之前接受的连接上看到(这里是 Vlan 1099),BGP ASN 需要和合作伙伴确定(这里是58991)。最底下其他设置里面的 Peer IP 地址,本地 IP 地址,BGP 身份验证密钥等信息也需要和合作伙伴确定。也可以留默认,让合作伙伴对应地配置他那一端的设备。
5.配置完成后,如果合作伙伴那端的 BGP 也配置正确,就可以看到 BGP 状态是 up 了。也说明这个 Direct Connect 线路可以正式使用。
6.重复步骤1-5,在海外区也建立相应的配置。但需要注意的是,海外区用的是 Direct Connect Gateway 而不是 Direct Connect。
7.将 Direct Connect Gateway 关联到新加坡区域的 VGW 和加利福尼亚区域的 VGW,并且正确填写允许的前缀。
8.同时,这个 Direct Connect Gateway 还需要关联一个 Private VIF,具体操作和第一个场景一样,需要特别注意 BGP ASN,VLAN ID 和其他配置信息。
9.如果两端配置无误,过几分钟就可以看到 BGP 状态也是 Up 了
10.CPE的配置
合作伙伴会发送一个 1U 的物理设备来作为办公室/数据中心的 CPE 设备,这个 CPE 设备类似于云上的 vCPE,是接入 SD-WAN 的一个终端节点。CPE 设备只要能连到 Internet,就能自动被 SD-WAN 控制器发现,SD-WAN 控制器就可以对这个 CPE 进行远程的配置,加入到 SD-WAN 网络中。
11.VPC Peering 配置
因为 Direct Connect Gateway 不支持路由透传,所以需要对新加坡和加利福尼亚区域做 VPC 对等连接。
在 VPC 界面,点击对等连接,创建对等连接,选择本地的 VPC,以及输入需要连接的对端的另一个区域的 VPC ID。
12.登陆到另一个区域,到 VPC 界面接受这个 VPC 对等连接。
13.和模拟场景1类似,配置线下的 CPE 设备。
14.以新加坡区域为例,进入子网路由表,更改到其他目的地的路由表,添加到对端的路由。其中到加利福尼亚区域是通过 VPC Peering,到其他区域是通过 VGW。
15.到其他区域配置类似的路由表设置。配置完成后,所有点就互联互通了
性能比较
以3小时为测试范围(粒度为5分钟的平均值),测试了从加利福尼亚分别到北京区域,新加坡区域和深圳办公室的延迟和丢包率,并且分别以内网和公网的传输做对比。
延迟
可以从以下两图看出,如果是走专线加 SD-WAN 混合组网的话,延迟效果很稳定;走公网的话,延迟波动性较大。但是从绝对数值来看,其实走公网的平均延迟其实还更小一些。
丢包率
从下面两图可以看出,在丢包率方面如果是走 SD-WAN 加专线的情况是零丢包(时间戳即使延长到一周的长度也没有看到任何的丢包)。而纯公网的环境下,跨境的部分丢包率特别高,甚至在5分钟的期间会有100%的丢包率,这个观测时间如果拉长到24小时,可以看到在夜间(凌晨3点到7点)会略有好转。
收费标准
大致上 SD-WAN 混合组网的收费会有2部分,一部分是本地网络接入 SD-WAN 的 POP 点的费用,另一部分是 AWS 端口月租费用,两部分的费用具体都取决于带宽的大小。
每一个合作伙伴的收费标准不一样,具体还需要咨询相应的合作伙伴才行,具体可以到官网查看合作伙伴信息(https://aws.amazon.com/cn/directconnect/partners/)。
双线路冗余和高可用
考虑到单线路/设备可能出现的硬件故障,电力问题,Direct Connect 线路故障,我们还需要对这个架构进行高可用的优化。本地端可以利用双设备,双线路(一般为提供 DIA 的不同 ISP,比如一条是电信线路,一条是联通线路),通过 Internet 直接连接到 SD-WAN 的 POP 点。AWS 端可以用 Direct Connect 线路作为主线路,SD-WAN 作为备用线路,或者用两台 SD-WAN 的 vCPE 作为冗余。
图例5. SD-WAN 和专线的高可用设计
因为篇幅有限,高可用的设置将会在下一篇文章进行详细讲解。
总结
通过 SD-WAN 网络设计,或者专线加 SD-WAN 混合组网设计,给我们在组网的选择上带来了很多灵活性,我们可以根据不同的成本、性能上的考量来作出不同的选择。一般来说,如果我们需要大带宽,稳定的网络,可以选择专线;如果我们需要快速部署,测试,灵活性需求比较高的话,可以选择 SD-WAN。而且,在很多地区(比如本次试验中从海外到北京和到深圳),走 SD-WAN 的延迟比走专线的延迟还要更低一些(平均低40ms 左右),并且丢包率也是很专线差不多,价格反而更加优惠。
另外,目前 SD-WAN 的最后一公里(SD-WAN POP 点到客户端 CPE 设备)还是走的普通 Internet,因此如果本地出口的带宽利用率较高,线路质量不好的情况下,SD-WAN 的效果会受到影响。
另外,SD-WAN 的 POP 点数量和内部网络的优化对整个 SD-WAN 的方案效果有很大的影响,因为这个决定了我们的 CPE 能否以最短的路径,最低的延迟到达 SD-WAN 网络。
参考材料
https://www.cisco.com/c/en/us/solutions/enterprise-networks/sd-wan/what-is-sd-wan.html#~why-now-
http://www.oneclouds.com/templates/sdwan.html