一种网络流量负载均衡的控制方法及系统
技术领域
本发明涉及网络流量控制技术领域,尤其涉及一种网络流量负载均衡的控制方法及系统。
背景技术
在骨干设备连接中,单一的链路的连接很容易实现,但随着访问流量快速增长、业务量不断提高,用户激增等现象导致了单条链路繁忙,用户访问出现延迟,响应缓慢,更有甚者会直接导致正常的业务无法进行。而且单条链路存在单点故障的隐患,当互联网链路故障时,可能引起的直接问题就是用户所有依赖互联网的业务及对互联网的访问都因此无法使用。
发明内容
为解决上述问题,本发明提出一种网络流量负载均衡的控制方法及系统。
一种网络流量负载均衡的控制方法,应用于包括至少两条链路的网络系统,所述方法包括:
配置各条链路的流量比重与跃点数,并监控各条链路的状态;
若各条链路的状态均正常,且各条链路的跃点数相同,则根据流量比重将流量分配到各条正常状态的链路;
若存在非正常状态的链路,则剔除该链路,若其余各条正常状态链路的跃点数相同,则根据流量比重将流量分配到各条正常状态的链路;
当检测到链路恢复正常状态时,则添加该链路,若各条正常状态链路的跃点数相同,则根据流量比重将流量分配到各条正常状态的链路。
优选的,所述监控各条链路的状态包括:
通过BFD或DLDP链路探测算法来监测各条链路的状态。
优选的,所述根据流量比重将流量分配到各条链路包括:
分别获取各条链路的路由信息并建立路由表;
获取各条链路的跃点数,并确定各条链路对应的mark值;
分别创建用于实现为流量数据包打上链路对应的mark值的规则链;
当各条链路的跃点数相等时,再获取各条链路对应的比重值,计算出各条链路的流量比重;
基于流量比重以及各条链路对应的路由信息、mark值分别为各条链路添加对应的路由策略;
根据路由策略进行流量数据包的收发。
优选的,所述路由信息包括:
各条链路对应的网关地址、物理接口、路由表id。
优选的,所述根据路由策略进行流量数据包的收发包括:
通过路由策略查找流量数据包使用的路由表进行路由;
分别读取到各条链路对应的路由信息;
流量数据包根据mark值和匹配到的路由信息分别通过对应链路的物理接口与网关地址进行收发。
一种网络流量负载均衡的控制系统,包括:
链路监控模块,用于配置各条链路的流量比重与跃点数,并监控各条链路的状态;
流量分配模块,用于若各条链路的状态均正常,且各条链路的跃点数相同,则根据流量比重将流量分配到各条正常状态的链路;及
若存在非正常状态的链路,则剔除该链路,若其余各条正常状态链路的跃点数相同,则根据流量比重将流量分配到各条正常状态的链路;及
当检测到链路恢复正常状态时,则添加该链路,若各条正常状态链路的跃点数相同,则根据流量比重将流量分配到各条正常状态的链路。
优选的,所述监控各条链路的状态包括:
通过BFD或DLDP链路探测算法来监测各条链路的状态。
优选的,所述流量分配模块包括:
路由表建立模块,用于分别获取各条链路的路由信息并建立路由表;
mark值计算模块,用于获取各条链路的跃点数,并确定各条链路对应的mark值;
规则链建立模块,用于分别创建用于实现为流量数据包打上链路对应的mark值的规则链;
流量比重计算模块,用于当各条链路的跃点数相等时,再获取各条链路对应的比重值,计算出各条链路的流量比重;
路由策略模块,用于基于流量比重以及各条链路对应的路由信息、mark值分别为各条链路添加对应的路由策略;
流量收发模块,用于根据路由策略进行流量数据包的收发。
优选的,所述路由信息包括:
各条链路对应的网关地址、物理接口、路由表id。
优选的,所述流量收发模块具体用于:
通过路由策略查找流量数据包使用的路由表进行路由;
分别读取到各条链路对应的路由信息;
流量数据包根据mark值和匹配到的路由信息分别通过对应链路的物理接口与网关地址进行收发。
本发明具备以下有益效果:当网络流量增大时,服务器的响应速度依旧不受影响;网链路发生故障时,网络亦不会中断,以此保证用户的使用体验。
附图说明
下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1是本发明实施例一种网络流量负载均衡的控制方法的流程示意图;
图2是本发明实施例一种网络流量负载均衡的控制方法中步骤S2的流程示意图;
图3是本发明实施例一种网络流量负载均衡的控制方法中步骤S26的流程示意图;
图4是本发明实施例一种网络流量负载均衡的控制系统的结构示意图;
图5是本发明实施例一种网络流量负载均衡的控制系统中流量分配模块的结构示意图;
图6为本发明实施例一种网络流量负载均衡的控制系统的工作流程示意图。
具体实施方式
以下结合附图,对本发明的技术方案作进一步的描述,但本发明并不限于这些实施例。
本发明提出一种网络流量负载均衡的控制方法,应用于包括至少两条链路的网络系统,如图1所示,所述方法包括以下步骤:
S1:配置各条链路的流量比重与跃点数,并监控各条链路的状态。
在本实施例中通过BFD或DLDP链路探测算法来监测各条链路的状态,由于BFD或DLDP链路探测算法为现有技术,因此不再赘述。
S2:若各条链路的状态均正常,且各条链路的跃点数相同,则根据流量比重将流量分配到各条正常状态的链路。
根据流量比重将流量分配到各条正常状态的链路的方法如图2所示,包括以下步骤:
S21:分别获取各条链路的路由信息并建立路由表;
路由信息包括:各条链路对应的网关地址、物理接口、路由表id。
S22:获取各条链路的跃点数,并确定各条链路对应的mark值;
S23:分别创建用于实现为流量数据包打上链路对应的mark值的规则链;
S24:当各条链路的跃点数相等时,再获取各条链路对应的比重值,计算出各条链路的流量比重;
S25:基于流量比重以及各条链路对应的路由信息、mark值分别为各条链路添加对应的路由策略;
S26:根据路由策略进行流量数据包的收发。
其中,根据路由策略进行流量数据包的收发的方法如图3所示,包括以下步骤:
S261:通过路由策略查找流量数据包使用的路由表进行路由;
S262:分别读取到各条链路对应的路由信息;
S263:流量数据包根据mark值和匹配到的路由信息分别通过对应链路的物理接口与网关地址进行收发。
S3:若存在非正常状态的链路,则剔除该链路,若其余各条正常状态链路的跃点数相同,则根据流量比重将流量分配到各条正常状态的链路。
S4:当检测到链路恢复正常状态时,则添加该链路,若各条正常状态链路的跃点数相同,则根据流量比重将流量分配到各条正常状态的链路。
本发明实施例当网络流量增大时,服务器的响应速度依旧不受影响;网链路发生故障时,网络亦不会中断,以此保证用户的使用体验。
相应的,本发明实施例还提出一种网络流量负载均衡的控制系统,如图4所示,包括:链路监控模块,用于配置各条链路的流量比重与跃点数,并监控各条链路的状态;流量分配模块,用于若各条链路的状态均正常,且各条链路的跃点数相同,则根据流量比重将流量分配到各条正常状态的链路;及若存在非正常状态的链路,则剔除该链路,若其余各条正常状态链路的跃点数相同,则根据流量比重将流量分配到各条正常状态的链路;及当检测到链路恢复正常状态时,则添加该链路,若各条正常状态链路的跃点数相同,则根据流量比重将流量分配到各条正常状态的链路。
监控各条链路的状态包括:通过BFD或DLDP链路探测算法来监测各条链路的状态。
如图5所示,流量分配模块包括:路由表建立模块,用于分别获取各条链路的路由信息并建立路由表;mark值计算模块,用于获取各条链路的跃点数,并确定各条链路对应的mark值;规则链建立模块,用于分别创建用于实现为流量数据包打上链路对应的mark值的规则链;流量比重计算模块,用于当各条链路的跃点数相等时,再获取各条链路对应的比重值,计算出各条链路的流量比重;路由策略模块,用于基于流量比重以及各条链路对应的路由信息、mark值分别为各条链路添加对应的路由策略;流量收发模块,用于根据路由策略进行流量数据包的收发。
所谓路由表,指的是路由器或者其它互联网网络设备上存储的表,该表中存有到达特定网络终端的路径,在某些情况下,还有一些与这些路径相关的度量。表中包含的信息决定了数据转发的策略。
具体的,路由信息包括:各条链路对应的网关地址、物理接口、路由表id。
流量收发模块具体用于:通过路由策略查找流量数据包使用的路由表进行路由;分别读取到各条链路对应的路由信息;流量数据包根据mark值和匹配到的路由信息分别通过对应链路的物理接口与网关地址进行收发。
数据包进行路由时,根据路由策略策略来匹配,按照优先级顺序从高到低来匹配,直至找到合适的规则并获取到对应的路由表。后根据路由表信息,将数据包从指定的接口与网关地址发送出去,最终实现数据包由指定链路收发。
图6为本发明实施例一种网络流量负载均衡的控制系统的工作流程示意图,如图6所示,链路监控模块检测链路状态是否为正常,若不正常,则清楚该链路的所有规则和路由信息;若正常,则获取该链路对应的网关地址与物理接口,确定路由表id建立,建立链路的路由表,确定该链路对应的mark值,获取链路对应的跃点数。检测该链路是否为第一条链路,若是,则创建规则链用来为数据包做标记,通过流量比重以及路由表id与数据包的mark值添加路由策略;若该链路不为第一条链路,则与上一链路的跃点数相比较,当等于上一条链路的跃点数,则通过流量比重以及相应的mark值新建一条规则链并在上一条链路创建的规则链之前插入,然后通过流量比重以及路由表id与数据包的mark值添加路由策略。
本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。