软件定义网络的表项生成方法和装置以及报文转发方法与流程

文档序号:12600488阅读:264来源:国知局
软件定义网络的表项生成方法和装置以及报文转发方法与流程

本申请涉及流量转发技术领域,尤其涉及软件定义网络SDN(Software Defined Network,软件定义网络)的表项生成方法和装置以及报文转发方法。



背景技术:

报文从源站点穿越网络到达目的站点的过程,本质上就是报文寻路转发的过程,中间经历的转发节点,可以是路由器、交换机。非直连的网络拓扑内的源站点与目的站点之间理论上可以存在多条转发路径,但是只能在这多条转发路径选择其中一个作为源站点与目的站点之间的转发路径,用以传输报文。

以执行三层转发的IP(internet protocol)网络为例,两台路由器之间存在不同的转发路径,根据动态路由协议以路由器链路参数(如链路类型、带宽等)以一条开销(cost)最低的最短路径生成一条最优路由或者以几个开销相同的路径生成等价路由,用于两台路由器之间的寻址转发。但由于这些转发路径的生成过程中不考虑业务流量本身特征,即使业务优先级在转发中有相应处理的,但是转发路径上的路由器设备之间生成的路由表与业务流的流量速率无关。

同样的,其他三层转发网络或二层转发网络中,网络设备的转发表的生成与业务流的流量速率无关。



技术实现要素:

本申请实施例的目的在于提供一种软件定义网络的表项生成方法和装置以及报文转发方法,在SDN网络内根据业务流各转发路径流量速率生成流表项,报文的入口和出口节点可根据报文所属业务流的流量速率变化在业务 流的多个转发路径上选路转发。

为实现上述目的,本发明实施例提供了一种转发表项生成方法,应用于软件定义网络SDN控制器,该方法包括:根据SDN网络拓扑为业务流计算多个转发路径;确定每个转发路径的最大流量速率以及流量速率标识;根据业务流的报文特征信息,每个转发路径的流量速率标识以及入口节点在每个转发路径上的出端口,生成入口流表项;根据业务流的报文特征信息,每个转发路径的流量速率标识以及各中间节点在每个转发路径上的出端口,为每个中间节点生成中间流表项;根据业务流的报文特征信息以及出口节点发送业务流的出端口,生成一个出口流表项;向入口节点发送生成的入口流表项以及各转发路径的最大流量速率及流量速率标识,向每个转发路径上的中间节点发送对应的中间流表项,向出口节点发送出口流表项。

为实现上述目的,本发明实施例还提供了一种转发表项生成装置,应用于软件定义网络SDN控制器,该装置包括:转发路径计算单元,根据SDN网络拓扑为业务流计算多个转发路径;速率标识设定单元,确定每个转发路径的最大流量速率以及流量速率标识;流表项生成单元,根据业务流的报文特征信息,每个转发路径的流量速率标识以及每个转发路径上入口节点的出端口,生成入口流表项;根据业务流的报文特征信息,每个转发路径的流量速率标识以及每个转发路径上各中间节点的出端口,为每个中间节点生成中间流表项;根据业务流的报文特征信息以及出口节点发送业务流的出端口,生成一个出口流表项;发送单元,向入口节点发送生成的入口流表项以及各转发路径的最大流量速率及流量速率标识,向每个转发路径上的中间节点发送对应的中间流表项,向出口节点发送出口流表项。

本发明实施还提供了一种软件定义网络SDN模型下的流量转发方法,其中,入口节点,接收报文,从报文所属业务流的各转发路径的流量速率标识中选择一个需要携带的流量速率标识;根据报文的报文特征信息以及所选流量速率标识在本地流表中进行查找;根据匹配的入口流表项为报文添加所选流量速率标识并通过匹配的入口流表项中的出端口发送携带了所选流量速率标识的报文;

中间节点,接收携带所选流量速率标识的报文,根据报文的报文特征信息以及携带的所选流量速率标识在本地流表中进行查找;通过匹配的中间流表项中的出端口发送携带所选流量速率标识的报文;出口节点,接收携带所选流量速率标识的报文,根据报文的报文特征信息在本地流表中进行查找;通过匹配的出口流表项的出端口发送剥除所选流量速率标识的报文。

可见,本申请实施例不仅能根据业务流各转发路径流量速率生成流表项,还使得业务流的转发路径上的入口节点和中间节点在SDN网络内能够基于这些表项和业务流的流量执行选路转发,提高了SDN网络内链路带宽利用率和流量转发成功率。

附图说明

图1为本发明实施例提供的SDN控制器生成转发表项的流程图;

图2为本发明实施例提供的SDN网络示意图;

图3为图2中SDN网络内的SDN交换设备根据流表项为业务流选择不同转发路径的处理过程图;

图4为本发明实施例提供的SDN控制器的组成示意图;

图5为本发明实施例提供的SDN交换设备的组成示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。

本发明实施例提供的SDN控制器生成转发表项的流程如图1所示:

步骤101,根据SDN网络拓扑为业务流计算多个转发路径;

步骤102,确定每个转发路径的最大流量速率以及流量速率标识;

步骤103,根据业务流的报文特征信息,每个转发路径的流量速率标识以及入口节点在每个转发路径上的出端口,生成入口流表项;

步骤104,根据业务流的报文特征信息,每个转发路径的流量速率标识以及 各中间节点在每个转发路径上的出端口,为每个中间节点生成中间流表项;

步骤105,根据业务流的报文特征信息以及出口节点发送业务流的出端口,生成一个出口流表项;

步骤106,向入口节点发送生成的入口流表项以及各转发路径的最大流量速率及流量速率标识,向每个转发路径上的中间节点发送对应的中间流表项,向出口节点发送出口流表项。

基于图1所示的方法,SDN控制器基于SDN网络内的业务流的各个转发路径以及各转发路径的流量速率为转发路径上的入口节点和中间节点生成流表项,以便于业务流的转发路径上的入口节点和中间节点可以基于这些流表项选路转发。

如图2所示,SDN网络由运行了open flow协议的SDN控制器201以及SDN交换设备211-216构成。SDN交换设备212以及SDN交换设备216分别连接了主机221和主机222。

SDN交换设备211收到主机221发往主机222的报文时,未匹配到流表项则将首报文发往SDN控制器201。SDN控制器201根据图2中SDN网络拓扑和链路状态,计算了三条转发路径:

第一转发路径:SDN交换设备212->SDN交换设备211->SDN交换设备213->SDN交换设备216;

第二转发路径:SDN交换设备212->SDN交换设备211->SDN交换设备214->SDN交换设备215->SDN交换设备213->SDN交换设备216;

第三转发路径:SDN交换设备212->SDN交换设备214->SDN交换设备215->SDN交换设备216。

其他SDN交换设备收到其他业务流的首报文时,如果在本地流表未匹配到对应的流表项,将首报文发往SDN控制器,SDN控制器根据首报文的业务特征信息,SDN网络拓扑和链路状态,根据这些业务流的首报文计算可用的多个转发路径。

SDN控制器201除了根据SDN交换设备211-216转发的业务流的首报文触 发转发路径计算之外,SDN控制器201还可以根据预配置的流特征列表,SDN网络拓扑和链路状态,为流特征列表中每个业务流计算多个转发路径。

传统的三层转发网络中,通过路由计算的最短路径和等价路径转发报文,这些经由路由计算获得的转发路径不能动态调整,即使最短路径或等价路径上存在拥塞,也不能选择其他的转发路径。而本发明图2所示的SDN网络能通过最短路径、等价路径以及开销大于最短路径或等价路径的转发路径转发报文,且能够根据报文所属业务流的流量速率动态选择转发路径,可进一步避免路径拥塞。相比于传统的二层转发网络,本发明图2所示的SDN网络可以在多个转发路径上转发业务流的报文,并且能够根据报文所属业务流的流量速率动态选择转发路径,同样可进一步避免转发路径拥塞。

图2所示SDN网络内各交换设备除了运行了open flow等SDN网络协议以外,不限于运行IP协议,MPLS协议等三层转发协议或运行以太网协议或VPLS协议等二层转发协议。

SDN控制器201分别根据三个转发路径的每个转发路径的各链路最大带宽,计算三个转发路径的最大流量速率。假设,SDN控制器201计算的上述三个转发路径的最大流量速率依次是5M,10M,15M。

SDN控制器201为三个转发路径的最大流量速率分配对应的流量速率标识“00”,“01”以及“10”。SDN控制器201分配速率标识时可以按照最大流量速率按照从高到低或从低到高的方式按序分配,也可以直接为各转发路径的最大流量速率分配对应的流量速率标识,本发明在此不做限定。同样,本发明对于流量速率标识的格式也不做任何限定。

SDN控制器201可以根据第一转发路径上SDN交换设备212连接的SDN交换设备211的端口,确定SDN交换设备212在第一转发路径上的出端口,根据业务流的报文特征信息,第一转发路径上的流量速率标识00以及SDN交换设备211在第一转发路径上的出端口,生成第一个入口流表项;其中的匹配规则(match filed)包括业务流的报文特征信息和流量速率标识00,动作指令集(instruction)包括第一转发路径上的SDN交换设备212的出端口,添加流量速 率标识00的动作以及将添加了流量速率标识00的报文通过第一转发路径上的SDN交换设备212的出端口转发的动作(action)。

SDN控制器201可以根据第一转发路径上SDN交换设备211连接的SDN交换设备213的端口确定为第一转发路径上SDN交换设备211的出端口,根据业务流的报文特征信息,第一转发路径上的流量速率标识00以及第一转发路径上SDN交换设备211的出端口,生成SDN交换设备211的第一个中间流表项;其中的匹配规则中记录的业务流的报文特征信息和流量速率标识00,动作指令集中包括第一转发路径上SDN交换设备211的出端口,添加流量速率标识00的动作以及将携带了流量速率标识00的报文通过第一转发路径上SDN交换设备211的出端口发送的动作。

SDN控制器201根据第一转发路径上SDN交换设备213连接的SDN交换设备216的端口,确定第一转发路径上SDN交换设备213的出端口,根据业务流的报文特征信息,第一转发路径上的流量速率标识00以及第一转发路径上SDN交换设备213的出端口,生成SDN交换设备213的中间流表项;其中的匹配规则中记录的业务流的报文特征信息和流量速率标识00,动作指令集中包括第一转发路径上SDN交换设备213的出端口,添加流量速率标识00的动作以及通过第一转发路径上SDN交换设备213的端口发送携带了流量速率标识00报文的动作。

SDN控制器201可以根据第二转发路径上SDN交换设备212连接的SDN交换设备211的端口确定第二转发路径上SDN交换设备212的出端口,根据业务流的报文特征信息,第二转发路径上的流量速率标识01以及第二转发路径上SDN交换设备212的出端口,生成入口流表项;其中匹配规则包括业务流的报文特征信息和流量速率标识01,动作指令集包括第二转发路径上SDN交换设备212的出端口,添加流量速率标识01的动作以及通过第二转发路径上SDN交换设备212的出端口发送携带流量速率标识01的报文的动作。

SDN控制器201为第二转发路径和第三转发路径上作为中间节点的其他SDN交换设备生成中间流表项的方式与SDN控制器201为第一转发路径上SDN 交换设备211和213生成中间流表项的方式的相同。

SDN控制器201将SDN交换设备216向主机222发送报文端口确定为出端口,根据业务流的报文特征信息以及SDN交换设备216发送报文的出端口生成出口流表项;其中的匹配规则包括业务流的报文特征信息,动作指令集包括SDN交换设备216发送报文的出端口,剥除流量速率标识的动作以及通过出端口发送剥除了流量速率标识的报文的动作。

三个转发路径具有不同的最大流量速率,SDN控制器201需要以每个转发路径的流量速率标识作为匹配规则之一为入口节点生成入口流表项,以及为各转发路径上的中间节点生成中间流表项,从而入口节点和中间节点根据业务流变化的流量速率选择转发路径。出口节点向目的主机发送报文不再需要根据流量速率选择转发路径,SDN控制器201可以为出口节点生成一个出口流表项,以业务流的报文特征信息作为匹配规则,使三个转发路径上转发的业务流的报文都与出口流表项匹配,进一步节约SDN交换设备上转发芯片的表项存储资源。

SDN控制器201通过open flow协议报文的自定义字段携带各转发路径的最大流量速率和流量速率标识,发送至业务流的入口节点,即SDN交换设备212。

SDN控制器201将根据第一转发路径生成的入口流表项发往SDN交换设备212,将根据第一转发路径生成的中间流表项分别发往SDN交换设备211和213;将根据第二转发路径生成的入口流表项发往SDN交换设备212,将根据第二转发路径生成的中间流表项分别发往对应的SDN交换设备211、214、215和213;将根据第三转发路径生成的入口流表项发往SDN交换设备212,将根据第三转发路径的生成的中间流表项分别发往对应的SDN交换设备214和215;将生成的出口流表项发往SDN交换设备216。

图2中SDN网络内的SDN交换设备根据流表项为业务流选择不同转发路径的处理过程如图3所示。

在处理过程301部分,SDN交换设备212作为主机221发往主机222的业务流的入口设备,周期性的测量业务流的流量速率。

在处理过程302部分,当SDN交换设备212测量到业务流的流量速率是6M的时候,SDN交换设备将业务流的流量速率6M与三个转发路径的最大流量速率比较,选择最大流量速率是10M的第二条转发条路径的流量速率标识01。

在处理过程303部分,SDN交换设备212根据业务流的报文特征信息和流量速率标识01在本地的流表中进行查找,查找到根据第二转发路径生成的入口流表项。SDN交换设备212根据匹配的入口流表项的指令动作集,为报文添加流量速率标识01并通过第二转发路径上的端口发送携带了流量速率标识01的报文。这样,SDN交换设备212将携带了流量速率标识01的报文发往第二转发路径上的SDN交换设备211。

通过处理过程302和303,SDN交换设备212完成了转发路径的选择,并通过报文携带了流量速率标识向所选转发路径上的中间节点提供路径选择的流量速率信息。

在处理过程304部分,SDN交换设备211收到携带了流量速率标识01的报文,在本地流表中进行查找,查找到根据第二转发路径生成的中间流表项。SDN交换设备211根据匹配的中间流表项的指令动作集,通过第二转发路径上的端口发送携带了流量速率标识01的报文。这样,SDN交换设备211将携带了流量速率标识01的报文发往第二转发路径上的SDN交换设备214。之后,第二转发路径上的SDN交换设备215以及213以相同方式查找到各自本地流表中的匹配的中间流表项,根据匹配的中间流表项的动作指令集发送带了流量速率标识01的报文。以此方式,业务流的报文在第二转发路径上,由入口节点SDN交换设备212以及中间节点SDN交换设备211、214、213以及215发至出口节点SDN交换设备216。

通过处理过程304,作为中间节点的SDN交换设备基于报文携带了流量速率标识和报文特征信息匹配的中间流表项,完成转发,从而基于流量速率进行选路。

在处理过程305部分,SDN交换设备216收到携带了流量速率标识01 的报文,根据报文的报文特征信息匹配到业务流的出口流表项,根据匹配的出口流表项的动作指令集发送剥除了流量速率标识01的报文至主机222。

当业务流的入口节点检测到业务流量速率变化时,入口节点、中间节点以及出口节点按照上述处理过程301-305重复执行即可。

当SDN交换设备212重新测量到业务流的流量速率是3M的时候,SDN交换设备将业务流的流量速率3M与三个转发路径的最大流量速率比较,选择最大流量速率是5M的第一条转发条路径的流量速率标识00。SDN交换设备212根据业务流的报文特征信息和流量速率标识00在本地的流表中进行查找,查找到根据第一转发路径生成的入口流表项。SDN交换设备212根据匹配的入口流表项的指令动作集,为报文添加流量速率标识00并通过第一转发路径上的端口发送携带了流量速率标识00的报文。这样,SDN交换设备212将携带了流量速率标识00的报文发往第一转发路径上的中间节点SDN交换设备211。按照相似的方式,第一转发路径上的中间节点SDN交换设备211和213根据流量速率标识00和报文特征信息匹配的中间流表项,在第一转发路径上转发业务流的报文至出口节点SDN交换设备216。由SDN交换设备216,根据匹配的出口流表项发送剥除了流量速率标识00的报文至主机222。

如果业务流的流量速率增大,SDN交换设备212测量到业务流的流量速率是12M的时候,SDN交换设备选择最大流量速率是15M的第三条转发条路径的流量速率标识10。SDN交换设备212根据业务流的报文特征信息和流量速率标识10在本地的流表中进行查找,查找到根据第三转发路径生成的入口流表项。SDN交换设备212根据匹配的入口流表项的指令动作集,为报文添加流量速率标识10并通过第三转发路径上的端口发送携带了流量速率标识10的报文。这样,SDN交换设备212将携带了流量速率标识10的报文发往第三转发路径上的SDN交换设备214。第三转发路径上的其他中间节点215和213根据中间流表项转发报文的方式相同,在此不再赘述。当携带了流量速率标识10的报文转发至SDN交换设备216时,SDN交换设备216根据匹配的出口流表项发送剥除了流量速率标识10的报文至主机222。

在SDN交换设备212在第一个测量周期完成之前,可以选择具有最大流量速率15M的第三转发路径转发业务流的报文,避免业务流的报文丢失。

SDN交换设备212在任一测量周期测量到业务流的流量速率超出了三个转发路径中最大流量速率时,SDN交换设备212选择第三转发路径,即最大流量速率是最高值的转发路径。

如图4所示,本发明实施例提供的SDN控制器包括:存储单元401、接收单元402,转发路径计算单元403,速率标识设定单元404,流表项生成单元405以及发送单元406。

转发路径计算单元403可根据存储单元401存储的预配置的流特征列表,以及收集的SDN网络拓扑和链路状态,为流特征列表中每个业务流计算多个转发路径。或者,接收单元402,接收业务流的首个报文;转发路径计算单元403根据接收单元402接收来自入口节点的业务流的首报文,根据收集的SDN网络拓扑和链路状态,确定该业务流在SDN网络拓扑内的出口节点;计算该业务流在入口节点与出口节点之间的多个转发路径。基于此类方式,转发路径计算单元403,根据SDN网络拓扑为各业务流计算多个转发路径。

速率标识设定单元404,确定每个转发路径的最大流量速率以及流量速率标识。譬如,速率标识设定单元404,根据各业务流的每个转发路径上的各链路的带宽,确定每个转发路径的最大流量速率;根据每个转发路径的最大流量速率排序,依序为每个转发路径设定一个流量速率标识。

流表项生成单元405,根据各业务流的报文特征信息以及各业务流的每个转发路径的流量速率标识以及每个转发路径上入口节点的出端口,生成入口流表项;根据业务流的报文特征信息,每个转发路径的流量速率标识以及每个转发路径上各中间节点的出端口,为每个中间节点生成中间流表项;根据各业务流的报文特征信息以及出口节点发送业务流的出端口,为各业务流的出口节点生成一个出口流表项。

发送单元406,向各业务流的入口节点发送生成的入口流表项以及各转发路径的最大流量速率及流量速率标识,向各业务流的每个转发路径上的中间节点 发送对应的中间流表项,向各业务流的出口节点发送出口流表项。

流表项生成单元405生成的各业务流的每个入口流表项中,匹配规则至少包括报文特征信息和流量速率标识,动作指令集至少包括,转发路径上入口节点的出端口,添加流量速率标识的动作以及通过转发路径上入口节点的出端口发送携带流量速率标识的报文的动作。

流表项生成单元405生成的各业务流的每个中间流表项中匹配规则至少包括报文特征信息和流量速率标识,动作指令集至少包括,转发路径上中间节点的出端口,以及通过转发路径上中间节点的出端口发送携带流量速率标识的报文的动作;

流表项生成单元405生成的各业务流的出口流表项中,匹配规则至少包括报文特征信息和流量速率标识,动作指令集至少包括出口节点的出端口,剥除流量速率标识的动作以及通过出口节点的出端口发送剥除了流量速率标识的报文的动作。

如图5所示,本发明实施例提供的SDN交换设备包括:接收单元501、转发单元502,发送单元503,流表项处理单元504以及流量速率确定单元505。本发明实施例中,SDN交换设备的转发单元502根据其接收单元501收到的报文在流表中未查找到匹配表项时,SDN交换设备的转发单元502根据本地流表的默认流表项将收到的报文通过发送单元503发往SDN控制器,以请求SDN控制器为报文所属业务流计算多个转发路径并根据各转发路径生成对应的入口流表项、出口流表项以及中间流表项。本实施例中,SDN交换设备的接收单元501可接收SDN控制器通过open flow协议报文的自定义字段携带的各转发路径的最大流量速率和流量速率标识。SDN交换设备的接收单元501可接收SDN控制器通过open flow协议报文发送的入口流表项或中间流表项或出口流表项。SDN交换设备的流表项处理单元504可将收到的入口流表项或中间流表项或出口流表项配置在本地流表中。SDN交换设备的流量速率确定单元505周期性测量报文所属业务流的流量速率,比较所测的流量速率与每个转发路径的最大流量速率,选择大于所测流量速率的最大流量速率对应的转 发路径的流量速率标识。SDN交换设备的转发单元502可以根据报文的报文特征信息以及所选流量速率标识在本地流表中进行查找;根据匹配的入口流表项为报文添加所选流量速率标识,并通过发送单元503将携带了流量速率标识的报文从匹配的入口流表项中的出端口发送出去。

除此之外,本实施例中的SDN交换设备的接收单元501收到携带所选流量速率标识的报文,转发单元502根据报文的报文特征信息以及携带的所选流量速率标识在本地流表中进行查找;通过发送单元503将携带所选流量速率标识的报文从匹配的中间流表项中的出端口发送出去。

或者,本实施例中的SDN交换设备的接收单元501接收携带所选流量速率标识的报文,转发单元502在本地流表中查找到携带了流量速率标识的报文的特征信息匹配的出口流表项;通过发送单元503将剥除了携带的流量速率标识的报文从匹配的出口流表项的出端口发送出去。

本申请实施例带来的有益技术效果在于,SDN控制器基于SDN网络内的业务流的各个转发路径以及各转发路径的流量速率为转发路径上的入口节点和中间节点生成流表项,以便于业务流的转发路径上的入口节点和中间节点可以基于这些流表项和业务流的流量速率动态选路转发,提高了SDN网络内链路带宽利用率和流量转发成功率。

以上仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1