新闻中心

【网工玩海德体育Linux】搭建开源多运营商(ISP)链路负载均衡器

2023-11-08
浏览次数:
返回列表

  海德体育今天,主要想讲一下如何利用Linux内核功能,搭建与市面上十几万的商用产品(F5、RADWARE等)功能相同的多互联网线路负载均衡设备。

  负载均衡,相信各位是了解的。主要包括两大类,一类是应用负载均衡,另一类是链路负载均衡。应用负载均衡,包括了软负载均衡如nginx、LVS,硬负载均衡如F5、RADWARE等大厂的产品。应用负载均衡利用了反向代理和DNS解析,在于同一套业务系统中多台应用服务器间分摊负载,一来便于扩展应用性能,二来通过反向代理等功能保护后面实际的应用服务器。

  而链路负载均衡,广泛应用于自建机房且有面向互联网业务的公司,主要目的是在多条互联网出口间分摊网络流量,利用NAT映射功能为内网服务器提供多家运营商的互联网出口以保证访问体验。使用链路负载均衡:

  二是如果在防火墙实现访问控制表、路由表、NAT映射表都需要CPU计算,对于内网规模较大、业务系统多的公司来说使用负载均衡可以减轻防火墙CPU负载。

  三是负载均衡、防火墙、网关路由器承担各自角色,使各项功能模块化,发生单点故障时,仅需寻求该功能模块的替换方案即可,而不影响其他功能。

  四是防火墙与链路负载均衡分开可以提高网络安全性,如果防火墙放开端口但负载均衡没有做映射便无法访问,反之亦然。

  目前市面上的链路负载均衡设备,以商用产品为主海德体育,国际大厂包括F5、RADWARE,国内包括深信服、H3C等,其价格动辄十几万,而部分厂商售后政策也十分垄断,价格令人嗔目。

  近期我司原本双机互备的两台链路负载均衡设备,使用年限长了,挂了一台海德体育。而新采购设备耗时较长,为了保证在此期间剩下那台发生故障能够有所准备。我研究起了能否用Linux做免费的链路负载均衡。

  通过查找,最终在找了一篇论文有所提及,用iproute2、 ip rule和iptables如何实现。而顺着这条思路查找,网上各种资料、书籍仅仅是简单讲解了基本使用方法。而我写这篇文章,就是为了搞大事——演示如何实现更复杂的链路负载均衡。

  7.内部办公区及服务器访问互联网的动态映射地址为移动60.1.1.14、联通232.5.5.78、电信58.7.7.142。各出口其余13各公网地址备案后给机房有互联网业务的服务器使用。

  介绍完基本情况,我开始正式讲解链路负载均衡的做法。虽然看似复杂,但是搞清楚逻辑概念,外加自己动手做个三四遍后,相信大家做的会比我更好的。

  物理设备方面,找台PC主机,有条件的直接上服务器,由于路由表和NAT表都需要网卡与CPU通信、以及CPU的算力,想要延迟小,当然主板和CPU的性能越高越好。然后需要4个千兆网口(网卡也是,性能越高越好),服务器一般自带,而PC需要额外购置一块4口网卡。

  软件方面,由于所需功能都是linux系统自带,仅需要装一个系统即可海德体育。我选用的是CentOS7,如果有redhat尽管用。

  echo 1 /proc/sys/net/ipv4/ip_forward

  由于主要讲负载均衡配置,ip rule在这里不做过多的阐述。只简单提一句,我们可以通过ip rule来实现在多条线路负载均衡的情况下,控制流量从哪条线路出入。举个例子海德体育,访问淘宝的流量直走电信线路、访问天猫的直走联通线路等等,还可以结合iptables的mark功能——要求某一特定的内网用户只走联通线路(例如,现在银行系统一般会检查IP地址变动情况,而负载均衡会造成地址检测异常影响对银行网络的访问)。

  我这里实验需求比较简单,仅确保联通进来的流量再从联通返回,类似这样的要求即可。代码如下:

  ip rule add from 60.1.1.2 table CMCC

  动辄几十万的商业级链路负载均衡那些高级功能,同样可以利用iptables和iproute2的高级配置进行组合得以实现

  至于性能方面,实际上商业产品也是用的服务器,甚至有些产品用的是低端的服务器。只是内部操作系统是自研、经过优化的。Linux虽然优化可能没有商业产品好,但是可以通过高性能硬件多少弥补。

  至于交互界面复杂这种事情,对于我来说海德体育,可以通过perl或python写一个web端弥补。

  所以,各位同仁们,链路负载均衡坏了不要怕,可以快速搭一个linux先顶着。

搜索