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

文档序号:8006239阅读:185来源:国知局
一种流表更新的控制方法、装置及控制器的制造方法
【专利摘要】本发明实施例提供一种流表更新的控制方法、装置及控制器。所述方法包括:在需要将旧流表更新为新流表时,根据旧流表的过滤交换机映射规则和新流表的过滤交换机映射规则,确定所述多个过滤交换机中需要修改过滤规则的所有第一过滤交换机;仅对所述所有第一过滤交换机进行控制操作,其中,针对任一第一过滤交换机的控制操作通过如下方式进行:第一控制操作;第二控制操作;第三控制操作。本发明实施例提供了实现不违反过滤规则的流表更新的新方式。
【专利说明】-种流表更新的控制方法、装置及控制器

【技术领域】
[0001] 本发明涉及互联网领域,尤其涉及一种流表更新的控制方法、装置及控制器。

【背景技术】
[0002] 软件定义网络(SoftwareDefinedNetwork,SDN)指将数据平面与控制平面分离, 数据平面由具有统一接口的数据包转发设备组成,控制平面由集中式控制器组成。控制器 通过配置数据平面转发设备的转发规则实现对数据包转发功能的控制。数据中心因网络节 点规模大、节点间流量动态性强、对网络持续连接性及可靠性要求高,需要对数据包转发进 行灵活和精细的控制,软件定义网络因满足这一需求而受到了数据中心网络设计者的广泛 关注。
[0003]OpenFlow协议是目前SDN网络中应用最广泛的控制平面和数据平面通信的协议。OpenFlow交换机即指支持OpenFlow协议的转发设备,它通过由控制器配置的流表规则对 进入的数据包进行处理。特别是,由于OpenFlow协议支持丢包操作,因而可以在OpenFlow 交换机中配置流表规则实现数据包过滤功能。然而,由于交换机的流表数量以及接入带宽 都是有限的,为了应对大规模的数据流量,需要同时采用多个交换机实现过滤功能,且尽可 能保证每个交换机的负载相同,以提高资源利用率和过滤性能。考虑这些因素后,图1给出 了一种典型的基于OpenFlow交换机实现数据包过滤的两层结构。该结构中,第一层交换机 S实现数据包分类和均衡功能,第二层交换机F实现每类数据包的过滤规则。例如,针对文 件访问服务,交换机S根据源IP地址将数据包分为授权用户数据包和非授权用户数据包, 第二层交换机根据目的IP地址过滤掉非授权用户对特定文件服务器的访问,而保证授权 用户可以正常访问。为了方便描述,将S称为入口交换机,F称为过滤交换机。并用若干数 据流来抽象所有进入S的数据包,数据流可由典型的5元组定义,S卩(源MC地址,目的MC 地址,源IP地址,目的IP地址,协议),每类数据包由其中的若干数据流组成。根据安全规 贝1J,需要过滤掉某些流对应的数据包,我们将其称为该类数据包的过滤规则。不同类型的数 据包具有不同的过滤规则。
[0004] 为了保证安全,过滤交换机Fi实现的过滤规则应和转发至它的数据包的类型一 致,也即,若S将第j类的数据包转发至Fi,则Fi中应实现第j类数据包的过滤规则。另外, 当不同类型数据流量发生变换时,控制器需要通过修改S和F中的流表来达到新的均衡,使 转发至每个过滤交换机的流量尽可能相同。
[0005] 然而,由于不能保证修改后S和F中的流表在同一时刻生效,因此流表更新过程可 能违反过滤规则。所谓违反过滤规则,是指在Fi中的流表实现了第j类数据包过滤规则的 情况下,将第k类数据包转发至Fi (j尹k)。因此,需要一种流表更新方案,保证流表更新过 程不会违反过滤规则。
[0006] 目前的流表更新方案,将更新前后的流表看作两套不同的流表,分别称之为旧流 表和新流表。先在入口交换机处写入中间流表,使得入口交换机将更新过程中的数据包上 传到控制器缓存;然后在各过滤交换机中写入新流表,等所有过滤交换机中新流表有效后 再在入口交换机处写入新流表,同时将缓存的数据包返回入口交换机进行处理。


【发明内容】

[0007] 有鉴于此,本发明实施例的目的是提供一种流表更新的控制方法、装置及控制器, 以提供实现不违反过滤规则的流表更新的新方式。
[0008] 为解决上述技术问题,本发明实施例提供方案如下:
[0009] 本发明实施例提供一种流表更新的控制方法,用于数据中心网络中的控制器,所 述数据中心网络还包括入口交换机和多个过滤交换机,所述方法包括:
[0010] 在需要将旧流表更新为新流表时,根据旧流表的过滤交换机映射规则和新流表的 过滤交换机映射规则,确定所述多个过滤交换机中需要修改过滤规则的所有第一过滤交换 机;
[0011] 仅对所述所有第一过滤交换机进行控制操作,其中,针对任一第一过滤交换机的 控制操作通过如下方式进行:
[0012] 第一控制操作,控制所述入口交换机停止向所述任一第一过滤交换机转发相应数 据包类型的数据包;其中,所述相应数据包类型为所述旧流表的过滤交换机映射规则中所 述任一第一过滤交换机对应的数据包类型;
[0013] 第二控制操作,在所述入口交换机停止向所述任一第一过滤交换机转发相应数据 包类型的数据包之后,根据所述新流表的过滤交换机映射规则,修改所述任一第一过滤交 换机中的过滤规则;
[0014] 第三控制操作,在修改完所述任一第一过滤交换机中的过滤规则之后,根据所述 新流表的转发规则,修改所述入口交换机中针对所述任一第一过滤交换机的转发规则。
[0015] 优选地,所述第一控制操作具体包括:
[0016] 判断所述多个过滤交换机中是否有在所述旧流表的过滤交换机映射规则中对应 所述相应数据包类型的第二过滤交换机,获取判断结果;
[0017] 当所述判断结果为是时,将所述入口交换机中针对第一数据流的转发目标设备修 改为所述第二过滤交换机;其中,所述第一数据流为所述旧流表的转发规则中所述任一第 一过滤交换机对应的数据流。
[0018] 优选地,所述第一控制操作具体包括:
[0019] 将所述入口交换机中针对第二数据流的转发目标设备修改为所述控制器,使得所 述控制器能够在所述入口交换机修改完所述入口交换机中分别针对所述所有第一过滤交 换机的转发规则之后,将从所述入口交换机接收到的所述第二数据流的数据包,返回给所 述入口交换机;其中,所述第二数据流为所述旧流表的转发规则中所述任一第一过滤交换 机对应的数据流。
[0020] 优选地,所述仅对所述所有第一过滤交换机进行控制操作的步骤中,对所述所有 第一过滤交换机顺序进行控制操作。
[0021] 优选地,所述仅对所述所有第一过滤交换机进行控制操作的步骤中,按照如下方 式顺序对所述所有第一过滤交换机进行控制操作:
[0022] 选择步骤,根据预设的第一选择策略,从所有待处理过滤交换机中,选择一个所述 待处理过滤交换机;其中,所述待处理过滤交换机为所述所有第一过滤交换机中尚未修改 过滤规则的过滤交换机;
[0023] 控制步骤,对选择出的所述一个待处理过滤交换机进行控制操作;
[0024] 返回步骤,在所述选择出的所述一个待处理过滤交换机的控制操作完成之后,在 所述所有第一过滤交换机中存在待处理过滤交换机时,返回所述选择步骤。
[0025] 优选地,所述选择步骤具体包括:
[0026] 确定当前在所述旧流表的过滤交换机映射规则中与每个所述待处理过滤交换机 对应相同数据包类型的过滤交换机的数量;
[0027] 将所述数量的倒数,作为每个所述待处理过滤交换机的更新代价;
[0028] 按照预设的第二选择策略,从计算出的更新代价最小的所述待处理过滤交换机 中,选择所述一个待处理过滤交换机。
[0029] 优选地,所述第二选择策略为随机选择策略。
[0030] 本发明实施例还提供一种流表更新的控制装置,用于数据中心网络中的控制器, 所述数据中心网络还包括入口交换机和多个过滤交换机,所述装置包括:
[0031] 确定模块,用于在需要将旧流表更新为新流表时,根据旧流表的过滤交换机映射 规则和新流表的过滤交换机映射规则,确定所述多个过滤交换机中需要修改过滤规则的所 有第一过滤交换机;
[0032] 控制模块,用于仅对所述所有第一过滤交换机进行控制操作,其中,针对任一第一 过滤交换机的控制操作通过如下方式进行:
[0033] 第一控制操作,控制所述入口交换机停止向所述任一第一过滤交换机转发相应数 据包类型的数据包;其中,所述相应数据包类型为所述旧流表的过滤交换机映射规则中所 述任一第一过滤交换机对应的数据包类型;
[0034] 第二控制操作,在所述入口交换机停止向所述任一第一过滤交换机转发相应数据 包类型的数据包之后,根据所述新流表的过滤交换机映射规则,修改所述任一第一过滤交 换机中的过滤规则;
[0035] 第三控制操作,在修改完所述任一第一过滤交换机中的过滤规则之后,根据所述 新流表的转发规则,修改所述入口交换机中针对所述任一第一过滤交换机的转发规则。
[0036] 优选地,所述第一控制操作具体包括:
[0037] 判断所述多个过滤交换机中是否有在所述旧流表的过滤交换机映射规则中对应 所述相应数据包类型的第二过滤交换机,获取判断结果;
[0038] 当所述判断结果为是时,将所述入口交换机中针对第一数据流的转发目标设备修 改为所述第二过滤交换机;其中,所述第一数据流为所述旧流表的转发规则中所述任一第 一过滤交换机对应的数据流。
[0039] 优选地,所述第一控制操作具体包括:
[0040] 将所述入口交换机中针对第二数据流的转发目标设备修改为所述控制器,使得所 述控制器能够在所述入口交换机修改完所述入口交换机中分别针对所述所有第一过滤交 换机的转发规则之后,将从所述入口交换机接收到的所述第二数据流的数据包,返回给所 述入口交换机;其中,所述第二数据流为所述旧流表的转发规则中所述任一第一过滤交换 机对应的数据流。
[0041] 优选地,所述控制模块中,对所述所有第一过滤交换机顺序进行控制操作。
[0042] 优选地,所述控制模块中,按照如下方式顺序对所述所有第一过滤交换机进行控 制操作:
[0043] 选择步骤,根据预设的第一选择策略,从所有待处理过滤交换机中,选择一个所述 待处理过滤交换机;其中,所述待处理过滤交换机为所述所有第一过滤交换机中尚未修改 过滤规则的过滤交换机;
[0044] 控制步骤,对选择出的所述一个待处理过滤交换机进行控制操作;
[0045] 返回步骤,在所述选择出的所述一个待处理过滤交换机的控制操作完成之后,在 所述所有第一过滤交换机中存在待处理过滤交换机时,返回所述选择步骤。
[0046] 本发明实施例还提供一种包括以上所述的流表更新的控制装置的控制器。
[0047] 从以上所述可以看出,本发明实施例至少具有如下有益效果:
[0048] 在需要修改过滤规则的过滤交换机修改自身过滤规则的过程中,入口交换机不会 向这种过滤交换机转发数据包,从而该过程不会引起违反过滤规则的问题;另一方面,由于 上述方式仅对需要修改过滤规则的过滤交换机进行控制操作,则对于不需要修改过滤规则 的其它过滤交换机,上述方式并不需要停止这种其它过滤交换机所对应的数据包的转发和 过滤处理,从而避免了这种数据包的不必要的等待时延。

【专利附图】

【附图说明】
[0049] 图1表示典型的基于OpenFlow交换机实现数据包过滤的两层结构示意图;
[0050] 图2表示本发明实施例提供的一种流表更新的控制方法的步骤流程图。

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

【背景技术】 [0052] 中指出的流表更新方案,需要更新所有过滤交换机中的流表,并且在流 表更新过程中不会让入口交换机进行数据包到任何一个过滤交换机的转发。然而,可能存 在这样的过滤交换机,其在新旧流表中的过滤规则所针对的数据包类型相同,则在向这样 的过滤交换机写入新流表的过程中,让入口交换机向其转发对应的数据包,并不会引起违 反过滤规则的问题。由此,中使入口交换机停止将对应数据包转发到这样的过滤 交换机对于避免引起过滤规则的违反来说就是不必要的,反而因为对这部分数据包进行缓 存而造成了这部分数据包不必要的等待时延。
[0053] 图2表示本发明实施例提供的一种流表更新的控制方法的步骤流程图,参照图2, 本发明实施例提供一种流表更新的控制方法,用于数据中心网络中的控制器,所述数据中 心网络还包括入口交换机和多个过滤交换机,所述方法包括如下步骤:
[0054] 步骤201,在需要将旧流表更新为新流表时,根据旧流表的过滤交换机映射规则和 新流表的过滤交换机映射规则,确定所述多个过滤交换机中需要修改过滤规则的所有第一 过滤交换机;
[0055] 步骤202,仅对所述所有第一过滤交换机进行控制操作,其中,针对任一第一过滤 交换机的控制操作通过如下方式进行:
[0056] 第一控制操作,控制所述入口交换机停止向所述任一第一过滤交换机转发相应数 据包类型的数据包;其中,所述相应数据包类型为所述旧流表的过滤交换机映射规则中所 述任一第一过滤交换机对应的数据包类型;
[0057] 第二控制操作,在所述入口交换机停止向所述任一第一过滤交换机转发相应数据 包类型的数据包之后,根据所述新流表的过滤交换机映射规则,修改所述任一第一过滤交 换机中的过滤规则;
[0058] 第三控制操作,在修改完所述任一第一过滤交换机中的过滤规则之后,根据所述 新流表的转发规则,修改所述入口交换机中针对所述任一第一过滤交换机的转发规则。
[0059] 可见,通过上述方式实现的流表更新,在需要修改过滤规则的过滤交换机修改自 身过滤规则的过程中,入口交换机不会向这种过滤交换机转发数据包,从而该过程不会引 起违反过滤规则的问题;另一方面,由于上述方式仅对需要修改过滤规则的过滤交换机进 行控制操作,则对于不需要修改过滤规则的其它过滤交换机,上述方式并不需要停止这种 其它过滤交换机所对应的数据包的转发和过滤处理,从而避免了这种数据包的不必要的等 待时延。此外,上述方式不需要对不需要修改过滤规则的过滤交换机写入新流表,从而减少 了更新过程所需的流表写入次数。此外,上述方式通过一套流表即可实现。
[0060] 其中,交换机例如:0penFlow交换机。
[0061] 所述旧流表可以为初始流表,或者,也可以为根据现有技术进行流表更新后的流 表。
[0062] 所述旧流表的过滤交换机映射规则可以由所述控制器从所述旧流表中解析得 到;
[0063] 所述新流表的过滤交换机映射规则可以由所述控制器从所述新流表中解析得 到;
[0064] 所述新流表的转发规则可以由所述控制器从所述新流表中解析得到。
[0065] 需要修改过滤规则的过滤交换机,是指在旧流表的过滤交换机映射规则中和在新 流表的过滤交换机映射规则中对应的数据包类型不同的过滤交换机。
[0066] 所述根据所述新流表的过滤交换机映射规则,修改所述任一第一过滤交换机中的 过滤规则具体可以包括:
[0067] 将所述任一第一过滤交换机中的过滤规则修改为所述新流表的过滤交换机映射 规则中所述任一第一过滤交换机对应的过滤规则。
[0068] 所述根据所述新流表的转发规则,修改所述入口交换机中针对所述任一第一过滤 交换机的转发规则具体可以包括:
[0069] 将所述入口交换机中针对所述任一第一过滤交换机的转发规则修改为所述新流 表的转发规则中所述任一第一过滤交换机对应的转发规则。
[0070] 在本发明实施例中,所述第一控制操作具体可以包括:
[0071] 判断所述多个过滤交换机中是否有在所述旧流表的过滤交换机映射规则中对应 所述相应数据包类型的第二过滤交换机,获取判断结果;
[0072] 当所述判断结果为是时,将所述入口交换机中针对第一数据流的转发目标设备修 改为所述第二过滤交换机;其中,所述第一数据流为所述旧流表的转发规则中所述任一第 一过滤交换机对应的数据流。
[0073] 其中,针对第一数据流的转发目标设备是指所述入口交换机在收到所述第一数据 流的数据包后按照自身流表来将接收到的所述第一数据流的数据包转发至的设备。
[0074] 或者,所述第一控制操作具体可以包括:
[0075] 将所述入口交换机中针对第二数据流的转发目标设备修改为所述控制器,使得所 述控制器能够在所述入口交换机修改完所述入口交换机中分别针对所述所有第一过滤交 换机的转发规则之后,将从所述入口交换机接收到的所述第二数据流的数据包,返回给所 述入口交换机;其中,所述第二数据流为所述旧流表的转发规则中所述任一第一过滤交换 机对应的数据流。
[0076] 其中,所述旧流表的转发规则可以由所述控制器从所述旧流表中解析得到。
[0077] 针对第一数据流的转发目标设备是指所述入口交换机在收到所述第一数据流的 数据包后按照自身流表来将接收到的所述第一数据流的数据包转发至的设备。
[0078]当然,上述所述第一控制操作的具体方式也可以相结合,例如,所述第一控制操作 具体可以包括:
[0079] 判断所述多个过滤交换机中是否有在所述旧流表的过滤交换机映射规则中对应 所述相应数据包类型的第二过滤交换机,获取判断结果;
[0080] 当所述判断结果为是时,将所述入口交换机中针对第一数据流的转发目标设备修 改为所述第二过滤交换机;其中,所述第一数据流为所述旧流表的转发规则中所述任一第 一过滤交换机对应的数据流;
[0081] 当所述判断结果为否时,将所述入口交换机中针对第二数据流的转发目标设备修 改为所述控制器,使得所述控制器能够在所述入口交换机修改完所述入口交换机中分别针 对所述所有第一过滤交换机的转发规则之后,将从所述入口交换机接收到的所述第二数据 流的数据包,返回给所述入口交换机;其中,所述第二数据流为所述旧流表的转发规则中所 述任一第一过滤交换机对应的数据流。
[0082] 在本发明实施例中,所述仅对所述所有第一过滤交换机进行控制操作的步骤中, 可以对所述所有第一过滤交换机顺序进行控制操作。
[0083] 进一步地,所述仅对所述所有第一过滤交换机进行控制操作的步骤中,可以按照 如下方式顺序对所述所有第一过滤交换机进行控制操作:
[0084] 选择步骤,根据预设的第一选择策略,从所有待处理过滤交换机中,选择一个所述 待处理过滤交换机;其中,所述待处理过滤交换机为所述所有第一过滤交换机中尚未修改 过滤规则的过滤交换机;
[0085] 控制步骤,对选择出的所述一个待处理过滤交换机进行控制操作;
[0086] 返回步骤,在所述选择出的所述一个待处理过滤交换机的控制操作完成之后,在 所述所有第一过滤交换机中存在待处理过滤交换机时,返回所述选择步骤。
[0087] 其中,所述选择步骤具体可以包括:
[0088] 确定当前在所述旧流表的过滤交换机映射规则中与每个所述待处理过滤交换机 对应相同数据包类型的过滤交换机的数量;
[0089] 将所述数量的倒数,作为每个所述待处理过滤交换机的更新代价;
[0090] 按照预设的第二选择策略,从计算出的更新代价最小的所述待处理过滤交换机 中,选择所述一个待处理过滤交换机。
[0091] 其中,所述第二选择策略可以为随机选择策略。
[0092] 为将本发明实施例阐述得更加清楚明白,下面提供本发明实施例的较佳实施方 式。
[0093] 本较佳实施方式提供一种SDN中保证安全规则的流表更新方法,其中,所述旧流 表为初始流表,该SDN中保证安全规则的流表更新方法包括以下步骤:
[0094] 步骤A,控制器获取初始数据:包括分析流表,获取初始和新的转发规则以及交换 机映射规则,所谓转发规则,是指将不同数据流转发至不同过滤交换机的方案;所谓过滤交 换机映射规则,是指将不同过滤交换机分配给不同类型数据并执行相应过滤规则的方案。 具体包括分析初始流表,获取初始转发规则S/SLj1, = /i表示初始时将 数据流1转发至第η个过滤交换机,获取初始过滤交换机映射规则M1 = >/丨',IS/7S, /VZ1"=〃;表示初始时第η个过滤交换机实现了第m类数据包的过滤规则;分析新流表,获取 新的转发规则FR= &的以及新的过滤交换机映射规则从2 = {M丨,IS<况}。
[0095] 步骤Β,控制器比较初始过滤交换机映射规则乂和新的过滤交换机映射规则M2,得 到需要修改过滤规则的过滤交换机集合F。,也即初始过滤规则和新的过滤规则不同的交换 机集合;
[0096] 步骤C,控制器从当前需要修改的过滤交换机集合F。中选出更新代价最小的过滤 交换机F。;所述更新代价可以根据不同目标和需要定义;所述更新代价可用不同的方法来 衡量,例如可用实现同类过滤规则的交换机数量的倒数来衡量,本发明不局限于某一具体 的更新代价衡量方法;在选择更新代价最小的过滤交换机时,若多个过滤交换机的更新代 价相等且同时最小,则随机选择一个作为最终更新代价最小的过滤交换机F。;
[0097] 步骤D,控制器分析当前过滤交换机映射规则,得到与F。具有相同过滤规则的其他 过滤交换机组成的集合Fs;
[0098] 步骤Ε,若Fs非空,根据初始转发规则,修改入口交换机S的流表,将转发至F。的 数据流转发至Fs中的过滤交换机;若Fs为空,修改入口交换机中的流表,将转发至F。的数 据流转发至控制器缓存;
[0099]步骤F,更新与F。相关的流表,包括首先修改F。的过滤规则,使其满足新的过滤交 换机映射规则;然后根据新的转发规则,修改入口交换机中的流表,将对应的数据流转发至 F。;最后从Fc中删除F。;
[0100] 步骤G,若F。不为空,则返回步骤C执行;否则,执行步骤H;
[0101] 步骤Η,修改入口交换机S中的流表,实现新流表的转发规则FW2 ;
[0102] 步骤I,将控制器缓存的数据包发送到入口交换机处理。
[0103] 下面,从逻辑推理的角度阐述本较佳实施方式是如何保证更新过程中安全规则不 被破坏的。所述安全规则不被破坏指在流表更新过程中过滤交换机实现的过滤规则和转发 至它的数据包类型一致。
[0104] 步骤A、B、C、D不涉及流表更新,因此不会破坏安全规则;
[0105] 步骤E中涉及修改入口交换机S中的流表。由于Fs中的过滤交换机和F。具有相 同的转发规则,因此将转发至F。中的数据流转发至Fs中的交换机不会破坏过滤规则;当Fs 为空时,将转发至F。中的数据流转发至控制器缓存也不会破坏安全规则;
[0106] 步骤F中涉及修改入口交换机S和过滤交换机F中的流表。由与步骤E结束后, 已没有数据流转发至过滤交换机F。,因此修改F。的过滤规则是安全的;修改过滤规则后,F。 的过滤规则满足新的交换机映射规则,因此根据新的转发规则,修改S中的流表将对应的 数据流转发至F。是安全的;
[0107] 步骤G不涉及流表更新,因此不会破坏安全规则;
[0108] 步骤H执行之前,已完成对所有过滤交换机过滤规则的修改,也即所有过滤交换 机均满足新流表对应的过滤交换机映射规则,因此根据新的转发规则修改S中的流表是安 全的;
[0109] 步骤I执行之前,所有交换机的流表已从初始流表更新为新流表,此时交换机中 流表项的设置是符合安全规则的,因此将更新过程中缓存的数据包送到入口交换机S处理 是安全的。
[0110]本较佳实施方式针对软件定义数据中心网络中基于OpenFlow交换机进行数据包 过滤场景下的流表更新,给出了新的、不会破坏过滤规则的流表更新方案,保证在流表更新 过程中过滤交换机部署的过滤规则和转发至它的数据包类型一致。

【背景技术】 [0111] 中指出的基于中间流表的方案是通用场景下的流表更新方案,主要关注 流表更新过程的一致性,也即将更新前后的流表看作两套不同的流表,分别称之为旧流表 和新流表,在更新过程中,对于每一个数据包,或者根据旧流表来处理,或者根据新流表来 处理,不能在某些网络设备中根据旧流表来处理,而在另外一些网络设备中根据新流表来 处理。为了实现一致性的目的,还可以有另一种方案:采用VLAN标签来区分新旧两套流表, 同时,在入口交换机处对进入网络的数据包也设置VLAN标签,每个网络设备用具有相同 VLAN标签的流表规则对进入的数据包进行处理。
[0112] 上述两种方案虽然可以用于图1所示场景下的流表更新,但存在几个主要问题。 首先,基于VLAN标签的方案在更新过程中同时包含新旧两套流表,需要占用更多流表资 源,另外,由于使用了VLAN作为标签,因此需要全局的VLAN分配和管理;其次,采用中间流 表的方案在更新过程中将数据包上传给控制器,因此控制器接口带宽及处理能力将成为影 响网络性能的瓶颈;最后,上述两个方案均并行更新所有交换机中的流表,虽然减小了流表 更新所需时间,但会导致控制网络流量突增,影响网络性能。
[0113] 与基于VLAN标签的更新方法相比,本较佳实施方式在更新过程中只使用一套流 表资源,降低了更新过程对流表资源的需求,同时由于没有使用VLAN标签,本较佳实施方 式在图1所示场景下更具通用性;与基于中间流表的更新方法相比,本较佳实施方式避免 了将所有更新过程涉及的数据包上传到控制器处理,降低了控制器的负载。除了上述优点 之外,本较佳实施方式采用了顺序更新方案,控制器在每个时刻只更新一个或少数几个交 换机的流表,相比并行方案,流表更新任务导致的控制流量的增加较少,使得本较佳实施方 式在保证流表更新过程不违反安全规则的同时有效降低了控制流量抖动。
[0114] 本较佳实施方式保证了流表更新过程不会破坏数据中心网络定义的安全过滤规 贝1J,且减少了更新过程中所需流表数量、降低了更新过程中网络流量的抖动。
[0115] 在本较佳实施方式中,对于按照可用实现同类过滤规则的交换机数量的倒数来衡 量所述更新代价的情况,优先对当前可用实现同类过滤规则的交换机数量的倒数最小的过 滤交换机进行相关的流表更新,有利于减小更新过程中需要上传到控制器的数据包流量。
[0116] 下面给出本较佳实施方式的较优实施例,据此说明如何将本较佳实施方式应用到 流表更新过程中。
[0117] 本较优实施例假设有两类数据包;3个过滤交换机FpF2和F3 ;4条数据流, 且其中数据流1-2组成第一类数据包,数据流3-4组成第二类数据包。并假设初始 转发规则为=1,/7%2= 2, =3丨,即将数据流1转发至F1,将 数据流2转发至F2,将数据流3和数据流4转发至F3;初始过滤交换机的映射规则为M1 = (M: =KM12 =KM15 = 2丨,即Fl、F2实现第一类数据包的过滤规则,F3实现第二类数据包 的过滤规则。新的转发规则为/7% = =I,/7%2 =I,=2,=3},即新的流表中将 数据流1和数据流2转发至F1,数据流3转发至F2,数据流4转发至F3;新的过滤交换机映 射规则为M2 ={m>1,M22 =2,M23 =2},即新的流表中F1实现第一类数据包的过滤规则,F2 和F3实现第二类数据包的过滤规则。
[0118] 在步骤B中通过比较M1和M2,得到需要修改的过滤交换机集合Fc = {F2};
[0119] 在步骤C中选出更新代价最小的交换机F。=F2 ;
[0120] 由于F2中实现了第一类数据包的过滤规则,因此步骤D中得到与F。具有相同过滤 规则的交换机集合Fs ={FJ;
[0121] 由于Fs非空,在步骤E中,修改S中的流表,将转发至F。=F2的数据流2改为转 发至Fs中的过滤交换机F1;
[0122] 由于見:=2,因此在步骤F中,首先修改过滤交换机F。=F2中的流表,使其实现 第二类数据包的过滤规则;然后根据转发规则FW2,修改S中的流表,将数据流3转发至过滤 交换机F2 ;最后将F。=F2从F。中删除;
[0123] 执行完步骤F后Fc已经为空集,因此直接执行步骤H,而当前转发规则已和新流表 对应的转发规则FW2、当前过滤交换机映射规则和新流表对应的过滤交换机映射规则M2已 完全相同,因此步骤H中不需要修改流表;且更新过程中没有将数据包被上传到控制器,因 此也不需要执行步骤I,所以本较优实施例中的流表更新过程到此结束。
[0124] 本发明实施例还提供一种流表更新的控制装置,用于数据中心网络中的控制器, 所述数据中心网络还包括入口交换机和多个过滤交换机,所述装置包括:
[0125] 确定模块,用于在需要将旧流表更新为新流表时,根据旧流表的过滤交换机映射 规则和新流表的过滤交换机映射规则,确定所述多个过滤交换机中需要修改过滤规则的所 有第一过滤交换机;
[0126] 控制模块,用于仅对所述所有第一过滤交换机进行控制操作,其中,针对任一第一 过滤交换机的控制操作通过如下方式进行:
[0127] 第一控制操作,控制所述入口交换机停止向所述任一第一过滤交换机转发相应数 据包类型的数据包;其中,所述相应数据包类型为所述旧流表的过滤交换机映射规则中所 述任一第一过滤交换机对应的数据包类型;
[0128]第二控制操作,在所述入口交换机停止向所述任一第一过滤交换机转发相应数据 包类型的数据包之后,根据所述新流表的过滤交换机映射规则,修改所述任一第一过滤交 换机中的过滤规则;
[0129] 第三控制操作,在修改完所述任一第一过滤交换机中的过滤规则之后,根据所述 新流表的转发规则,修改所述入口交换机中针对所述任一第一过滤交换机的转发规则。
[0130] 可见,通过上述装置,在需要修改过滤规则的过滤交换机修改自身过滤规则的过 程中,入口交换机不会向这种过滤交换机转发数据包,从而该过程不会引起违反过滤规则 的问题;另一方面,由于上述方式仅对需要修改过滤规则的过滤交换机进行控制操作,则对 于不需要修改过滤规则的其它过滤交换机,上述方式并不需要停止这种其它过滤交换机所 对应的数据包的转发和过滤处理,从而避免了这种数据包的不必要的等待时延。
[0131] 其中,所述第一控制操作具体可以包括:
[0132] 判断所述多个过滤交换机中是否有在所述旧流表的过滤交换机映射规则中对应 所述相应数据包类型的第二过滤交换机,获取判断结果;
[0133] 当所述判断结果为是时,将所述入口交换机中针对第一数据流的转发目标设备修 改为所述第二过滤交换机;其中,所述第一数据流为所述旧流表的转发规则中所述任一第 一过滤交换机对应的数据流。
[0134] 或者,所述第一控制操作具体可以包括:
[0135] 将所述入口交换机中针对第二数据流的转发目标设备修改为所述控制器,使得所 述控制器能够在所述入口交换机修改完所述入口交换机中分别针对所述所有第一过滤交 换机的转发规则之后,将从所述入口交换机接收到的所述第二数据流的数据包,返回给所 述入口交换机;其中,所述第二数据流为所述旧流表的转发规则中所述任一第一过滤交换 机对应的数据流。
[0136] 在本发明实施例中,所述控制模块中,可以对所述所有第一过滤交换机顺序进行 控制操作。
[0137] 进一步地,所述控制模块中,可以按照如下方式顺序对所述所有第一过滤交换机 进行控制操作:
[0138] 选择步骤,根据预设的第一选择策略,从所有待处理过滤交换机中,选择一个所述 待处理过滤交换机;其中,所述待处理过滤交换机为所述所有第一过滤交换机中尚未修改 过滤规则的过滤交换机;
[0139] 控制步骤,对选择出的所述一个待处理过滤交换机进行控制操作;
[0140] 返回步骤,在所述选择出的所述一个待处理过滤交换机的控制操作完成之后,在 所述所有第一过滤交换机中存在待处理过滤交换机时,返回所述选择步骤。
[0141] 本发明实施例还提供一种控制器,所述控制器包括以上所述的流表更新的控制装 置。
[0142] 以上所述仅是本发明实施例的实施方式,应当指出,对于本【技术领域】的普通技术 人员来说,在不脱离本发明实施例原理的前提下,还可以作出若干改进和润饰,这些改进和 润饰也应视为本发明实施例的保护范围。
【权利要求】
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中任一项所述的流表更新的控制 装直。
【文档编号】H04L12/931GK104426813SQ201310392538
【公开日】2015年3月18日 申请日期:2013年9月2日 优先权日:2013年9月2日
【发明者】李勇, 牛小兵, 金德鹏, 柳嘉强, 刘彬 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1