基于流量汇聚的同城双活数据中心纵向防火墙设计与分析
2019-01-15颜承林
颜承林
(中国人民银行北海市中心支行,北海 536000)
1 当前同城双活数据中心基本情况
目前某省银行已建成同城通信转接中心,并通过“VRRP+裸纤+波分设备”打通与原来省级数据中心的二层网络,极大地提高了该银行省级网络的安全性和可靠性,并为下一步实施服务器虚拟化工作奠定了坚实的基础。
纵向防火墙是指部署在该银行省级数据中心下联路由器与核心交换机之间的安全设备。纵向防火墙的主要作用是防止下联分支机构非授权访问或恶意攻击省级数据中心的服务器。
2 存在的问题
本次部署的省级同城双活数据中心纵向防火墙是基于状态检测技术的防火墙。基于状态检测技术的防火墙比传统的基于包过滤规则的防火墙具有更好的安全性和灵活性。基于包过滤规则的防火墙是通过监测IP报文的相关信息符合度来允许或拒绝数据包通过的,无法对通过防火墙的网络报文进行细粒度的控制,无法防范恶意攻击也不支持应用层协议,无法很好的保证内部网络的安全。基于状态检测技术的防火墙是采用基于连接的检测机制,将同一连接的所有数据包看作一个整体的数据流。它会对对数据流的第一个报文进行完整的状态检测,并通过建立会话表来记录报文的源IP和端口、目的IP和端口、网络协议等。这个数据流的后续报文只有匹配会话表中的信息才能通过防火墙完成报文转发,如果不匹配则被防火墙直接丢弃。
在两数据中心部署基于状态检测防火墙后,我们发现当部分下联分支机构通过转接中心访问数据中心服务器时,会出现业务不通现象。
3 问题分析
通过“VRRP+裸纤+波分设备”打通数据中心和转接中心核心交换机的二层网络后,实现了两数据中心二层VLAN网关双活。但由于数据中心核心交换机VLAN网关VRRP优先级别较高,当下联分支机构通过转接中心访问数据中心服务器的数据包到达转接中心下联路由器时,会出现数据包来回路径跨越两数据中心,即来回路径不一样的现象。
该数据包来时经过网络设备路径为:广域网线路→转接中心下联路由器→转接中心核心交换机→数据中心核心交换机。该数据包回时经过网络设备路径为:数据中心核心交换机→数据中心下联路由器→广域网线路。数据包来回路径跨越两数据中心示意图如下。
根据基于状态检测技术的防火墙对报文的链路状态进行合法性检查,丢弃链路状态不合法的报文的技术特性,当回时数据包经过数据中心纵向防火墙时,会因为可能只收到通信过程的后续报文而没有收到首包而将报文丢弃,从而导致业务不通。
4 问题解决思路
目前业内主要有两种解决思路:一种是通过变更网络组网方式来保证数据包来回路径的一致性,另一种是将两数据中心的所有纵向防火墙进行集群,将同一流量往返程汇聚到同一台防火墙上处理。
针对第一种解决思路,需要变更双数据中心之间组成大二层网络的网络架构,这与当前需求相悖,因为大二层网络架构是为解决数据中心服务器虚拟化后虚拟机动态迁移的需求而出现的。这种解决思路没有很好的处理安全与应用之间的关系,在当前省级数据中心虚拟机动态迁移业务应用大需求的前提下,不具有可操作性。
第二种解决思路是集群成员之间共享数据流会话状态表,以保证首包及后续包往返程均通过同一组防火墙处理,即将同一流量往返程汇聚到同一台防火墙上处理。下面通过实例进行说明。
下面以上图所示为例,介绍client1向server1发送TCP业务数据流的过程。
(1)建立通道将两数据中心的纵向防火墙组建成集群防火墙,集群成员之间建立机制,实时同步数据流会话状态表。
(2)client2向server1发送TCP报文。
(3)转接中心防火墙收到流量,根据会话状态表判断是否存在会话,如果不存在则认为是首包,如果存在则认为是后续包。
(4)如果是首包,转接中心防火墙将TCP业务数据流进行标记并更新集群数据流会话状态表,会话状态表实时同步至数据中心防火墙。
(5)更新并同步集群数据流会话状态表后,转接中心防火墙将数据流转发到转接中心核心交换机,再到数据中心核心交换机,最终到达server1。
(6)由于数据中心核心交换机VLAN网关VRRP优先级别较高,从server1回程的数据流经过数据中心核心交换机到达数据中心防火墙。
(7)数据中心防火墙根据数据流会话状态表检测到该数据流标记为转接中心防火墙,直接将该回程数据流转给转接中心防火墙处理。
(8)如果是后续包,转接中心防火墙进行标记并对数据包进行处理,先是转发到转接中心核心交换机,再到数据中心核心交换机,最终到达server1。
(9)同样的,由于数据中心核心交换机VLAN网关VRRP优先级别较高,从server1回程的数据流经过数据中心核心交换机到达数据中心防火墙。数据中心防火墙根据数据流会话状态表检测到该数据流标记为转接中心防火墙,直接将该回程数据流转给转接中心防火墙处理。
在第二种解决方案中,通过在防火墙上对数据包进行标识,并及时在集群中更新和同步数据流会话状态表,以保证返程数据流能够识别出处理来程数据流的防火墙,并交由同一防火墙处理,从而实现数据包往返都经过同一防火墙。这种处理方式彻底解决了基于状态检测技术的防火墙在已打通大二层的同城双活数据中心中数据流因往返过程跨中心跨不同防火墙而导致业务不通的问题。在这种方案中,只需对防火墙的操作系统进行必要的升级改造,无需改变原有网络架构,是目前同城双活数据中心部署纵向防火墙的最佳实践。