一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于软件定义网络的监控流量负载均衡方法与流程

2021-10-24 11:37:00 来源:中国专利 TAG:流量 网络监控 负载均衡 定义 特别


1.本发明涉及网络技术领域,特别涉及一种基于软件定义网络的监控流量负载均衡方法。


背景技术:

2.传统的网络架构下,对流量分析很容易导致交换机和第三方设备端口占用过多;无法对流量进行预制处理,如汇聚、去重、过滤、复制等;而且第三方设备一般无法识别出一些带vlan的报文,此时流量分流器tap应运而生。tap设备可以将一台或者多台生产网络设备镜像出来的流量汇聚后,分发到一台或者多台数据分析设备。但随着网络业务的发展,数据中心的流量从80%的南北向流量转变成了80%的东西向流量,传统的tap设备已无法对大量虚拟机产生的东西向流量进行采集,于是vtap应运而生。vtap是在云环境中创建的一台虚拟tap,在云服务器上将所有虚拟机的流量通过端口镜像的方式引流给vtap,然后在vtap上通过隧道的方式将流量转发出去,转发给物理tap的端口,进而物理tap再进行转发给分析设备进行分析。
3.随着网络规模的逐渐扩大,数据中心的东西向流量也会越来越多,采集探针vtap采集到的流量,通过隧道转发到物理tap上的流量,也将会越来越庞大。当超过了设备端口的吞吐量,就很容易发生丢包现象,从而造成分析设备的源流量不全,原信息丢失的现象。此外,由于虚拟tap在设备的物理资源足够的情况下可以尽量多,而物理tap设备因为成本问题无法大量购入,从而也会造成了对分析设备的压力。


技术实现要素:

4.有鉴于此,本发明的第一方面的目的是提供一种基于软件定义网络的监控流量负载均衡方法。能够克服现有技术存在的缺陷。
5.本发明的第一方面的目的是通过以下技术方案实现的:
6.一种基于软件定义网络的监控流量负载均衡方法,包括:
7.步骤s1:采集探针vtap与物理tap之间的链路监控步骤
8.构建用于在采集探针vtap与物理tap之间来往发送的数据包,该数据包基于采集探针vtap与物理tap之间的隧道发送;
9.采集探针vtap发送多个数据包给物理tap,根据回收到的数据包计算获取当前隧道的网络状态;
10.步骤s2:采集探针vtap与物理tap之间的负载均衡步骤
11.综合所获得的网络状态,对各物理tap进行权值分配;根据各物理tap的权值比例,将采集探针vtap的流量转发至若干台物理tap实现分流;
12.步骤s3:采集探针vtap与物理tap之间的流量同源同宿转发步骤
13.将来自同一采集探针vtap的切段发送的数据流量转发至同一个物理tap。
14.进一步,所述数据包具有状态位和ip地址位;在采集探针vtap端将ip地址位填入
待通讯的物理tap的ip地址,随后发送;当物理tap收到该数据包后,随即修改状态位并于ip地址位中填入采集探针vtap,进行回送。
15.进一步,所述采集探针vtap根据发送与接收的数据包个数计算出收包率,根据数据包发送与接收的时间计算出链路的延时。
16.进一步,所述采集探针vtap在固定时间段中定时发送数据包,从而获取该时间段内的网络状态。
17.进一步,使用收包率和延时的乘积作为对应物理tap的权值。
18.进一步,对切段发送的数据流量的五元组信息进行哈希算法运算,将运算结果的数据流量输出至同一物理tap,实现同源同宿。
19.本发明的第二方面的目的是提供一种计算机装置,包括存储器、处理器及储存在存储器上并能够在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如前所述的方法。
20.本发明的第三方面的目的是提供一种计算机可读存储介质,其上储存有计算机程序,所述计算机程序被处理器执行时实现如前所述的方法。
21.本发明的有益效果是:本发明在基于openvswitch dpdk(简称ovs dpdk)平台上实现流量的负载均衡,在链路正常的情况下,实现采集探针vtap和物理设备tap之间的流量负载均衡;且做到实现同源同宿,即同个宿主机发出的流量要到达同个分析设备上去,避免造成数据包的不完整从而产生的丢包;在链路出现断路的情况下,流量自动切换到正常链路上进行转发。具有极强的灵活性和便捷性。
22.本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书和前述的权利要求书来实现和获得。
附图说明
23.为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步的详细描述,其中:
24.图1为本发明的网络拓扑图。
具体实施方式
25.以下将参照附图,对本发明的优选实施例进行详细的描述。应当理解,优选实施例仅为了说明本发明,而不是为了限制本发明的保护范围。
26.本发明的技术核心功能在于对采集探针和物理tap之间的链路监控、采集探针和物理tap之间的负载均衡,采集探针和物理tap之间流量的同源同宿转发。
27.对于采集探针vtap和物理tap之间的链路监控,是指采集探针vtap通过隧道的方式与物理tap的某个端口进行连接,当出现异常情况造成隧道阻塞或者断接,造成采集探针和物理tap之间吞吐量慢,甚至无法进行通信;链路监控可以实时对链路状态进行检查,以作为之后负载均衡的依据。
28.对于采集探针vtap和物理tap之间的负载均衡,是指当数据中心的数据过于庞大
时,会对物理tap端口造成压力,很可能就因为数据量太大,造成了严重丢包现象。这个时候,可以在成本允许的条件下,根据自己的网络状态,多部署几台物理tap设备,以此来分担繁多的数据压力问题。
29.对于物理tap之间流量的同源同宿,是指,当某个数据包过大时,网络会将数据包进行切段发送,最后再进行合并为同个数据包。在负载均衡的情况下,不同段的数据包,就可能会被发送到不同的物理tap上,这样分发到流量包的物理tap都会收到不完整的流量包,会被判断是错包而进行丢弃,同源同宿则是处理这种问题,会将同个源头(采集探针vtap)发送过来的数据包,发送到同个归宿(物理tap)上去,从而避免错包丢包的现象。
30.基于上述构思,本发明公开了基于软件定义网络的监控流量负载均衡方法,图1为本发明的网络拓扑图.该方法包括以下步骤:
31.步骤s1,采集探针vtap与物理tap之间的链路监控步骤
32.构建用于在采集探针vtap与物理tap之间来往发送的数据包,该数据包基于采集探针vtap与物理tap之间的隧道发送;采集探针vtap发送多个数据包给物理tap,根据回收到的数据包计算获取当前隧道的网络状态;
33.具体是,所述数据包具有状态位和ip地址位;在采集探针vtap端将ip地址位填入待通讯的物理tap的ip地址,随后发送;当物理tap收到该数据包后,随即修改状态位并于ip地址位中填入采集探针vtap,进行回送。由于在openvswitch上,虽然可以通过“ovs

ofctl dump

ports”命令查询指定网卡的当前流量情况,但openvswitch不支持查询隧道上的流量情况。所以可以采用自己发送,自己回包的方法,来获取各条链路之间的网络状态。
34.进一步的,所述采集探针vtap根据发送与接收的数据包个数计算出收包率,根据数据包发送与接收的时间计算出链路的延时。所述采集探针vtap在固定时间段中定时发送数据包,从而获取该时间段内的网络状态。
35.步骤s2,采集探针vtap与物理tap之间的负载均衡步骤
36.综合所获得的网络状态,对各物理tap进行权值分配;根据各物理tap的权值比例,将采集探针vtap的流量转发至若干台物理tap实现分流,提高了多链路的利用率,减轻了单物理tap的流量传输压力;
37.具体是,使用收包率和延时的乘积作为对应物理tap的权值。比如,对于同个采集探针vtap发送给3台物理tap,收包率分别是100%,90%、85%,而延时分别为1ms,1.03ms,三台物理tap分配的权值为:(100%*1):(90%*1.03):(85%*1.3)。
38.步骤s3,采集探针vtap与物理tap之间的流量同源同宿转发步骤
39.将来自同一采集探针vtap的切段发送的数据流量转发至同一个物理tap。
40.具体是,对切段发送的数据流量的五元组信息进行哈希算法运算,将运算结果的数据流量输出至同一物理tap,实现同源同宿。
41.同源同宿是基于哈希算法实现的,通过把key value值映射在哈希表中。同源同宿的哈希算法中的key value值是每条流的五元组信息,同样的五元组信息得到的哈希算法结果相同,对一条流的上行流量和下行流量进行标记,得到的哈希值相同,流量汇总输出时,只要把哈希值相同的流量通过同一个端口输出,就能实现同源同宿。比如,采集探针vtap中有n个输出端口,某个会话中通过哈希算法算出哈希值为a,用a对n进行取模运算mod(a,n),得到值a,那么这个会话就会从物理tap的n个端口的第a个输出
42.应当认识到,本发明的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术

包括配置有计算机程序的非暂时性计算机可读存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作——根据在具体实施例中描述的方法和附图。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。
43.此外,可按任何合适的顺序来执行本文描述的过程的操作,除非本文另外指示或以其他方式明显地与上下文矛盾。本文描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。
44.进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、ram、rom等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本文所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的方法和技术编程时,本发明还包括计算机本身。
45.最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜