一种实现多业务优先级的系统及方法

文档序号:7823706阅读:318来源:国知局
一种实现多业务优先级的系统及方法
【专利摘要】一种实现多业务优先级的系统及方法,涉及计算机通讯【技术领域】,该系统包括SDN控制器、至少一台VxLAN网关及至少两台VLAN交换机,所述SDN控制器包括北向接口处理模块、IP处理模块、ARP处理模块、拓扑管理模块、互通域管理模块、SDN OpenFlow接口模块;每台VxLAN网关包括配置管理模块、VxLAN OpenFlow接口模块、流表管理模块、隧道封装处理模块、隧道解封装处理模块、应用层业务识别处理模块、VxLAN收发包模块;每台VLAN交换机包括VLAN收发包模块、VLANID模块。本发明对硬件性能没有要求,无需运用专用的通讯处理器,降低了设备成本。
【专利说明】一种实现多业务优先级的系统及方法

【技术领域】
[0001]本发明涉及计算机通讯【技术领域】,具体来讲是一种实现多业务优先级的系统及方法。

【背景技术】
[0002]SDN (software defined networking,软件定义网络)是当前网络通信领域的热门话题,因其隔离交换机控制和转发功能得到各大网络设备厂商的大力追捧。近年来,随着网络技术和应用的迅速发展和网络接入形式的多样化,网络变得越来越复杂,同时,用户服务也越来越复杂。
[0003]根据对我国互联网业务流量的统计,目前在各种业务中P2P业务占用了大量的宽带。网络上出现大量P2P业务造成网络的极度拥塞,给运营商和企业用户带来损失。对于运营商,由于宽带用户在线时间和流量的不断增加,需要对网络进行扩容,导致其网络成本和维护成本增加;对于企业用户,其大量宽带被P2P业务所占用,造成网络繁忙,从而可能无法保证企业用户的关键业务质量。因此,为了保证有限的宽带更好的服务于关键业务和应用。需要识别不同业务,对不同业务采用不同处理顺序进行处理。
[0004]现有技术中出现了增加基于专用通讯处理器的硬件加速构架的专用硬件的网络设备。P2P流量控制处理,QoS处理等任务都是采用专用硬件处理,通过额外的硬件处理上述任务,虽然没有影响到网络设备的业务处理性能,但是这些专用的通讯处理器一般成本比较高,不适合用在中低端设备上。


【发明内容】

[0005]针对现有技术中存在的缺陷,本发明的目的在于提供一种实现多业务优先级的系统及方法,本发明对硬件性能没有要求,无需运用专用的通讯处理器,降低了设备成本。
[0006]为达到以上目的,本发明采取的技术方案是:一种实现多业务优先级的系统,包括SDN控制器、至少一台VxLAN网关及至少两台VLAN交换机,每台VxLAN网关包括:流表管理模块,保存SDN控制器对VxLAN网关上报数据流的处理流程;隧道封装处理模块,用于获取当前上行数据流的处理流程,根据处理流程为当前上行数据流添加VxLAN隧道并添加优先级,形成封装数据包,按照优先级转发上行数据流到三层网络中;使用VxLAN Header头部保留字段存放优先级值;隧道解封装处理模块,用于获取当前下行数据流的处理流程,根据处理流程为当前下行数据流去除VxLAN隧道、并修改VLAN ID,形成解封装数据包,以使得当前下行数据流能够在二层网络中通讯;应用层业务识别处理模块,用于解析VxLAN网关接收到的上行数据包/下行数据包,并识别其业务类型,将其转换为上行数据流/下行数据流,并转发至流表管理模块;所述SDN控制器包括:IP处理模块,用于除ARP数据类型外的其它数据类型的处理;ARP处理模块,用于为SDN控制器代理请求/回复ARP消息,为控制器获得目的用户的拓扑信息;拓扑管理模块,用于为SDN控制器获取全局网络拓扑信息;互通域管理模块,用于接收并读取SDN控制器与所有VxLAN网关之间的通讯配置,转发通讯配置至拓扑管理模块;SDN OpenFlow接口模块,用于接收并处理VxLAN网关上报至SDN控制器的OpenFlow消息;下发SDN控制器的处理数据包至VxLAN网关。
[0007]在上述技术方案的基础上,每台VxLAN网关还包括:配置管理模块,用于读取VxLAN网关程序运行后的参数信息,通过参数获取VxLAN网关需要连接的SDN控制器IP地址和OpenFlow端口 ;VxLAN OpenFlow接口模块,用于在VxLAN网关和SDN控制器之间建立连接;上报VxLAN网关在流表管理模块中未找到的数据流至SDN控制器;接收并处理SDN控制器下发的处理流程;VxLAN收发包模块,用于接收VxLAN网关的每一个网口的数据包;用于将隧道封装后的数据包和解封装后的数据包,按照SDN控制器要求的网口转发;所述SDN控制器还包括北向接口处理模块,用于为SDN控制器接收应用界面下发的不同业务的优先级策略。
[0008]在上述技术方案的基础上,所述VxLAN收发包模块包括VxLAN收包子模块和VxLAN发包子模块;所述VxLAN收包子模块,用于接收VxLAN网关的每一个网口的数据包;所述VxLAN发包子模块,用于将隧道封装后的数据包和解封装后的数据包,按照SDN控制器要求的网口转发,隧道封装后的数据包通过VxLAN网关的WAN 口转发,解封装后的数据包通过VxLAN网关的LAN 口转发;按照优先级进行转发。
[0009]在上述技术方案的基础上,每台VLAN交换机包括:VLAN收发包模块,用于接收VLAN的每一个网口的数据包;用于将接收的上行数据包发送至VxLAN网关;将接收的下行数据包发送至所属VLAN的用户;VLANID模块,用于为VLAN交换机接收的上行数据包添加VLAN头部、下行数据包去除VLAN头部。
[0010]在上述技术方案的基础上,所述VLAN收发包模块包括VLAN收包子模块和VLAN发包子模块;所述VLAN收包子模块,用于接收VLAN的每一个网口的数据包;所述VLAN发包子模块,用于将接收的上行数据包发送至VxLAN网关;将接收的下行数据包发送至所属于VLAN的用户;所述VLAN ID模块包括VLAN ID添加子模块和VLAN ID删除子模块;所述VLANID添加子模块,用于为VLAN交换机接收的上行数据包添加VLAN头部,VLAN头部包括VLANID信息;VLAN ID删除子模块,用于为VLAN交换机接收的下行数据包去除VLAN头部。
[0011]在上述技术方案的基础上,所述拓扑管理模块包括VxLAN网关管理子模块、VLAN交换机管理子模块和用户管理子模块;所述VxLAN网关管理子模块,用于根据通讯配置保存所有VxLAN网关的VxLAN通信信息;所述VLAN交换机管理子模块,用于保存所有VLAN交换机的VLAN通信信息,VLAN通信信息包括VLAN交换机的VLAN ID、互通域VNI值、以及VLAN交换机所属的VxLAN网关的WAN 口 IP地址;所述用户管理子模块,用于保存所有VLAN交换机下的用户信息,用户信息包括:用户的IP地址、MAC地址、用户所属VxLAN网关的WAN口 IP地址。
[0012]本发明还提供一种基于上述系统的实现多业务优先级的方法,包括源用户、源用户使用的第一 VLAN交换机及第一 VxLAN网关;目的用户、目的用户使用的第二 VLAN交换机及第二 VxLAN网关;该方法包括以下步骤:步骤S1.在SDN控制器的互通域管理模块预设所有VxLAN网关的互通域配置,VxLAN网关WAN 口和下一跳路由都设置好IP地址;在北向接口处理模块预设所有的应用层业务优先级;步骤S2.源用户向目的用户发起请求,通过第一VLAN交换机发送数据包至第一 VxLAN网关,同时第一 VLAN交换机为该数据包添加VLAN头部;步骤S3.第一 VxLAN网关的应用层业务识别处理模块解析数据包的应用层业务类型,将其设为APP ID值;通过数据包的五元组和APP ID值组成一条数据流;步骤S4.第一 VxLAN网关的流表管理模块查看该数据流是否存在,若否,则将数据包及APP ID值上报至SDN控制器的SDN OpenFlow接口模块,转到步骤S5 ;若是,则按照该流表中的处理流程进行处理,转到步骤S7 ;步骤S5.SDN OpenFlow接口模块判断数据包是否属于ARP类型,若是,则转发至ARP处理模块,转到步骤S9,若否,则转到步骤S6 ;步骤S6.进行IP流程处理,转到步骤S7 ;步骤S7.第二 VxLAN网关中的应用层业务识别处理模块解析接收到的数据包的优先级值,优先处理优先级高的下行数据包,在第二 VxLAN网关的流表管理模块中进行查询,若查找失败,将数据包上报至SDN控制器,转到步骤S8 ;若查找成功,则按照该流表中的处理流程进行处理,转到步骤S10 ;步骤S8.SDN控制器通过OpenFlow消息告知第二 VxLAN网关解封装VxLAN头部并修改数据包中的VLAN ID值为第二 VLAN交换机的VLAN ID ;SDN控制器通过OpenFlow消息告知第二 VxLAN网关新建该数据流;第二 VxLAN网关的流表管理模块将该数据流添加到流表中,第二 VxLAN网关的隧道解封装处理模块解析所述数据流中的数据包,去掉数据包VxLAN头部并修改VLAN ID值,并将修改后的数据包从LAN 口转发至第二 VLAN交换机,转到步骤S10 ;步骤S9.进行ARP流程处理,转到步骤S10 ;步骤S10.第二VLAN交换机删除数据包的VLAN ID头部,并将其转发至目的用户;步骤S11.目的用户对不同类型数据包进行不同的回复。
[0013]在上述技术方案的基础上,还包括以下步骤:步骤S12.第二VLAN交换机接收目的用户回复的上行数据包,为该数据包添加VLAN头部,发送至第二 VxLAN网关;步骤S13.第二 VxLAN网关通过当前数据包的五元组组成一条数据流,第二 VxLAN网关的流表管理模块查看数据流是否存在,若是,则按照该流处理进行处理,结束;若否,则转到步骤S14 ;步骤S14.第二 VxLAN网关将当前数据包上报至SDN控制器的SDN OpenFlow接口模块,转到步骤S5o
[0014]在上述技术方案的基础上,步骤S6中,所述进行IP流程处理的具体步骤为:步骤S601.判断数据包是否属于IP数据包,若否,则将数据包丢弃;若是,则将转发至IP处理模块,转到步骤S602 ;步骤S602.SDN控制器将获取的数据包中的APP ID值与北向接口处理模块中相关业务的APP ID值进行比较,若相等,则确定该数据包的优先级值,若不相等,则继续比较其他业务的APP ID值;SDN控制器的拓扑管理模块查询源用户的地址是否存在,若是,转到步骤S604,若否,则转到步骤S603 ;步骤S603.拓扑管理模块通过数据包确定源用户所属的第一 VxLAN网关、第一 VLAN交换机及VNI值,保存源用户的用户信息;步骤S604.SDN控制器的拓扑管理模块查询目的用户的地址是否存在,否则转发步骤S9 ;若是,转到步骤S605 ;步骤S605.SDN控制器通过第一 VxLAN网关的配置信息,获取封装VxLAN头部的值以及该数据出去端口的值;SDN OpenF 1 ow接口模块通过OpenF 1 ow消息把封装VxLAN头部的值、出去端口的值、优先级值告知第一 VxLAN网关并新建该数据流,第一 VxLAN网关的流表管理模块将该数据流添加到流表中,第一 VxLAN网关的隧道封装处理模块解析所述数据流中的数据包,给该数据包封装VxLAN头部,并将封装后的数据包从WAN 口转发至第二 VxLAN网关,转到步骤S10。
[0015]在上述技术方案的基础上,步骤S9中,所述进行ARP流程处理的具体步骤为:步骤S901.ARP处理模块判断数据包的ARP数据类型,如果是ARP请求数据包,则转到步骤S903 ;如果是ARP回复数据包,则转到步骤S902 ;步骤S902.SDN控制器的拓扑管理模块查询源用户的地址是否存在,若否,则拓扑管理模块通过ARP回复数据包确定目的用户所属的第二VxLAN网关、第二 VLAN交换机及VNI值,保存目的用户的用户信息并结束;若是,则结束;步骤S903.SDN控制器的拓扑管理模块查询源用户的地址是否存在,若否,则拓扑管理模块通过ARP请求数据包确定源用户所属的第一 VxLAN网关、第一 VLAN交换机及VNI值,保存源用户的用户信息,转到步骤S904 ;若是,则直接转到步骤S904 ;步骤S904.SDN控制器的拓扑管理模块查询目的用户的地址是否存在,若是,则转到步骤S905 ;若否,则转到步骤S906 ;步骤S905.SDN控制器直接代理目的用户,对数据包进行回复并结束;步骤S906.SDN控制器中的ARP处理模块将该ARP请求数据包转换为ARP代理请求数据包,并发送至与第一 VxLAN网关在同一个互通域下的所有VxLAN网关,所有VxLAN网关将该ARP代理请求数据包通过LAN 口转发至VLAN交换机,转到步骤S10。
[0016]本发明的有益效果在于:
[0017]1、本发明中,VxLAN (Virtual extensible LAN,虚拟可扩展局域网)网关接收数据包后通过应用层业务识别处理模块对数据包进行业务识别处理,该模块具有不同业务数据包的格式识别功能,可以快速识别业务数据包类型,不需要专门的硬件来识别业务类型,因此对硬件性能没有要求,无需运用专用的通讯处理器,降低了设备成本。
[0018]2、本发明中通过WEB界面配置优先级策略,因此具有实时操作的灵活性,随时保证关键业务服务质量。
[0019]3、本发明中,将优先级策略值设置在VxLAN Header保留位中,该保留位有4个字节,因此具有可扩展性。

【专利附图】

【附图说明】
[0020]图1为本发明实施例中实现多业务优先级系统的结构框图;
[0021]图2为本发明实施例中SDN控制器的结构框图;
[0022]图3为本发明实施例中VxLAN网关的结构框图;
[0023]图4为本发明实施例中VLAN交换机的结构框图;
[0024]图5为本发明实施例中VxLAN Header的结构框图;
[0025]图6为本发明实施例中实现多业务优先级方法的流程图;
[0026]图7为本发明实施例中实现多业务优先级方法中IP处理流程;
[0027]图8为本发明实施例中实现多业务优先级方法中ARP处理流程。

【具体实施方式】
[0028]以下结合附图及实施例对本发明作进一步详细说明。
[0029]参见图1所示,一种实现多业务优先级的系统,包括SDN控制器、至少一台VxLANGateway (VxLAN 网关)及至少两台 VLAN (Virtual Local Area Network,虚拟局域网)交换机,所述SDN控制器通过OpenFlow协议与每一台VxLAN网关相连,且每一台VxLAN网关分别与至少两台VLAN交换机相连;所述SDN控制器包括北向接口处理模块、IP处理模块、ARP处理模块、拓扑管理模块、互通域管理模块、SDN OpenFlow接口模块;每台VxLAN网关包括配置管理模块、VxLANOpenFlow接口模块、流表管理模块、隧道封装处理模块、隧道解封装处理模块、应用层业务识别处理模块、VxLAN收发包模块;每台VLAN交换机包括VLAN收发包模块、VLANID模块。
[0030]参见图2所示,所述SDN控制器包括IP处理模块,用于除ARP数据类型外的其它数据类型的处理;SDN控制器通过VxLAN网关上报OpenFlow消息,获取该OpenFlow消息的应用层业务类型(将应用层业务识别类型设置为APP ID值),SDN控制器根据北向接口处理模块获取该业务类型的优先级,给上报的数据包下发优先级;同时,为该上行数据包封装VxLAN隧道,为下行数据包去掉隧道的封装以及VLAN ID的修改。根据通讯配置获取所有VxLan网关上报的ARP数据类型之外其它数据类型的处理流程,处理流程包括优先级值(Pr1rity)下发,参见图5所示,VxLAN Header具有8个字节,其中第1个字节和第5,6,7字节已经被使用,第2,3,4,8字节被保留,这里使用第8个字节存放优先级值,将优先级值定义为Pr1rity (1?255);如果不够,在扩用第2,3,4字节。VLAN ID的修改、隧道的封装和隧道的解封装。VxLAN头部包含VxLAN隧道封装的所有数据,包含以太网头、IP头、UDP头及 VxLAN Header ο
[0031]ARP处理模块,用于为SDN控制器代理请求/回复ARP消息(在第一 VxLAN网关的LAN 口重新广播代理查询),为控制器获得目的用户的拓扑信息;具体的,所述ARP处理模块为SDN控制器接收VxLAN网关上报的数据包,在用户拓扑结构中未找到目的用户的时候,SDN控制器给在同一个互通域下的所有VxLAN网关发送请求目的用户MAC地址的广播数据,根据目的用户的回复数据来获取该用户信息。
[0032]拓扑管理模块,用于为SDN控制器获取全局网络拓扑信息;拓扑管理模块包括VxLAN网关管理子模块、VLAN交换机管理子模块和用户管理子模块;VxLAN网关管理子模块、VLAN交换机管理子模块和用户管理子模块通过一个链表相互关联(VxLAN网关结构体下有VLAN交换机结构体,VLAN交换机结构体下有用户结构体),VxLAN网关管理子模块、VLAN交换机管理子模块和用户管理子模块能够通过链表互相查找。所述VxLAN网关管理子模块,用于根据通讯配置保存所有VxLAN网关的VxLAN通信信息;所述VLAN交换机管理子模块,用于保存所有VLAN交换机的VLAN通信信息,VLAN通信信息包括VLAN交换机的VLANID、互通域VNI (VxLANNetwork Identifier,VxLAN网络标识)值、以及VLAN交换机所属的VxLAN网关的WAN 口 IP地址;所述用户管理子模块,用于保存所有VLAN交换机下的用户信息,用户信息包括:用户的IP地址、MAC地址、用户所属VxLAN网关的WAN 口 IP地址。
[0033]互通域管理模块,用于接收并读取SDN控制器与所有VxLAN网关之间的通讯配置,转发通讯配置至拓扑管理模块;具体的,所述互通域管理模块中的通讯配置通过web界面配置或配置文件配置,通讯配置可通过web界面配置,也可以从配置文件配置。通讯配置包括VxLAN网关的IP地址、LAN (Local Area Network,局域网)口值、LAN 口的MAC地址、WAN (Wide Area Network,广域网)口值、WAN 口的 MAC 地址、WAN 口 IP 地址、WAN 口下一跳路由IP地址和下一跳路由MAC地址。通过配置VxLAN网关的WAN 口 IP地址和下一跳路由IP地址能够实现指定VxLAN网关之间的互通。
[0034]SDN OpenFlow接口模块,用于接收并处理VxLANOpenFlow接口模块上报至SDN控制器的OpenFlow消息;下发SDN控制器的处理数据包至VxLANOpenFlow接口模块。
[0035]北向接口处理模块,用于为SDN控制器接收应用界面下发的不同业务的优先级策略。可以是XML (Extensible Markup Language,可扩展性标记语言),也可以是JSON(JavaScript Object Notat1n,JavaScript对象表示法)等数据格式。具体的,所述北向接口处理模块中的通讯配置通过web界面配置,用户通过应用层业务划分优先级。应用层业务可以大致分为视频会议、在线音频、即时通讯、财务软件、邮件收发等。
[0036]参见图3所示,每台VxLAN网关包括流表管理模块,保存SDN控制器对VxLAN网关上报数据流的处理流程;具体的,所述VxLAN网关的流表管理模块保存SDN控制器对VxLAN网关上报流的处理流程时,VxLAN网关接收到上行数据流或下行数据流后,流表管理模块查找当前上行数据流或下行数据流是否存在,若是,确定当前上行数据流或下行数据流不是首次发送,按照当前上行数据流或下行数据流处理流程处理并发送当前上行数据流或下行数据流;否则确定当前上行数据流或下行数据流为首次发送,将当前上行数据流或下行数据流通过VxLANOpenFlow接口模块发送至SDN控制器OpenFlow接口模块。
[0037]隧道封装处理模块,用于VxLAN网关接收到上行数据流后,通过流表管理模块获取当前上行数据流的处理流程,根据处理流程为当前上行数据流添加VxLAN隧道并添加优先级,形成封装数据包,按照优先级转发上行数据流到三层网络中;使用VxLAN Header头部保留字段(最后1个字节)存放优先级值,将优先级值定义为Pr1rity (1?255)。
[0038]隧道解封装处理模块,用于VxLAN网关接收到下行数据流后,VxLAN网关通过流表管理模块获取当前下行数据流的处理流程,根据处理流程为当前下行数据流去除VxLAN隧道、并修改VLAN ID,形成解封数据包,以使得当前下行数据流能够在二层网络中通讯。
[0039]应用层业务识别处理模块,用于解析VxLAN网关接收到的上行数据包/下行数据包,并识别其业务类型,将其转换为上行数据流/下行数据流,并转发至流表管理模块;具体的,VxLAN网关接收到上行数据包后,解析该数据包应用层业务类型(获取APP ID值),并结合五元组原则和APP ID值形成一条上行数据流,转发给流表管理模块;VxLAN网关接收下行数据包后,解析该数据包中应用层业务优先级值(获取Pr1rity值),结合五元组原则和Pr1rity值形成一条下行数据流,按照优先级高的先处理原则,转发优先级高的数据流给流表管理模块。
[0040]配置管理模块,用于读取VxLAN网关程序运行后的参数信息,通过参数获取VxLAN网关需要连接的SDN控制器IP地址和OpenFlow端口。
[0041]VxLANOpenFlow接口模块采用OpenFlow协议标准,用于在VxLAN网关和SDN控制器之间建立连接;上报VxLAN网关在流表管理模块中未找到的数据流至SDN控制器;接收并处理SDN控制器下发的处理流程。
[0042]VxLAN收发包模块,用于接收VxLAN网关的每一个网口的数据包;用于将隧道封装后的数据包和解封装后的数据包,按照SDN控制器要求的网口转发;所述VxLAN收发包模块包括VxLAN收包子模块和VxLAN发包子模块;所述VxLAN收包子模块,用于接收VxLAN网关的每一个网口的数据包;所述VxLAN发包子模块,用于将隧道封装后的数据包和解封装后的数据包,按照SDN控制器要求的网口转发,隧道封装后的数据包通过VxLAN网关的WAN 口转发,解封装后的数据包通过VxLAN网关的LAN 口转发;按照优先级进行转发。
[0043]参见图4所示,每台VLAN交换机包括VLAN收发包模块,用于接收VLAN的每一个网口的数据包;用于将接收的上行数据包发送至VxLAN网关;将接收的下行数据包发送至所属VLAN的用户;VLANID模块,用于为VLAN交换机接收的上行数据包添加VLAN头部、下行数据包去除VLAN头部。优选的,所述VLAN收发包模块包括VLAN收包子模块和VLAN发包子模块;所述VLAN收包子模块,用于接收VLAN的每一个网口的数据包;所述¥^^发包子模块,用于将接收的上行数据包发送至VxLAN网关;将接收的下行数据包发送至所属于VLAN的用户;所述¥^^ ID模块包括VLAN ID添加子模块和VLAN ID删除子模块;所述VLAN ID添加子模块,用于为VLAN交换机接收的上行数据包添加VLAN头部,VLAN头部包括VLAN ID信息;VLAN ID删除子模块,用于为VLAN交换机接收的下行数据包去除VLAN头部。
[0044]参见图6所示,基于上述系统的实现多业务优先级的方法,包括源用户、源用户使用的第一 VLAN交换机及第一 VxLAN网关;目的用户、目的用户使用的第二 VLAN交换机及第二 VxLAN网关。该方法包括以下步骤:
[0045]步骤S1:在SDN控制器的互通域管理模块预设所有VxLAN网关的互通域配置,VxLAN网关WAN 口和下一跳路由都设置好IP地址;在北向接口处理模块预设所有的应用层业务优先级;其中,在SDN控制器的北向接口处理模块预设所有的应用层业务优先级,视频会议优先级为1,视频会议优先级为2、在线音频优先级为3、即时通讯优先级为4、财务软件优先级为5、邮件收发优先级为6。
[0046]步骤S2:源用户向目的用户发起请求时,通过第一 VLAN交换机发送数据包至第一VxLAN网关,同时第一 VLAN交换机为该数据包添加VLAN头部。
[0047]步骤S3:第一 VxLAN网关的应用层业务识别处理模块解析数据包的应用层业务类型,将其设为APP ID值;通过数据包的五元组和APP ID值组成一条数据流;所述五元组包括当前视频会议数据包的源IP地址、目的IP地址、源MAC地址、目的MAC地址和数据类型。
[0048]步骤S4:第一 VxLAN网关的流表管理模块查看该数据流是否存在,若否,则将数据包及APP ID值上报至SDN控制器的SDN OpenFlow接口模块,转到步骤S5 ;若是,则按照该流表中的处理流程进行处理,转到步骤S7。
[0049]步骤S5:SDN OpenFlow接口模块判断数据包是否属于ARP类型,若是,则转发至ARP处理模块,转到步骤S9,若否,则转到步骤S6。
[0050]步骤S6:进行IP流程处理,转到步骤S7。
[0051]步骤S7:第二 VxLAN网关中的应用层业务识别处理模块解析接收到的数据包的优先级值,优先处理优先级高的下行数据包(Pr1rity值越小越优先),在第二 VxLAN网关的流表管理模块中进行查询,若查找失败,将数据包上报至SDN控制器,转到步骤S8 ;若查找成功,则按照该流表中的处理流程进行处理,转到步骤S10。
[0052]步骤S8:第二 VxLAN网关中的OpenFlow接口模块把数据流上报给SDN控制器,SDN控制器通过上报数据包中的VNI的值,在拓扑管理模块中查找到第二 VxLAN网关下的第二VLAN交换机在该VNI下。SDN控制器通过0FPT_PACKET_0UT告知第二 VxLAN网关解封装VxLAN头部并修改数据包中的VLAN ID值为第二 VLAN交换机的VLAN ID ;SDN控制器通过0FPT_FL0ff_M0D告知第二 VxLAN网关新建该数据流;第二 VxLAN网关的OpenFlow接口模块接收0FPT_FL0W_M0D消息后,第二 VxLAN网关的流表管理模块将该数据流添加到流表中,第二 VxLAN网关的隧道解封装处理模块解析所述数据流中的数据包,去掉数据包VxLAN头部并修改VLAN ID值,并将修改后的数据包从LAN 口转发至第二 VLAN交换机,转到步骤S10。
[0053]步骤S9:进行ARP流程处理,转到步骤S10。
[0054]步骤S10:第二 VLAN交换机删除数据包的VLAN ID头部,并将其转发至目的用户;具体的,第二 VLAN交换机的收包模块接收到下行数据包后,转给VLAN ID删除子模块,该模块删除数据包VLAN ID,第二 VLAN交换机的发包模块把该去掉VLAN ID后的数据包发送给目的用户。
[0055]步骤S11:目的用户对不同类型数据包进行不同的回复。
[0056]步骤S12:第二 VLAN交换机接收目的用户回复的上行数据包,为该数据包添加VLAN头部,发送至第二 VxLAN网关;具体的,第二 VLAN交换机的收包模块接收该上行数据包后,转发给VLAN ID添加子模块,该模块给数据包添加VLAN头部,VLAN发包子模块将数据包发送至第二 VxLAN网关。
[0057]步骤S13:第二 VxLAN网关通过当前数据包的五元组组成一条数据流,第二 VxLAN网关的流表管理模块查看数据流是否存在,若是,则按照该流处理进行处理,结束;若否,则转到步骤S14。
[0058]步骤S14:第二 VxLAN网关将当前数据包上报至SDN控制器的SDN OpenFlow接口模块,转到步骤S5。
[0059]参见图7所示,所述进行IP流程处理的具体步骤为:
[0060]步骤S601.判断数据包是否属于IP数据包,若否,则将数据包丢弃;若是,则将转发至IP处理模块,转到步骤S602。
[0061]步骤S602.SDN控制器将获取的数据包中的APP ID值与北向接口处理模块中相关业务的APP ID值进行比较,若相等,则确定该数据包的优先级值,若不相等,则继续比较其他业务的APP ID值;具体的,对当前非ARP类型的IP数据包进行处理,SDN控制器中北向接口处理模块获取视频会议等级为1,把上报的数据包中的APP ID值和北向接口处理模块中的视频会议APP ID (控制器和交换机之间的应用层业务识别APP ID值保持一致)值比较,相等说明该业务为视频会议,确定该数据包优先等级为1,即Pr1rity值为1。不相等继续比较其他业务APP ID,以至所有的业务比较结束,如果还是未找到,确定该APP ID值为默认值0 ;根据优先等级值越小,越优先处理的原则,SDN控制器首先处理视频会议数据包,SDN控制器的拓扑管理模块查询源用户的地址是否存在,若是,转到步骤S604,若否,则转到步骤S603。
[0062]步骤S603.拓扑管理模块通过数据包确定源用户所属的第一 VxLAN网关、第一VLAN交换机及VNI值,保存源用户的用户信息。
[0063]步骤S604.SDN控制器的拓扑管理模块查询目的用户的地址是否存在,否则转发步骤S9 ;若是,转到步骤S605。
[0064]步骤S605.SDN控制器通过第一 VxLAN网关的配置信息,获取封装VxLAN头部的值以及该数据出去端口的值;SDN OpenFlow接口模块通过0FPT_PACKET_0UT把封装VxLAN头部的值、出去端口的值、优先级值告知第一 VxLAN网关,通过0FPT_FL0W_M0D告知第一 VxLAN网关新建该数据流,第一 VxLAN网关的OpenFlow接口模块接收该0FPT_FL0W_M0D消息后,第一 VxLAN网关的流表管理模块将该数据流添加到流表中。接收到0FPT_PACKET_0UT消息后,第一 VxLAN网关的隧道封装处理模块解析所述数据流中的数据包,给该数据包封装VxLAN头部,VxLAN Header中的最后一个字节不再是保存值0,而是Pr1rity值1,并将封装后的数据包从WAN 口转发至第二 VxLAN网关,转到步骤S10。其中,所述获取封装VxLAN头部的值包括以及该数据出去端口的值;其中,VxLAN头部源MAC地址为第一 VxLAN网关WAN 口 MAC地址,目的MAC地址为下一跳路由MAC地址,以太网承载的数据类型为IPv4,IPv4头部源IPv4地址为第一 VxLAN网关WAN 口 IPv4地址,目的IPv4地址为下一跳路由IPv4地址,IPv4承载的数据类型为UDP,UDP源端口和目的端口都为4789,UDP头部后添加8个字节的VxLAN Header,VxLAN Header中的VNI值为第一 VLAN交换机所属的VNI值,VxLANHeader中的优先级值为SDN控制器从北向接口处理模块获取的值,数据出去端口的值为第一 VxLAN 网关 WAN 口值。
[0065]参见图8所示,所述进行ARP流程处理的具体步骤为:
[0066]步骤S901.ARP处理模块判断数据包的ARP数据类型,如果是ARP请求数据包,则转到步骤S903 ;如果是ARP回复数据包,则转到步骤S902。
[0067]步骤S902.SDN控制器的拓扑管理模块查询源用户的地址是否存在,若否,则拓扑管理模块通过ARP回复数据包确定目的用户所属的第二 VxLAN网关、第二 VLAN交换机及VNI值,保存目的用户的用户信息并结束;若是,则结束;具体的,用户管理子模块通过当前ARP回复数据包中的VxLAN网关IP地址确定目的用户所属的第二 VxLAN网关;通过当前ARP回复数据包VLAN头部中的VLAN ID确定目的用户的VLAN和VNI值,保存目的用户的用户信息,结束。
[0068]步骤S903.SDN控制器的拓扑管理模块查询源用户的地址是否存在,若否,则拓扑管理模块通过ARP请求数据包确定源用户所属的第一 VxLAN网关、第一 VLAN交换机及VNI值,保存源用户的用户信息,转到步骤S904 ;若是,则直接转到步骤S904 ;具体的,用户管理子模块通过数据包中的第一 VxLAN网关地址确定源用户所属的第一 VxLAN网关;通过视频会议数据包VLAN头部中的VLAN ID确定源用户的VLAN和VNI值,保存源用户的用户信息。
[0069]步骤S904.SDN控制器的拓扑管理模块查询目的用户的地址是否存在,若是,则转到步骤S905 ;若否,则转到步骤S906。
[0070]步骤S905.SDN控制器直接代理目的用户,对数据包进行回复并结束。
[0071 ] 步骤S906.SDN控制器中的ARP处理模块将该ARP请求数据包转换为ARP代理请求数据包,具体的,将该ARP请求数据包修改成源IP为0.0.0.0,源MAC为VxLAN网关LAN口 MAC,目的IP不变的ARP代理请求数据包。将ARP代理请求数据包发送至与第一 VxLAN网关在同一个互通域下的所有VxLAN网关,所有VxLAN网关将该ARP代理请求数据包通过LAN 口转发至VLAN交换机,转到步骤S10。
[0072]本发明实际使用时的工作方法包括以下步骤:
[0073]A、准备五台操作系统为linux的硬件设备(例如电脑、虚拟机等),五台设备中一台为SDN控制器,两台为VxLAN网关,两台为VLAN交换机。分别为五台设备设置相应的IP地址,VxLAN网关的WAN 口 IP地址和下一跳路由IP地址需要配置好,让VxLAN网关WAN数据包可以发送到三层网络中。
[0074]B、编写VxLAN网关的配置管理模块,编写配置管理模块主要是为VxLAN网关中的VxLANOpenFlow接口模块服务,VxLAN网关通过OpenFlow协议连接到SDN控制器,VxLAN网关需要知道SDN控制器的IP地址以及OpenFlow端口。在现实中为了增加项目灵活性,连接的SDN控制器IP地址不能在程序中写死,可以通过程序运行后的参数进行配置,配置管理模块能够参数,获取SDN控制器IP地址和OpenFlow端口。
[0075]C、编写SDN控制器的SDN OpenFlow接口模块和VxLAN网关的VxLANOpenFlow接口模块,OpenFlow接口能够分离交换机处理数据和转发数据的能力,实现SDN环境。
[0076]D、编写SDN控制器的互通域管理模块,因为一台VLAN交换机下的VLAN ID有4096个值,在现实中需要实现一个VxLAN网关和另一个VxLAN网关通讯,为了隔离每一组的通讯,需要用VNI来区别,用户需要配置互通域。
[0077]互通域的配置能够通过应用层的界面配置互通域,然后把该配置写入SDN控制器的数据库或者通过应用层接口发送互通域配置信息给SDN控制器或者在SDN控制器上创建互通域配置文件。
[0078]E、编写SDN控制器的拓扑管理模块,拓扑管理模块实现SDN控制器具有全局的拓扑信息,拓扑管理模块是通过Hash链表的方式保存拓扑信息。
[0079]F、编写SDN控制器的ARP处理模块,ARP处理模块主要实现获取目的IPv4用户的基本信息。
[0080]G、编写SDN控制器的IP处理模块,IP处理模块主要实现除去ARP类型的其他IP类型数据的处理,主要是告知VxLAN网关如何给IP数据包封装VxLAN头部、确定数据包的优先级、去除VxLAN头部和VLAN ID值的修改。
[0081]H、编写SDN控制器的北向接口处理模块,北向接口处理模块主要实现获取用户设置的不同业务的优先级策略;用户设置接口数据格式可以是多样式,可以是XML,也可以是JSON 等。
[0082]1、编写VxLAN网关中的VxLAN网关流表管理模块。用户的上行数据流量通过5元组和APPID来确定流是否存在;用户的下行数据流通过5元组和Pr1rity来确定流是否存在。可以根据实际的情况自己定,例如OpenFlow协议1.0版本是11元组。
[0083]J、编写VxLAN网关中的隧道封装处理模块和隧道解封装处理模块主要实现将二层网络(IPv4 二层网络或者IPv6 二层网络)数据包发送到三层网络(IPv4三层网络或者IPv6三层网络)中,再逆向把三层网络发送到二层网络中。
[0084]K、编写VxLAN网关中的应用层业务识别模块。用户上行数据包需要解析APP ID值;用户下行数据包需要解析Pr1rity值,通过该值确定业务处理顺序。
[0085]L、编写VxLAN网关中的收发包模块,收发包模块主要实现可以抓取用户的上行和下行数据包,转交数据包给其他模块进行处理。
[0086]本发明不局限于上述实施方式,对于本【技术领域】的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
【权利要求】
1.一种实现多业务优先级的系统,其特征在于,包括SDN控制器、至少一台VxLAN网关及至少两台VLAN交换机, 每台VxLAN网关包括: 流表管理模块,保存SDN控制器对VxLAN网关上报数据流的处理流程; 隧道封装处理模块,用于获取当前上行数据流的处理流程,根据处理流程为当前上行数据流添加VxLAN隧道并添加优先级,形成封装数据包,按照优先级转发上行数据流到三层网络中;使用VxLAN Header头部保留字段存放优先级值; 隧道解封装处理模块,用于获取当前下行数据流的处理流程,根据处理流程为当前下行数据流去除VxLAN隧道、并修改VLAN ID,形成解封装数据包,以使得当前下行数据流能够在二层网络中通讯; 应用层业务识别处理模块,用于解析VxLAN网关接收到的上行数据包/下行数据包,并识别其业务类型,将其转换为上行数据流/下行数据流,并转发至流表管理模块; 所述SDN控制器包括: IP处理模块,用于除ARP数据类型外的其它数据类型的处理; ARP处理模块,用于为SDN控制器代理请求/回复ARP消息,为控制器获得目的用户的拓扑信息; 拓扑管理模块,用于为SDN控制器获取全局网络拓扑信息; 互通域管理模块,用于接收并读取SDN控制器与所有VxLAN网关之间的通讯配置,转发通讯配置至拓扑管理模块; SDN OpenFlow接口模块,用于接收并处理VxLAN网关上报至SDN控制器的OpenFlow消息;下发SDN控制器的处理数据包至VxLAN网关。
2.如权利要求1所述的实现多业务优先级的系统,其特征在于,每台VxLAN网关还包括: 配置管理模块,用于读取VxLAN网关程序运行后的参数信息,通过参数获取VxLAN网关需要连接的SDN控制器IP地址和OpenFlow端口 ; VxLAN OpenFlow接口模块,用于在VxLAN网关和SDN控制器之间建立连接;上报VxLAN网关在流表管理模块中未找到的数据流至SDN控制器;接收并处理SDN控制器下发的处理流程; VxLAN收发包模块,用于接收VxLAN网关的每一个网口的数据包;用于将隧道封装后的数据包和解封装后的数据包,按照SDN控制器要求的网口转发; 所述SDN控制器还包括北向接口处理模块,用于为SDN控制器接收应用界面下发的不同业务的优先级策略。
3.如权利要求2所述的实现多业务优先级的系统,其特征在于:所述VxLAN收发包模块包括VxLAN收包子模块和VxLAN发包子模块; 所述VxLAN收包子模块,用于接收VxLAN网关的每一个网口的数据包; 所述VxLAN发包子模块,用于将隧道封装后的数据包和解封装后的数据包,按照SDN控制器要求的网口转发,隧道封装后的数据包通过VxLAN网关的WAN 口转发,解封装后的数据包通过VxLAN网关的LAN 口转发;按照优先级进行转发。
4.如权利要求1所述的实现多业务优先级的系统,其特征在于,每台VLAN交换机包括: VLAN收发包模块,用于接收VLAN的每一个网口的数据包;用于将接收的上行数据包发送至VxLAN网关;将接收的下行数据包发送至所属VLAN的用户; VLANID模块,用于为VLAN交换机接收的上行数据包添加VLAN头部、下行数据包去除VLAN头部。
5.如权利要求4所述的实现多业务优先级的系统,其特征在于:所述VLAN收发包模块包括VLAN收包子模块和VLAN发包子模块; 所述VLAN收包子模块,用于接收VLAN的每一个网口的数据包; 所述VLAN发包子模块,用于将接收的上行数据包发送至VxLAN网关;将接收的下行数据包发送至所属于VLAN的用户; 所述VLAN ID模块包括VLAN ID添加子模块和VLAN ID删除子模块; 所述VLAN ID添加子模块,用于为VLAN交换机接收的上行数据包添加VLAN头部,VLAN头部包括VLAN ID信息; VLAN ID删除子模块,用于为VLAN交换机接收的下行数据包去除VLAN头部。
6.如权利要求1所述的实现多业务优先级的系统,其特征在于: 所述拓扑管理模块包括VxLAN网关管理子模块、VLAN交换机管理子模块和用户管理子丰吴块; 所述VxLAN网关管理子模块,用于根据通讯配置保存所有VxLAN网关的VxLAN通信信息; 所述VLAN交换机管理子模块,用于保存所有VLAN交换机的VLAN通信信息,VLAN通信信息包括VLAN交换机的VLAN ID、互通域VNI值、以及VLAN交换机所属的VxLAN网关的WAN口 IP地址; 所述用户管理子模块,用于保存所有VLAN交换机下的用户信息,用户信息包括:用户的IP地址、MAC地址、用户所属VxLAN网关的WAN 口 IP地址。
7.基于权利要求1所述系统的实现多业务优先级的方法,其特征在于,包括源用户、源用户使用的第一 VLAN交换机及第一 VxLAN网关;目的用户、目的用户使用的第二 VLAN交换机及第二 VxLAN网关; 该方法包括以下步骤: 步骤S1.在SDN控制器的互通域管理模块预设所有VxLAN网关的互通域配置,VxLAN网关WAN 口和下一跳路由都设置好IP地址;在北向接口处理模块预设所有的应用层业务优先级; 步骤S2.源用户向目的用户发起请求,通过第一 VLAN交换机发送数据包至第一 VxLAN网关,同时第一 VLAN交换机为该数据包添加VLAN头部; 步骤S3.第一 VxLAN网关的应用层业务识别处理模块解析数据包的应用层业务类型,将其设为APP ID值;通过数据包的五元组和APP ID值组成一条数据流; 步骤S4.第一 VxLAN网关的流表管理模块查看该数据流是否存在,若否,则将数据包及APP ID值上报至SDN控制器的SDN OpenFlow接口模块,转到步骤S5 ;若是,则按照该流表中的处理流程进行处理,转到步骤S7 ; 步骤S5.SDN OpenFlow接口模块判断数据包是否属于ARP类型,若是,则转发至ARP处理模块,转到步骤S9,若否,则转到步骤S6 ; 步骤S6.进行IP流程处理,转到步骤S7 ; 步骤S7.第二 VxLAN网关中的应用层业务识别处理模块解析接收到的数据包的优先级值,优先处理优先级高的下行数据包,在第二 VxLAN网关的流表管理模块中进行查询,若查找失败,将数据包上报至SDN控制器,转到步骤S8 ;若查找成功,则按照该流表中的处理流程进行处理,转到步骤SlO ; 步骤S8.SDN控制器通过OpenFlow消息告知第二 VxLAN网关解封装VxLAN头部并修改数据包中的VLAN ID值为第二 VLAN交换机的VLAN ID ;SDN控制器通过OpenFlow消息告知第二 VxLAN网关新建该数据流;第二 VxLAN网关的流表管理模块将该数据流添加到流表中,第二 VxLAN网关的隧道解封装处理模块解析所述数据流中的数据包,去掉数据包VxLAN头部并修改VLAN ID值,并将修改后的数据包从LAN 口转发至第二 VLAN交换机,转到步骤SlO ; 步骤S9.进行ARP流程处理,转到步骤SlO ; 步骤S10.第二 VLAN交换机删除数据包的VLAN ID头部,并将其转发至目的用户; 步骤Sll.目的用户对不同类型数据包进行不同的回复。
8.如权利要求7所述的实现多业务优先级的方法,其特征在于,还包括以下步骤: 步骤S12.第二 VLAN交换机接收目的用户回复的上行数据包,为该数据包添加VLAN头部,发送至第二 VxLAN网关; 步骤S13.第二 VxLAN网关通过当前数据包的五元组组成一条数据流,第二 VxLAN网关的流表管理模块查看数据流是否存在,若是,则按照该流处理进行处理,结束;若否,则转到步骤S14 ; 步骤S14.第二 VxLAN网关将当前数据包上报至SDN控制器的SDN OpenFlow接口模块,转到步骤S5。
9.如权利要求7所述的实现多业务优先级的方法,其特征在于,步骤S6中,所述进行IP流程处理的具体步骤为: 步骤S601.判断数据包是否属于IP数据包,若否,则将数据包丢弃;若是,则将转发至IP处理模块,转到步骤S602 ; 步骤S602.SDN控制器将获取的数据包中的APP ID值与北向接口处理模块中相关业务的APP ID值进行比较,若相等,则确定该数据包的优先级值,若不相等,则继续比较其他业务的APP ID值;SDN控制器的拓扑管理模块查询源用户的地址是否存在,若是,转到步骤S604,若否,则转到步骤S603 ; 步骤S603.拓扑管理模块通过数据包确定源用户所属的第一 VxLAN网关、第一 VLAN交换机及VNI值,保存源用户的用户信息; 步骤S604.SDN控制器的拓扑管理模块查询目的用户的地址是否存在,否则转发步骤S9 ;若是,转到步骤S605 ; 步骤S605.SDN控制器通过第一 VxLAN网关的配置信息,获取封装VxLAN头部的值以及该数据出去端口的值;SDN Op enF I ow接口模块通过Op enF I ow消息把封装VxLAN头部的值、出去端口的值、优先级值告知第一 VxLAN网关并新建该数据流,第一 VxLAN网关的流表管理模块将该数据流添加到流表中,第一 VxLAN网关的隧道封装处理模块解析所述数据流中的数据包,给该数据包封装VxLAN头部,并将封装后的数据包从WAN 口转发至第二 VxLAN网关,转到步骤SlO。
10.如权利要求7所述的实现多业务优先级的方法,其特征在于,步骤S9中,所述进行ARP流程处理的具体步骤为: 步骤S901.ARP处理模块判断数据包的ARP数据类型,如果是ARP请求数据包,则转到步骤S903 ;如果是ARP回复数据包,则转到步骤S902 ; 步骤S902.SDN控制器的拓扑管理模块查询源用户的地址是否存在,若否,则拓扑管理模块通过ARP回复数据包确定目的用户所属的第二 VxLAN网关、第二 VLAN交换机及VNI值,保存目的用户的用户信息并结束;若是,则结束; 步骤S903.SDN控制器的拓扑管理模块查询源用户的地址是否存在,若否,则拓扑管理模块通过ARP请求数据包确定源用户所属的第一 VxLAN网关、第一 VLAN交换机及VNI值,保存源用户的用户信息,转到步骤S904 ;若是,则直接转到步骤S904 ; 步骤S904.SDN控制器的拓扑管理模块查询目的用户的地址是否存在,若是,则转到步骤S905 ;若否,则转到步骤S906 ; 步骤S905.SDN控制器直接代理目的用户,对数据包进行回复并结束; 步骤S906.SDN控制器中的ARP处理模块将该ARP请求数据包转换为ARP代理请求数据包,并发送至与第一 VxLAN网关在同一个互通域下的所有VxLAN网关,所有VxLAN网关将该ARP代理请求数据包通过LAN 口转发至VLAN交换机,转到步骤SlO。
【文档编号】H04L12/46GK104468384SQ201410807954
【公开日】2015年3月25日 申请日期:2014年12月22日 优先权日:2014年12月22日
【发明者】余平, 孙雷, 姚晶, 陈斌, 柴卓原 申请人:武汉绿色网络信息服务有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1