一种解决SDN流级别配置一致性更新的方法和装置制造方法及图纸

技术编号:10748052 阅读:298 留言:0更新日期:2014-12-10 19:10
本发明专利技术公开一种解决SDN流级别配置一致性更新的方法和装置,给不同配置分配版本号,使数据包在SDN中,由与该数据包携带相同版本号的配置处理。当配置更新发生时,给内部网络安装新配置,数据包经边界网络时添加旧版本号进入内部网络由旧配置处理,新配置不影响数据包,保证现有流持续稳定地由旧配置处理,再经边界网络流出SDN网络时删除版本号。当内部网络更新完成后,以高优先级给边界网络安装临时配置以使受更新影响的流转发到控制器并且仍由旧配置处理,低优先级给边界网络安装携带新版本号的新配置;构造覆盖现有流IP地址的最小K前缀覆盖集合,基于K条前缀构造配置碎片;删除超时的碎片,周期性进行更新直至所有碎片被删除,完成边界网络更新。

【技术实现步骤摘要】
一种解决SDN流级别配置一致性更新的方法和装置
本专利技术涉及SDN(软件定义网络),尤其涉及一种解决SDN流级别配置一致性更新的方法和装置,属于计算机网络

技术介绍
互联网为人类搭建了前所未有的信息通信和资源共享平台,深刻地改变着人们的生产、生活和学习方式,成为支撑现代社会经济发展和科技创新的最重要的信息基础设施。移动互联网、三网融合、云计算和物联网等新兴的发展对当前互联网的扩展性、安全性、移动性及可用性等方面都提出了巨大挑战,未来网络研究迫在眉睫。软件定义网(Softwaredefinednetworking,简称SDN)是实现网络虚拟化的重要技术,是未来网络的主流研究方向之一。SDN通过将其网络内的数据平面和控制平面分离,实现更加灵活、更加可控的新型网络架构,同时,SDN通过统一的开放式接口,实现了底层网络功能的整体抽象。数据面内的网络设备只负责数据包的转发,而更加复杂灵活的网络管理交由集中式的控制器实现。这种新型网络架构具有以下优势:1)网络管控能力得到改善,通过控制器实现网络可视化,用户可以根据需求定制个性化网络;2)网络创新能力得到提升,简化网络设计,可以灵活地添加、删除、改进网络功能,使得网络创新以软件更新的速度进行;3)网络可靠性得到加强,网络设备功能大大简化,复杂的网络控制等功能由软件实现,大幅度降低网络设备故障率,从而提升网络可靠性。计算机网络是一个复杂的时刻变动的分布式系统,虽然在控制层面看SDN是一个集中控制的系统,但是在数据层面看SDN仍然是一个分布式系统,转发设备根据自己的配置独立地处理数据包。为了保证网络的稳定性,提供可靠服务,网络管理人员必须根据网络拓扑以及流量变化更新网络配置,例如调整数据转发策略,修改链路权重以及重新分配网络带宽。并且控制层面和数据层面的信息交互存在延迟以及丢包等情况,在网络变动以及链路不稳定的状态下,我们必须保证配置更新过程中,包/流始终使用一个配置(要么旧配置,要么新配置),而不可混合使用,因为我们可以使用各自验证工具保证旧配置的正确性,也可以保证新配置的正确性,但是无法保证混合配置的正确性。配置一致性按照一致性级别可以分为包级别一致性和流级别一致性。网络中存在包级别的不一致性问题,在如图1-1所示的网络拓扑中,假设网络初始配置为图1-2中所示的P1:交换机S1将目的地址是H1的数据包转发到S2,目的地址是H2的数据包转发到S3,交换机S2丢弃端口号为22的包(SSH)并且按照目的地址转发其他包,交换机S3按照目的地址转发所有包。此时由于S1和S2之间的链路发生故障,SDN网络执行如图1-2所示的更新,即由配置P1更新为配置P2,交换机S1转发所有包(目的地址为H1、H2)到S3,交换机S3禁止目的地址为H1的端口为22的包并且按照目的地址转发其他包。在网络更新的过程中,由于无法保证交换机更新的顺序,如果S1先于S3更新,那么此时目的地址为H1端口为22的包会被转发到S3,然后到达H1。但是按照正确的配置(配置P1或者配置P2)目的地址为H1端口为22的包应该被禁止(丢弃)。发生这种情况的原因是这些包先被配置P2处理然后又被配置P1处理,也就是说包级别的配置一致性更新没有得到保证。同样地,网络中还存在流级别配置更新的不一致性问题,仍以如图1-1所示的网络拓扑为例,假设网络中H1、H2是服务器(例如web服务器),初始化配置为图1-3中的配置P3,交换机S1首先将来自网段U、G的流的目的地址替换为H1然后转发到S2,交换机S2转发所有的流到服务器H1,交换机S3转发所有的流到服务器H2。此时由于终端H1负载过大,SDN网络执行如图1-3所示的更新,即由配置P3更新为配置P4,交换机S1将来自网络U的流的目的地址替换为H1然后转发到S2,将来自网络G的流的目的地址替换为H2然后转发S3。交换机S2、S3将按照目的地址将这些流转发到H1、H2。在配置更新发生之前,来自网段G的流被转发到H1,与H1建立连接并通信,但是更新之后,这些已经存在的流会被转发到H2,它们同H1的连接被中断,需要同H2建立连接,对于用户来说,来自网段G的流与服务器(H1与H2对于用户来讲,是一个服务器整体)断开需重新建立连接,也就是说流级别配置的一致性更新没有得到保证。现有的配置一致性解决方案大多是针对包级别的,流级别的配置一致性更新方案主要有以下3种:1)交换机规则超时(Switchruleswithtimeouts)使用版本控制区分不同的规则集合,对于每个数据包,由入口交换机决定使用哪一个规则集合进行网络转发。当需要配置更新时,控制器首先更新内部网络(安装新版本的配置),然后更新边界网络。为了保证流一致性,在边界网络,控制器对旧的配置进行周期性的分割,同时设置超时限制时间。随着时间的流逝,旧的配置碎片被删除,新的配置被激活。2)通配符克隆(Wildcardcloning)扩展OpenFlow协议,使用功能更加强大的交换机来保证配置的一致性。当需要配置更新时,每当一个现有流经过时,交换机就对这个现有的流建立一个几乎精确的规则(称为克隆规则,这些规则具有更高的优先级)。一段时间之后,所有的现有流都被克隆规则转发处理,然后删除旧的配置,添加新的配置。这种方法非常简单快捷,对于控制器和网络几乎没有增加额外的负载,但是对交换机的要求比较高。3)终端反馈(End-hostfeedback)当网络更新发送时,终端将已有的连接信息发送给控制器,然后控制器根据这些连接信息完成更新过程。终端反馈机制需要终端提供已有连接的信息,因此需要在终端上安装插件,同时终端需要和控制器通信,将控制器的一些细节暴漏了出来。除了以上3种方案,还有一些学者将数据库中的事务一致性引入到SDN配置一致性更新当中,将网络更新过程分割为若干个事务,对于每个事务根据更新的结果,控制器可以确认或者回滚。还有一些学者提出使用有向无环图(DAG)解析规则,分析规则之间的依赖关系以及一致性特性要求生成配置更新计划,然后更新网络配置。以上现有方案存在下述一些缺陷:1)规则超时方案需要花费的时间过长。对于旧的配置,将分割之后的碎片安装到交换机中,如果碎片过大,那么可能由于一直有流存在而无法消失;如果碎片过小,那么会由于数目过多占用大量的空间。2)通配符克隆方案虽然对于控制器来说比较简单,配置更新过程也比较快捷,但是它不再遵守标准的OpenFlow协议。同时还需要性能更加强大的交换机才能实现,违反了软件定义网的基本思想(简单的转发设备,复杂的控制设备)。3)终端反馈方案违反了网路设计的原则,一方面终端要具体的参与到网络配置更新的过程中,使得网络对于终端不再透明,另一边面终端与控制器相互通信,给控制器带来了许多安全问题(例如可以很容易的通过终端攻击控制器,从而瘫痪整个网络)。4)无论是事务机制还是有向无环图都需要根据具体的网络拓扑以及配置来决定配置更新安排,要么计算复杂性比较高,要么更新的时间开销比较大。例如,有向无环图方案根据网络拓扑以及数据流转发路径生成一个有向无环图,分析更新路径上前后等依赖关系和一致性级别要求(例如无环、包级别等)安排配置更新的计划,无论对于计算还是存储的开销都是比较大的。总体来说,以上现有技本文档来自技高网...
一种解决SDN流级别配置一致性更新的方法和装置

【技术保护点】
一种解决SDN流级别配置一致性更新的方法,其特征在于,包括:给SDN网络中的配置和数据包分配版本号,用以标记数据包的处理规则集合,使得数据包只能由与该数据包具有一致版本号的配置进行处理;当网络配置发生更新时,先进行内部网络的更新:将具有新版本号的新配置安装到SDN的内部网络中,同时保留具有旧版本号的旧配置,使得经SDN的边界网络后携带旧版本号的数据包进入内部网络时,由旧配置处理;当内部网络更新完成后,进行以下步骤:A、以高优先级给边界网络安装临时配置,所述临时配置用于使边界网络的边界交换机将配置更新影响到的现有流转发到控制器,而控制器对所述现有流按旧配置处理,以使控制器获取所述现有流的源IP地址以及边界交换机的流表统计信息,而所述现有流仍以旧配置进行处理;以低优先级给边界网络安装新配置;B、查看边界交换机中当前的旧配置碎片数目,并计算目前边界交换机中可以使用的规则数目K;C、根据获取的所述现有流的源IP地址集合,构造最小K前缀覆盖集合,所述最小K前缀覆盖集合内的K条前缀所占的空间最小、且覆盖所述现有流的源IP地址集合内的所有IP地址;D、基于所述最小K前缀覆盖集合内的K条前缀,构造相应的K条旧配置碎片,并记录K条所述旧配置碎片;E、将K条所述旧配置碎片安装到边界交换机,设置为高级优先配置,设置超时时间限制T;所述现有流以旧配置进行处理,而在所述现有流之后到的受配置更新影响的新流,若所述新流的源IP地址落入所述K条前缀,则所述新流由所述旧配置碎片处理,若所述新流的源IP地址未落入所述K条前缀,则所述新流由新配置处理;F、删除超时的所述旧配置碎片,并通知控制器修改边界交换机中的所述旧配置碎片的数目;G、若边界交换机中仍存在未超时删除的碎片,返回执行所述步骤A~F,直至所有的所述旧配置碎片都因超时被删除,至此完成边界网络的更新。...

【技术特征摘要】
1.一种解决软件定义网络SDN流级别配置一致性更新的方法,其特征在于,包括:给SDN网络中的配置和数据包分配版本号,用以标记数据包的处理规则集合,使得数据包只能由与该数据包具有一致版本号的配置进行处理;当网络配置发生更新时,先进行内部网络的更新:将具有新版本号的新配置安装到SDN的内部网络中,同时保留具有旧版本号的旧配置,使得经SDN的边界网络后携带旧版本号的数据包进入内部网络时,由旧配置处理;当内部网络更新完成后,进行以下步骤:A、以高优先级给边界网络安装临时配置,所述临时配置用于使边界网络的边界交换机将配置更新影响到的现有流转发到控制器,而控制器对所述现有流按旧配置处理,以使控制器获取所述现有流的源IP地址以及边界交换机的流表统计信息,而所述现有流仍以旧配置进行处理;以低优先级给边界网络安装新配置;其中,所述流表统计信息包括边界交换机的TCAM的总容量和当前使用量;B、查看边界交换机中当前的旧配置碎片数目,并计算目前边界交换机中可以使用的规则数目K;C、根据获取的所述现有流的源IP地址集合,构造最小K前缀覆盖集合,所述最小K前缀覆盖集合内的K条前缀所占的空间最小、且覆盖所述现有流的源IP地址集合内的所有IP地址;D、基于所述最小K前缀覆盖集合内的K条前缀,构造相应的K条旧配置碎片,并记录K条所述旧配置碎片;E、将K条所述旧配置碎片安装到边界交换机,设置为高优先级配置,设置超时时间限制T;所述现有流以旧配置进行处理,而在所述现有流之后到的受配置更新影响的新流,若所述新流的源IP地址落入所述K条前缀,则所述新流由所述旧配置碎片处理,若所述新流的源IP地址未落入所述K条前缀,则所述新流由新配置处理;F、删除超时的所述旧配置碎片,并通知控制器修改边界交换机中的所述旧配置碎片的数目;G、若边界交换机中仍存在未超时删除的碎片,返回执行所述步骤A~F,直至所有的所述旧配置碎片都因超时被删除,至此完成边界网络的更新。2.如权利要求1所述的方法,其特征在于:内部网络的更新过程具体包括:给旧配置分配作为匹配域的旧版本号,并且在边界网络给数据包添加旧版本号;当配置更新发生时,给新配置分配作为匹配域的新版本号;将新配置安装到内部网络并且保留旧配置,使得内部网络更新过程中,数据包在网络中由旧配置处理。3.如权利要求1所述的方法,其特征在于:所述步骤B具体包括:B1、用边界交换机的TCAM的所述总容量减去所述当前使用量以获得空闲空间,根据所述空闲空间的大小来限制在配置更新过程中边界交换机可以使用的最大规则数目MAXK;B2、获取边界交换机中当前的旧配置碎片数目n,计算目前边界交换机中可以使用的规则数目K=MAXK-n,其中n≥0。4.如权利要求3所述的方法,其特征在于:所述步骤F具体包括:F1、对于K条旧配置碎片中的某条旧配置碎片,若从上一次出现源IP地址落入该条旧配置碎片的数据包开始,历经T时间未再次出现源IP地址落入该条旧配置碎片的数据包,则该条旧配置碎片属于超时,予以删除;F2、删除超时的y条旧配置碎片,通知控制器将边界交换机中的旧配置碎片数目修改为n+K-y,从而在步骤B1中,以n+K-y去更新n的值,以获得新的K值。5.如权利要求1所述的方法,其特征在于:所述步骤C中构造最小K前缀覆盖集合具体包括:C1、将所述现有流的源IP地址集合内的所有N个IP地址进行排序,并计算每个IP地址与相邻的下一个IP地址之间的最长公共前缀,得到N-1个有效公共前缀,以所述N个IP地址为叶子节点,再结合N-1个公共前缀,构造总共具有2N-1个节点的二叉树;C2、通过动态规划法,在所述步骤C1中构造的二叉树的2N-1个节点中,找到覆盖空间最小的K个前缀,构成所述最小K前缀覆盖集合。6.如权利要求5所述的方法,其特征在于:所述步骤C1具体包括:C11、将32位的IP地址看成一个整数,采用归并法对N个IP地址进行升序排列;C12、建立一个双向链表,并用步骤C11中排序后的N个IP地址初始化双向链表;C13、对于每个IP地址,计算它和下一个相邻IP地址之间的最长公共前缀,双向链表中每个节点具有值、节点前缀和节点前缀长度,设置节点前缀为该节点与下一个相邻节点的最长公共前缀,节点前缀长度为该节点与下一个相邻节点的最长公共前缀的长度;C14、遍历双向链表,对于每个节点,比较该节点的节点前缀长度和下一个相邻节点的节点前缀长度,当出现节点前缀长度非递增时,将该节点标记长度非递增位置,并在所述长度非递增位置生成一个新节点,并将所述新节点的节点前缀、节点前缀长度分别赋值为被标记长度非递增位置的相邻下一个节点的节点前缀、节点前缀长度;C15、所述新节点替代被标记长度非递增位置的节点及其相邻下一个节点以进行聚合,并且被标记长度非递增位置的节点及其相邻下一个节点分别为所述新节点的左右子节点;再回退一步继续进行遍历;C16、重复步骤C14及C15,聚合至双向链表中只剩一个节点,所剩的节点即为所述二叉树的根节点。7.如权利要求6所述的方法,其特征在于:所述步骤C2具体...

【专利技术属性】
技术研发人员:李清江勇赵坤
申请(专利权)人:清华大学深圳研究生院
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1