一种用于更新OpenFlow流表的方法与设备的制造方法

文档序号:9474184阅读:912来源:国知局
一种用于更新OpenFlow流表的方法与设备的制造方法【
技术领域
】[0001]本发明涉及通信
技术领域
,尤其涉及一种用于更新OpenFlow流表的技术。【
背景技术
】[0002]在经典路由器或交换机中,快速数据包转发(数据路径)和高层路由决定(控制路径)发生在相同设备上。0penFl〇w(0F)交换机将该两种功能分离。数据路径部分仍在交换机上,而高层路由决定被移至单独的控制器,通常如标准服务器。OpenFlow交换机和控制器通过由安全传输层协议(TLS,TransportLayerSecurity)保护的OpenFlow协议进行通?目。[0003]当OpenFlow交换机接收到数据包时,其根据存储在该交换机中的流表(flowtable)的匹配的流表项(flowentry)来处理(如转发、丢弃等)该数据包。使用OpenFlow协议,流表的流表项可由控制器根据管理者和应用定义的策略来增加、更新或删除。[0004]图1示出OpenFlow控制器和交换机的一种可能部署的示意图。如图1所示,管理者(负责网络管理如QoS(QualityofService,服务质量)、安全和配置)为控制器生成策略以引导交换机如何转发数据包。应用(application,包括安全应用和web服务)也生成该等策略。例如,当通过FW(FireWall,防火墙)/IDS(IntrusionDetectionSystem,入侵检测系统)/IPS(IntrusionPreventionSystem,入侵防御系统)检测到安全威胁时,安全应用会生成对抗策略。以上所有策略将由控制器转换成流表项并被交换机作为流表项写入流表中。然而,在OpenFlow开发和部署中,会存在写流表项时的冲突以及数据窃听。因为,OpenFlow规范主要定义了如何由控制器管理流表以及如何由交换机根据流表的流表项来处理(如转发、丢弃等)所接收到的数据包。[0005]当接收到数据包时,交换机能够发现多个匹配流表项是可能的。在该情形下,交换机是困惑的且不知道如何处理该数据包。为解决该困惑,OpenFlow规范定义优先级以指示流表项的匹配优先级。因此,流表项用所使用的流表中的第一匹配流表项,以优先级顺序匹配数据包。[0006]然而,在现有的OpenFlowl.4版本中,未有解决写流表项时的冲突以及数据窃听问题的机制,下面详细介绍这两个问题:[0007]问题1:控制器中的写流表项时的冲突:[0008]如图1所示,网络管理者和应用(如web服务、安全应用)为不同目标如安全、QoS和性能生成一些策略。这些策略将被控制器转换成流表项。然而,当由控制器写流表项时会可能有冲突,如图2所示:[0009]?负责安全管理的管理者生成如下一个策略:若数据包从172.0.0.1传送到172.0.0.2,这些数据包必须由防火墙检查,作为数据传输路径_1:客户端A->0F_交换机1->0F_交换机2->防火墙->0F_交换机3->客户端B;[0010]?根据数据传输的最短路径要求,应用APP_X生成如下策略:若数据包从172.0.0.1传送到172.0.0.2,最短传输路径将被选择,作为数据传输路径_2:客户端A->OF_交换机1->0F_交换机3->客户端B。[0011]如以上描述,数据传输路径_1和数据传输路径_2哪一个将作为流表项被控制器写入流表中?这时,对于同一个数据流,控制器在变更流表中的流表项时,会很困惑到底根据哪个要求来进行更新。更新后的流表项会通过消息0FPT_Flow_M0D下发并写入交换机"〇F_交换机1"流表中。[0012]问题2:数据窃听:[0013]为在两个特定终端用户之间实现数据窃听,攻击者发起/运行应用并生成策略,如图3所示:若数据包从172.0.0.1传送到172.0.0.2,这些数据包将被复制和转发至地址192.0.0.10。该策略会作为一个流表项写入控制器中,然后通过消息0FPT_Flow_M0D从控制器下发并写入交换机"〇F_交换机1"流表中。【
发明内容】[0014]本发明的目的是提供一种用于更新OpenFlow流表的方法与设备。[0015]根据本发明的一个方面,提供了一种用于更新OpenFlow流表的方法,其中,该方法包括:[0016]-建立或更新一个或多个策略生成源与其对应的级别信息之间的映射关系;[0017]其中,该方法还包括:[0018]a接收当前来自第一策略生成源发送的包含第一策略的消息;[0019]b根据所述映射关系,确定所述第一策略生成源的级别信息;[0020]c将所述第一策略转换为对应的第一流表项,其中,所述第一流表项包含指示所述第一策略生成源的级别信息的级别域;[0021]d将所述第一策略生成源的级别信息与OpenFlow流表中与所述第一流表项具有相同匹配域的第二流表项所对应的第二策略生成源的级别信息进行比较,以确定是否更新所述OpenFlow流表。[0022]根据本发明的另一方面,还提供了一种用于更新OpenFlow流表的更新设备,其中,该更新设备包括:[0023]建立或更新装置,用于建立或更新一个或多个策略生成源与其对应的级别信息之间的映射关系;[0024]其中,该更新设备还包括:[0025]接收装置,用于接收当前来自第一策略生成源发送的包含第一策略的消息;[0026]确定装置,用于根据所述映射关系,确定所述第一策略生成源的级别信息;[0027]转换装置,用于将所述第一策略转换为对应的第一流表项,其中,所述第一流表项包含指示所述第一策略生成源的级别信息的级别域;[0028]比较装置,用于将所述第一策略生成源的级别信息与OpenFlow流表中与所述第一流表项具有相同匹配域的第二流表项所对应的第二策略生成源的级别信息进行比较,以确定是否更新所述OpenFlow流表。[0029]根据本发明的再一方面,还提供了一种OpenFlow控制器,其中,该OpenFlow控制器包括如前述根据本发明另一个方面的用于更新OpenFlow流表的更新设备。[0030]与现有技术相比,本发明的一个实施例通过将所述第一策略生成源的级别信息与OpenFlow流表中与所述第一流表项具有相同匹配域的第二流表项所对应的第二策略生成源的级别信息进行比较,以确定是否更新所述OpenFlow流表,解决了现有技术中OpenFlow控制器写流表项时的冲突;而且,本发明的另一个实施例通过检测所述第一策略生成源是否满足属于安全策略生成源,来判断所述第一策略生成源是否是攻击者,实现了阻止攻击者生成不合法的策略来使网络受到诸如数据窃听的攻击的有益效果;此外,本发明的再一个实施例还可检测第一策略生成源发送的包含第一策略的消息是否满足可信任消息的第二触发条件,进一步保证了消息的安全性,降低了非安全因素对网络的威胁。【附图说明】[0031]通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:[0032]图1示出OpenFlow控制器和交换机的一种可能部署(现有技术)的示意图;[0033]图2示出不同策略导致其被控制器写入流表项时存在冲突的示意图;[0034]图3示出由攻击者通过修改流表项实现数据窃听的示意图;[0035]图4示出根据本发明一个方面的一种用于更新OpenFlow流表的设备示意图;[0036]图5示出根据本发明另一个方面的一种用于更新OpenFlow流表的方法流程图。[0037]附图中相同或相似的附图标记代表相同或相似的部件。【具体实施方式】[0038]下面结合附图对本发明作进一步详细描述。[0039]图4示出根据本发明一个方面的一种用于更新OpenFlow流表的更新设备1,其中,更新设备1包括建立或更新装置11、接收装置12、确定装置13、转换装置14和比较装置15。具体地,建立或更新装置11建立或更新一个或多个策略生成源与其对应的级别信息之间的映射关系;接收装置12接收当前来自第一策略生成源发送的包含第一策略的消息;确定装置13根据所述映射关系,确定所述第一策略生成源的级别信息;转换装置14将所述第一策略转换为对应的第一流表项,其中,所述第一流表项包含指示所述第一策略生成源的级别信息的级别域;比较装置15将所述第一策略生成源的级别信息与OpenFlow流表中与所述第一流表项具有相同匹配域的第二流表项所对应的第二策略生成源的级别信息进行比较,以确定是否更新所述OpenFlow流表。[0040]在此,更新设备1包括但不限于如OpenFlow中来控制OpenFlow交换机中的流表,从而达到控制数据转发的目的控制器,其对网络进行集中控制,实现控制层的功能。更新设备1可由如网络主机、单个网络服务器、多个网络服务器集或基于云计算的计算机集合等实现。在此,云由基于云计算(CloudComputing)的大量主机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。本领域技术人员应能理解上述更新设备1仅为举例,其他现有的或今后可能出现的网络设备如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。在此,网络设备包括一种能够按照事先设定或存储的指令,自动进行数值计算和信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(ASIC)、可编程门阵列(FPGA)、数字处理器(DSP)、嵌入式设备等。[0041]具体地,建立或更新装置11建立或更新一个或多个策略生成源与其对应的级别信息之间的映射关系。在此,所述策略生成源是指为OpenFlow控制器生成策略以引导OpenFlow交换机如何转发数据包的策略生成源,其包括但不限于如:1)网络管理者,如负责网络管理如QoS、安全和配置的管理者;2)应用,如web服务、安全应用等,不同的策略生成源具有不同的级别信息,每一策略生成源的级别信息可以是预定的,由高级别信息的策略生成源生成的流表项可代替较低级别信息的策略生成源生成的流表项。[0042]例如,假设在如图1所示的SDN(软件定义网络,SoftwareDefinedNetwork)部署中,有多个策略生成源,其各自对应的级别信息如下表1所示:[0044]表1[0045]则该SDN部署中的OpenFlow控制器(对应于更新设备1)的建立或更新装置11可基于各策略生成源及其对应的级别信息,建立如上述表1所示的映射关系,当有新的策略生成源时,建立或更新装置11可将其与对应的级别信息之间的映射关系加入上述表1。在此,建立或更新装置11更新所述映射关系的方式包括但不限于如定期更新、定时更新等。在此,如上述表1所示,策略生成源的级别信息可用数字、字符等形式表示,且级别信息如1,2,3,…η的顺序表不级别彳目息由1?到低。[0046]本领域技术人员应能理解上述策略生成源的级别信息的表示方式及所述映射关系的更新方当前第1页1 2 3 4 5 
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1