首页 / 软件定义联网控制器

软件定义联网控制器无效专利 发明

技术领域

[0001] 本发明涉及通信。

相关背景技术

[0002] 在称为软件定义联网(SDN)的联网范例中,通过将数据转发(数据平面)与上覆的控制决策(诸如路由和资源分配)解耦来抽象较低级功能。这通过一个或多个基于软件的SDN控制器来实现,所述控制器允许底层网络可经由独立于底层网络硬件的SDN控制器而编程。通常在SDN网络中,SDN控制器也与任何受控网络交换机物理地分离,但不一定与其远程地定位。

具体实施方式

[0005] 以下实施例是示例性的。虽然说明书可以在若干位置中引用“一”、“一个”或“一些”实施例,但这并不一定意味着每个这样的引用是对相同的(多个)实施例,或者该特征仅适用于单个实施例。不同实施例的单个特征也可以被组合以提供其他实施例。
[0006] 本发明适用于被配置为支持这样的网络/系统中的软件定义联网和实体/节点/装置的任何网络/系统。这样的网络/系统的示例包括基于LTE(长期演进)接入系统的网络、基于全球微波接入互操作性(WiMAX)的网络、基于无线局域网(WLAN)的网络、基于LTE高级(LTE-A)的网络和基于超LTE-A的网络(诸如4G(第四代)和5G(第五代))、使用网际协议的云网络、网状网络和ad-hoc(自组织)网络,诸如LTE直接和移动ad-hoc网络(MANET)。
[0007] 软件定义联网架构具有三层:包括不同网络设备(比如交换机)的基础设施层、包括网络智能逻辑地集中到其的基于软件的SDN控制器的控制层、以及用于不同应用的应用层。因此,网络对于应用看起来为单个逻辑交换机,可通过一个或多个应用编程接口访问。网络设备可以被简化,因为由于来自SDN控制器的指令,它们不再需要理解和处理多个协议标准,所以足够的是,网络设备具有到SDN控制器的通信接口,并且被配置为使用被定义为在接口之上使用的通信协议。通信协议可以是例如适当的协议、或开放的标准协议。然而,不同系统、网络和协议的规范发展迅速。这样的发展可能需要对实施例的额外改变。因此,全部的词语和表达应当被广泛地解释,并且它们旨在说明而不是限制实施例。例如,未来的网络将最有可能利用作为网络架构概念的网络功能虚拟化(NFV),其提出将网络节点功能虚拟化为“构建块”或者可以可操作地动态实例化、连接或链接在一起以提供网络服务的实体。
[0008] 在图1中图示了示例性SDN系统100的非常通用的架构。图1是仅示出一些元件和功能实体的简化系统架构,全部是其实现可能与所示出的内容不同的逻辑单元。对于本领域技术人员显而易见的是,该系统包括未图示的其他功能和结构,例如应用层中的应用。
[0009] 示例性系统100包括控制层装置110和业务转发层装置120,诸如交换机、路由器或网桥或其他对应的业务转发实体。在实现中,存在用于包括数据和控制信息的传入网络业务的业务转发层装置120中的一个物理连接(其可以被划分为一个或多个不同的子连接/信道),并且业务转发层装置120将控制业务转发到控制层装置110中的SDN控制器111。在另一个实现中,数据和控制平面业务不混合,而是存在用于到SDN控制器的传入网络控制信息的控制层装置110中的一个物理连接和用于业务转发层装置120中的传入网络数据业务的一个物理连接。
[0010] 在所图示的示例中,控制层装置110包括SDN控制器111、恶意软件检测组件112、包括一个或多个策略的存储器113、比较器单元114和安全控制单元115。此外,由于SDN控制器在该示例中处于警戒模式(状态)中,所以其包括辅助SDN控制器111’,并且存储器113包括流表的至少两个副本:只读副本和一个或多个可修改(读和写)副本。在只读副本下面称为流表的安全副本,并且它差不多是流表的主副本,并且作为一种辅助副本的可修改副本(可更新副本)称为流表的临时副本。通常但不是必需的,流表和对应的副本是业务转发层装置特定的。本文,副本意味着与原件确切相同或与原件相似或与原件稍微不同的事物(即原件的版本)。换句话说,如果原件中的一些信息不在副本中也没关系,它仍然是副本。此外,预定义的策略(即,一个或多个策略规则)可以对于由SDN控制器111所控制的全部业务转发层装置120是共同的,或者策略中的一个或多个或全部可以专用于业务转发层装置中的一个或一些。应当理解,虽然装置被描绘为一个实体,但是不同的组件可以位于不同的物理实体中,并且它们可以被实现为软件、硬件、固件或其任何组合。
[0011] SDN控制器是SDN网络的核心。如上所述,它位于一端处的网络设备(业务转发层装置)和另一端处的应用之间,并且应用和网络设备之间的任何通信必须经过SDN控制器。SDN控制器还使用诸如OpenFlow、边界网关协议和/或类似的路由和管理协议之类的一个或多个协议来配置网络设备,并选择用于应用业务的最优网络路径。换句话说,SDN控制器管理流控制,并告知要向其发送数据包的网络设备(业务转发层装置)。在所图示的示例中,该信息通过维护在业务转发层装置120中的一个或多个流表(在图1中未图示)提供。应当理解,代替表结构,可以使用提供路由信息和/或资源分配信息的任何其他数据结构。
[0012] 由于SDN控制器111是SDN网络中的关键组件,所以确保SDN控制器111即使当由恶意软件业务攻击时也可以继续运行的机制通过模式单元111-1和过滤器单元111-2提供,所述模式单元111-1用于当正常模式改变为警戒模式时创建流表的安全副本、流表的临时副本以及一个或多个辅助SDN控制器并且用于当警戒模式改变为正常模式时重置设置,所述过滤器单元111-2用于在警戒模式下分离恶意业务和非恶意业务。该机制确保SDN控制器在正常模式或警戒模式下运行。通常但不一定,辅助SDN控制器总是从零开始创建。因此,没有资源被不必要地保留给辅助控制器;只有当需要辅助控制器时才接收和使用资源。然而,有可能使辅助SDN控制器总是准备好被唤醒/启动。这样的“热待机”将减少网络延迟:将不需要初始化辅助SDN控制器的时间;仅发送一个或多个流表是足够的。“热待机”特征在安全关键的网络/系统中、在其中低网络延迟是关键的网络/系统中、以及在高内在负载下的网络/系统中可以是有用的。取决于实现,辅助SDN控制器可以是通用类型的(一个辅助SDN控制器用于一个SDN控制器)或业务转发层装置特定的辅助SDN控制器(一个辅助SDN控制器用于一个业务转发层装置)、或其任何组合。
[0013] 创建辅助SDN控制器111’以充当蜜罐,即,它处理全部业务,就像它是在正常模式下运行的SDN控制器111一样,并且因此对于恶意业务的发起者看起来为SDN控制器。然而,辅助SDN控制器111’不被允许向业务转发层装置120中的流表进行写入。由于此,避免了攻击影响网络/系统的其余部分。
[0014] 恶意软件检测组件112也是该机制的一部分。恶意软件检测组件112如何检测恶意业务的功能并不重要,并且可以使用任何已知或未来的方法。恶意软件检测组件112也可以是网络设备,即不在控制层中,并且因此不被包括在控制层装置110中。又另一种替代方案是恶意软件检测组件112是控制层中的单独设备。业务转发层装置可以被配置为将传入的业务引导到恶意软件检测组件,或者传入的业务可以经由恶意软件检测组件到达业务转发层装置,或者到SDN控制器的控制平面业务可以经由恶意软件检测组件而发送。
[0015] 虽然在所图示的示例中,控制层装置110包括比较器单元114(比较单元)并且在存储器113中包括一个或多个策略作为该机制的一部分,但是也可以在没有它们的情况下实现该机制。以下利用图4更详细地描述比较器单元114的功能。
[0016] 安全控制单元115也是该机制的一部分。安全控制单元115提供管理接口,经由该管理接口可以接收诸如指令重置到正常模式的用户输入的管理命令。安全控制单元也可以管理其他安全相关的动作。取决于实现,安全控制单元115可以是SDN控制器的一部分,其被配置为在受限制的操作系统环境中(即在沙箱中)运行,使得安全控制单元功能与SDN控制器的功能分离,或者安全控制单元115可以位于单独的节点/控制层装置中。无论实现如何,当SDN控制器被配置为只有在从/经由安全控制中心接收到指令的情况下才从警戒模式返回到正常模式时,提供了抵抗攻击的安全方式。
[0017] 在下面的示例中,为了清楚起见,假设业务转发层装置是交换机,并且仅涉及具有一个流表的一个交换机,而不将示例限制为这样的解决方案。如何针对其中若干交换机或对应的网络设备/业务转发层装置由SDN控制器控制和/或涉及多于一个流表和/或涉及多于一个辅助SDN控制器的情形实现这些示例对于本领域技术人员是显而易见的。
[0018] 图2是图示在其中不实现比较器单元的示例性实现中的SDN控制器的功能的流程图。
[0019] 参考图2,在正常模式下,SDN控制器正常地处理(步骤201)SDN控制器所接收的控制业务,直到从恶意软件检测组件接收到检测到恶意业务(步骤202)的信息。响应于接收到该信息,SDN控制器的模式从正常改变为警戒。例如,指示业务是恶意的概率的值可以被附加到业务,并且如果用于概率的该值超过预设限制,则SDN控制器被配置为将该业务视为恶意的。其他示例包括使用明确地指示业务是否为恶意的一个或多个附加参数,或使用发源地址,例如用于确定业务是否为恶意的。
[0020] 在警戒模式的开始时,SDN控制器执行三个创建操作。SDN控制器通过从交换机获得对应的信息来在步骤203中创建交换机中的一个或多个流表的安全副本,并将一个或多个安全副本存储到存储器。流表的安全副本是就在检测到的可能的攻击之前的交换机中的当前已知状态的只读副本。SDN控制器还在步骤204中创建从交换机获得的一个或多个流表的临时副本,并将一个或多个临时副本存储到存储器。流表的临时副本是可写的副本,其使用在下面利用图3和图4进行图示。此外,SDN控制器在步骤205中创建充当蜜罐的辅助SDN控制器。辅助SDN控制器的功能与正常模式下的SDN控制器的功能相似,除了辅助SDN控制器被配置为更新一个或多个临时流表,并且因此不能更新交换机中的流表。应当理解,如果辅助控制器已经退出,则足以启动它。
[0021] 当在警戒模式下接收到控制业务(步骤206)时,检查控制业务是否为恶意的(步骤207)。恶意业务在步骤208中被发送到辅助SDN控制器,并且非恶意控制业务在步骤209中被正常地处理。应当理解,在另一个实现中,非恶意控制业务的副本也被发送到辅助SDN控制器;足够的是,恶意控制业务被过滤使得其将不会被SDN控制器处理。
[0022] 在已经处理了控制业务之后(即,在步骤208或步骤209之后),或者如果没有接收到控制业务,则在步骤210中检查是否接收到重置到正常模式的指示。如果否,则处理返回到步骤206以监视是否从交换机接收到控制业务。
[0023] 可以从安全控制单元或作为用户输入经由安全控制单元接收重置到正常模式的指示。通常但不是必需的,可以在恶意业务结束和/或恶意控制业务已经被分析、记录并且一个或多个临时流表被处理之后从警戒模式进入正常模式。自然,可以使用分析、日志和安全副本和临时流表来构造用于进一步恶意业务分化和检测的规则。
[0024] 当接收到重置到正常模式的指示时,在步骤211中执行重置,在其之后处理进行到步骤201,以正常地处理SDN控制器所接收的控制业务。在重置时,辅助SDN控制器被关闭/销毁,并且蜜罐方案不再被使用。针对流表的重置可以以多种方式执行。例如,如果(由个人或通过特定软件或其任何组合)注意到一个或多个临时表是健全的(sane),则它们被复制作为交换机中的对应的一个或多个流表。另一个选项是将一个或多个安全副本复制回到交换机。又另一种替代方案是允许交换机继续使用交换机中的一个或多个流表而不替换它们。又另一种替代方案是从交换机中的一个或多个流表、一个或多个安全副本和一个或多个临时流表计算一个或多个健全的流表。
[0025] 在包括比较器单元的实现中,在警戒模式下,非恶意控制业务几乎如正常那样被处理(步骤209),除了代替向交换机发送指令,而将指令发送到比较器单元。
[0026] 图3是图示示例性信息交换的流程图,其一部分可以在装置内是内部的。图3中所图示的示例涉及不包括比较器单元的实现。此外,在该示例中,假设警戒模式下的全部控制业务被转发到辅助SDN控制器,并且辅助SDN控制器始终存在,使得仅需要启动它。然而,如何在仅恶意控制业务被转发到辅助SDN控制器和/或辅助SDN控制器需要被创建的情况下实现该示例对于本领域技术人员是显而易见的。参考图3,SDN控制器SDN-C处于正常模式,并且在消息3-1中接收非恶意控制业务,处理它并在消息3-2中将指令发送到交换机以更新其流表FT。交换机通过消息3-3更新流表FT。消息3-2可以是例如“更新表(x,R)”并且消息3-3“添加R”、“删除R”或“修改R”。
[0027] 然后SDN-C接收指示恶意控制业务的消息3-4,并在点3-5中从正常模式转移到警戒模式。SDN-C通过消息3-6获得/检索交换机中的流表的副本。然后,SDN-C在点3-7中使用所获得的副本来创建流表的安全副本S-FT,并且使用所获得的副本来创建临时流表T-FT。然后,流表的内容在消息3-8和3-9中对应地转移成为安全副本和临时流表的内容。消息3-8和3-9可以是“获取当前表”。在另一示例中,消息3-6可以是“获取当前表”,并且消息3-8和
3-9可以是“更新表”。此外,辅助SDN控制器S-SDN-C通过消息3-11启动。消息3-11可以是“启动”或“产生(Spawn)”。在其中创建S-SDN-C的示例中,可能需要附加消息来创建和启动S-SDN-C。
[0028] 然后,SDN-C在消息3-12中接收控制业务,并在消息3-12’中将其副本发送到S-SDN-C。S-SDN-C处理控制业务,就像它是在正常模式下的SDN-C一样,并通过消息3-13更新临时流表以对应结果。此外,由于S-SDN-C充当蜜罐,所以其向交换机发送消息3-14,使得交换机接收到针对控制业务的正常回复。由于此,恶意控制业务的发送者不应该会检测到处理控制业务的SDN控制器已经改变。针对控制业务的正常回复即消息3-14中的(多个)处理结果可以包括例如路由信息和/或资源分配。
[0029] 除了发送消息3-12的副本之外,SDN-C在点3-15中从所接收的控制业务过滤恶意业务,使得移除/过滤掉被指示为恶意的数据包,如在正常模式下那样处理非恶意业务,并在消息3-16中向交换机发送针对控制业务的正常回复,使得交换机例如可以更新其流表。针对控制业务的正常回复即消息3-16中的(多个)处理结果可以包括例如路由信息和/或资源分配。
[0030] 图4是图示示例性信息交换的流程图,其一部分可以在装置内是内部的。图4中所图示的示例涉及包括比较器单元的实现,该比较器单元利用定义可接受流表配置的范围的一个或多个预定义策略。一个或多个预定义策略的其他示例包括用于控制业务是恶意的概率的阈值,例如源——具体地,以及对流表的源的要求。在所图示的示例中,假设SDN控制器SDN-C已经处于警戒模式,并且全部控制业务被转发到辅助SDN控制器。如何在仅恶意控制业务被转发到辅助SDN控制器的情况下实现该示例对于本领域技术人员是显而易见的。
[0031] 参考图4,SDN-C在消息4-1中接收控制业务,并在消息4-1’中将其副本发送到辅助SDN控制器S-SDN-C。S-SDN-C处理控制业务,就像它是SDN-C一样,并将消息4-2发送到比较器,消息4-2包含关于处理的结果的信息,结果包括对临时流表的更新。消息4-2中的(多个)处理结果可以包括例如路由信息和/或资源分配。
[0032] 除了发送消息4-1的副本之外,SDN-C在点4-3中从所接收的控制业务过滤恶意业务,如在正常模式下那样处理非恶意业务,并在消息4-4中向比较器发送关于处理的结果的信息,结果是针对控制业务的正常回复,包括对在交换机中维护的流表的更新。消息4-4中的(多个)处理结果可以包括例如路由信息和/或资源分配。
[0033] 比较器获得(消息4-5)在计算中需要的一个或多个预定义策略。比较器在点4-6中计算更新之间的差异,诸如流表增量(差异),和更新表命令,以及对当前临时流表状态的其他影响。其他影响的示例包括路由更新来自已知的“垃圾邮件发送者”,其具有在已知垃圾邮件范围内的地址。这样的垃圾邮件发送者可能是黑名单上的服务器。在所图示的示例中,假设比较器发现所计算的差异满足策略中列明的要求,并向交换机发送消息4-7,使得交换机接收到针对控制业务的正常回复,并且可以例如更新流表。针对控制业务的正常回复即消息4-7中的(多个)比较结果可以包括例如路由信息和/或资源分配。
[0034] 一个或多个策略的示例包括以下两个规则,而不将解决方案限制为这样的规则:其中,
c1表示SDN-C;
c2表示S-SDN-C;
F表示流表结构,其可以由一个或多个流表组成;
表示所计算的更新表之间的比较;以及
是在其中有效流表结构是可获得的两个比较表之间的最大差异,即在流表的差异之上的度量。
[0035] 应当理解,可以使用产生在差异之上的某种度量的任何规则和任何比较,诸如IP地址的比较。此外,当确定差异时,可以使用任何度量或限制。
[0036] 如果比较器发现所计算的差异不满足策略中列明的要求,例如差值大于所允许的最大差异,则比较器可以被配置为发出一个或多个警告和/或错误和/或关键系统故障等,或什么都不做。该配置可以是预设配置、或在一个或多个策略(策略规则)中定义、或其任何组合。
[0037] 应当理解,除了流表的安全副本和临时流表之外,可以创建流表的任何数量的副本,并且也可以在任何阶段处创建临时流表的任何数量的副本。
[0038] 如从上文明显的,容错软件定义联网控制器通过警戒模式功能和以蜜罐方式使用辅助软件定义联网控制器来提供。
[0039] 上文在图2、3和4中描述的步骤/点、消息(即信息交换)和相关功能不按绝对时间次序,并且一些步骤/点和/或信息交换可以同时地执行或按与给定次序不同的次序执行。其他功能也可以在步骤/点之间或步骤/点内执行,并且发送其他消息。例如,在警戒模式下,SDN控制器可以向安全控制单元、或者经由它向管理SDN控制器的实体发送通知。步骤/点/消息中的一些或步骤/点/消息的一部分也可以被忽视或由对应的步骤/点/消息或步骤/点/消息的一部分替换。
[0040] 本文描述的技术可以通过各种部件来实现,使得实现利用实施例/示例/实现所描述的对应控制层装置/网络节点的一个或多个功能的装置/网络节点不仅包括现有技术部件,而且包括用于实现利用实施例所描述的对应控制层装置的一个或多个功能的部件,并且其可以包括用于每个单独功能的单独部件,或者部件可以被配置为执行两个或更多个功能。例如,SDN控制器和/或模式单元和/或过滤器单元和/或辅助SDN控制器和/或比较器单元和/或算法可以是软件和/或软件-硬件和/或硬件和/或固件组件(不可消除地记录在诸如只读存储器的介质上或体现在硬连线的计算机电路中)或其组合。软件代码可以存储在任何合适的处理器/计算机可读的(多个)数据存储介质或(多个)存储器单元或(多个)制品中,并由一个或多个处理器/计算机、硬件(一个或多个装置)、固件(一个或多个装置)、软件(一个或多个模块)或其组合执行。对于固件或软件,实现可以是通过执行本文描述的功能的模块(例如,过程、功能等)。
[0041] 图5是图示被配置为是控制层装置的装置500的一些单元的简化框图,所述装置至少包括SDN控制器和/或模式单元和/或过滤器单元和/或辅助SDN控制器和/或比较器单元或对应的功能或对应的功能中的一些,如果实现混合或分布式场景而不是集中式实现的话。在所图示的示例中,该装置包括用于接收和发送信息的接口(IF)501、配置为至少利用对应的算法503实现本文描述的SDN控制器和/或模式单元和/或过滤器单元和/或辅助SDN控制器和/或比较器单元或作为子单元功能的对应功能中的至少一部分的处理器502、以及可用于存储对于SDN控制器和/或模式单元和/或过滤器单元和/或辅助SDN控制器和/或比较器单元或对应的单元或子单元所需的计算机程序代码即用于实现功能的算法的存储器504。存储器704也可用于存储其他可能的信息,比如安全副本和/或临时流表。
[0042] 换句话说,被配置为提供控制层装置的装置或被配置为提供一个或多个对应功能的装置是计算设备,其可以是被配置为执行利用实施例/示例/实现所描述的对应装置功能中的一个或多个的任何装置或设备或装备或节点,并且其可以被配置为执行来自不同实施例/示例/实现的功能。上文利用控制层装置所描述的SDN控制器和/或模式单元和/或过滤器单元和/或辅助SDN控制器和/或比较器单元以及对应单元和子单元和其他单元可以是分离的单元,甚至位于另一物理装置中,分布式物理装置形成提供功能的一个逻辑装置,或者集成到同一装置中的另一单元。
[0043] 配置为提供控制层装置的装置或配置为提供一个或多个对应功能的装置通常可以包括连接到存储器和装置的各种接口的处理器、控制器、控制单元、微控制器等。通常,处理器是中央处理单元,但处理器可以是附加操作处理器。本文描述的单元/子单元和/或算法中的每个或一些或一个可以被配置为计算机或处理器,或诸如单片计算机元件的微处理器,或者作为芯片组,其至少包括用于提供被用于算术运算的存储区域的存储器和用于执行算术运算的运算处理器。上述的单元/子单元和/或算法中的每个或一些或一个可以包括一个或多个计算机处理器、专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)和/或其他硬件组件,其已经被编程和/或将通过下载计算机程序代码(一个或多个算法)以执行一个或多个实施例/实现/示例的一个或多个功能的这样的方式被编程。实施例提供了体现在任何客户端可读分布/数据存储介质或(多个)存储器单元或(多个)制品上的计算机程序,其包括可由一个或多个处理器/计算机执行的程序指令,所述指令当被加载到装置中时构成SDN控制器和/或模式单元和/或过滤器单元和/或辅助SDN控制器和/或比较器单元。也称为程序产品的、包括软件例程、构成“程序库”的程序片段、小应用程序和宏的程序可以存储在任何介质中,并可以被下载到装置中。换句话说,上述的单元/子单元和/或算法中的每个或一些或一个可以是包括一个或多个算术逻辑单元、许多特殊寄存器和控制电路的元件。
[0044] 此外,被配置为提供控制层装置的装置或被配置为提供一个或多个对应功能的装置通常可以包括易失性和/或非易失性存储器,例如EEPROM、ROM、PROM、RAM、DRAM、SRAM、双浮栅场效应晶体管、固件、可编程逻辑等,并且通常存储内容、数据等。存储器或多个存储器可以属于任何类型(彼此不同),具有任何可能的存储结构,并且如果需要则由任何数据库管理系统所管理。换句话说,存储器可以是在处理器内或在处理器外部(在这种情况下,其可以经由各种部件通信地耦合到处理器)的任何计算机可用非暂时性介质。存储器还可以存储计算机程序代码,诸如软件应用(例如,用于一个或多个单元/子单元/算法)或操作系统、信息、数据、内容等,以用于使处理器执行与根据示例/实施例的装置的操作相关联的步骤。存储器或其一部分可以是例如随机存取存储器、硬盘驱动器或在装置内或在装置外部(在这种情况下,其可以经由各种部件通信地耦合到装置,如本领域中已知的)实现的其他固定数据存储器或存储设备。外部存储器的示例包括可拆卸地连接到装置的可移除存储器、分布式数据库和云服务器。
[0045] 被配置为提供控制层装置的装置或被配置为提供一个或多个对应功能的装置通常可以包括不同的接口单元,诸如一个或多个接收单元和一个或多个发送/传送单元。接收单元和发送单元均在装置中提供接口,该接口包括发送器和/或接收器或用于接收和/或发送信息的任何其他部件,并执行必要的功能,使得信息等可以被接收和/或发送。
[0046] 此外,装置可以包括其他单元。
[0047] 对于本领域技术人员将显而易见的是,随着技术进步,本发明概念可以以各种方式实现。本发明及其实施例不限于上述的示例,而是可以在权利要求的范围内变化。

当前第1页 第1页 第2页 第3页
相关技术
联网控制器相关技术
软件定义相关技术
I.J.奥利弗发明人的其他相关专利技术