在2017 AWS re:Invent的NET403会议中,Steve Seymour深入讲解了AWS Direct Connect (DX) 以及VPN的新特性和技术细节。在这里,挨踢小茶做了一下整理,主要针对AWS Direct Connect的内容做了一下梳理。有兴趣的朋友可以观看原视频AWS re:Invent 2017: Deep Dive: AWS Direct Connect and VPNs (NET403) (需要自带梯子)。
因为是400级别的课程,所以内容还是比较深的,朋友们也可以先看一下之前的文章将数据中心延伸到亚马逊云AWS的连接方式和架构设计,是类似的300级别的课程,稍微简单一些。
AWS Direct Connect (DX)
AWS Direct Connect相对于VPN的联网方式,具有更高的安全性,低延迟以及稳定性,它还有以下这个特点:
- 专线,提供到AWS骨干网的私有连接线路
- 能够创建到AWS的私有接口或公有接口
- 减少出口带宽的开销(入向带宽免费)
- 始终如一的网络性能
- 冗余连接的可选择性
- 可以在多个AWS区域中使用
- 多个AWS账号可以共享同一个DX线路
- 使用BGP来交换路由
- 通过HIPPA法案
大致上你需要向AWS或者APN合作伙伴申请一条AWS Direct Connect (DX) 线路,并选择一个Direct Connect Location,再申请一个连接AWS设备和客户设备或合作伙伴设备的Cross Connect连接即可。具体的细节在这里就不阐述了。
1G/10G专线以及Hosted Connection
要连接客户的远程办公室到AWS,你可以向AWS官方申请一条1G/10G的专线,或者可以和APN合作伙伴申请一条小于1G的专线。
1G/10G专用线路:
- 整个接口速率都是归你所有
- 支持多个虚拟接口(Pulic VIF 和 Private VIF)
- 你需要向AWS官方申请一条DX线路(使用AWS Console即可),创建后申请Cross Connect即可创建虚拟接口
Hosted Connection线路(可选择50Mbps, 100Mbps, 200Mbps, 300Mbps, 400Mbps, 500Mbps):
- 通过APN合作伙伴进行连接
- 每一个hosted connection都有预定义的带宽和VLAN信息,客户不能随意更改
- 每一个hosted connection都只能创建一个虚拟接口VIF
- 你需要向APN合作伙伴申请一条DX线路,然后合作伙伴会提供给你一个hosted connection,你需要在AWS Console上进行确认,然后即可创建一个虚拟接口
链路聚合组的支持(LAG)
现在开始,DX线路就可以支持LAG了,也就是你能将最多4条DX线路进行捆绑,而达到最大40Gbps的带宽容量。需要注意的是,如果使用了LAG,那么多条线路都会接入AWS端的同一个设备上,因此你在一定程度上会有单点故障(即这台设备有故障,则整个DX线路都会出现问题)的风险。经过开启了LAG的DX线路的流量会在不同的实际物理线路上根据一定算法负载均衡。
如图所示,在创建LAG的时候,你需要确保不同的线路的AWS Device的ID是一样的,否则无法创建成功。默认情况下,如果你向AWS申请了2条或以上的DX线路,AWS会将线路安排在不同的物理设备上(为了避免单点故障)。因此如果你有LAG的需求,可能需要向AWS Support开一个工单进行解决。
Private VIF和Public VIF
在创建了DX线路之后,你可以创建一定数量的虚拟接口,这种虚拟接口有2种类型,一种是Private VIF,一种是Public VIF。
Private VIF可以访问到你的VPC (Virtual Private Cloud)以及在VPC内的一切私有资源,例如EC2,RDS,ELB等。Public VIF能够让你通过DX线路访问AWS所有区域在公网上的资源(除了中国区域),例如S3,DynamoDB等等。通过创建Public VIF,你可以不用经过因特网,而是经过DX专线来访问这些资源。
Public VIF的路由控制
如果你在2017年11月之前申请了一条DX线路并且创建了Public VIF的话,你的CGW (Customer Gateway) 只会从VGW(Virtual Gateway)中收到DX线路所在区域的所有路由。
如果你在2017年11月之后申请了一条DX线路并且创建了Public VIF的话,你的CGW (Customer Gateway)会从VGW(Virtual Gateway)中收到来自AWS公网地址组成的2000~3000多个路由条目(并在持续增加),同时你的私有网络也会公告给所有AWS的骨干网络。如果你需要精细控制路由的条目数量,你需要用到BGP的communities。
你可以通过编写Route-Map和相应的规则,控制你在CGW中收到和发出去的路由条目数量。在发出的方向,你可以改变communities为:
- 7224:9100 - 代表路由只发布到当前的AWS区域
- 7224:9200 - 代表路由只发布到当前的AWS区域所在的洲(比如北美洲)
- 7224:9300 - 代表路由发布到所有的AWS区域 (默认设置)
在入方向,如果你希望控制在CGW中收到的路由条目,你可以改变communities为:
- 7224:8100 - 只收来自DX location所在的AWS区域传来的路由
- 7224:8200 - 只收来自DX location所在的AWS区域所处的洲传来的路由
- No tag - 收所有AWS区域传来的路由
文章评论
学习了学习了
自己顶一下
文章不错非常支持一下吧