CN102882802A - 一种多wan口设备负载均衡的实现方法 - Google Patents
一种多wan口设备负载均衡的实现方法 Download PDFInfo
- Publication number
- CN102882802A CN102882802A CN2012104063227A CN201210406322A CN102882802A CN 102882802 A CN102882802 A CN 102882802A CN 2012104063227 A CN2012104063227 A CN 2012104063227A CN 201210406322 A CN201210406322 A CN 201210406322A CN 102882802 A CN102882802 A CN 102882802A
- Authority
- CN
- China
- Prior art keywords
- packet
- wan
- labeled
- mark
- routing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种多WAN口设备负载均衡的实现方法,首先,为每个WAN口创建路由表;然后,在路由查找之前将数据包送到连接跟踪标记模块,得到该数据包的MARK值,并赋值给数据包的mark字段;之后,在路由查找模块中,根据mark字段,使用不同的路由表为数据包进行路由判断;最后,根据上一步骤的路由判断,处理数据包,转发或本地接收等;本发明能够实现基于LINUX系统的多WAN口设备按比例进行负载均衡的功能。
Description
技术领域
本发明涉及一种多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字段作为匹配条件。
下面一个双WAN口的实施实例,其按2:1分配负载:
(1) 使用ip工具为两个wan口建立各自的独立路由表,编号分别为150与151;
(2) 修改iptables中的MARK模块,到达该模块处理的数据包,第一个标记为150,第二个标记为150,第三个标记为151,第四个150,第五个标记为150,第六个标记为151,如此循环;
(3) 应用如下两条策略路由,标记(MARK值)为150的连接使用路由表150,标记为151的使用路由表151
ip rule add fwmark 150 table 150
ip rule add fwmark 151 table 151;
(4) 按如下添加数据包处理规则,第一条规则从连接跟踪记录表中取出当前数据包所属连接的MARK值,并记录在该数据包中;第二条规则则判断当前数据包所处的连接是否已打上标记,是则将数据包直接放回协议栈,否则继续执行第三条规则;第三条规则将数据包放入步骤(1)所述的MARK模块,对数据包进行循环标记;第四条规则用于保存该数据包所处连接记录信息,包括MARK值
iptables -t mangle -A PREROUTING -j CONNMARK –restore-mark
iptables -t mangle -A PREROUTING -m mark ! --mark 0 -j RETURN
iptables -t mangle -A PREROUTING -j MARK --set-mark 150
iptables -t mangle -A PREROUTING -j CONNMARK --save-mark。
本发明能够实现基于LINUX系统的多WAN口设备按比例进行负载均衡的功能。
上述说明示出并描述了本发明的优选实施例,如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
Claims (3)
1.一种多WAN口设备负载均衡的实现方法,其特征在于:
首先,为每个WAN口创建路由表;然后,在路由查找之前将数据包送到连接跟踪标记模块,得到该数据包的MARK值,并赋值给数据包的mark字段;之后,在路由查找模块中,根据mark字段,使用不同的路由表为数据包进行路由判断;最后,根据上一步骤的路由判断,处理数据包,转发或本地接收。
2.如权利要求1所述的一种多WAN口设备负载均衡的实现方法,其特征
在于:
连接跟踪标记模块按如下步骤完成工作:
步骤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,将数据包的标记值保存到连接跟踪表中。
3.如权利要求1所述的一种多WAN口设备负载均衡的实现方法,其特
征在于:路由查找的时候,根据数据包中标记值,即mark字段,使用不同的路由表进行路由判断,从而将数据包导向不同的WAN口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012104063227A CN102882802A (zh) | 2012-10-23 | 2012-10-23 | 一种多wan口设备负载均衡的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012104063227A CN102882802A (zh) | 2012-10-23 | 2012-10-23 | 一种多wan口设备负载均衡的实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102882802A true CN102882802A (zh) | 2013-01-16 |
Family
ID=47483952
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012104063227A Pending CN102882802A (zh) | 2012-10-23 | 2012-10-23 | 一种多wan口设备负载均衡的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102882802A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106357433A (zh) * | 2016-08-30 | 2017-01-25 | 上海寰创网络科技有限公司 | 一种实接口多wan口网关的实现方法 |
CN108011826A (zh) * | 2017-12-01 | 2018-05-08 | 锐捷网络股份有限公司 | 路由方法、路由设备、通信系统及存储介质 |
CN108270689A (zh) * | 2018-01-10 | 2018-07-10 | 中国人民解放军战略支援部队信息工程大学 | 一种实现业务连接的方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7230925B2 (en) * | 2001-08-13 | 2007-06-12 | Via Technologies, Inc. | Load balance device and method for packet switching |
CN101179510A (zh) * | 2007-12-13 | 2008-05-14 | 中兴通讯股份有限公司 | 用于虚拟交换系统的主备链路负荷分担方法和装置 |
CN202218410U (zh) * | 2011-06-22 | 2012-05-09 | 上海通号轨道交通工程技术研究中心有限公司 | 一种多通道负载均衡设备 |
CN102684951A (zh) * | 2011-03-14 | 2012-09-19 | 鸿富锦精密工业(深圳)有限公司 | 多广域网接口网路选择方法、系统及网路设备 |
-
2012
- 2012-10-23 CN CN2012104063227A patent/CN102882802A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7230925B2 (en) * | 2001-08-13 | 2007-06-12 | Via Technologies, Inc. | Load balance device and method for packet switching |
CN101179510A (zh) * | 2007-12-13 | 2008-05-14 | 中兴通讯股份有限公司 | 用于虚拟交换系统的主备链路负荷分担方法和装置 |
CN102684951A (zh) * | 2011-03-14 | 2012-09-19 | 鸿富锦精密工业(深圳)有限公司 | 多广域网接口网路选择方法、系统及网路设备 |
CN202218410U (zh) * | 2011-06-22 | 2012-05-09 | 上海通号轨道交通工程技术研究中心有限公司 | 一种多通道负载均衡设备 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106357433A (zh) * | 2016-08-30 | 2017-01-25 | 上海寰创网络科技有限公司 | 一种实接口多wan口网关的实现方法 |
CN106357433B (zh) * | 2016-08-30 | 2019-11-29 | 上海寰创网络科技有限公司 | 一种实接口多wan口网关的实现方法 |
CN108011826A (zh) * | 2017-12-01 | 2018-05-08 | 锐捷网络股份有限公司 | 路由方法、路由设备、通信系统及存储介质 |
CN108270689A (zh) * | 2018-01-10 | 2018-07-10 | 中国人民解放军战略支援部队信息工程大学 | 一种实现业务连接的方法及装置 |
CN108270689B (zh) * | 2018-01-10 | 2021-06-01 | 中国人民解放军战略支援部队信息工程大学 | 一种实现业务连接的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1716912B (zh) | 提供分组交换通信网络中快速端到端失效转移的方法与设备 | |
CN103338161B (zh) | 一种实现跨设备聚合的方法和设备 | |
CN104486124B (zh) | 使用逻辑端口实现多系统链路聚合的装置及方法 | |
CN102801625B (zh) | 一种异构网络二层互通的方法及设备 | |
CN102368727B (zh) | 跨ip网络的trill网络通信方法、系统和设备 | |
CN102404145A (zh) | 多协议标签交换环网的检测方法、装置及系统 | |
CN101601232A (zh) | 三层任播寻址 | |
CN104660469B (zh) | 一种二层网络的连通性检测方法及相关设备 | |
CN100591048C (zh) | 网络流量负载均衡的方法以及第三层交换设备 | |
CN101014008A (zh) | 多协议标签交换业务分类处理方法及网络设备 | |
CN108768866A (zh) | 组播报文跨卡转发方法、装置、网络设备及可读存储介质 | |
CN103326918A (zh) | 一种报文转发方法和设备 | |
CN102739526A (zh) | 一种高效分布式路由表的实现方法 | |
CN105308904A (zh) | 一种oam报文处理方法、网络设备和网络系统 | |
CN101848155A (zh) | 标签交换路径的检测方法及标签交换路由器 | |
CN104601461B (zh) | 一种纵向智能弹性架构系统中的报文转发方法及装置 | |
CN101964719B (zh) | 基于主控板倒换的数据处理方法、线卡及主控板 | |
CN109088819A (zh) | 一种报文转发方法、交换机及计算机可读存储介质 | |
CN101299723B (zh) | 标签交换路径隧道信息管理方法及装置 | |
CN102882802A (zh) | 一种多wan口设备负载均衡的实现方法 | |
CN103368844B (zh) | Mpls网络中的报文处理方法及标签交换路由器 | |
CN104954205B (zh) | 一种软路由性能测试方法 | |
CN105141538A (zh) | 一种跨网络堆叠系统及其对报文的处理方法 | |
CN102201996B (zh) | 网络地址转换环境中报文转发的方法及设备 | |
CN110391961A (zh) | 一种隧道绑定方法、设备及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C05 | Deemed withdrawal (patent law before 1993) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130116 |