思考了很久,逗老师终于决定把这个大项目总结出来。本文介绍如何通过阿里云的云企业网(CEN)来构建一个低成本、高可靠性、高灵活性的全球互联的职场网络。
本文较长,分为三大板块,建议读者收藏后慢慢消化。
1、阿里云VBR对接线下BGP邻居实践案例
2、阿里云V PN网关对接线下V PN网关实践案例。
3、阿里云CEN落地企业办公网实践案例
笔者目前任职的企业服务于整个东南亚市场的电商和金融服务,所以日常的工作中各个东南亚国家的office之间有强烈的互访需求,如何在这些职场之间构建一个可靠的互连网络,同时又能满足公司灵活多变业务需求,做到成本低、弹性好。
目前网络整体架构如以下两张图所示,附图一是职场间的互联关系,附图二是阿里云内部的架构关系。
图一:职场间的互联关系
安全部的同学不要猜了,真实的拓扑不是这样的。
图二:本案例阿里云内部架构关系
安全部的同学不要猜了,真实的拓扑和路由信息不是这样的。
在这个案例里,职场跟阿里云之间有三种互联方式。
- 所有的国内职场通过中国联通的MPLS汇总上联到阿里云-香港的VBR,联通与阿里云对接BGP邻居关系。
- 海外某些重要职场(JKT,MY)通过一条专线上连到阿里云就近节点的VBR,与阿里云对接BGP邻居,同时使用IPSec V PN做备份连接。
- 其他小型职场,通过IPSec V PN就近的与阿里云建立GRE over IPSec隧道,逻辑上连到一台自建ECS隧道服务器。
通过不同互联方式连接到阿里云的职场再通过阿里云的云企业网(CEN)互相学习路由,打通跨国链路。实现全球职场的灵活组网和互访。
介绍完背景,下面我们就开始逐步介绍下如何构建这个全球互联的职场网络。
文章较长,各位读者可以按照目录索引查找感兴趣的部分。
一、阿里云VBR对接线下职场的落地实践
1、申请VBR专线
阿里云官方给出的指导中,您可以通过以下两种方式建立专线连接:
1) 自主申请独享接入
企业自主拉通本地数据中心到阿里云接入点的专线,该方式独占一个物理端口。您可以通过高速通道控制台自主申请物理专线独享连接,详细操作请参见创建独享专线连接。
2) 合作伙伴共享接入
合作伙伴的接入点已经与阿里云的接入点完成了对接,您只需联系阿里云的合作伙伴,合作伙伴会完成本地IDC机房到合作伙伴接入点的专线部署。该方式,运营商和阿里云之间的连接是多租户共享的,详细操作请参见共享合作伙伴专线连接。
在日常的实践中,对于企业办公网这种带宽较低,普遍不超过1Gbps的专线,直接找运营商帮你一站式搞定就可以了。你只需要想运营商提供你的阿里云账号和授权,剩下的都不用操心了。
同时,VBR专线有两种方式。一种是直连的MSTP点对点专线。另一种是目前国内三大运营商都在推广的MPLS+云的方式。第二种方式将原来的MPLS V PN与阿里云等云服务上的业务进行结合。相当于在传统的企业MPLS V PN组网中加入了一个阿里云的VBR也作为一个CE站点,这种方式从成本和灵活性上考虑,都是一个不错的选择。可以找你们的运营商客户经理具体咨询。实在不行打10010,10000,10086。
本文中国内段使用中国联通“云联网+”业务实现国内各CE站点MPLS组网的需求。
2、创建VBR边界网关路由器
边界路由器(Virtual Border Router, VBR)是本地数据中心的CPE(Customer-premises equipment)设备和VPC之间的一个路由器。边界路由器有一张路由表,通过在该路由表中配置路由条目,可以对边界路由器中的流量转发进行管理。边界路由器提供以下功能:
- 作为VPC和本地数据中心的中间路由器,交换数据包。
- 决定物理专线端口模式:三层路由接口或基于VLAN的三层子接口。
- 在三层子接口模式下,可以识别或附加VLAN (Virtual Local Area Network) 标签。
- 支持添加BGP动态路由。
创建VBR操作步骤
- 登录高速通道管理控制台。
- 在左侧导航栏,单击边界路由器(VBR) > 边界路由器(VBR)。
- 单击创建边界路由器。
- 配置边界路由器,然后单击确定。
以上参数,如果自主拉通专线,阿里云的客服会通过工单系统给出。运营商代理方式,运营商会提供或者直接会帮你创建好VBR。互联IP地址,需要用户在开局前自行合理规划好。
阿里云文档原文链接高速通道 > 边界路由器 > 创建边界路由器
3、建立BGP邻居关系
3.1、阿里云BGP使用限制
BGP的使用限制如下:
- VBR仅支持与物理专线对端的本地数据中心建立BGP邻居,VBR与VPC之间仍需使用静态路由。
- VBR支持的BGP版本为BGP4。
- 每个VBR下最多建立8个BGP邻居。
- 每个BGP邻居的动态路由条数上限为110条。
- 阿里云侧ASN(Autonomous System Number)为:
45104
,可接受用户侧传递2字节或4字节的ASN。
3.2、创建BGP组
完成以下操作,创建BGP组:
- 登录高速通道管理控制台。
- 在左侧导航栏,单击物理专线连接 > 边界路由器(VBR)。
- 选择一个地域,然后单击目标VBR的ID。
- 单击BGP组页签,然后单击创建BGP组。
- 配置BGP组。
3.3、添加BGP邻居
完成以下操作,添加BGP邻居:
- 登录高速通道管理控制台。
- 在左侧导航栏,单击物理专线连接 > 边界路由器(VBR)。
- 选择一个地域,然后单击目标VBR的ID。
- 单击BGP邻居页签,然后单击创建BGP邻居。
- 添加BGP邻居,然后单击确定。
3.4、配置线下职场路由器BGP
至此,已完成阿里云上的BGP配置,您还需要在本地CE设备配置BGP,宣告相应路由。
阿里云文档原文链接高速通道 > 边界路由器 > 配置BGP
4、发布BGP路由
在配置BGP邻居后,您需要宣告云上VPC的网段,完成BGP配置。BGP正常建立后,边界路由器会自动学习本地IDC的网段。
完成以下操作,手工宣告云上VPC的网段:
- 登录高速通道管理控制台。
- 在左侧导航栏,单击物理专线连接 > 边界路由器(VBR)。
- 选择一个地域,然后单击目标VBR的ID。
- 单击宣告BGP网段页签,然后单击宣告BGP网段。
- 输入要宣告的网段,然后单击确定。
注意1:
如果在阿里云的VBR上需要宣告缺省路由,需要单独开工单申请,约需要1个工作日。宣告缺省的条件同样需要VBR内存在从CEN学习到的缺省路由。
默认VBR禁止宣告缺省路由。
注意2:
已经加入CEN的VBR路由器,会自动想线下BGP邻居宣告CEN内的动态路由,无需手工宣告。如何加入CEN,后文会详细介绍。
5、确认BGP路由条目正确
VBR上可以正确学习线下BGP邻居的路由
线下职场路由器可以看到AS 45104始发的路由
至此,我们完成了通过专线接入阿里云的职场的路由学习和发布。但是目前路由仅能在与线下职场互联的VBR上看到,后续我们需要将这些路由发布到CEN内,通过CEN让各个VBR和其他VPC之间互相学习路由,实现互访互通。
二、阿里云V PN网关对接线下V PN的落地实践
1、建立V PN邻居关系
创建V PN网关并建立邻居关系比较简单,直接参考阿里云文档原文
建立VPC到本地数据中心的连接
2、阿里云上安装Mikrotik路由器
本文为了实现高可用的需求,每个职场都与多个阿里云的V PN网关建立了IPSec连接。因此在设计浮动路由的时候,如果使用IPSec自身的感兴趣流方式会存在很多限制。因此我们使用GRE over IPSec的方式配置路由。
在诸多尝试后,我们选定了在阿里云上安装Mikrotik路由器来构建GRE隧道。
不要小看Mikrotik,不要看不起软路由,用好了这真是个宝。
2.1、下载Mikeorik Cloud版本镜像
访问https://mikrotik.com/download
找到Cloud Hosted Router版本的镜像列表,下载Raw格式的镜像文件,版本看你心情。
2.2、使用OSS上传自定义镜像
上传自定义镜像需要开通OSS对象存储服务。
2.2.1、阿里云开通OSS对象存储服务
- 登录阿里云官网。
- 将鼠标移至产品,单击对象存储 OSS,打开 OSS 产品详情页面。在 OSS 产品详情页,单击立即开通。
- 开通服务后,在 OSS 产品详情页单击管理控制台直接进入 OSS 管理控制台界面。
- 您也可以单击位于官网首页右上方菜单栏的控制台,进入阿里云管理控制台首页,然后单击左侧的对象存储 OSS 菜单进入 OSS 管理控制台界面。
原文链接开通OSS服务
2.2.2、创建存储空间(Bucket)
- 登录OSS管理控制台。
- 单击Bucket列表,然后单击创建Bucket。
- 您也可以单击概览,然后单击右上角的创建Bucket。
- 在创建Bucket面板,按如下说明配置必要参数。其他参数均可保持默认配置,也可以在Bucket创建完成后单独配置。
原文链接原文链接创建存储空间
2.2.3、上传自定义镜像
- 登录OSS管理控制台。
- 单击左侧导航栏的Bucket列表,然后单击目标Bucket名称。
- 单击左侧导航栏的文件管理,然后单击上传文件。
- 在上传文件面板,按如下说明配置各项参数。
原文链接上传文件
2.3、使用自定义镜像创建ECS虚拟机
2.3.1、导入自定义镜像
完成以下操作,将自定义镜像文件从OSS导入阿里云ECS。
- 登录ECS管理控制台。
- 在左侧导航栏,单击实例与镜像 > 镜像。
- 在顶部菜单栏左上角处,选择地域。
- 授权ECS服务访问您的OSS资源。
- 在镜像页面右上角,单击导入镜像。
- 在导入镜像对话框里,单击提示信息第3步中的确认地址。
- 在云资源访问授权页面,查看到AliyunECSImageImportDefaultRole和AliyunECSExportDefaultRole,单击同意授权。
- 导入自定义镜像。
- 在镜像页面右上角,再次单击导入镜像。
- 在导入镜像对话框里,完成设置。
原文链接导入自定义镜像
导入后可以看到镜像列表已经出现新生成的镜像,在创建ECS实例的时候可以选择使用此自定义镜像。
2.3.2、基于自定义镜像创建虚拟机
如往常一样创建虚拟机,只不过虚拟机镜像我们选择自定义镜像,并且选择我们刚刚上传的Mikrotik镜像。
然后,运行该虚拟机。现在,我们已经成功在阿里云上运行起一台Mikrotik路由器。
3、建立GRE over IPSec隧道
使用Mikrotik建立GRE隧道很简单,web页面或者CLI命令行都可以,不会的自己百度吧。
4、基于GRE隧道配置路由
阿里云端配置线下职场的网段路由,下一跳为GRE隧道接口
线下职场配置10.0.0.0/8,172.16.0.0.0/12,192.168.0.0/16大段路由,下一跳指向阿里云。
然后,我们在VPC内添加一条指向我们这台Mikrotik GRE Tunnel服务器的静态路由。
至此,我们完成了通过V PN隧道入阿里云的职场的路由学习和发布。但是目前路由仅能在GRE隧道服务器所在的VPC内看到,后续我们需要将这些路由发布到CEN内,通过CEN让各个VBR和其他VPC之间互相学习路由,实现互访互通。
三、阿里云CEN在企业网络中的落地实践
1、阿里云云企业网(CEN)介绍
云企业网(Cloud Enterprise Network)是承载在阿里云提供的高性能、低延迟的私有全球网络上的一张高可用网络。下文使用缩写“CEN”来指代“云企业网”。
云企业网可帮助您在不同地域VPC间,VPC与本地数据中心间搭建私网通信通道,通过自动路由分发及学习
,提高网络的快速收敛和跨网络通信的质量和安全性,实现全网资源的互通,帮助您打造一张具有企业级规模和通信能力的互联网络。
说简单点,就是阿里云内跨region的SDN网络。
云企业网有以下组成部分:
-
云企业网实例
云企业网实例是创建、管理一体化网络的基础资源。
创建云企业网实例后,将需要互通的网络实例加载到云企业网实例中,再购买带宽包,设置跨地域互通带宽,便可实现全球网络资源互通。
-
网络实例
加载到云企业网中的网络实例全互联,网络实例包含专有网络(VPC)、边界路由器(VBR)和云连接网(CCN)。
-
带宽包
同地域之间网络实例互通,无需购买带宽包。
跨地域之间网络实例互通,必须为要互通的地域所属的区域购买带宽包。
区域是阿里云地域的集合,每个区域包含一个或多个阿里云地域。互通区域请以控制台为准。
2、创建CEN实例、绑定VPC、VBR实例资源
在使用云企业网进行私网互通前,您需要先创建一个云企业网实例。在创建云企业网实例时,您可以直接加载同账号下的网络实例。
2.1、创建CEN实例操作步骤
- 登录云企业网管理控制台。
- 在云企业网实例页面,单击创建云企业网实例。
- 在创建云企业网实例页面,根据以下信息配置云企业网实例,然后单击确定。
创建完成后我们需要将刚才用到的VPC、VBR等实例绑定到CEN内。
这一步随时可以操作,以及后续有新增的VPC和VBR的时候,也可以弹性加入。
2.2、专有网络(VPC)快速加入云企业网
- 登录专有网络管理控制台。
- 选择专有网络的地域。
- 在专有网络页面,找到目标专有网络,单击操作列下管理。
- 在专有网络详情页面,单击加入云企业网。
- 在加入云企业网对话框,选择云企业网实例,然后单击确定。
2.3、边界路由器(VBR)快速加入云企业网
- 登录高速通道管理控制台。
- 在左侧导航栏,单击边界路由器(VBR) > 边界路由器(VBR)。
- 选择边界路由器的地域。
- 在边界路由器(VBR)页面,单击目标边界路由器的ID。
- 在基本信息区域,单击加入云企业网。
- 在加入云企业网页面,选择云企业网实例,然后单击确定。
完成后,CEN内可以看到已经加载的VPC和VBR实例
VPC和VBR内也可以看到自己所加入的CEN信息
2.4、跨账号网络实例授权
CEN允许跨账号加载实例,这点会让具备多个阿里云账号的企业在组网时变得更加灵活。
在加载其他账号的网络实例前,需要对方账号的网络实例进行授权。
前提条件
- 在操作跨账号网络实例授权前,您需要向目标授权账号所有者获取以下信息:
- 云企业网实例所属账号ID。
- 云企业网实例ID。
VPC授权
本示例以A账号下的专有网络(VPC)向B账号下的云企业网实例授权为例,介绍VPC授权过程。授权成功后,B账号云企业网实例可以加载A账号下的VPC。
- 使用A账号登录专有网络管理控制台。
- 在顶部状态栏处,选择目标VPC实例的地域。
- 在专有网络页面,找到目标VPC,单击操作列下管理。
- 在云企业网跨账号授权信息区域,单击云企业网跨账号授权。
- 在加入云企业网对话框,输入B账号UID和B账号云企业网实例ID,然后单击确定。
- 记录A账号的VPC ID和所属账号ID(可在账号管理页面查看账号ID)。
VBR授权
注意
自2019年11月1日起,云企业网服务中的跨账号加载VBR功能默认不开放,如有需求,请提交工单。本文就暂且不详细介绍如何跨账号授权VBR接入了。
3、CEN动态学习VPC、VBR路由
CEN我们可以认为是一个逻辑上中央互联的星型拓扑,但实际上是一个分布式部署的SDN网络。既然逻辑上是一个星型拓扑,那么作为中央互联的CEN需要学习VPC、VBR的各个网段路由。
下表列举了可以发布到云企业网中的路由条目。
路由条目类型 | 路由条目所属实例 | 是否默认发布到CEN |
---|---|---|
指向ECS实例的路由条目(本例中V PN接入的职场路由) | VPC | 否 |
指向V PN网关的路由条目 | VPC | 否 |
指向高可用虚拟IP的路由条目 | VPC | 否 |
VPC系统路由 | VPC | 是 |
指向IDC的路由条目 | VBR | 是 |
BGP路由(本例中通过专线接入的职场的路由) | VBR | 是 |
如下图所示,CEN中加载了4个VPC实例。其中杭州地域的VPC配置了一个V PN网关,连接本地IDC。当您把VPC中指向V PN网关的路由条目发布到CEN后,其他三个VPC会学习到该条路由,也可以和连接的本地IDC通信。
操作步骤
- 登录云企业网管理控制台。
- 在云企业网实例页面,找到目标云企业网实例,单击操作列下的管理。
- 在云企业网页面,单击网络实例管理页签,然后单击目标VPC的ID。
- 在专有网络详情页面,单击路由表的链接。
- 在路由表页面,找到目标路由表,然后单击操作列下的管理。
- 在路由条目列表页签,找到目标路由条目,然后单击CEN中状态列下的发布。
- 在发布路由对话框,单击确定。
成功发布路由到CEN之后,我们从两个地方都可以看到CEN内的动态路由。
如果在VPC上存在出、入方向的路由策略,如果我们可以通过核查路由表,确认中央的CEN和其他的VPC是否能正确学习路由。
一、VPC内的路由表
二、CEN内的路由表
4、购买跨地域互通带宽包
CEN本身是免费的,CEN如果不跨地域,通信也是免费的。
但如果CEN内的VPC和VBR在不同的国家和地区,就需要购买跨地域互通的带宽包。这里强调几点。
- CEN跨地域带宽包的价格比传统运营商跨国专线价格具有非常大的竞争力。
- CEN是共享阿里云全球SDN带宽,QoS和SLA有保证,但并不是独占打带宽。
- 不买CEN带宽包也可以测试本文的所有功能,ping流量不受跨地域带宽包限制。
5、实践落地、发布各个职场的网段到CEN
说完了理论,我们来看看这次的实践落地。
在我们的这个案例里面,我们可以看到职场跟阿里云之间有三种互联方式。
- 所有的国内职场通过中国联通的MPLS汇总上联到阿里云-香港的VBR,联通与阿里云对接BGP邻居
- 海外某些重要职场(JKT,MY)通过一条专线上连到阿里云就近节点的VBR,与阿里云对接BGP邻居。
- 其他小型职场,通过IPSec V PN就近的与阿里云建立GRE over IPSec隧道,逻辑上连到一台自建ECS隧道服务器。
针对上述三种情况,我们需要在阿里云上将线下职场的路由分别指向对应的VBR和ESC。这两种路由对应在阿里云内的类型分别是
- VBR内通过BGP学习的路由
- VPC内指向ECS实例的路由
4.1、发布VBR通过BGP学习的线下职场路由
具体如何创建VBR以及如何申请阿里云实体专线,在前文已经详细介绍。
根据前文的指引,我们已经创建立完成VBR路由器以及与线下职场对接的BGP邻居,现在已经可以在VBR内看到线下职场通过BGP传递的动态路由。
VBR内的BGP路由条目
现在,我们将VBR中的路由发布到CEN中去。
CEN内加载VBR路由器实例
选中前文新建的VBR示例,加载到CEN内
加载成功
检查CEN内路由
在CEN内应该能正常看到这个VBR实例的路由。
检查其他VPC内的路由
在新加坡的VPC内可以看到香港VBR上的路由条目。并且下一跳正确指向香港VBR路由器。
4.2、发布VPC内创建的指向ECS实例的路由
在VPC内找到需要发布到CEN的路由,在这条路由上,点击“发布”按钮,将路由发布到CEN实例中。就这么简单。
检查其他VPC内的路由
在新加坡的VPC内可以看到刚刚创建的静态路由。并且下一跳正确指向香港的VPC实例。
4.3、跨地域的浮动静态路由
为了高可靠性,在使用V PN接入的职场中,我们在两个不同地域的VPC中与同一个职场建立了V PN连接。
此时在两个不同地域的VPC中,我们需要宣告两条目的地址相同的静态路由。这两条静态路由在CEN中会出现冲突。此时我们需要通过CEN的路由策略来调整两条静态路由的优先级,实现浮动路由。
例如上图中,HCM-Office分别于香港和新加坡都建立了V PN连接,正常情况下我们希望主走香港,备份走新加坡。此时需要在新加坡地域调整这条静态路由的优先级。
1、SGD IN方向Deny从其他地域学习的10.153.0.0/20路由
2、SGD OUT方向将10.153.0.0/20的路由优先级调整为75(默认50,越小越好)
此时,其他地域正常看10.153.0.0/20的路由是优选香港地域发布的,当香港地域不再发布此路由的时候,新加坡发布的优先级为75的路由浮动出现。
6、验证全网可达
此时,我们路由层面已经配置完毕。现在我们验证一下跨国的职场能不能互通。
我们选一个最远的,从北京ping一下印尼的职场。
嗯不错,印尼延迟90ms,越南延迟70-80ms,这个延迟就很优秀了。
traceroute信息可以看到,途径中国联通MPLS-阿里云VBR-印尼雅加达GRE隧道-最终到达印尼职场网关。
四、跨境线路相关问题
1、跨境线路选择
本案例中,中国联通和阿里云与都可以提供跨境段的线路选择。
方案一、联通MPLS接阿里云深圳节点,购买阿里云深圳-香港的CEN带宽包。
方案二、直接由中国联通上连到阿里云香港节点。
这是2019年的项目,作者当初做了一个成本对比。
嗯没有错,这个方案赤裸裸的成本就在这里。作者当初跟中国联通和阿里云谈完之后,技术条件都可以满足需求,基于成本考虑,最后选择的是让中国联通承担跨境段的传输。
2、跨境公网访问需求
受限于大陆地区法规,你们懂得。
但是这个例子里面,我们很明显可以做到让大陆的office直接访问google等应用。原理很简单,我们在香港和印尼的阿里云VPC内部署一台用于SNAT的Mikrotik路由器,然后使用阿里云的公网出口访问公网即可。
这里关于SNAT的配置就不细说了,主要需要关注以下几点。
- 阿里云VBR默认不能发缺省路由,如果通过VBR向BGP邻居宣告缺省,需要提交工单受理。
- 香港到印尼的公网质量很差,如果从香港出口直接访问印尼境内公网资源体验稍差。本案例中在香港和雅加达的两个SNAT出口之间有一条隧道,通过抓取APNIC上归属地是印尼的公网段,将印尼公网资源指向到印尼SNAT出口。从而将从中国大陆访问印尼政府、电商等网站的延迟控制在300ms左右。
- 做好行为审计,做好日志保留,你们懂得。
- 合法、合规,你们懂得。
五、畅谈一下公有云
以上,就是整个阿里云CEN构建全球互联的职场网络的概述。本文很难做到保姆式教程,更多的是提供给各位读者一个思路。
现在云计算这个事情天天被挂载嘴边。但是云计算不仅是对计算和存储提供了云话的解决方案。对网络和基础架构的演进也提供了很多新奇的思路。除了阿里云,AWS、GCP也都提供了类似的解决方案。各位网工同学感兴趣的话,可以多考虑如何使用公有云的网络架构来解决你所在企业的实际问题。
本文应该是目前为数不多的将传统运营商MPLS组网和云厂商的SDN组网进行结合的案例,阿里和联通的兄弟们,如果感兴趣的话我们可以细聊。希望这套方案可以扩散给更多需要的企业,来解决他们的实际问题。