一种基于可编程交换机的SDN网络配置管理方法转让专利

申请号 : CN201810223605.5

文献号 : CN110290092A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 俞雪婷李栋李志博曾鹏于海斌

申请人 : 中国科学院沈阳自动化研究所

摘要 :

本发明公开了一种基于可编程交换机的SDN网络配置管理方法。本发明方法包括:终端设备向控制器发送数据流信息和传输需求;控制器根据数据流信息和传输需求,制定数据流传输策略,并转化成数据流传输路径上各交换机的配置信息和边缘设备的转换信息,发送给各交换机和边缘设备;边缘设备根据控制器发送的转换信息,对数据流的数据包头进行处理;交换机根据控制器发送的配置信息,对数据流进行处理。通过本发明的方法,使SDN网络控制器能够通过配置实现交换机功能的更改,使SDN网络能够真正实现完全的软件化配置管理,最大限度的发挥软件定义网络的优势。

权利要求 :

1.一种基于可编程交换机的SDN网络配置管理方法,其特征在于,包括:终端设备向控制器发送数据流信息和传输需求;

控制器根据数据流传输策略,将数据流信息和传输需求转化成数据流传输路径上各交换机的配置信息和边缘设备的转换信息,分别发送给各交换机和边缘设备;

边缘设备根据控制器发送的转换信息,对数据流的数据包头进行处理;交换机根据控制器发送的配置信息,对数据流进行处理。

2.根据权利要求1所述的一种基于可编程交换机的SDN网络配置管理方法,其特征在于,所述数据流信息包括数据帧协议格式和包头信息;所述传输需求包括时延要求、时延抖动要求、可靠性要求、带宽要求。

3.根据权利要求1所述的一种基于可编程交换机的SDN网络配置管理方法,其特征在于,所述交换机的配置信息包括:包头解析配置信息、匹配-动作配置信息和队列调度配置信息。

4.根据权利要求1所述的一种基于可编程交换机的SDN网络配置管理方法,其特征在于,所述控制器根据数据流信息和传输需求,根据数据流传输策略转化成数据流传输路径上各交换机的配置信息和边缘设备的转换信息,包括以下步骤:控制器将数据流信息和传输需求二者的数据流传输策略映射到传输路径上各交换机和边缘设备上,形成各设备的子策略,并生成各设备子策略的配置信息或转换信息;

所述数据流传输策略包括数据流特征、设定的包头解析策略、路径选择,带宽分配,优先级分配。

5.根据权利要求1所述的一种基于可编程交换机的SDN网络配置管理方法,其特征在于,所述边缘设备根据控制器发送的转换信息,对数据流的数据包头进行处理,包括:边缘设备接收控制器发送的转换信息,并保存在转换表中;

当转换信息的数据流传入时,识别数据流特征,根据数据流特征在转换表中查找匹配表项的解析ID,将所述解析ID添加到数据包头中;

当数据流传出时,识别数据包解析ID,将所述解析ID从数据包头中删除。

6.根据权利要求5所述的一种基于可编程交换机的SDN网络配置管理方法,其特征在于,所述转换表,包括:数据流特征,用于对数据包所属的数据流进行识别;

解析ID,用于区分数据流的包头解析和信息提取策略。

7.根据权利要求1所述的一种基于可编程交换机的SDN网络配置管理方法,其特征在于,所述交换机根据控制器发送的配置信息,对数据流进行处理,包括:交换机接收控制器发送的配置信息,将包头解析配置信息保存在解析表中,匹配-动作配置信息保存在匹配-动作表和队列调度中,按照队列调度配置信息配置队列调度单元;

交换机的包头解析模块接收到数据包时,读取数据包的解析ID,根据所述数据包的解析ID在解析表中查找匹配的表项,按照匹配表项中的解析元组对数据包进行解析和信息提取,将提取到的所述包头信息作为匹配元组信息,发送给匹配-动作模块;

交换机的匹配-动作模块根据包头解析模块发送来的所述匹配元组信息,在匹配-动作表中查找匹配的表项,按照匹配表项中的动作内容对数据包进行处理后缓存发送端口队列中;

交换机的队列调度模块将缓存在各队列中的发送数据按照队列配置的调度方式调度后从交换机发出。

8.根据权利要求7所述的一种基于可编程交换机的SDN网络配置管理方法,其特征在于,所述解析表,包括:解析ID,用于区分数据流的包头解析和信息提取策略;

解析元组,用于指示包头解析和信息提取的内容;解析元组由一个或多个解析元素组成,每个解析元素表示包头中的一项信息,每个解析元素通过TLV(Type,length,Value)格式表达,Type表示解析元组名称,Length表示解析元组长度,Value表示解析元组在包头的位置。

9.根据权利要求7所述的一种基于可编程交换机的SDN网络配置管理方法,其特征在于,所述匹配-动作表,包括:匹配元组,匹配元组中的元素应该与解析元组中元素对应;

动作,对数据包的操作,包括输出到队列,输出到端口,包头修改,丢弃、输出到控制器。

说明书 :

一种基于可编程交换机的SDN网络配置管理方法

技术领域

[0001] 本发明涉及网络技术领域,更具体的说是涉及一种基于可编程交换机的SDN网络配置管理方法。

背景技术

[0002] 随着SDN技术的发展,传统SDN的协议,如OpenFlow在逐渐的完善演化过程中,匹配元组和动作类型不断的增加。交换机在支持OpenFlow协议的版本更新上,面临着和传统交换设备厂商同样的困境——OpenFlow并不支持弹性地更改匹配元组和动作类型。随着网络中新的协议不断出现,OpenFlow协议也必将变得越来越臃肿,匹配-动作表的扩展变得越来越困难。因此,让数据转发平面也具有可编程能力,让数据包的解析和转发流程也能通过编程控制,打破了硬件设备对数据转发平面的限制,成为新一代SDN技术发展的趋势。
[0003] 以支持P4语言为代表的可编程交换机为用户提供了这种能力,此类交换机采用匹配-动作模型,通过可编程的解析器和匹配-动作表,使交换机能够通过软件化的方式的进行功能的更新。但是,目前控制层对可编程交换机的控制主要是通过南向接口调用P4语言编译生成的API进行。由于已经编译完成的交换机功能和接口已经确定,实际上对于控制层而言,交换机的功能仍是固定的,运行过程总,控制器不能通过配置实现交换机功能的更改,因此并没有最大程度的实现全软件化的控制优势。通过本发明方法,使控制器能够通过配置的方式完全的实现对交换机的功能更改,可以最大限度的发挥网络软件定义的优势,使网络真正可以实现完全的软件化。

发明内容

[0004] 为解决上述技术问题,本发明提供一种基于可编程交换机的SDN网络配置管理方法。
[0005] 本发明采用技术方案如下:一种基于可编程交换机的SDN网络配置管理方法,包括:
[0006] 终端设备向控制器发送数据流信息和传输需求;
[0007] 控制器根据数据流传输策略,将数据流信息和传输需求转化成数据流传输路径上各交换机的配置信息和边缘设备的转换信息,分别发送给各交换机和边缘设备;
[0008] 边缘设备根据控制器发送的转换信息,对数据流的数据包头进行处理;交换机根据控制器发送的配置信息,对数据流进行处理。
[0009] 所述数据流信息包括数据帧协议格式和包头信息;所述传输需求包括时延要求、时延抖动要求、可靠性要求、带宽要求。
[0010] 所述交换机的配置信息包括:包头解析配置信息、匹配-动作配置信息和队列调度配置信息。
[0011] 所述控制器根据数据流信息和传输需求,根据数据流传输策略转化成数据流传输路径上各交换机的配置信息和边缘设备的转换信息,包括以下步骤:
[0012] 控制器将数据流信息和传输需求二者的数据流传输策略映射到传输路径上各交换机和边缘设备上,形成各设备的子策略,并生成各设备子策略的配置信息或转换信息;
[0013] 所述数据流传输策略包括数据流特征、设定的包头解析策略、路径选择,带宽分配,优先级分配。
[0014] 所述边缘设备根据控制器发送的转换信息,对数据流的数据包头进行处理,包括:
[0015] 边缘设备接收控制器发送的转换信息,并保存在转换表中;
[0016] 当转换信息的数据流传入时,识别数据流特征,根据数据流特征在转换表中查找匹配表项的解析ID,将所述解析ID添加到数据包头中;
[0017] 当数据流传出时,识别数据包解析ID,将所述解析ID从数据包头中删除。
[0018] 所述转换表,包括:
[0019] 数据流特征,用于对数据包所属的数据流进行识别;
[0020] 解析ID,用于区分数据流的包头解析和信息提取策略。
[0021] 所述交换机根据控制器发送的配置信息,对数据流进行处理,包括:
[0022] 交换机接收控制器发送的配置信息,将包头解析配置信息保存在解析表中,匹配-动作配置信息保存在匹配-动作表和队列调度中,按照队列调度配置信息配置队列调度单元;
[0023] 交换机的包头解析模块接收到数据包时,读取数据包的解析ID,根据所述数据包的解析ID在解析表中查找匹配的表项,按照匹配表项中的解析元组对数据包进行解析和信息提取,将提取到的所述包头信息作为匹配元组信息,发送给匹配-动作模块;
[0024] 交换机的匹配-动作模块根据包头解析模块发送来的所述匹配元组信息,在匹配-动作表中查找匹配的表项,按照匹配表项中的动作内容对数据包进行处理后缓存发送端口队列中;
[0025] 交换机的队列调度模块将缓存在各队列中的发送数据按照队列配置的调度方式调度后从交换机发出。
[0026] 所述解析表,包括:
[0027] 解析ID,用于区分数据流的包头解析和信息提取策略;
[0028] 解析元组,用于指示包头解析和信息提取的内容;解析元组由一个或多个解析元素组成,每个解析元素表示包头中的一项信息,每个解析元素通过TLV(Type,length,Value)格式表达,Type表示解析元组名称,Length表示解析元组长度,Value表示解析元组在包头的位置。
[0029] 所述匹配-动作表,包括:
[0030] 匹配元组,匹配元组中的元素应该与解析元组中元素对应;
[0031] 动作,对数据包的操作,包括输出到队列,输出到端口,包头修改,丢弃、输出到控制器。
[0032] 本发明具有如下有益效果和优点:
[0033] 1.由解析表指定解析元组中元素的含义和位置,交换机和边缘设备无需预置协议解析功能即可实现数据包的解析;
[0034] 2.可支持数据包任意位置的信息提取,包括数据包头及其应用数据内容。
[0035] 3.控制器可通过配置解析表,使解析模块能够进行在线的数据包解析内容的修改附图说明
[0036] 图1为本发明一种基于可编程交换机的SDN网络的一个实施例的示意图;
[0037] 图2为本发明一种基于可编程交换机的SDN网络配置管理方法的一个实施例的流程示意图;
[0038] 图3为本发明SDN网络边缘设备配置管理方法的一个实施例的流程示意图;
[0039] 图4a为本发明转换表的示意图;
[0040] 图4b为本发明解析表的示意图;
[0041] 图5为本发明SDN网络交换机配置管理方法的一个实施例的流程示意图。
[0042] 图6为本发明一种基于可编程交换机的SDN网络数据传输过程的一个实施例的示意图。

具体实施方式

[0043] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0044] 参见图1,示出了本发明一种基于可编程交换机的SDN网络的一个实施例的示意图,SDN整体网络系统分为两个层面,控制层和数据层。
[0045] 控制层由一个或多个分布式的控制器组成,根据终端设备的传输需求,制定数据流的传输策略,将传输策略转换成控制域内的边缘设备的配置(如解析ID的分配)和数据层设备的配置(如解析配置信息的制定、匹配-动作配置信息的制定);
[0046] 数据层由多个可编程SDN交换机、边缘设备和终端设备组成,其中,可编程SDN交换机接收管理器的解析配置信息和匹配-动作配置信息,根据解析配置信息对数据包进行解析和包头信息提取,根据匹配-动作配置信息对数据包进行操作处理。边缘设备负责数据流转换,用于在相应数据流的包头中添加或删除管理器分配的解析ID标签。终端设备是网络数据的产生和接收终端,用于将传输需求发送到控制器,和交换机数据的发送和接收。
[0047] 参见图2,一种基于可编程交换机的SDN网络配置管理方法的一个实施例的流程示意图,该方法包括:
[0048] 步骤201:终端设备向控制器发送数据流信息和传输需求;
[0049] 其中,数据流信息可以包括数据帧协议格式和包头信息,如MAC目的地址(Destination Mac Address)、MAC源地址(Source Mac Address)、协议类型(Type)、优先级(Priority Code Point)、Vlan号(VLAN ID)、IP源地址(Source Ip Address)、IP目的地址(Destination Ip Address)、DSCP(Dscp)、协议字段(Protocol)、源端口(Source Port)、目的端口(Destination Port)等,传输需求可以包括时延要求、时延抖动要求、可靠性要求(如丢包率等)、带宽要求等。
[0050] 步骤202:控制器根据数据流信息和传输需求,制定数据流传输策略,并转化成数据流传输路径上各交换机的配置信息和边缘设备的转换信息,发送给各交换机和边缘设备;
[0051] 制定的数据流传输策略为该数据流的整体策略,包括数据流特征、包头解析策略、路径选择,带宽分配,优先级分配等,控制器需要将数据流的整体策略映射到传输路径上各交换机和边缘设备上,形成各设备的子策略,并生成各设备子策略的配置信息或转换信息。
[0052] 其中,交换机的配置信息包括:包头解析配置信息、匹配-动作配置信息和队列调度配置信息。
[0053] 步骤203:边缘设备根据控制器发送的转换信息,对数据流的数据包头进行处理;
[0054] 如图3所示,该过程可以包括:
[0055] 步骤301:边缘设备接收控制器发送的转换信息,并保存在转换表中;
[0056] 转换表参数包括数据流特征和解析ID。数据流特征用于对数据包所属的数据流进行识别,可以是MAC目的地址(Destination Mac Address)、MAC源地址(Source Mac Address)、协议类型(Type)、优先级(Priority Code Point)、Vlan号(VLAN ID)、IP源地址(Source Ip Address)、IP目的地址(Destination Ip Address)、DSCP(Dscp)、协议字段(Protocol)、源端口(Source Port)、目的端口(Destination Port)等数据包头内容的组合。
[0057] 步骤302:当数据流传入时,识别数据流特征,根据数据流特征在转换表中查找匹配表项的解析ID,将所述解析ID添加到数据包头中;其中,转换表包括数据流特征、解析ID。
[0058] 解析ID在包头中的位置可以为包头中的任意位置,如包头前2byte,也可以是数据包的固定位置,如MAC层中vlan。但该位置需要边缘设备和交换机约定统一。解析ID将作为后续交换机的包头解析策略的查找标识,通常每个解析ID代表一种类型协议数据包头的提取方式,如采用了L4层TCP协议的分配解析ID 1,用L3IP协议的,分配解析ID 2,仅用L2层进行转发的分配解析ID3,需要L2层VLAN转发的分配解析ID 4等。
[0059] 步骤303:当数据流传出时,识别数据包解析ID,将所述解析ID从数据包头中删除;
[0060] 步骤204:交换机根据控制器发送的配置信息,对数据流进行处理;
[0061] 如图5所示,该过程可以包括:
[0062] 步骤501:交换机接收控制器发送的配置信息,将包头解析配置信息保存在解析表中,匹配-动作配置信息保存在匹配-动作表和队列调度中,按照队列调度配置信息配置队列调度单元。
[0063] 参见图4a,示出了解析表的示意图。解析表参数包括,解析ID和解析元组,其中:
[0064] 解析ID,用于区分数据流的包头解析和信息提取策略。
[0065] 解析元组,用于指示包头解析和信息提取的内容。解析元组由一个或多个解析元素组成,每个解析元素表示包头中的一项信息,如目的IP地址就是一个解析元素。每个解析元素通过TLV(Type,length,Value)格式表达,Type表示解析元组名称,Length表示解析元组长度,Value表示解析元组在包头的位置(偏移量)。
[0066] 参见图4b,示出了匹配-动作表的示意图。每条表项包括:匹配元组和动作其中,匹配元组中的元素应该与解析元组中元素对应。
[0067] 步骤502:接收到数据包时,读取数据包的解析ID,根据所述数据包的解析ID在解析表中查找匹配的表项,按照匹配表项中的解析元组对数据包进行解析和信息提取,将提取到的所述包头信息作为匹配元组信息,发送给匹配-动作模块。
[0068] 其中,当交换机根据解析ID查找到匹配的表项后,依次根据解析元组中每个元素的TLV表达中的偏移量和长度,在包头中找到指定数据,提取该数据保存为对应名称的数值。
[0069] 步骤503:根据包头解析模块发送来的所述匹配元组信息,在匹配-动作表中查找匹配的表项,按照匹配表项中的动作内容对数据包进行处理后缓存发送端口队列中。
[0070] 步骤504:将缓存在各队列中的发送数据按照队列配置的调度方式调度后从交换机发出。
[0071] 为了清楚的介绍本发明一种基于可编程交换机的SDN网络配置管理方法,下面以一个具体的实施例进行详细的介绍,参见图6,一种基于可编程交换机的SDN网络数据传输过程的一个实施例的示意图。
[0072] 在网络配置阶段,终端设备产生的原始数据包如图6所示。终端设备会将新产生的数据包连同数据传输的需求发送给控制器。控制器接收到新的数据流信息后,为数据流分配传输策略,并转化成数据流传输路径上各交换机的配置信息和边缘设备的转换信息,发送给各交换机和边缘设备;边缘设备提取控制器发来的转换信息形成如图6所示的转换表;交换机提取控制器发来的配置信息形成如图6所示的解析表和匹配-动作表;
[0073] 数据传输阶段,边缘设备接收到原始数据包,提取全部的包头特征,如图6中所示的Destination Mac Address、Source Mac Address、Type、VLAN ID、Source Ip Address、Destination Ip Address、Dscp、Protocol、Source Port、Destination Port,然后将这些包头特征与如图6所示的转换表的数据流特征匹配,查找到第二个表项与之匹配,该表项的解析ID为1,则将1作为解析ID标签,写到MAC层包头的前面行程转换数据包,然后将转换数据包发给交换机。
[0074] 当交换机接收转换数据包后,首先提取包头的解析ID,根据解析ID在解析表中查找匹配的表项,如图6所示,包头的解析ID为1,在解析表的解析ID中找到为1的表项,然后依次根据表项中解析元组中每个元素的TLV表达中的偏移量和长度,在包头中找到指定数据,提取该数据保存为对应名称的数值。如图6所示,解析ID为1的解析元组为{Destination Mac Address,6,8};{Source Mac Address,6,14};{Source Ip Address,4,26};{Destination Ip Address,4,30},依次提取数据包头偏移量为8,长度为6byte的数据,作为Destination Mac Address;数据包头偏移量为14,长度为6byte的数据,作为Source Mac Address;数据包头偏移量为26,长度为4byte的数据,作为Source Mac Address;数据包头偏移量为30,长度为4byte的数据,作为Destination IP Address;将这些解析元组提取信息与解析ID为1的匹配动作表中的匹配元组中各表项匹配,查找到匹配的表项(如图6所示第一个表项),该表项action中动作为Output到port1的queue1。则交换机将按照action动作,将数据包发送到交换机Port1的队列1中,队列调度单元调度后发送给后续交换机[0075] 后续交换机也采样相同的方法进行数据包的解析和转发。
[0076] 需要说明的是,当数据流的传输方式不同或者传输协议不同时,包头解析策略会不同,对应到分配的转换表和解析表的解析ID和解析元组会是不同的表项。如图6所示转换表的第一个表项以及解析表中解析ID为2的表项。相应的,不同解析策略对应的匹配-动作表的匹配元组也是不同的,如图6解析ID 2的匹配动作表。
[0077] 本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
[0078] 对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。