在挨踢小茶之前的文章中有详细介绍如何利用AWS VPC的VGW与远程站点建立点对点的IPsec VPN连接(具体可以查看文章亚马逊云AWS搭建基于BGP动态路由的硬件VPN(Site to Site VPN)教程),本文主要讲解一下在多个远程站点的情况下,如果建立AWS VPN CloudHub架构。
如果你有多个远程站点,并且每个站点都有一条与AWS VPC建立的VPN线路,那么AWS原生提供一种hub-and-spoke的模型来保证你的每个远程站点之间的通信。也就是说,客户的每个远程站点都可以通过VGW这个“中继站”来转发自己的流量,以达到可以互相访问的目的。这样子可以为一些企业建立高效、低成本、灵活的主用或者备用线路。同时,CloudHub模型不仅可以工作于VPN线路,同时还可以工作于AWS Direct Connect (DX)线路。也就是说,如果有些远程站点是使用DX线路连接到VGW的,那么它也可以与其他站点进行互访。
CloudHub的架构不会收取您额外的费用,但VPN线路的每小时0.05美金费用还是会收取的。
可以看到如下图所示,左边是位于AWS东京区域的VPC,右边是三个不同的远程办公室(悉尼办公室,新加坡办公室,孟买办公室)。他们的IP地址范围分别是10.1.0.0/24,10.2.0.0/24,10.3.0.0.24。每一个远程办公室都使用一台Customer Gateway (CGW)与Virtual Private Gateway (VGW)建立VPN连接。这里需要注意的是,这次实验挨踢小茶故意没有将VGW attach到任何VPC中,也就是说这个VGW是独立运行的,不与任何VPC或者子网关联。每一个远程办公室都使用一个私有的BGP ASN号码来与AWS的BGP进程建立邻居关系,并且互相交换路由信息。在CloudHub的架构下,可以使三个不同的远程办公室进行互访。
创建CGW, VGW和VPN连接
具体的一些创建的流程挨踢小茶在这里就不详细描述了,如果有不明白的朋友可以翻看一下我上一篇文章,里面有详细的讲解。在东京区域的VPC内创建3个Customer Gateway (CGW),分别输入CGW的公网IP地址,以及各自的BGP ASN进程号。这里采用65000,65001和65002三个私有的ASN号码。
然后创建VGW,可以在这里看到它的状态是"detached"的,但是Cloudhub的架构也能正常运行。当然这里的VGW如果关联了任何的VPC,CloudHub也是能工作的。在这里AWS自动分配了一个公有的BGP ASN 10124。
接着创建3个不同的VPN连接,每一个条目是与不同的CGW进行的VPN连接。
接着可以根据VPN连接所指示的配置文件,对你的CGW进行详细配置(配置过程在这里也不进行详细介绍了)。
验证VPN CloudHub的连通性
当所有配置做完之后,你会在AWS Console的VPN连接状态下,看到2个Tunnel都是"UP"的状态,并且都能收到BGP路由。同时,如果登陆到位于悉尼办公室的路由器,通过"show ip bgp summary"可以看到BGP邻居已经建立成功。
登陆到悉尼办公室的CGW,用"show ip route"可以看到已经能收到来自新加坡办公室(10.2.0.0/24)以及孟买办公室(10.3.0.0/24)的路由条目了。
使用"show ip bgp nei <Neighbor IP> received-routes"和"show ip bgp nei <Neighbor IP> advertised-routes"可以看到悉尼的CGW从邻居收到了另外两个办公室的路由,并且发送给邻居自己办公室的路由。在这里,挨踢小茶做了一下路由过滤,只从BGP发布自己的局域网的路由,不发布默认路由给邻居。因为AWS给的默认配置文件,会将默认路由也发送给邻居,这种配置在多站点的情况下会出现一些路由混乱或环路。
验证3个站点的互通性
分别登陆到3个远程站点的CGW中ping另外两个站点,发现都是已经可以两两互通了!
悉尼办公室ping新加坡和孟买办公室:
新加坡办公室ping悉尼和孟买办公室:
孟买办公室ping悉尼和新加坡办公室:
总结
AWS VPN CloudHub的架构能够有效地解决多个远程办公室之间互访的问题。它的好处是部署快,成本低以及灵活性高,而且它能建立VPN Hub-and-Spoke模式而不需要建立所有站点的Full Mesh连接。但它也有不足之处,那就是所有站点之间的流量必须经过Hub站点,而不能像思科DMVPN (Dynamic Multipoint VPN) 一样能让站点与站点直接进行访问。因此如果悉尼用户要访问新加坡站点,他的所有流量必须先从悉尼绕到日本东京(Hub站点),然后再从东京去到新加坡,这样在网络延迟上会出现很大的问题。
之后挨踢小茶会总结一下思科DMVPN (Dynamic Multipoint VPN)与AWS VPN CloudHub之间的优劣,尽请期待。
文章评论
很不错,大部分都是国外的AWS应用方式,国内很多功能没有(北京,宁夏),希望楼主写一写国内的AWS实战经验,接接地气。
@putty 嗯嗯,现在苦于没有国内AWS账号,迟些会补充啦~
新年好呀,新年好呀,祝福博主新年好!