高性能智能接入网关的研究
2017-10-19蔡晖杨靖胡波
蔡晖 杨靖 胡波
【摘要】高性能智能网关HPGW (High performance Gate Way)是一种用软件实现的负载均衡设备, HPGW将多台物理RealServer虚拟化成了一台虚拟VServer,提供统一的VIP(即virtual ip),用户只需和VIP进行通讯,就能访问RealServer上的服务。HPGW能通过多种灵活的调度算法、健康检查机制实现跨网段的高性能网络访问;通过服务保活、自身冗余等机制实现服务冗余;通过基于网络物理层协议改造实现大并发链接,保障网络攻击安全防范;确保对外提供统一的高性能访问门户。
【关键词】高性能智能网关;HPGW (High performance Gate Way)
一、引言
我局信息中心是智能水文信息处理中心,承担着水文、气象数据存储、处理、分析、转发的任务,信息中心共接入各自数据采集终端172个,并向省局、水务局实时接收转发水文数据,数据量尤其是网络接受和转发的量较大。目前,我局虚拟化平台已全面建设完成,但由于网络不稳定,数据丢包情况时有发生,所以如何打造一个高性能数据接入网关,对局信息工作显得至关重要。
二、什么是高性能数据智能接入网关
高性能智能网关是一种用软件实现的负载均衡设备,我们称之为HPGW (High performance Gate Way)。HPGW将多台物理PServer(即RealServer)虚拟化成了一台虚拟VServer,提供统一的VIP(即virtual ip),用户只需和VIP进行通讯,就能访问RealServer上的服务。
最终,从client的角度看到,自己和一台server机器(确切说是一个ip)在通讯,感觉不到RealServer的存在;从RealServer的角度看到,自己和client在通讯,没有感觉到HPGW的存在。
HPGW会对报文做SNAT和DNAT,这样RS(RealServer)看到的源IP将是HPGW的后端IP,而不是客户端的真实IP,而现实中有许多业务需要知道客户端的真实IP。为了解决这个问题,RS需要在内核加载一个TTM模块,即可将该选项携带的真实IP信息获取出来,该过程对于用户态应用程序来说是完全透明的,用户态应用程序所看到的是从客户端真实IP,实现HPGW的透明。
目前网络3.0大量使用具有跨网段功能的bvs,bignat集群,这大大简化了IDC网络的设计和使用,摆脱了之前硬件四层的很多限制。
三、硬件条件分析
应该说,在通用计算方面,英特尔公司的x86芯片在业内傲视群雄。但受时钟速度和功耗所限,它却很难在网络应用上却难以一展拳脚,而Tilera平台的PCI Express加速卡专注网络浮点计算,有望就此解放x86服务器上的CPU资源。
目前的bvs和bignat都是使用X86服务器实现的,但是目前X86的架构,天生在网络报文处理方面就有一些缺陷。单台服务器的性能不足,导致了集群方案的使用。集群方案有一些问题,首先是网络结构复杂,维护起来成本特别高,特别是随着今后业务的增加,单个集群服务器数量多,集群数量也多,维护比较麻烦。再次是单台服务器的性能不够,导致会有雪崩效应的风险。
因此我们可以在Tilera平台上开发智能网关 HPGW,通过提升单台处理能力,减少单个集群的节点个数。从而减少维护成本,简化网络结构。
四、HPGW设计
4.1 HPGW原理
HPGW原理如下图所示。当客户端向业务的VIP发来一个报文,HPGW会根据该VIP下配置的RS进行调度,选择一个RS处理该连接。选择好后将报文的源IP地址改为HPGW的一个后端内网IP(BIP),同时将报文目的IP修改为RS的内网IP(RIP),然后建立session,最后将数据包从下联口发往内网。
当RS向客户端发送数据包时,该数据包的目的IP是HPGW的后端IP(BIP),源IP是RS的内网IP(RIP)。当数据包到达HPGW时,HPGW会根据前面建立的session将数据包的目的IP改回客户端的外网IP,同时将源IP改为服务的VIP。
在客户端看来,自己一直在与IP为VIP的一台服务器通信。而在RS看来,自己一直在与IP为BIP的客户端通信。该过程对于RS和Client都是透明的。
4.2 TTM模块
HPGW会对报文做SNAT和DNAT,这样RS看到的源IP将是HPGW的后端IP,而不是客戶端的真实IP,而现实中有许多业务需要知道客户端的真实IP。为了解决这个问题,HPGW会将客户端的真实IP信息作为一个TCP选项或者IP选项插入在报文中发给RS。RS端只要在内核加载一个TTM模块,即可将该选项携带的真实IP信息获取出来,该过程对于用户态应用程序来说是完全透明的,用户态应用程序所看到的是从客户端真实IP发给自己内网IP的一个报文,即源地址是Internet的客户端地址(如202.114.0.242),目的IP是RS的内网IP(如10.23.170.20)。TTM读取出该信息时会在内核建立一个转换表,当用户态应用程序发送报文时,目的地址会是外网P(202.114.0.242),TTM模块会根据建立的转换表项将该IP转换为HPGW的后端IP(BIP)。
4.3 调度策略
目前,HPGW支持以下几种调度策略: Round Robbin、SRCH源地址哈希、CONHASH一致性哈希、MINCONN最小连接调度、WRR加权轮询。
4.4、RS保活策略
HPGW并不仅仅是一个简单的负载均衡器,它还有服务器保活功能。当把RS配置到HPGW上之后,HPGW会定期向RS发送一定格式的报文检测RS的存活状态。如果RS没有响应,则不再将新的连接调度到该RS之上,当RS存活比例低于一定的数量时,便会发出报警。目前HPGW支持以下几种RS保活策略:TCP、HTTP、ICMP、UDP
五、HPGW应用和部署
HPGW可以通过开放多物理服务器虚拟为统一对外出口的核心基础架构技术,为各业务系统提供的具有安全,稳定,高性能,高可扩展性等特点的高性能服务产品,用户通过统一IP网关即可访问所有的应用及数据服务。实现的应用包含中转连接、负载均衡、防御攻击、探活机制。
六、HPGW在水文信息采集上的应用
我局目前有各类采集终端170余个,采用多台工控设备建立网络端口监听,分别接收来自不同厂商设备(金水、中水环球、山脉、宜昌彩虹、中电27所、722所、新烽)的数据链接,每个厂商都总体上遵循水文数据规约,但都有自己个性化的设置,不仅配置复杂而且无法统一管理;出现故障的频率较高,尤其是在汛期加报频繁的情况下,掉包率激增。
如果采用HPGW则能将所有前置监听服务、消息队列服务、数据回写服务统一管理 ,自动对各物理服务器的计算资源统一调度,实现负载均衡,并能通过Tilera Pro64 PCI Express加速卡,开辟大并发链接,保障接入性能,确保数据到报率、准确率数量级的提升。