CN104426813A - 一种流表更新的控制方法、装置及控制器 - Google Patents

一种流表更新的控制方法、装置及控制器 Download PDF

Info

Publication number
CN104426813A
CN104426813A CN201310392538.7A CN201310392538A CN104426813A CN 104426813 A CN104426813 A CN 104426813A CN 201310392538 A CN201310392538 A CN 201310392538A CN 104426813 A CN104426813 A CN 104426813A
Authority
CN
China
Prior art keywords
switch
filtering
filtering switch
stream table
control operation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
CN201310392538.7A
Other languages
English (en)
Inventor
李勇
牛小兵
金德鹏
柳嘉强
刘彬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN201310392538.7A priority Critical patent/CN104426813A/zh
Priority to PCT/CN2014/085324 priority patent/WO2015027924A1/zh
Publication of CN104426813A publication Critical patent/CN104426813A/zh
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport

Abstract

本发明实施例提供一种流表更新的控制方法、装置及控制器。所述方法包括:在需要将旧流表更新为新流表时,根据旧流表的过滤交换机映射规则和新流表的过滤交换机映射规则,确定所述多个过滤交换机中需要修改过滤规则的所有第一过滤交换机;仅对所述所有第一过滤交换机进行控制操作,其中,针对任一第一过滤交换机的控制操作通过如下方式进行:第一控制操作;第二控制操作;第三控制操作。本发明实施例提供了实现不违反过滤规则的流表更新的新方式。

Description

一种流表更新的控制方法、装置及控制器
技术领域
本发明涉及互联网领域,尤其涉及一种流表更新的控制方法、装置及控制器。
背景技术
软件定义网络(Software Defined Network,SDN)指将数据平面与控制平面分离,数据平面由具有统一接口的数据包转发设备组成,控制平面由集中式控制器组成。控制器通过配置数据平面转发设备的转发规则实现对数据包转发功能的控制。数据中心因网络节点规模大、节点间流量动态性强、对网络持续连接性及可靠性要求高,需要对数据包转发进行灵活和精细的控制,软件定义网络因满足这一需求而受到了数据中心网络设计者的广泛关注。
OpenFlow协议是目前SDN网络中应用最广泛的控制平面和数据平面通信的协议。OpenFlow交换机即指支持OpenFlow协议的转发设备,它通过由控制器配置的流表规则对进入的数据包进行处理。特别是,由于OpenFlow协议支持丢包操作,因而可以在OpenFlow交换机中配置流表规则实现数据包过滤功能。然而,由于交换机的流表数量以及接入带宽都是有限的,为了应对大规模的数据流量,需要同时采用多个交换机实现过滤功能,且尽可能保证每个交换机的负载相同,以提高资源利用率和过滤性能。考虑这些因素后,图1给出了一种典型的基于OpenFlow交换机实现数据包过滤的两层结构。该结构中,第一层交换机S实现数据包分类和均衡功能,第二层交换机F实现每类数据包的过滤规则。例如,针对文件访问服务,交换机S根据源IP地址将数据包分为授权用户数据包和非授权用户数据包,第二层交换机根据目的IP地址过滤掉非授权用户对特定文件服务器的访问,而保证授权用户可以正常访问。为了方便描述,将S称为入口交换机,F称为过滤交换机。并用若干数据流来抽象所有进入S的数据包,数据流可由典型的5元组定义,即(源MAC地址,目的MAC地址,源IP地址,目的IP地址,协议),每类数据包由其中的若干数据流组成。根据安全规则,需要过滤掉某些流对应的数据包,我们将其称为该类数据包的过滤规则。不同类型的数据包具有不同的过滤规则。
为了保证安全,过滤交换机Fi实现的过滤规则应和转发至它的数据包的类型一致,也即,若S将第j类的数据包转发至Fi,则Fi中应实现第j类数据包的过滤规则。另外,当不同类型数据流量发生变换时,控制器需要通过修改S和F中的流表来达到新的均衡,使转发至每个过滤交换机的流量尽可能相同。
然而,由于不能保证修改后S和F中的流表在同一时刻生效,因此流表更新过程可能违反过滤规则。所谓违反过滤规则,是指在Fi中的流表实现了第j类数据包过滤规则的情况下,将第k类数据包转发至Fi(j≠k)。因此,需要一种流表更新方案,保证流表更新过程不会违反过滤规则。
目前的流表更新方案,将更新前后的流表看作两套不同的流表,分别称之为旧流表和新流表。先在入口交换机处写入中间流表,使得入口交换机将更新过程中的数据包上传到控制器缓存;然后在各过滤交换机中写入新流表,等所有过滤交换机中新流表有效后再在入口交换机处写入新流表,同时将缓存的数据包返回入口交换机进行处理。
发明内容
有鉴于此,本发明实施例的目的是提供一种流表更新的控制方法、装置及控制器,以提供实现不违反过滤规则的流表更新的新方式。
为解决上述技术问题,本发明实施例提供方案如下:
本发明实施例提供一种流表更新的控制方法,用于数据中心网络中的控制器,所述数据中心网络还包括入口交换机和多个过滤交换机,所述方法包括:
在需要将旧流表更新为新流表时,根据旧流表的过滤交换机映射规则和新流表的过滤交换机映射规则,确定所述多个过滤交换机中需要修改过滤规则的所有第一过滤交换机;
仅对所述所有第一过滤交换机进行控制操作,其中,针对任一第一过滤交换机的控制操作通过如下方式进行:
第一控制操作,控制所述入口交换机停止向所述任一第一过滤交换机转发相应数据包类型的数据包;其中,所述相应数据包类型为所述旧流表的过滤交换机映射规则中所述任一第一过滤交换机对应的数据包类型;
第二控制操作,在所述入口交换机停止向所述任一第一过滤交换机转发相应数据包类型的数据包之后,根据所述新流表的过滤交换机映射规则,修改所述任一第一过滤交换机中的过滤规则;
第三控制操作,在修改完所述任一第一过滤交换机中的过滤规则之后,根据所述新流表的转发规则,修改所述入口交换机中针对所述任一第一过滤交换机的转发规则。
优选地,所述第一控制操作具体包括:
判断所述多个过滤交换机中是否有在所述旧流表的过滤交换机映射规则中对应所述相应数据包类型的第二过滤交换机,获取判断结果;
当所述判断结果为是时,将所述入口交换机中针对第一数据流的转发目标设备修改为所述第二过滤交换机;其中,所述第一数据流为所述旧流表的转发规则中所述任一第一过滤交换机对应的数据流。
优选地,所述第一控制操作具体包括:
将所述入口交换机中针对第二数据流的转发目标设备修改为所述控制器,使得所述控制器能够在所述入口交换机修改完所述入口交换机中分别针对所述所有第一过滤交换机的转发规则之后,将从所述入口交换机接收到的所述第二数据流的数据包,返回给所述入口交换机;其中,所述第二数据流为所述旧流表的转发规则中所述任一第一过滤交换机对应的数据流。
优选地,所述仅对所述所有第一过滤交换机进行控制操作的步骤中,对所述所有第一过滤交换机顺序进行控制操作。
优选地,所述仅对所述所有第一过滤交换机进行控制操作的步骤中,按照如下方式顺序对所述所有第一过滤交换机进行控制操作:
选择步骤,根据预设的第一选择策略,从所有待处理过滤交换机中,选择一个所述待处理过滤交换机;其中,所述待处理过滤交换机为所述所有第一过滤交换机中尚未修改过滤规则的过滤交换机;
控制步骤,对选择出的所述一个待处理过滤交换机进行控制操作;
返回步骤,在所述选择出的所述一个待处理过滤交换机的控制操作完成之后,在所述所有第一过滤交换机中存在待处理过滤交换机时,返回所述选择步骤。
优选地,所述选择步骤具体包括:
确定当前在所述旧流表的过滤交换机映射规则中与每个所述待处理过滤交换机对应相同数据包类型的过滤交换机的数量;
将所述数量的倒数,作为每个所述待处理过滤交换机的更新代价;
按照预设的第二选择策略,从计算出的更新代价最小的所述待处理过滤交换机中,选择所述一个待处理过滤交换机。
优选地,所述第二选择策略为随机选择策略。
本发明实施例还提供一种流表更新的控制装置,用于数据中心网络中的控制器,所述数据中心网络还包括入口交换机和多个过滤交换机,所述装置包括:
确定模块,用于在需要将旧流表更新为新流表时,根据旧流表的过滤交换机映射规则和新流表的过滤交换机映射规则,确定所述多个过滤交换机中需要修改过滤规则的所有第一过滤交换机;
控制模块,用于仅对所述所有第一过滤交换机进行控制操作,其中,针对任一第一过滤交换机的控制操作通过如下方式进行:
第一控制操作,控制所述入口交换机停止向所述任一第一过滤交换机转发相应数据包类型的数据包;其中,所述相应数据包类型为所述旧流表的过滤交换机映射规则中所述任一第一过滤交换机对应的数据包类型;
第二控制操作,在所述入口交换机停止向所述任一第一过滤交换机转发相应数据包类型的数据包之后,根据所述新流表的过滤交换机映射规则,修改所述任一第一过滤交换机中的过滤规则;
第三控制操作,在修改完所述任一第一过滤交换机中的过滤规则之后,根据所述新流表的转发规则,修改所述入口交换机中针对所述任一第一过滤交换机的转发规则。
优选地,所述第一控制操作具体包括:
判断所述多个过滤交换机中是否有在所述旧流表的过滤交换机映射规则中对应所述相应数据包类型的第二过滤交换机,获取判断结果;
当所述判断结果为是时,将所述入口交换机中针对第一数据流的转发目标设备修改为所述第二过滤交换机;其中,所述第一数据流为所述旧流表的转发规则中所述任一第一过滤交换机对应的数据流。
优选地,所述第一控制操作具体包括:
将所述入口交换机中针对第二数据流的转发目标设备修改为所述控制器,使得所述控制器能够在所述入口交换机修改完所述入口交换机中分别针对所述所有第一过滤交换机的转发规则之后,将从所述入口交换机接收到的所述第二数据流的数据包,返回给所述入口交换机;其中,所述第二数据流为所述旧流表的转发规则中所述任一第一过滤交换机对应的数据流。
优选地,所述控制模块中,对所述所有第一过滤交换机顺序进行控制操作。
优选地,所述控制模块中,按照如下方式顺序对所述所有第一过滤交换机进行控制操作:
选择步骤,根据预设的第一选择策略,从所有待处理过滤交换机中,选择一个所述待处理过滤交换机;其中,所述待处理过滤交换机为所述所有第一过滤交换机中尚未修改过滤规则的过滤交换机;
控制步骤,对选择出的所述一个待处理过滤交换机进行控制操作;
返回步骤,在所述选择出的所述一个待处理过滤交换机的控制操作完成之后,在所述所有第一过滤交换机中存在待处理过滤交换机时,返回所述选择步骤。
本发明实施例还提供一种包括以上所述的流表更新的控制装置的控制器。
从以上所述可以看出,本发明实施例至少具有如下有益效果:
在需要修改过滤规则的过滤交换机修改自身过滤规则的过程中,入口交换机不会向这种过滤交换机转发数据包,从而该过程不会引起违反过滤规则的问题;另一方面,由于上述方式仅对需要修改过滤规则的过滤交换机进行控制操作,则对于不需要修改过滤规则的其它过滤交换机,上述方式并不需要停止这种其它过滤交换机所对应的数据包的转发和过滤处理,从而避免了这种数据包的不必要的等待时延。
附图说明
图1表示典型的基于OpenFlow交换机实现数据包过滤的两层结构示意图;
图2表示本发明实施例提供的一种流表更新的控制方法的步骤流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明实施例进行详细描述。
背景技术中指出的流表更新方案,需要更新所有过滤交换机中的流表,并且在流表更新过程中不会让入口交换机进行数据包到任何一个过滤交换机的转发。然而,可能存在这样的过滤交换机,其在新旧流表中的过滤规则所针对的数据包类型相同,则在向这样的过滤交换机写入新流表的过程中,让入口交换机向其转发对应的数据包,并不会引起违反过滤规则的问题。由此,背景技术中使入口交换机停止将对应数据包转发到这样的过滤交换机对于避免引起过滤规则的违反来说就是不必要的,反而因为对这部分数据包进行缓存而造成了这部分数据包不必要的等待时延。
图2表示本发明实施例提供的一种流表更新的控制方法的步骤流程图,参照图2,本发明实施例提供一种流表更新的控制方法,用于数据中心网络中的控制器,所述数据中心网络还包括入口交换机和多个过滤交换机,所述方法包括如下步骤:
步骤201,在需要将旧流表更新为新流表时,根据旧流表的过滤交换机映射规则和新流表的过滤交换机映射规则,确定所述多个过滤交换机中需要修改过滤规则的所有第一过滤交换机;
步骤202,仅对所述所有第一过滤交换机进行控制操作,其中,针对任一第一过滤交换机的控制操作通过如下方式进行:
第一控制操作,控制所述入口交换机停止向所述任一第一过滤交换机转发相应数据包类型的数据包;其中,所述相应数据包类型为所述旧流表的过滤交换机映射规则中所述任一第一过滤交换机对应的数据包类型;
第二控制操作,在所述入口交换机停止向所述任一第一过滤交换机转发相应数据包类型的数据包之后,根据所述新流表的过滤交换机映射规则,修改所述任一第一过滤交换机中的过滤规则;
第三控制操作,在修改完所述任一第一过滤交换机中的过滤规则之后,根据所述新流表的转发规则,修改所述入口交换机中针对所述任一第一过滤交换机的转发规则。
可见,通过上述方式实现的流表更新,在需要修改过滤规则的过滤交换机修改自身过滤规则的过程中,入口交换机不会向这种过滤交换机转发数据包,从而该过程不会引起违反过滤规则的问题;另一方面,由于上述方式仅对需要修改过滤规则的过滤交换机进行控制操作,则对于不需要修改过滤规则的其它过滤交换机,上述方式并不需要停止这种其它过滤交换机所对应的数据包的转发和过滤处理,从而避免了这种数据包的不必要的等待时延。此外,上述方式不需要对不需要修改过滤规则的过滤交换机写入新流表,从而减少了更新过程所需的流表写入次数。此外,上述方式通过一套流表即可实现。
其中,交换机例如:OpenFlow交换机。
所述旧流表可以为初始流表,或者,也可以为根据现有技术进行流表更新后的流表。
所述旧流表的过滤交换机映射规则可以由所述控制器从所述旧流表中解析得到;
所述新流表的过滤交换机映射规则可以由所述控制器从所述新流表中解析得到;
所述新流表的转发规则可以由所述控制器从所述新流表中解析得到。
需要修改过滤规则的过滤交换机,是指在旧流表的过滤交换机映射规则中和在新流表的过滤交换机映射规则中对应的数据包类型不同的过滤交换机。
所述根据所述新流表的过滤交换机映射规则,修改所述任一第一过滤交换机中的过滤规则具体可以包括:
将所述任一第一过滤交换机中的过滤规则修改为所述新流表的过滤交换机映射规则中所述任一第一过滤交换机对应的过滤规则。
所述根据所述新流表的转发规则,修改所述入口交换机中针对所述任一第一过滤交换机的转发规则具体可以包括:
将所述入口交换机中针对所述任一第一过滤交换机的转发规则修改为所述新流表的转发规则中所述任一第一过滤交换机对应的转发规则。
在本发明实施例中,所述第一控制操作具体可以包括:
判断所述多个过滤交换机中是否有在所述旧流表的过滤交换机映射规则中对应所述相应数据包类型的第二过滤交换机,获取判断结果;
当所述判断结果为是时,将所述入口交换机中针对第一数据流的转发目标设备修改为所述第二过滤交换机;其中,所述第一数据流为所述旧流表的转发规则中所述任一第一过滤交换机对应的数据流。
其中,针对第一数据流的转发目标设备是指所述入口交换机在收到所述第一数据流的数据包后按照自身流表来将接收到的所述第一数据流的数据包转发至的设备。
或者,所述第一控制操作具体可以包括:
将所述入口交换机中针对第二数据流的转发目标设备修改为所述控制器,使得所述控制器能够在所述入口交换机修改完所述入口交换机中分别针对所述所有第一过滤交换机的转发规则之后,将从所述入口交换机接收到的所述第二数据流的数据包,返回给所述入口交换机;其中,所述第二数据流为所述旧流表的转发规则中所述任一第一过滤交换机对应的数据流。
其中,所述旧流表的转发规则可以由所述控制器从所述旧流表中解析得到。
针对第一数据流的转发目标设备是指所述入口交换机在收到所述第一数据流的数据包后按照自身流表来将接收到的所述第一数据流的数据包转发至的设备。
当然,上述所述第一控制操作的具体方式也可以相结合,例如,所述第一控制操作具体可以包括:
判断所述多个过滤交换机中是否有在所述旧流表的过滤交换机映射规则中对应所述相应数据包类型的第二过滤交换机,获取判断结果;
当所述判断结果为是时,将所述入口交换机中针对第一数据流的转发目标设备修改为所述第二过滤交换机;其中,所述第一数据流为所述旧流表的转发规则中所述任一第一过滤交换机对应的数据流;
当所述判断结果为否时,将所述入口交换机中针对第二数据流的转发目标设备修改为所述控制器,使得所述控制器能够在所述入口交换机修改完所述入口交换机中分别针对所述所有第一过滤交换机的转发规则之后,将从所述入口交换机接收到的所述第二数据流的数据包,返回给所述入口交换机;其中,所述第二数据流为所述旧流表的转发规则中所述任一第一过滤交换机对应的数据流。
在本发明实施例中,所述仅对所述所有第一过滤交换机进行控制操作的步骤中,可以对所述所有第一过滤交换机顺序进行控制操作。
进一步地,所述仅对所述所有第一过滤交换机进行控制操作的步骤中,可以按照如下方式顺序对所述所有第一过滤交换机进行控制操作:
选择步骤,根据预设的第一选择策略,从所有待处理过滤交换机中,选择一个所述待处理过滤交换机;其中,所述待处理过滤交换机为所述所有第一过滤交换机中尚未修改过滤规则的过滤交换机;
控制步骤,对选择出的所述一个待处理过滤交换机进行控制操作;
返回步骤,在所述选择出的所述一个待处理过滤交换机的控制操作完成之后,在所述所有第一过滤交换机中存在待处理过滤交换机时,返回所述选择步骤。
其中,所述选择步骤具体可以包括:
确定当前在所述旧流表的过滤交换机映射规则中与每个所述待处理过滤交换机对应相同数据包类型的过滤交换机的数量;
将所述数量的倒数,作为每个所述待处理过滤交换机的更新代价;
按照预设的第二选择策略,从计算出的更新代价最小的所述待处理过滤交换机中,选择所述一个待处理过滤交换机。
其中,所述第二选择策略可以为随机选择策略。
为将本发明实施例阐述得更加清楚明白,下面提供本发明实施例的较佳实施方式。
本较佳实施方式提供一种SDN中保证安全规则的流表更新方法,其中,所述旧流表为初始流表,该SDN中保证安全规则的流表更新方法包括以下步骤:
步骤A,控制器获取初始数据:包括分析流表,获取初始和新的转发规则以及交换机映射规则,所谓转发规则,是指将不同数据流转发至不同过滤交换机的方案;所谓过滤交换机映射规则,是指将不同过滤交换机分配给不同类型数据并执行相应过滤规则的方案。具体包括分析初始流表,获取初始转发规则 表示初始时将数据流l转发至第n个过滤交换机,获取初始过滤交换机映射规则 表示初始时第n个过滤交换机实现了第m类数据包的过滤规则;分析新流表,获取新的转发规则 FW 2 = { FW 2 l , 1 ≤ l ≤ L } ; 以及新的过滤交换机映射规则 M 2 = { M 2 n , 1 ≤ n ≤ N } .
步骤B,控制器比较初始过滤交换机映射规则M1和新的过滤交换机映射规则M2,得到需要修改过滤规则的过滤交换机集合FC,也即初始过滤规则和新的过滤规则不同的交换机集合;
步骤C,控制器从当前需要修改的过滤交换机集合FC中选出更新代价最小的过滤交换机Fo;所述更新代价可以根据不同目标和需要定义;所述更新代价可用不同的方法来衡量,例如可用实现同类过滤规则的交换机数量的倒数来衡量,本发明不局限于某一具体的更新代价衡量方法;在选择更新代价最小的过滤交换机时,若多个过滤交换机的更新代价相等且同时最小,则随机选择一个作为最终更新代价最小的过滤交换机Fo
步骤D,控制器分析当前过滤交换机映射规则,得到与Fo具有相同过滤规则的其他过滤交换机组成的集合FS
步骤E,若FS非空,根据初始转发规则,修改入口交换机S的流表,将转发至Fo的数据流转发至FS中的过滤交换机;若FS为空,修改入口交换机中的流表,将转发至Fo的数据流转发至控制器缓存;
步骤F,更新与Fo相关的流表,包括首先修改Fo的过滤规则,使其满足新的过滤交换机映射规则;然后根据新的转发规则,修改入口交换机中的流表,将对应的数据流转发至Fo;最后从FC中删除Fo
步骤G,若FC不为空,则返回步骤C执行;否则,执行步骤H;
步骤H,修改入口交换机S中的流表,实现新流表的转发规则FW2
步骤I,将控制器缓存的数据包发送到入口交换机处理。
下面,从逻辑推理的角度阐述本较佳实施方式是如何保证更新过程中安全规则不被破坏的。所述安全规则不被破坏指在流表更新过程中过滤交换机实现的过滤规则和转发至它的数据包类型一致。
步骤A、B、C、D不涉及流表更新,因此不会破坏安全规则;
步骤E中涉及修改入口交换机S中的流表。由于FS中的过滤交换机和Fo具有相同的转发规则,因此将转发至Fo中的数据流转发至FS中的交换机不会破坏过滤规则;当FS为空时,将转发至Fo中的数据流转发至控制器缓存也不会破坏安全规则;
步骤F中涉及修改入口交换机S和过滤交换机F中的流表。由与步骤E结束后,已没有数据流转发至过滤交换机Fo,因此修改Fo的过滤规则是安全的;修改过滤规则后,Fo的过滤规则满足新的交换机映射规则,因此根据新的转发规则,修改S中的流表将对应的数据流转发至Fo是安全的;
步骤G不涉及流表更新,因此不会破坏安全规则;
步骤H执行之前,已完成对所有过滤交换机过滤规则的修改,也即所有过滤交换机均满足新流表对应的过滤交换机映射规则,因此根据新的转发规则修改S中的流表是安全的;
步骤I执行之前,所有交换机的流表已从初始流表更新为新流表,此时交换机中流表项的设置是符合安全规则的,因此将更新过程中缓存的数据包送到入口交换机S处理是安全的。
本较佳实施方式针对软件定义数据中心网络中基于OpenFlow交换机进行数据包过滤场景下的流表更新,给出了新的、不会破坏过滤规则的流表更新方案,保证在流表更新过程中过滤交换机部署的过滤规则和转发至它的数据包类型一致。
背景技术中指出的基于中间流表的方案是通用场景下的流表更新方案,主要关注流表更新过程的一致性,也即将更新前后的流表看作两套不同的流表,分别称之为旧流表和新流表,在更新过程中,对于每一个数据包,或者根据旧流表来处理,或者根据新流表来处理,不能在某些网络设备中根据旧流表来处理,而在另外一些网络设备中根据新流表来处理。为了实现一致性的目的,还可以有另一种方案:采用VLAN标签来区分新旧两套流表,同时,在入口交换机处对进入网络的数据包也设置VLAN标签,每个网络设备用具有相同VLAN标签的流表规则对进入的数据包进行处理。
上述两种方案虽然可以用于图1所示场景下的流表更新,但存在几个主要问题。首先,基于VLAN标签的方案在更新过程中同时包含新旧两套流表,需要占用更多流表资源,另外,由于使用了VLAN作为标签,因此需要全局的VLAN分配和管理;其次,采用中间流表的方案在更新过程中将数据包上传给控制器,因此控制器接口带宽及处理能力将成为影响网络性能的瓶颈;最后,上述两个方案均并行更新所有交换机中的流表,虽然减小了流表更新所需时间,但会导致控制网络流量突增,影响网络性能。
与基于VLAN标签的更新方法相比,本较佳实施方式在更新过程中只使用一套流表资源,降低了更新过程对流表资源的需求,同时由于没有使用VLAN标签,本较佳实施方式在图1所示场景下更具通用性;与基于中间流表的更新方法相比,本较佳实施方式避免了将所有更新过程涉及的数据包上传到控制器处理,降低了控制器的负载。除了上述优点之外,本较佳实施方式采用了顺序更新方案,控制器在每个时刻只更新一个或少数几个交换机的流表,相比并行方案,流表更新任务导致的控制流量的增加较少,使得本较佳实施方式在保证流表更新过程不违反安全规则的同时有效降低了控制流量抖动。
本较佳实施方式保证了流表更新过程不会破坏数据中心网络定义的安全过滤规则,且减少了更新过程中所需流表数量、降低了更新过程中网络流量的抖动。
在本较佳实施方式中,对于按照可用实现同类过滤规则的交换机数量的倒数来衡量所述更新代价的情况,优先对当前可用实现同类过滤规则的交换机数量的倒数最小的过滤交换机进行相关的流表更新,有利于减小更新过程中需要上传到控制器的数据包流量。
下面给出本较佳实施方式的较优实施例,据此说明如何将本较佳实施方式应用到流表更新过程中。
本较优实施例假设有两类数据包;3个过滤交换机F1、F2和F3;4条数据流,且其中数据流1-2组成第一类数据包,数据流3-4组成第二类数据包。并假设初始转发规则为 FW 1 = { FW 1 l = 1 , F W 1 2 = 2 , F W 1 3 = 3 , FW 1 4 = 3 } , 即将数据流1转发至F1,将数据流2转发至F2,将数据流3和数据流4转发至F3;初始过滤交换机的映射规则为 M 1 = { M 1 1 = 1 , M 1 2 = 1 , M 1 3 = 2 } , 即F1、F2实现第一类数据包的过滤规则,F3实现第二类数据包的过滤规则。新的转发规则为 FW 2 = { FW 2 l = 1 , F W 2 2 = 1 , F W 2 3 = 2 , F W 2 4 = 3 } , 即新的流表中将数据流1和数据流2转发至F1,数据流3转发至F2,数据流4转发至F3;新的过滤交换机映射规则为即新的流表中F1实现第一类数据包的过滤规则,F2和F3实现第二类数据包的过滤规则。
在步骤B中通过比较M1和M2,得到需要修改的过滤交换机集合FC={F2};
在步骤C中选出更新代价最小的交换机Fo=F2
由于F2中实现了第一类数据包的过滤规则,因此步骤D中得到与Fo具有相同过滤规则的交换机集合FS={F1};
由于FS非空,在步骤E中,修改S中的流表,将转发至Fo=F2的数据流2改为转发至FS中的过滤交换机F1
由于因此在步骤F中,首先修改过滤交换机Fo=F2中的流表,使其实现第二类数据包的过滤规则;然后根据转发规则FW2,修改S中的流表,将数据流3转发至过滤交换机F2;最后将Fo=F2从FC中删除;
执行完步骤F后FC已经为空集,因此直接执行步骤H,而当前转发规则已和新流表对应的转发规则FW2、当前过滤交换机映射规则和新流表对应的过滤交换机映射规则M2已完全相同,因此步骤H中不需要修改流表;且更新过程中没有将数据包被上传到控制器,因此也不需要执行步骤I,所以本较优实施例中的流表更新过程到此结束。
本发明实施例还提供一种流表更新的控制装置,用于数据中心网络中的控制器,所述数据中心网络还包括入口交换机和多个过滤交换机,所述装置包括:
确定模块,用于在需要将旧流表更新为新流表时,根据旧流表的过滤交换机映射规则和新流表的过滤交换机映射规则,确定所述多个过滤交换机中需要修改过滤规则的所有第一过滤交换机;
控制模块,用于仅对所述所有第一过滤交换机进行控制操作,其中,针对任一第一过滤交换机的控制操作通过如下方式进行:
第一控制操作,控制所述入口交换机停止向所述任一第一过滤交换机转发相应数据包类型的数据包;其中,所述相应数据包类型为所述旧流表的过滤交换机映射规则中所述任一第一过滤交换机对应的数据包类型;
第二控制操作,在所述入口交换机停止向所述任一第一过滤交换机转发相应数据包类型的数据包之后,根据所述新流表的过滤交换机映射规则,修改所述任一第一过滤交换机中的过滤规则;
第三控制操作,在修改完所述任一第一过滤交换机中的过滤规则之后,根据所述新流表的转发规则,修改所述入口交换机中针对所述任一第一过滤交换机的转发规则。
可见,通过上述装置,在需要修改过滤规则的过滤交换机修改自身过滤规则的过程中,入口交换机不会向这种过滤交换机转发数据包,从而该过程不会引起违反过滤规则的问题;另一方面,由于上述方式仅对需要修改过滤规则的过滤交换机进行控制操作,则对于不需要修改过滤规则的其它过滤交换机,上述方式并不需要停止这种其它过滤交换机所对应的数据包的转发和过滤处理,从而避免了这种数据包的不必要的等待时延。
其中,所述第一控制操作具体可以包括:
判断所述多个过滤交换机中是否有在所述旧流表的过滤交换机映射规则中对应所述相应数据包类型的第二过滤交换机,获取判断结果;
当所述判断结果为是时,将所述入口交换机中针对第一数据流的转发目标设备修改为所述第二过滤交换机;其中,所述第一数据流为所述旧流表的转发规则中所述任一第一过滤交换机对应的数据流。
或者,所述第一控制操作具体可以包括:
将所述入口交换机中针对第二数据流的转发目标设备修改为所述控制器,使得所述控制器能够在所述入口交换机修改完所述入口交换机中分别针对所述所有第一过滤交换机的转发规则之后,将从所述入口交换机接收到的所述第二数据流的数据包,返回给所述入口交换机;其中,所述第二数据流为所述旧流表的转发规则中所述任一第一过滤交换机对应的数据流。
在本发明实施例中,所述控制模块中,可以对所述所有第一过滤交换机顺序进行控制操作。
进一步地,所述控制模块中,可以按照如下方式顺序对所述所有第一过滤交换机进行控制操作:
选择步骤,根据预设的第一选择策略,从所有待处理过滤交换机中,选择一个所述待处理过滤交换机;其中,所述待处理过滤交换机为所述所有第一过滤交换机中尚未修改过滤规则的过滤交换机;
控制步骤,对选择出的所述一个待处理过滤交换机进行控制操作;
返回步骤,在所述选择出的所述一个待处理过滤交换机的控制操作完成之后,在所述所有第一过滤交换机中存在待处理过滤交换机时,返回所述选择步骤。
本发明实施例还提供一种控制器,所述控制器包括以上所述的流表更新的控制装置。
以上所述仅是本发明实施例的实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明实施例原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明实施例的保护范围。

Claims (13)

1.一种流表更新的控制方法,用于数据中心网络中的控制器,其特征在于,所述数据中心网络还包括入口交换机和多个过滤交换机,所述方法包括:
在需要将旧流表更新为新流表时,根据旧流表的过滤交换机映射规则和新流表的过滤交换机映射规则,确定所述多个过滤交换机中需要修改过滤规则的所有第一过滤交换机;
仅对所述所有第一过滤交换机进行控制操作,其中,针对任一第一过滤交换机的控制操作通过如下方式进行:
第一控制操作,控制所述入口交换机停止向所述任一第一过滤交换机转发相应数据包类型的数据包;其中,所述相应数据包类型为所述旧流表的过滤交换机映射规则中所述任一第一过滤交换机对应的数据包类型;
第二控制操作,在所述入口交换机停止向所述任一第一过滤交换机转发相应数据包类型的数据包之后,根据所述新流表的过滤交换机映射规则,修改所述任一第一过滤交换机中的过滤规则;
第三控制操作,在修改完所述任一第一过滤交换机中的过滤规则之后,根据所述新流表的转发规则,修改所述入口交换机中针对所述任一第一过滤交换机的转发规则。
2.如权利要求1所述的方法,其特征在于,所述第一控制操作具体包括:
判断所述多个过滤交换机中是否有在所述旧流表的过滤交换机映射规则中对应所述相应数据包类型的第二过滤交换机,获取判断结果;
当所述判断结果为是时,将所述入口交换机中针对第一数据流的转发目标设备修改为所述第二过滤交换机;其中,所述第一数据流为所述旧流表的转发规则中所述任一第一过滤交换机对应的数据流。
3.如权利要求1所述的方法,其特征在于,所述第一控制操作具体包括:
将所述入口交换机中针对第二数据流的转发目标设备修改为所述控制器,使得所述控制器能够在所述入口交换机修改完所述入口交换机中分别针对所述所有第一过滤交换机的转发规则之后,将从所述入口交换机接收到的所述第二数据流的数据包,返回给所述入口交换机;其中,所述第二数据流为所述旧流表的转发规则中所述任一第一过滤交换机对应的数据流。
4.如权利要求1所述的方法,其特征在于,所述仅对所述所有第一过滤交换机进行控制操作的步骤中,对所述所有第一过滤交换机顺序进行控制操作。
5.如权利要求4所述的方法,其特征在于,所述仅对所述所有第一过滤交换机进行控制操作的步骤中,按照如下方式顺序对所述所有第一过滤交换机进行控制操作:
选择步骤,根据预设的第一选择策略,从所有待处理过滤交换机中,选择一个所述待处理过滤交换机;其中,所述待处理过滤交换机为所述所有第一过滤交换机中尚未修改过滤规则的过滤交换机;
控制步骤,对选择出的所述一个待处理过滤交换机进行控制操作;
返回步骤,在所述选择出的所述一个待处理过滤交换机的控制操作完成之后,在所述所有第一过滤交换机中存在待处理过滤交换机时,返回所述选择步骤。
6.如权利要求5所述的方法,其特征在于,所述选择步骤具体包括:
确定当前在所述旧流表的过滤交换机映射规则中与每个所述待处理过滤交换机对应相同数据包类型的过滤交换机的数量;
将所述数量的倒数,作为每个所述待处理过滤交换机的更新代价;
按照预设的第二选择策略,从计算出的更新代价最小的所述待处理过滤交换机中,选择所述一个待处理过滤交换机。
7.如权利要求6所述的方法,其特征在于,所述第二选择策略为随机选择策略。
8.一种流表更新的控制装置,用于数据中心网络中的控制器,其特征在于,所述数据中心网络还包括入口交换机和多个过滤交换机,所述装置包括:
确定模块,用于在需要将旧流表更新为新流表时,根据旧流表的过滤交换机映射规则和新流表的过滤交换机映射规则,确定所述多个过滤交换机中需要修改过滤规则的所有第一过滤交换机;
控制模块,用于仅对所述所有第一过滤交换机进行控制操作,其中,针对任一第一过滤交换机的控制操作通过如下方式进行:
第一控制操作,控制所述入口交换机停止向所述任一第一过滤交换机转发相应数据包类型的数据包;其中,所述相应数据包类型为所述旧流表的过滤交换机映射规则中所述任一第一过滤交换机对应的数据包类型;
第二控制操作,在所述入口交换机停止向所述任一第一过滤交换机转发相应数据包类型的数据包之后,根据所述新流表的过滤交换机映射规则,修改所述任一第一过滤交换机中的过滤规则;
第三控制操作,在修改完所述任一第一过滤交换机中的过滤规则之后,根据所述新流表的转发规则,修改所述入口交换机中针对所述任一第一过滤交换机的转发规则。
9.如权利要求8所述的装置,其特征在于,所述第一控制操作具体包括:
判断所述多个过滤交换机中是否有在所述旧流表的过滤交换机映射规则中对应所述相应数据包类型的第二过滤交换机,获取判断结果;
当所述判断结果为是时,将所述入口交换机中针对第一数据流的转发目标设备修改为所述第二过滤交换机;其中,所述第一数据流为所述旧流表的转发规则中所述任一第一过滤交换机对应的数据流。
10.如权利要求8所述的装置,其特征在于,所述第一控制操作具体包括:
将所述入口交换机中针对第二数据流的转发目标设备修改为所述控制器,使得所述控制器能够在所述入口交换机修改完所述入口交换机中分别针对所述所有第一过滤交换机的转发规则之后,将从所述入口交换机接收到的所述第二数据流的数据包,返回给所述入口交换机;其中,所述第二数据流为所述旧流表的转发规则中所述任一第一过滤交换机对应的数据流。
11.如权利要求8所述的装置,其特征在于,所述控制模块中,对所述所有第一过滤交换机顺序进行控制操作。
12.如权利要求11所述的装置,其特征在于,所述控制模块中,按照如下方式顺序对所述所有第一过滤交换机进行控制操作:
选择步骤,根据预设的第一选择策略,从所有待处理过滤交换机中,选择一个所述待处理过滤交换机;其中,所述待处理过滤交换机为所述所有第一过滤交换机中尚未修改过滤规则的过滤交换机;
控制步骤,对选择出的所述一个待处理过滤交换机进行控制操作;
返回步骤,在所述选择出的所述一个待处理过滤交换机的控制操作完成之后,在所述所有第一过滤交换机中存在待处理过滤交换机时,返回所述选择步骤。
13.一种控制器,其特征在于,包括如权利要求8至12中任一项所述的流表更新的控制装置。
CN201310392538.7A 2013-09-02 2013-09-02 一种流表更新的控制方法、装置及控制器 Withdrawn CN104426813A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201310392538.7A CN104426813A (zh) 2013-09-02 2013-09-02 一种流表更新的控制方法、装置及控制器
PCT/CN2014/085324 WO2015027924A1 (zh) 2013-09-02 2014-08-27 一种流表更新的控制方法、装置及控制器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310392538.7A CN104426813A (zh) 2013-09-02 2013-09-02 一种流表更新的控制方法、装置及控制器

Publications (1)

Publication Number Publication Date
CN104426813A true CN104426813A (zh) 2015-03-18

Family

ID=52585602

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310392538.7A Withdrawn CN104426813A (zh) 2013-09-02 2013-09-02 一种流表更新的控制方法、装置及控制器

Country Status (2)

Country Link
CN (1) CN104426813A (zh)
WO (1) WO2015027924A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104935604A (zh) * 2015-06-29 2015-09-23 南京邮电大学 一种基于OpenFlow协议的SDN防火墙系统和方法
CN104954261A (zh) * 2015-05-26 2015-09-30 上海斐讯数据通信技术有限公司 利用流表转发数据的方法及系统
CN106656822A (zh) * 2017-02-13 2017-05-10 北京邮电大学 一种软件定义网络流表更新的方法及装置
CN108011827A (zh) * 2016-10-28 2018-05-08 中国电信股份有限公司 一种基于sdn的数据转发方法、系统以及控制器

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106850616B (zh) * 2017-01-24 2019-10-18 南京理工大学 利用sdn技术解决分布式防火墙网络一致更新的方法
CN113612691B (zh) * 2021-08-06 2023-04-07 浙江工商大学 一种路径转换方法、存储介质及终端设备
CN116232997B (zh) * 2023-02-10 2024-04-09 中国联合网络通信集团有限公司 数据转发方法、装置及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1708029A (zh) * 2004-06-08 2005-12-14 华为技术有限公司 建立转发流表的方法
WO2010103909A1 (ja) * 2009-03-09 2010-09-16 日本電気株式会社 OpenFlow通信システムおよびOpenFlow通信方法
CN102946365A (zh) * 2012-11-09 2013-02-27 清华大学 一种基于软件定义网络的保持流表更新一致性的方法
CN103023826A (zh) * 2012-12-26 2013-04-03 华中科技大学 一种OpenFlow控制器的路由控制方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5717164B2 (ja) * 2009-10-07 2015-05-13 日本電気株式会社 コンピュータシステム、及びコンピュータシステムのメンテナンス方法
WO2011162215A1 (ja) * 2010-06-23 2011-12-29 日本電気株式会社 通信システム、制御装置、ノードの制御方法およびプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1708029A (zh) * 2004-06-08 2005-12-14 华为技术有限公司 建立转发流表的方法
WO2010103909A1 (ja) * 2009-03-09 2010-09-16 日本電気株式会社 OpenFlow通信システムおよびOpenFlow通信方法
CN102946365A (zh) * 2012-11-09 2013-02-27 清华大学 一种基于软件定义网络的保持流表更新一致性的方法
CN103023826A (zh) * 2012-12-26 2013-04-03 华中科技大学 一种OpenFlow控制器的路由控制方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104954261A (zh) * 2015-05-26 2015-09-30 上海斐讯数据通信技术有限公司 利用流表转发数据的方法及系统
CN104954261B (zh) * 2015-05-26 2018-01-16 上海斐讯数据通信技术有限公司 利用流表转发数据的方法及系统
CN104935604A (zh) * 2015-06-29 2015-09-23 南京邮电大学 一种基于OpenFlow协议的SDN防火墙系统和方法
CN104935604B (zh) * 2015-06-29 2018-10-30 南京邮电大学 一种基于OpenFlow协议的SDN防火墙系统和方法
CN108011827A (zh) * 2016-10-28 2018-05-08 中国电信股份有限公司 一种基于sdn的数据转发方法、系统以及控制器
CN106656822A (zh) * 2017-02-13 2017-05-10 北京邮电大学 一种软件定义网络流表更新的方法及装置

Also Published As

Publication number Publication date
WO2015027924A1 (zh) 2015-03-05

Similar Documents

Publication Publication Date Title
CN104426813A (zh) 一种流表更新的控制方法、装置及控制器
US10003649B2 (en) Systems and methods to improve read/write performance in object storage applications
CN102714628B (zh) 通信系统、控制装置、处理规则设置方法和分组传输方法
Heintz et al. End-to-end optimization for geo-distributed mapreduce
CN103139265B (zh) 大规模并行计算系统中的网络传输自适应优化方法及系统
Liu et al. eBA: Efficient bandwidth guarantee under traffic variability in datacenters
US20150277990A1 (en) System and Methods for Collaborative Query Processing for Large Scale Data Processing with Software Defined Networking
JP5324637B2 (ja) 動的フローレットスケジューリングシステム、フロースケジューリング方法、及びフロースケジューリングプログラム
CN103812949B (zh) 一种面向实时云平台的任务调度与资源分配方法及系统
CN105159775A (zh) 基于负载均衡器的云计算数据中心的管理系统和管理方法
CN107729147A (zh) 流计算系统中的数据处理方法、控制节点及流计算系统
CN104092756A (zh) 一种基于dht机制的云存储系统的资源动态分配方法
CN104937572A (zh) 业务和/或工作负荷处理
CN102170396A (zh) 一种基于区分服务的云存储系统QoS控制方法
US20170034063A1 (en) Prioritization of network traffic in a distributed processing system
KR20170017903A (ko) 네트워크 장애의 선제적 핸들링 기법
CN105308920A (zh) 多播流重排序方案
CN105357124B (zh) 一种MapReduce带宽优化方法
CN108476175B (zh) 使用对偶变量的传送sdn流量工程方法与系统
EP3163446A1 (en) Data storage method and data storage management server
CN107612771A (zh) 一种基于动态迁移的sdn网络负载均衡方法
US10263884B2 (en) Coordinated content distribution over network
CN107483355B (zh) 面向数据中心的在线场景低带宽开销流量调度方案
CN104641606B (zh) 网络资源均衡处理的方法和虚拟网络管理实体
CN104811403A (zh) 基于开放流的组表处理方法、装置及组表配置单元

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WW01 Invention patent application withdrawn after publication

Application publication date: 20150318

WW01 Invention patent application withdrawn after publication