文章名称
- 基于分类的软件定义网络流表更新一致性方案
来源
- 电子与信息学报
时间
- 2013.07
概要
- 提出一种基于分类的更新方案,将交换机以及新旧规则细分为两类交换机和四类流表项,根据它们的的不同特性,依次进行流表更新,旨在保证更新一致性的同时,有效减轻控制器负载、提高方案的通用性、不修改数据包包头信息。
具体方案
- 数据平面可视为无向图 G = ( V, E) ,交换机的集合为V,物理链路的集合为E 。当进行流表更新时,记旧、新规则的流表项集合分别为R1 ,R2 ,记需要进行流表更新的交换机集合为V0。
- V0再细分为两类:(1)按新规则处理时经过V0中的第一个交换机记为初始交换机V1;(2)V0中除V1之外的其他交换机。R1,R2细分为四类:(1)待新增流表Ra,控制器对新数据包制定的处理规则; (2)待修改流表Rm,控制器对已有数据包的处理规则修改; (3)待删除流表Rd ,当R2全部生效后,控制器需要删除R1 中的相应流表; (4)共同流表Rs,即在两套流表中都存在的流表。
- 文章提到的方案共分为五个阶段:
-
控制器对两套流表规则和交换机进行分类。控制器完成对新、旧两套流表的分析,并细分为Ra,Rm,Rd和Rs;控制器明确需要进行流表更新的交换机V0,并细分为V1 和V2 。
-
在初始交换机中将受更新过程影响的数据包上传给控制器。在更新过程中,除了与Rs相关的数据包,其它数据包的传输都受影响。在本阶段,控制器向各个初始交换机发出控制指令:只保留Rs,同时将其它流表对应的数据包上传给控制器,控制器对这些上传的数据包进行缓存。本阶段结束时,V1各个交换机上受更新过程影响的数据包都已上传给控制器。
-
在后继交换机中写入待新增流表,并等待全网端到端最长延时。在本阶段,并行进行2 项操作:(1)在V2各个交换机上写入待新增流表,由于此时初始交换机尚未进行流表更新,因此后继交换机中写入的流表项不会生效。 (2)在本阶段开始之前,网络中仍然有数据包按照旧规则处理,因此需等待一个全网的端到端最长延时,以使这些数据包全部处理完毕。本阶段结束时,V2各个交换机上已写入待新增流表,并且R1中除Rs之外的其它流表项都不发挥作用。
-
完成各个后继交换机的流表更新。具体地,控制器向各个后继交换机上写入待修改流表,并删除待删除流表。本阶段结束时,各个后继
交换机已完成流表更新。 -
完成各个初始交换机的流表更新。具体地,控制器向各个初始交换机上写入待新增流表、待修改流表,并删除待删除流表。完成这些更新之后,不再将数据包上传给控制器,并将控制器缓存的数据包发回网络中按照新规则处理。本阶段结束时,各个初始交换机已完成流表更新。