[go: up one dir, main page]

CN102882802A - 一种多wan口设备负载均衡的实现方法 - Google Patents

一种多wan口设备负载均衡的实现方法 Download PDF

Info

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
Application number
CN2012104063227A
Other languages
English (en)
Inventor
许财义
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
XIAMEN FOUR-FAITH COMMUNICATION TECHNOLOGY CO LTD
Original Assignee
XIAMEN FOUR-FAITH COMMUNICATION TECHNOLOGY CO LTD
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by XIAMEN FOUR-FAITH COMMUNICATION TECHNOLOGY CO LTD filed Critical XIAMEN FOUR-FAITH COMMUNICATION TECHNOLOGY CO LTD
Priority to CN2012104063227A priority Critical patent/CN102882802A/zh
Publication of CN102882802A publication Critical patent/CN102882802A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种多WAN口设备负载均衡的实现方法,首先,为每个WAN口创建路由表;然后,在路由查找之前将数据包送到连接跟踪标记模块,得到该数据包的MARK值,并赋值给数据包的mark字段;之后,在路由查找模块中,根据mark字段,使用不同的路由表为数据包进行路由判断;最后,根据上一步骤的路由判断,处理数据包,转发或本地接收等;本发明能够实现基于LINUX系统的多WAN口设备按比例进行负载均衡的功能。

Description

一种多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字段作为匹配条件。
     下面一个双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口。
CN2012104063227A 2012-10-23 2012-10-23 一种多wan口设备负载均衡的实现方法 Pending CN102882802A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 鸿富锦精密工业(深圳)有限公司 多广域网接口网路选择方法、系统及网路设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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