[发明专利]一种多WAN口设备负载均衡的实现方法无效
申请号: | 201210406322.7 | 申请日: | 2012-10-23 |
公开(公告)号: | CN102882802A | 公开(公告)日: | 2013-01-16 |
发明(设计)人: | 许财义 | 申请(专利权)人: | 厦门四信通信科技有限公司 |
主分类号: | H04L12/803 | 分类号: | H04L12/803;H04L12/757 |
代理公司: | 福建炼海律师事务所 35215 | 代理人: | 许育辉;张辉 |
地址: | 361009 福建省厦门*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 wan 设备 负载 均衡 实现 方法 | ||
技术领域
本发明涉及一种多WAN口设备负载均衡的实现方法,具体与linux网络协议栈、Netfilter/Iptables的编译安装与修改、策略路由和高级路由的使用有关。
背景技术
在现有技术中,有很多WAN口设备,把原本“一对多”的WAN接入方式变
成“多对多”的方式,满足了用户更多带宽等需求。多WAN口设备主要用于增加带宽、线路备份等方面。允许用户以更经济的成本成倍增加带宽。
而当前很多WAN口设备不具备按比例进行自动负载均衡的功能,正常情况下只使用一个WAN口进行数据传输,其他WAN口单纯作为备用。
发明内容
本发明所要解决的技术问题是提供一种多WAN口设备负载均衡的实现方法,实现基于LINUX系统的多WAN口设备按比例进行负载均衡的功能。
为达到发明目的,本发明采用如下技术方案:
一种多WAN口设备负载均衡的实现方法,首先,为每个WAN口创建路由表;然后,在路由查找之前将数据包送到连接跟踪标记模块,得到该数据包的MARK值,并赋值给数据包的mark字段;之后,在路由查找模块中,根据mark字段,使用不同的路由表为数据包进行路由判断;最后,根据上一步骤的路由判断,处理数据包,转发或本地接收等。
进一步地,连接跟踪标记模块按如下步骤完成工作:
步骤A,判断数据包所属的连接是否已经被标记,如果被标记,则取出该标记值,赋给数据包的mark字段;否则,转入步骤B;
步骤B,进入到该步骤的数据包按如下方式被标记:假设有n个WAN口,负载比例为N1:N2:…:Nn,则每连续N1+N2+…+Nn个数据包中,其中N1个数据包被标记为M1,N2个数据包被标记为M2,…,Nn个数据包被标记为Mn(注:N1,N2,…,Nn,M1,M2,…,Mn均为自然数);
步骤C,将数据包的标记值保存到连接跟踪表中。
进一步地,路由查找的时候,根据数据包中标记值(即mark字段),使用不同的路由表进行路由判断,从而将数据包导向不同的WAN口。
采用上述技术方案,本发明能够实现基于LINUX系统的多WAN口设备按比例进行负载均衡的功能。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明方法的流程框图。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
如图1所示的本发明的实施方式,Netfilter/Iptables是LINUX 2.4.x/2.6.x内核集成的IP信息包过滤系统,分为Netfilter与Iptables两部分。其中Netfilter是LINUX内核IP协议栈中的一系列函数调用入口,设置在报文处理的路径上,它会在路由查找之前执行处理过程。
LINUX网络协议栈是一个层次架构的软件架构,层与层之间通过预定的接口传递报文,网络报文中包含了协议各层使用到的各种信息,在LINUX的2.4与2.6版本中采用结构sk_buff来存储报文数据。在该结构里有一个变量:mark。该变量不是包本身的一部分,而是包在穿越系统过程中由内核分配的与包相关联的一个字段。该字段只能在本地的mangle表里使用,可以与本地的高级路由功能联用,以使不同的包应用不同的策略。
连接跟踪即跟踪并记录连接状态,Linux为每一个经过网络协议栈的数据包,生成一个新的连接记录项,此后所有属于该连接的数据包都被唯一地分配给这个连接,并标识连接状态。连接跟踪是防火墙模块的状态检测的基础,同时也是地址转换中实现SNAT与DNAT的前提。CONNMARK是netfilter/iptables中的一个特性,实现了往连接跟踪记录上打标记的方法(即sk_buff中的mark字段)。
从2.2版本开始,Linux加入了高级路由机制,基于该机制Linux系统可以有多达256个路由表,且每个路由表都各自独立。同时Linux内包含一个路由策略数据库,我们可以在该库里添加一些路由规则来确定“哪类数据包”应该“根据哪个路由表”来传输。在此,我们可以使用数据包中的mark字段作为匹配条件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于厦门四信通信科技有限公司,未经厦门四信通信科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210406322.7/2.html,转载请声明来源钻瓜专利网。