1. 概述
1.1 方案介绍
在公有云出现之前,传统企业都会在数据中心部署大量的服务器、交换机、路由器等设备进行物理组网来支持其企业的内部的应用系统以及对外提供的业务系统。越来越多的企业选择拥抱公有云实现CAPEX向OPEX的转换,如何在公有云上搭建一套企业级安全的网络,成为了目前传统企业上云面临的核心问题。在传统数据中心网络中的安全,一般的做法都是部署大量的安全设备组建一个安全域来实现企业系统的安全防护和访问控制,网络流量需要按照业务逻辑和安全防护等级穿过安全域内的不同设备,这就是所谓的服务链(Service Chain)。随着SDN及网络虚拟化的不断推进,服务链逐渐变得更加重要,服务链场景下主要有南北向流量(访问internet/被internet用户访问)和东西向流量(企业内部系统互访)组成。客户在公有云上部署应用的时候也会延续相同的安全策略,VPC到VPC的流量,VPC和本地IDC以及VPC与internet之间流量都希望能够实现统一的安全控制。在实现了客户云上VPC之间的东西向流量安全管控基础上,一般客户还会要求统一云上的公网出口,原因主要是安全的管控策略以及统一出口运维管理等。目前我们看到的基本上从IDC搬站的用户倾向于这种设计,就像客户在线下IDC部署时会有单独的DMZ区域作为出口。
1.2 目标读者
跨国企业、大型集团公司网络架构师及运维人员
1.3 适用场景
跨国企业/大型集团公司云上组网
从IDC/AWS/Azure/GCP搬站的大型企业客户云上组网
1.4 相关概念
服务链:网络流量按照业务逻辑所要求的既定的顺序,经过这些业务点(主要指安全设备如防火墙、负载均衡、第三方安全设备等)的形式称之为服务链(Service Chain)。服务链可以理解为一种业务形式。
CEN-TR:指阿里云产品云企业网企业版
2. 方案架构
2.1 方案架构图
两个生产VPC由于业务相对独立,默认不直接访问,而是通过绕行防火墙所在VPC进行流量的审计后方可通信,例如仅允许部分数据同步的业务进行互通等。同时两个生产VPC如果需要访问公网(例如),也需要通过防火墙的检测后统一的出口NAT网关访问公网,例如访问一些公网服务或更新等。这里防火墙+NAT网关的设计是兼顾安全和跨可用区级高可用的,我们用一张表格来说明:
详细架构设计(含业务网段)见操作步骤
2.2 方案优势
安全可控:帮助企业实现云上内网东西向流量的安全审计,对流量进行规则过滤、流量清洗和威胁监控等动作。云上DMZ-VPC设计,对于企业/集团内的公网出入访问有严格的访问策略加以控制,同时具备可监管能力。
成本优化:所有公网IP需具备共享一份或多份带宽的能力,提升带宽利用率,满足业务诉求的情况下做到成本最优方案。
权限管理:由于组织架构&智能原因,在安全部门的要求下,IT/Infrastructure团队需要统一管控公网准入/出权限,各业务方需向IT申请才能开通公网访问权限。
2.3 产品/模块1介绍-云企业网企业版 CEN-TR
云企业网CEN(Cloud Enterprise Network)是承载在阿里云提供的高性能、低延迟的私有全球网络上的一张高可用网络。云企业网产品介绍
云企业网有以下组成部分:
1.云企业网实例:云企业网实例是创建、管理一体化网络的基础资源。一个云企业网实例创建、管理一张网络,可覆盖一个或多个地域。创建云企业网实例后,将需要互通的网络实例连接到云企业网实例中,再购买带宽包,设置跨地域带宽,便可实现全球网络资源互通。
2.转发路由器实例:转发路由器TR(Transit Router)是云企业网的核心组件。一个云企业网实例会在每个地域创建一个转发路由器实例,一个转发路由器实例代表一台转发路由器。云企业网通过转发路由器连接当前地域的网络实例,作为与同地域或跨地域网络实例互通的桥梁。转发路由器也是各个地域内路由表、路由策略、跨地域连接等功能的载体,通过转发路由器您可以灵活的定义流量互通、隔离、引流策略,满足您多样化的组网和网络管理需求。转发路由器主要包含以下两个组成部分:
转发路由器连接:转发路由器连接是转发路由器与周边网络连接的实体,包含VPC网络实例连接、边界路由器VBR(Virtual Border Router)网络实例连接、云连接网CCN(Cloud Connect Network)网络实例连接和跨地域连接。
转发路由器路由表:云企业网已经连接的网络实例通过查询该地域下转发路由器路由表进行流量转发。转发路由器包含一张默认路由表,支持创建自定义路由表并支持定义灵活的互通、隔离、引流策略,满足您多样化的组网需求。
3.带宽包:同地域之间网络实例互通,无需购买带宽包。跨地域之间网络实例互通,必须为要互通的地域所属的区域购买带宽包并设置跨地域互通带宽。区域是阿里云地域的集合,每个区域包含一个或多个阿里云地域。互通区域请以控制台为准。
3. 方案实施
3.1 前提条件
已注册阿里云账号
开通云企业网企业版
3.2 操作步骤
以下是详细的网络架构设计:
产品VPC1为172.16.0.0/24网段,产品VPC2为172.16.10.0/24网段,两个VPC间互访以及访问internet的流量需要经过安全VPC内的防火墙进行过滤,所以这两个产品VPC的所有出流量都通过默认路由指向对应的TR-attach(rjxo和3qeo)。
NAT网关绑定两个不同的EIP,一个用于SNAT出公网访问,一个用户DNAT远程管理防火墙。
安全DMZ VPC开启增强子网路由功能(目前需要后台手工白名单),默认情况下VPC的自定义路由表需要匹配源IP必须是来自于本VPC的,对于服务链场景来说源地址是来自于非本VPC的,如果不开启增长子网路由功能,流量到达防火墙后无法出VPC。
安全DMZ VPC中设计三张路由表:
系统路由表负责出公网访问,绑定防火墙公网出口port1所在的vswitch,在创建NAT网关之后会默认生成一条0.0.0.0/0路由指向NAT网关;
自定义路由表1 负责东西向流量回注流量,绑定防火墙port2 所在的vswitch并设置下一跳至安全VPC的TR-attach;
自定义路由表2 绑定TR-attach时创建的两个landing-vswitch,默认路由指向防火墙的port2引流到防火墙进行过滤。
在TR上设置两张路由表:可信路由表和不可用路由表,可信路由表关联安全VPC-attach(lzjs),不可信路由表关联两个产品VPC-attach(rjxo和3qeo)。流量经过对应的TR-attach到达TR后会查看关联的不同路由表,实现路由的转发。
步骤一:创建VPC、vSwitch、ECS等基础资源
需要在创建时注意以下几个问题:
Prod-VPC1、Prod-VPC2:建议在TR组网的场景下,每个VPC规划两个单独的/29网段作为TR-attach的landingvswitch,这样做的好处是将可以将业务流量和TR-attach的流量进行分隔,并且不占用业务VPC网段(比如业务部门需要一整个C段IP地址)。当然简单场景下可以使用业务vswitch网段,但需要牺牲2个/29网段共计8个IP地址。
安全DMZ VPC:需要开启增强子网路由功能。同时注意在创建防火墙时一般的做法(本例使用第三方防火墙VM):防火墙ECS需要增加一块辅助弹性网卡,主网卡和辅助网卡分别位于两个不同的vswitch,对应防火墙的port1和port2,一般port1为出公网接口,port2作为东西向流量管理接口。
步骤二:创建NAT网关作为统一云上公网出口
NAT网关绑定两个不同的EIP,一个用于SNAT出公网访问,一个用户DNAT远程管理防火墙。
SNAT表:
DNAT表:
设置完成后就可以通过DNAT中的EIP实现远程管理防火墙了。
步骤三:创建CEN-TR实例,配置CEN 路由表
创建CEN实例并创建一个转发路由器(Transit Router):
进入转发路由器界面,创建网络实例链接(TR-attach):
这里可以看到目前TR支持关联VPC、VBR、CCN以及跨地域的TR等不同等连接类型,这里需要注意一下在TR支持的可用区需要关联两个交换机:
创建网络实例连接,产品VPC1和VPC2、安全VPC的TR连接(TR-attach):
创建TR的不可信路由表,在路由条目中创建一条默认路由,下一跳指向安全VPC的attach(lzjs),在关联转发中关联两个产品VPC1和VPC2分别对应的attach(rjxo和3qeo)。我们建议将系统路由表都设定为不可信路由表,否则当存在跨地域的服务链场景时,跨地域流量通过两个TR间的attach会匹配TR默认路由表的规则转发。
创建可信路由表,在路由条目中创建指向产品VPC1网段(172.16.0.0/24)下一跳为VPC1-attach(rjxo),指向VPC2网段(172.16.10.0/24)下一跳为VPC2-attach(3qeo);并关联安全VPC-attach(lzjs):
步骤四:配置VPC路由表
在产品VPC1和VPC2分别添加默认路由指向下一跳是对应的TR-attach(rjxo和3qeo):
安全DMZ VPC中设计三张路由表:
系统路由表负责出公网访问,绑定防火墙公网出口port1所在的vswitch,在创建NAT网关之后会默认生成一条0.0.0.0/0路由指向NAT网关;
自定义路由表1 负责东西向流量回注流量,绑定防火墙port2 所在的vswitch并设置下一跳至安全VPC的TR-attach;
自定义路由表2 绑定TR-attach时创建的两个landing-vswitch,默认路由指向防火墙的port2引流到防火墙进行过滤。
系统路由表(绑定防火墙公网出口port1所在vswitch):
自定义路由表1(绑定防火墙东西向管理口port2所在vswitch):
自定义路由表2(绑定两个TR-Landing所在vswitch):
步骤五:配置防火墙
结合第三方防火墙(Fortigate)实现的,配置如下:
设置Port1和Port2
防火墙基本配置,防火墙的port1需要开启NAT功能,port2需要关闭Retrievedefault gateway from server。
防火墙路由配置:
防火墙规则配置:
4. 方案验证
东西向流量:
在产品VPC1中的ECS 172.16.0.79 ping 产品VPC2中的ECS 172.16.10.43,可以ping通,在防火墙上也可以抓到对应的包。流量路径是VPC1----TR----安全VPC-----TR-----VPC2,保证了两个产品VPC互访的安全需求。
南北向流量:
在产品VPC2中的ECS 172.16.10.43 ping 8.8.8.8,可以ping通,在防火墙上也可以抓到对应的包。流量路径是VPC2----TR----安全VPC-----NAT网关-----Internet(8.8.8.8)。
5. 常见问题
如果出现ping不通的情况:首先确认ECS安全组是否开放。
如果客户的需求是DMZ VPC与安全VPC分开:可以在现有架构的基础上拆分,TR的不可信路由表里写私网的明细路由,默认路由指向DMZ VPC。