基于链路非对称网闸的双机热备系统研究及实现

苗云龙 陆彦辉 左明阳 杨旭东
关键词: 网闸研究; 网络隔离; 协议开发; 双机热备; 高可用方案; 状态切换
中图分类号: TN915.08?34; TP309 ? ? ? ? ? ? ? ? ? ?文献标识码: A ? ? ? ? ? ? ? ? 文章编号: 1004?373X(2019)03?0073?05
Abstract: Netgap acts as the bridge to connect the networks with different security levels, and the hot standby technology provides a reliable guarantee to solve the single point of failures (SPOFs) of netgap. According to virtual router redundancy protocol (VRRP) 1.0, the hot standby protocol of link symmetric netgap is improved, and a hot standby application protocol of link asymmetric netgap is developed, which can solve the problem that the link cross switchover of high availability scheme based on netgap is easily locked, and improve the convergence speed and switchover performance of the link. The proposed scheme has great practical value and guiding significance for the research and design of netgap high availability scheme.
Keywords: netgap research; network isolation; protocol development; hot standby; high availability scheme; status switching0 ?引 ?言
安全隔離网闸简称网闸(Netgap),是一种用物理隔离的方式将不同安全等级的网络隔离开,并进行数据安全交换的网络设备[1]。网闸为数据在不同安全等级网传输提供了安全保障。随着互联网经济的快速发展,信息化是当今世界发展的一大趋势。在此环境下,信息的保密性、完整性和可用性对保持竞争优势至关重要。网闸为不同等级网络之间提供数据交换和链接的通道,其负载能力和可靠性是网闸应用中衡量网闸系统质量的两个关键指标。网闸设备发生单点故障(Single Points of Failures,SPOFs)将对整个网络的可靠性、业务的连续性造成很大影响,甚至导致整个网络瘫痪。并且从单点故障中完全恢复往往需要很长时间,这对信息化时代的很多业务来说都是不可忍受的。因此,研究如何提高网闸的负载能力和可靠性具有非常重要的意义。由于物理隔离网闸具有“单设备双系统”的特性,目前双机热备系统中广泛采用的基于VRRP(Virtual Router Redundancy Protocol)的“单系统”高可用(High Availability)方案并不能完全适用于网闸,开发适用于网闸设备的双机热备系统成为当前网络安全领域的迫切需求。文献[2]利用热备份路由器协议(Hot Standby Router Protocol,HSRP)和虚拟路由器冗余协议(Virtual Router Redundancy Protocol,VRRP)设计了基于网闸的热备协议(GAP?VRRP),实现对网闸的热备功能。但其所提方案只是在网闸内网一端实现了热备,网闸内外端处理器间通过心跳相互监测,网闸外端机之间并未做任何处理,这样的设计存在明显不足:当主备网闸内网端之间心跳线出现故障时,将会导致“双主”现象,很容易导致系统崩溃。文献[3]对文献[2]所提方案进行了改进,增加了主备网闸间外端机间的心跳监测,网闸内外端机和主备网闸内外端机间都通过心跳协议进行检测,此设计同样存在系统缺陷:由于改进后的系统结构完全对称,容易在链路交叉切换时出现锁死现象。文献[4]以Linux系统为平台,以高可用性为目的设计了一种基于Linux的双机热备系统架构,并对外提供接口,提高了双机热备的可扩展性。针对文献[2?3]出现的问题,本文在基于VRRP 1.0协议[3]和原链路完全对称网闸双机热备系统结构的基础上设计并开发了一种链路非对称结构的网闸双机热备系统。通过同网端网闸间VRRP协议进行心跳监测,而网闸内外处理器间用TCP协议协商机制来代替VRRP协议心跳监测机制以确保网闸的主备机切换,有效解决了在链路交叉切换时易锁死的情况。除此之外,此系统设计还具有链路收敛速度快、多线程并行处理程序结构简单等优点。同时,在系统配置页面添加了可自主设置的HAID(网闸组ID)和备机异常故障警告功能,提高了热备组的安全性和可靠性。改进后的网闸结构及双机热备系统拓扑图如图1所示。1 ?网闸双机热备系统的设计与实现
1.1 ?网闸双机热备的硬件介绍
网闸具有“单设备双系统”的特性,系统采用“2+1”模块结构设计,即双主机系统+隔离硬件,确保工作安全可靠。采用两套独立的高性能处理系统分别作为内端机和外端机,内端机处理内网信息,外端机处理外网信息,内端机和外端机之间采用DTP物理隔离通道控制系统阻断网络间的通路[5?6];利用私有控制逻辑和专用通信协议完全控制数据的实时交换;利用专用安全操作系统及嵌入式程序控制确保系统本身免受攻击。从而有效地保障高安全等级网络的安全正常运行。
1.2 ?链路非对称网闸双机热备系统主程序流程设计
目前提高系统可用性的主要方案是通过系统级冗余,即高可用集群(Cluster)来实现。双机热备是目前企业防止核心计算机系统因故障停机的最有效手段之一[7?9],其工作原理即是通常所说的主/备(Master/Backup)机方式,当Master服务器出现故障时,通过软件故障检测或人工方式将Backup服务器激活,从而保证应用在短时间内完全恢复正常。软件故障检测通过使用心跳检测的方法进行,即采用定时发送数据包。如果主机在规定的时间内未做响应,就被认为是发生故障,自动切换至备机,备机自动切换为主机状态[10]。链路非对称双机热备系统主程序流程图如图2所示。由图2可知,双机热备系统进程下共有4个独立线程,分别为:VRRP发送线程、VRRP接收线程、Peer_to_Peer接收线程、设备状态监测线程。4个独立线程分别完成相应的工作。同时,该双机热备系统还配备抢占模式和非抢占模式,抢占模式严格按优先级级别,优先级高的抢占为主机;非抢占模式下,主机不再受优先级别影响,只有在发生故障时才会转为备机状态。因此,本设计除了系统主程序进行初始化判定主备状态外,系统还对两个运行状态流程进行设计,即主机状态切换流程和备机状态切换流程。
1.3 ?链路非对称网闸双机热备系统主机状态切换流程设计
双机热备系统主要通过虚拟IP技术[8]实现主/备状态间切换,并通過VRRP协议实现热备组的心跳监测。虚拟IP是一个未分配给真实主机的IP,即对外提供数据库服务器的主机除了有一个真实IP外还有一个虚拟IP,使用这两个IP中的任意一个都可以连接到这台主机,当服务器发生故障无法对外提供服务时,动态可将这个虚拟IP切换到备用主机[9]。当网闸在主程序流程图2中初始判定为主机状态时,主机状态将会继续监测各子线程的变化,随时准备进行主/备机的切换。链路非对称双机热备系统主机状态程序流程如图3所示。1.4 ?链路非对称网闸双机热备系统备机状态切换流程设计
综上所述,当网闸在主程序流程图2中初始判定为备机状态时,备机状态也将会继续监测各子线程的变化,随时准备主/备机的切换。备机状态程序流程如图4所示。
根据图3和图4链路非对称结构主/备机切换的特点可知,链路非对称结构网闸双机热备系统及数据处理方法主要通过同网端网闸间VRRP协议心跳包监测和网闸内外处理器间TCP协议双重协商机制来确保网闸的主/备机切换,而不是现有完全对称结构技术中所采用的通过心跳线简单监测网闸内外端机的状态和主备网闸间处理机状态。从而克服了网闸“单设备双系统”特性下,“单设备单系统”高可用(High Availability)方案无法适用这一难题,有效解决了完全对称结构交叉切换“锁死”的情况,使网闸的切换性能得到了显著的提升。1.5 ?基于网闸的双机热备系统结构演进
基于网闸的双机热备系统结构如图5所示,其中图5a)为文献[3]所提系统结构,图5b)为本文所提系统结构。为了解决文献[2]提到的会导致“双主”现象的问题,文献[3]增加了主备网闸间外端机间的心跳监测,网闸内外端机和主备网闸内外端机间都通过心跳协议进行检测,形成网闸热备方案。由图5a)可知,文献[3]所提方案结构完全对称,在两网闸内外端机同时处理数据交叉切换时,容易出现“锁死”现象。因此,本文在图5a)基础上对方案进行改进,提出一种基于链路非对称结构的网闸双机热备系统,即将网闸内端机和外端机之间的通信协议更改为基于TCP协议双重协商机制来确保网闸的主/备机之间的切换。2 ?系统测试结果与分析
如图1所示,系统测试拓扑结构需要的硬件设备如下:网闸2台;交换机2台;PC机2台(1台作内网服务器,1台作外网服务器);网线6根。测试可以分为2类:
第一类:热备程序的关闭、网线插拔等宕机测试,用来测试双机热备程序软件诊测和主备切换的正确性。
第二类:软件辅助测试,用网闸文件共享同步功能来测试双机在发生主/备切换时数据业务是否丢失。网闸的文件共享同步即内外网服务器PC通过CIFS(Common Internet File System)协议与网闸进行通信,使数据、文档从内网服务器PC通过安全隔离网闸共享同步到外网服务器上。
测试前仍需对双机热备参数进行配置,双机热备系统配置界面如图6所示。如图6中参数所示,该设计与之前网闸热备系统相比还有其他优越之处,如:可配置的组ID可以使网闸自动识别是否是热备组网闸发来心跳包,若匹配成功则接收,匹配失败则丢弃,提高了网闸热备的可靠性和安全性;抢占模式和非抢占模式两种,可以根据设备配置情况安排主备机倾向;可供选择的热备接口可选用网闸任意可用网卡作为热备口,有效地解决了热备口出现故障的情况。在搭建好图1的拓扑环境,并把设计的双机热备系统分别部署于用作主/备的网闸内、外端处理机上,在确保所搭建环境正确、可靠的前提下,进行网闸双机热备的高可用实验测试,实验测试项目和测试结果如表1所示。由实验结果可以看出,本文设计的热备系统在各种故障情况下均能正常切换,切换时间也与文献[2,10]中的实验结果基本相符(2~4 s)。在该测试环境下模拟了各种网闸处理机故障导致交叉切换的场景,实验均得到了理想的切换结果。同时,在出现锁死情况方面,在共72次宕机测试过程中,基于原链路对称系统的网闸双机设备系统出现三次“锁死”,锁死后内外网之间的数据无法进行同步,而改进后的基于链路非对称系统的网闸双机热备系统均能正常运行,并无“锁死”现象出现。且该系统已经在深圳利谱信息技术有限公司正常运行一年多,由此表明改进后的基于链路非对称的网闸双机热备方案的合理性和正确性。3 ?结 ?语
本文在基于原链路完全对称网闸双机热备系统结构的基础上设计并实现了一种链路非对称结构的网闸双机热备系统。测试结果表明,本文所设计的基于链路非对称结构的网闸双机热备系统相比原来完全对称结构方案,解决了链路交叉切换容易锁死的问题,提高了热备的切换性能,并且还具有链路收敛速度快,多线程并行处理程序结构简单等优点。改进后的系统已在深圳利谱信息技术有限公司正常运行一年,从理论和实际环境两方面均证明了改进后的链路非对称结构的网闸双机热备系统的合理性。同时,还设计了可以自主设置的网闸热备组ID(HAID)和可供选择的热备接口,提高了网闸热备组的抗干扰能力和可靠性。
参考文献
[1] 吴缇.基于物理隔离网闸的银行文件安全传输系统的设计与实现[D].成都:电子科技大学, 2013.
WU Ti. Design and implementation of bank document security transmission system based on physical isolation gatekeeper [D]. Chengdu: University of Electronic Science and Technology of China, 2013.
[2] 蔡智勇,黄辉.一种基于VRRP的网闸高可用性协议模型[J]. 计算机工程,2013(9):146?149.
CAI Zhiyong, HUANG Hui. A VRRP?based gatekeeper high availability protocol model [J]. Computer engineering, 2013(9): 146?149.
[3] 白燕.基于网闸的双机热备系统的设计与实现[D].北京:北京理工大学,2015.
BAI Yan. Design and implementation of dual?system hot standby system based on gatekeeper [D]. Beijing: Beijing Institute of Technology, 2015.
[4] 李勇.基于Linux系統的双机热备系统研究与设计[J].计算机与数字工程,2016(44):11?13.
LI Yong. Research and design of dual?system hot standby system based on Linux system [J]. Computer and digital engineering, 2016(44): 11?13.
[5] DAI Z J, LI X W. The application of net gap in electric mobile access system [J]. Applied mechanics & materials, 2012, 241: 627?631.
[6] YU S, ZHAN Y, CAI Q L, et al. A reflective netgap logic framework design [C]// 2008 Workshop on Power Electronics & Intelligent Transportation System. Guangzhou: IEEE, 2008: 565?568.
[7] 阚闯.一种新的基于Linux虚拟服务器集群的动态负载均衡算法[D].青岛:中国海洋大学,2008.
KAN Chuang. A new dynamic load balancing algorithm based on Linux virtual server cluster [D]. Qingdao: Ocean University of China, 2008.
[8] 高明.基于Linux的负载平衡算法改进探究[J].电子测试,2015(3):29?31.
GAO Ming. Research on improvement of load balancing algorithm based on Linux [J]. Electronic test, 2015(3): 29?31.
[9] 王淑静.负载均衡算法研究及其在电子商务平台上的应用[D].郑州:郑州大学,2013.
WANG Shujing. Research on load balancing algorithm and its application in e?commerce platform [D]. Zhengzhou: Zhengzhou University, 2013.
[10] 任振芳.基于Xen虚拟机的双机热备可用性研究[D].郑州:郑州大学,2012.
REN Zhenfang. Research on dual?system hot standby avai?lability based on Xen virtual machine [D]. Zhengzhou: Zhengzhou University, 2012.
[11] 佚名.协议开源代码网址[EB/OL].[2016?06?15].https://sourceforge.net/p/vrrpd/code/tree.
Anon. Protocol open source code URL [EB/OL]. [2016?06?15]. https://sourceforge.net/p/vrrpd/code/tree.
[12] KUO J H, TE S U, LIAO P T, et al. An evaluation of the virtual router redundancy protocol extension with load balancing [C]// The 11th Pacific Rim International Symposium on Dependable Computing. Hunan: IEEE, 2006: 133?139.
[13] HAO L, YAN L. Research on some key performances for high availability and real time cluster system platforms based on task allocating table [C]// The Fifth International Conference on Intelligent Computation Technology and Automation. Zhangjiajie: IEEE, 2012: 534?536.
[14] SINGH S, CHARY V M, RAHMAN P A. Dual redundant profibus network architecture in hot standby fault tolerant control systems [C]// 2014 International Conference on Advances in Engineering and Technology Research. Unnao: IEEE, 2014: 1?5.