CN104917760B - 一种基于sdn的全局流表生成方法及装置 - Google Patents
一种基于sdn的全局流表生成方法及装置 Download PDFInfo
- Publication number
- CN104917760B CN104917760B CN201510275684.0A CN201510275684A CN104917760B CN 104917760 B CN104917760 B CN 104917760B CN 201510275684 A CN201510275684 A CN 201510275684A CN 104917760 B CN104917760 B CN 104917760B
- Authority
- CN
- China
- Prior art keywords
- switching equipment
- information
- port
- hop
- data flow
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/252—Store and forward routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0209—Architectural arrangements, e.g. perimeter networks or demilitarized zones
- H04L63/0218—Distributed architectures, e.g. distributed firewalls
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种基于SDN的全局流表生成方法及装置,用以提高网络的完全性,对网络中的数据流进行管控。该方法包括:网络设控制器按照设定的时间间隔获取每台交换设备上保存的转发流表,确定具有相同数据流标识的交换设备的信息的集合,在每个集合中根据转发数据流的顺序,确定转发链路中交换设备的信息的顺序。本发明实施例还公开了相应的装置。由于本发明实施例中可以根据交换设备中保存的转发流表,识别出归属于同一转发链路的交换设备,并根据转发数据流的顺序,确定转发链路中交换设备的顺序。因此可以有效的获取当前周期网络拓扑中的每个数据流的信息,从而可以实现对整个网络数据流的管控,对恶意流进行遏制,提高网络的安全性。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种基于SDN的全局流表生成方法及装置。
背景技术
随着互联网技术的迅速发展,大型数据中心出现了许多运营问题,如网络设备没有开放接口、网络设备之间的互操作性不好、网络规模很难扩充等。软件定义网络(Software-Defined Networking,SDN)的发展为上述问题提出了可能的解决方案。SDN通过软件的形式重构现有网络,颠覆了现有的网络的通信和管理模式,将控制功能从网络节点分离出来,以可编程的方式控制流量,构建动态、开放、可控的网络环境。
作为一种崭新的网络架构体系,虽然SDN有诸多优点,但是由于其结构、部署和架构等方面的限制,使得基于SDN不具备全局的视野能力,无法进行集中管控和对跨设备的数据流进行完整的还原和分析,只能对局部数据进行检测。例如,基于SDN的检测端监测到恶意数据流时,只能分析检测端周围的节点数据,无法对该数据流进行准确的监测和遏抑。
发明内容
本发明实施例公开了一种基于SDN的全局流表生成方法及装置,用于生成全局流表,提高网络的安全性及可控性。
为达到上述目的,本发明实施例公开了一种基于SDN的全局流表生成方法,所述方法包括:
网络控制器按照设定的时间间隔,获取网络拓扑图中每台交换设备上保存的转发流表;
根据每个流表项中记录的匹配域字段,确定具有相同数据流标识的交换设备的信息的集合,其中所述交换设备的信息包括:交换设备的标识信息及其转发该数据流的端口的信息;
根据转发数据流的顺序,在每个集合中确定交换设备的信息的存储顺序。
进一步地,所述方法还包括:
判断每个流表项中是否存在修改数据流标识的字段;
如果是,将修改前的数据流标识和修改后的数据流标识对应的交换设备的信息合并。
进一步地,所述将修改前的数据流标识和修改后的数据流标识对应的交换设备的信息合并包括:
查找存在数据流标识修改字段的第四交换设备;
在该第四交换设备所在的交换设备的信息的集合之后排列修改后的数据流标识对应的交换设备的信息集合。
进一步地,所述修改数据流标识的字段包括以下字段中的至少一种:
OUTPUT、SET_VLAN_ID、SET_VLAN_PCP、STRIP_VLAN、SET_DL_SRC、SET_DL_DST、SET_NW_SRC、SET_NW_DST、SET_NW_TOS、SET_TP_SRC和SET_TP_DST。
进一步地,所述根据转发数据流的顺序,在每个集合中确定交换设备的信息的存储顺序包括:
根据每个集合中包含的交换设备的信息,在网络拓扑图中标记每个交换设备;
采用广度优先搜索算法,在每个集合中确定转发链路中交换设备的信息的存储顺序。
进一步地,所述采用广度优先搜索算法,在每个集合中确定转发链路中交换设备的信息的顺序包括:
针对每个集合,在该集合中选择任一第一交换设备的信息;
判断该第一交换设备的该端口是否为无效端口;
如果是,则确定该第一交换设备位于转发链路的末端,根据网络拓扑图中的标记识别该集合中与该第一交换设备连接的上一跳第二交换设备,将该第二交换设备的信息排列在第一交换设备的信息之前,之后继续识别第二交换设备的上一跳交换设备,直至将该集合中的交换设备的信息排序完成;
如果否,根据网络拓扑图中的标记,判断在该集合中与第一交换设备连接的第二交换设备是否为一台;
如果是,确定第一交换设备位于转发链路的首端,根据网络拓扑图中的标记及该第一交换设备转发该数据流的端口,识别该集合中与该第一交换设备连接的下一跳第二交换设备,将该第二交换设备的信息排列在第一交换设备的信息之后,之后继续识别第二交换设备的下一跳交换设备,直至将该集合中的交换设备的信息排序完成;
如果否,根据网络拓扑图中的标记及该第一交换设备转发该数据流的端口,识别该集合中第一交换设备连接的下一跳第二交换设备,将该下一跳第二交换设备的信息排列在该第一交换设备的信息之后,当该下一跳第二交换设备的端口非无效端口时,继续识别该集合中与第二交换设备连接的下一跳第三交换设备,直至查找到的第三交换设备的端口为无效端口;并根据网络拓扑图中的标记识别该集合中第一交换设备连接的上一跳第二交换设备,将该上一跳交换设备的信息排列在第一交换设备的信息之前,当该集合中与该上一跳第二交换设备连接的交换设备非一台时,继续识别该集合中与该第二交换设备连接的上一跳第三交换设备,直至查找到该集合中与第三交换设备连接的交换设备为一台。
本发明实施例公开了一种基于SDN的全局流表生成装置,所述装置包括:
获取模块,用于按照设定的时间间隔,获取网络拓扑图中每台交换设备上保存的转发流表;
分类模块,用于根据每个流表项中记录的匹配域字段,确定具有相同数据流标识的交换设备的信息的集合,其中所述交换设备的信息包括:交换设备的标识信息及其转发该数据流的端口的信息;
排序模块,用于根据转发数据流的顺序,在每个集合中确定交换设备的信息的存储顺序。
进一步地,所述装置还包括:
合并模块,用于判断每个流表项中是否存在修改数据流标识的字段;如果是,将修改前的数据流标识和修改后的数据流标识对应的交换设备的信息合并。
进一步地,所述合并模块,具体用于根据网络拓扑、存在数据流标识修改字段的第四交换设备及第四交换设备转发该数据流的端口;在修改后的数据流标识对应的交换设备的信息中,查找该第四交换设备的下一跳交换设备;将该下一跳交换设备所在交换设备的信息的集合排列在第四交换设备所在的交换设备的信息的集合之后。
进一步地,所述排序模块,具体用于针对每个集合,根据每个集合中包含的交换设备的信息,在网络拓扑图中标记每个交换设备;在该集合中选择任一第一交换设备的信息;判断该第一交换设备的该端口是否为无效端口;如果是,则确定该第一交换设备位于转发链路的末端,根据网络拓扑图中的标记识别该集合中与该第一交换设备连接的上一跳第二交换设备,将该第二交换设备的信息排列在第一交换设备的信息之前,之后继续识别第二交换设备的上一跳交换设备,直至将该集合中的交换设备的信息排序完成;如果否,根据网络拓扑图中的标记,判断在该集合中与第一交换设备连接的第二交换设备是否为一台;如果是,确定第一交换设备位于转发链路的首端,根据网络拓扑图中的标记及该第一交换设备转发该数据流的端口,识别该集合中与该第一交换设备连接的下一跳第二交换设备,将该第二交换设备的信息排列在第一交换设备的信息之后,之后继续识别第二交换设备的下一跳交换设备,直至将该集合中的交换设备的信息排序完成;如果否,根据网络拓扑图中的标记及该第一交换设备转发该数据流的端口,识别该集合中第一交换设备连接的下一跳第二交换设备,将该下一跳第二交换设备的信息排列在该第一交换设备的信息之后,当该下一跳第二交换设备的端口非无效端口时,继续识别该集合中与第二交换设备连接的下一跳第三交换设备,直至查找到的第三交换设备的端口为无效端口;并根据网络拓扑图中的标记识别该集合中第一交换设备连接的上一跳第二交换设备,将该上一跳交换设备的信息排列在第一交换设备的信息之前,当该集合中与该上一跳第二交换设备连接的交换设备非一台时,继续识别该集合中与该第二交换设备连接的上一跳第三交换设备,直至查找到该集合中与第三交换设备连接的交换设备为一台。
本发明实施例提供了一种基于SDN的全局流表生成方法及装置,该方法中网络设控制器按照设定的时间间隔,获取每台交换设备上保存的转发流表,根据每个流表项的匹配域字段,确定具有相同数据流标识的交换设备的信息的集合,在每个集合中根据转发数据流的顺序,确定转发链路中交换设备的信息的顺序。由于在本发明实施例中可以根据交换设备中保存的转发流表,识别出归属于同一转发链路的交换设备,并根据转发数据流的顺序,确定转发链路中交换设备的顺序。因此可以有效的获取当前周期网络拓扑图中的每个数据流的信息,从而可以实现对整个网络数据流的管控,对恶意流进行遏制,提高网络的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种基于SDN的全局流表生成过程;
图2为本发明实施例提供的网络拓扑图;
图3A为数据流的匹配域字段的示意图;
图3B本发明实施例生成的全局流表的结构;
图3C为本发明实施例提供的一种基于SDN的全局流表另一生成过程;
图4为本发明实施例提供的一种基于SDN的全局流表生成装置结构示意图。
具体实施方式
为了有效的提高网络的完全性,对网络中的数据流进行管控,本发明实施例提供了一种基于SDN的全局流表生成方法及装置。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的一种基于SDN的全局流表生成过程,该过程包括以下步骤:
S101:网络控制器按照设定的时间间隔,获取网络拓扑图中每台交换设备上保存的转发流表。
本发明实施例中为了使网络控制器具有全局视图以及集中管理的能力,网络控制器需要建立全网状的全局流表,以便了解网络中的每一条数据流的流向和途径。
网络拓扑图由交换设备及交换设备之间连接的链路构成,每台交换设备作为网络拓扑中的一个节点,该节点以交换设备的dpid(Data path Id)来标识,交换设备之间连接的链路以连接两个节点的边来标识,并标识具体的连接的是交换设备的哪个端口。
由于网络拓扑和流量是实时变化和更新的,因此为了保证控制的准确性,满足网络不断更新的需求,在本发明实施例中可以按照设定的时间间隔来生成全局流表,该时间间隔例如可以是每5秒、3秒或者10秒等。
S102:根据转发流表中每个流表项的匹配域字段,确定具有相同数据流标识的交换设备的信息的集合,其中所述交换设备的信息包括:交换设备的标识信息及其转发该数据流的端口的信息。
交换设备根据当前其转发的数据流,在本地保存有相应的转发流表,每个流表项中记录一条转发信息。具体的,该流表项中记录有匹配域字段match和动作字段action。在该匹配域字段match中记录有转发的数据流的标识L及转发该数据流的端口的信息,并且该match中还可以记录有该数据流的源地址和目的地址信息等。具有相同数据流标识的交换设备的信息的集合,即为该数据流标识的数据流流经的交换设备的集合。
S103:根据转发数据流的顺序,在每个集合中确定交换设备的信息的存储顺序。
具体的,可以将交换设备的信息作为一个二元组来保存,在每个集合中保存有多个二元组,构成一个二元组集合,每个二元组可以表示为(ni,u),该二元组表示该数据流流经交换设备ni,通过其转发端口u转发出去。
全局流表生成后,在该全局流表中针对每个数据流标识,保存有对应的二元组集合,在该二元组集合中按照转发该数据流的顺序,依次存储有每台交换设备的信息,其中该交换设备的信息包括:交换设备的标识信息及交换设备转发该数据流的端口的信息。网络控制器获取了全局流表后,可以依据该全局流表进行流量工程,例如统计当前网络拓扑中共存在多少条数据流,或者,在发现恶意数据流时,根据全局流表中记录的该数据流对应的转发链路,通知该数据流的源端停止该数据流的转发等。
在本发明实施例中在每个二元组集合中,根据数据流的转发顺序,将多个二元组进行排序,从而确定转发链路中交换设备的顺序,即该数据流依次流经了哪些交换设备,通过交换设备的哪个端口转发。
由于在本发明实施例中可以根据交换设备中保存的转发流表,识别出归属于同一转发链路的交换设备,并根据转发数据流的顺序,确定转发链路中交换设备的顺序。因此可以有效的获取当前周期内,网络拓扑中的每个数据流的信息,从而可以实现对整个网络数据流的管控,对恶意流进行遏制,提高网络的安全性。
具体的,网络控制器获取了网络拓扑图,如图2所示的网络拓扑图,在该网络拓扑图中,交换设备及交换设备之间连接的链路分别抽象为图中的节点和边。在图2中每个节点nj代表唯一的一台交换设备,每台交换设备拥有一系列端口,不同的端口连接不同的链路。
网络拓扑图中的边则代表链路,每条链路对应的边连接两台交换设备对应的节点,并且在每条边上标识交换设备对应的转发端口。每条边可以表示为e(ni,nj,u,v),e代表该链路连接节点ni和节点nj,位于该链路的转发端口分别为节点ni上的端口u和节点nj上的端口v。由于每台交换设备具有多个端口,每个端口对应的转发链路不同,因此通过端口可以区分具体的转发链路。
根据网络拓扑图中的边和节点,以及转发流表中每个流表项中记录的匹配域字段,即可确定具有相同数据流标识的交换设备的信息的集合,交换设备的信息包括:交换设备的标识信息及其转发该数据流的端口的信息,每个交换设备的信息构成一个二元组,具有相同数据流标识的交换信息的信息,构成一个二元组集合。
具体的,在本发明实施例中可以创建一个空的hashmap表,该表用于存储确定的每个二元组集合,在存储每个二元组集合时,可以将该二元组集合对应的数据流的数据流标识作为key,该二元组集合作为value。例如可以在hashmap表中保存L{(n1,3),(n2,2),(n3,2),(n6,2),(n7,null)},该信息表示该数据流的数据流标识为L,(n1,3)表示该数据流流经交换设备n1,经由其端口3转发出去。
在该二元组集合中,根据转发该数据流的顺序,即可确定转发链路中交换设备的信息的顺序,具体的确定顺序后,可以在该二元组集合中按照转发该数据流的顺序依次存储每个交换设备的信息。
具体的,在确定转发链路中交换设备的信息的存储顺序时,可以根据每个集合中包含的交换设备的信息,在网络拓扑图中标记每个交换设备;
并采用广度优先搜索算法,在每个集合中确定转发链路中交换设备的信息的存储顺序。采用广度优先搜索算法,在每个集合中确定转发链路中交换设备的信息的存储顺序包括:
针对每个集合,在该集合中选择任一第一交换设备的信息;
判断该第一交换设备的该端口是否为无效端口;
如果是,则确定该第一交换设备位于转发链路的末端,根据网络拓扑图中的标记识别该集合中与该第一交换设备连接的上一跳第二交换设备,将该第二交换设备的信息排列在第一交换设备的信息之前,之后继续识别第二交换设备的上一跳交换设备,直至将该集合中的交换设备的信息排序完成;
如果否,根据网络拓扑图中的标记,判断在该集合中与第一交换设备连接的第二交换设备是否为一台;
如果是,确定第一交换设备位于转发链路的首端,根据网络拓扑图中的标记及该第一交换设备转发该数据流的端口,识别该集合中与该第一交换设备连接的下一跳第二交换设备,将该第二交换设备的信息排列在第一交换设备的信息之后,之后继续识别第二交换设备的下一跳交换设备,直至将该集合中的交换设备的信息排序完成;
如果否,根据网络拓扑图中的标记及该第一交换设备转发该数据流的端口,识别该集合中第一交换设备连接的下一跳第二交换设备,将该下一跳第二交换设备的信息排列在该第一交换设备的信息之后,当该下一跳第二交换设备的端口非无效端口时,继续识别该集合中与第二交换设备连接的下一跳第三交换设备,直至查找到的第三交换设备的端口为无效端口;并根据网络拓扑图中的标记识别该集合中第一交换设备连接的上一跳第二交换设备,将该上一跳交换设备的信息排列在第一交换设备的信息之前,当该集合中与该上一跳第二交换设备连接的交换设备非一台时,继续识别该集合中与该第二交换设备连接的上一跳第三交换设备,直至查找到该集合中与第三交换设备连接的交换设备为一台。下面结合图2中的网络拓扑图,对本发明实施例进行详细说明。
根据网络设备及其间的连接关系,将网络拓扑抽象为网络拓扑图,如2所示的网络拓扑图,交换设备及其间的连接链路被抽象为图中的节点和边。网络控制器在内存中创建一个空的hashmap表,用以存储数据流的标识以及该数据流流经的交换设备的集合。当全局流表生成后,可以将全局流表保存到数据库中,根据全局流表的生成周期,可以定期更新数据库中保存的全局流表,或者为了便于后续查询,定位故障,也可以按照每个生成周期保存每个全局流表。
以每个流表项中数据流的标识信息作为key,每一条数据流对应的转发链路集合作为value,查找每条转发链路对应的交换设备及其转发端口的二元组集合,数据流的匹配域字段如图3A所示,其记录了数据流的标识信息,具体的该匹配域字段记录了该数据流由交换设备的哪个端口接收和转发,该数据流的源地址信息和目的地址信息等,具体的由于匹配域字段中记录的内容属于现有技术,在此就不对图3A所示的匹配域字段的具体内容进行描述。
网络控制器获取网络拓扑图中每台交换设备当前保存的转发流表。遍历每一条流表项,将流表项中记录的匹配域字段中的数据流标识作为hashmap表的key,将该流表项中记录的转发该数据流的该交换设备的标识信息和其转发该数据流的端口作为value记录到hashmap表中。
之后,遍历下一条流表项,判断该流表项的匹配域字段中记录的数据流标识key是否已经记录在hashmap表中,如果该流表项中记录的数据流标识key已经记录在hashmap表中,则将该流表项中记录的转发该数据流的交换设备的标识信息及转发该数据流的端口作为value记录到该key对应的value中;如果该流表项中记录的数据流标识key未记录在hashmap表中,则在hashmap表存储该数据流标识key,并将该流表项中记录的转发该数据流的交换设备的标识信息及转发该数据流的端口作为value记录到该key对应的value中。
依次按照上述方式,查找每条流表项,直至遍历完当前网络拓扑图中所有交换设备的流表项。遍历完所有的流表项后,hashmap表存储了当前网络拓扑图中记录的所有的交换设备间传输的数据流,key存储了所有数据流的标识信息,每个key对应的value中存储了转发该数据流的转发链路集合即二元组集合,通过该二元组集合则可获得该数据流流经的所有交换设备以及交换设备转发该数据流的转发端口。
通过上述方式得到的每个数据流的转发链路对应的集合中记录的交换设备的信息是无序排列,该集合并不能反映转发链路中交换设备的顺序,即该数据流依次流经了哪些交换设备,因此需要结合网络拓扑图,对每条数据流流经的转发链路对应的集合进行排序。
在每个集合中保存有多个二元组,该二元组中记录有交换设备的标识信息以及该交换设备转发该数据流的端口的信息。如上所示,某一条数据流对应的二元组集合为{(n3,2),(n1,3),(n2,2),(n6,2),(n7,null)},null标识该端口为无效端口,通过该集合可知,该数据流流经交换设备n1、n2、n3、n6和n7,分别通过n1的3端口、n2的2端口、n3的2端口、n6的2端口和n7的null端口转发。
在确定的该转发链路对应的交换设备的信息的二元组集合中,根据转发数据流的顺序,确定转发链路中交换设备的信息的存储顺序。首先遍历该二元组集合,针对每个集合,根据该集合中记录的交换设备的信息,在网络拓扑图中对交换设备进行标记。在实际操作中即是搜索hashmap表找到每个二元组所代表的链路,将该二元组对应链路的标志位由0置为1。
之后,采用广度优先搜索算法,在该集合中选择任一一个交换设备的信息,例如取第一个二元组(n3,2)。由于交换设备n3转发该数据流的端口非无效端口,因此该交换设备n3不位于转发链路的末端,根据网络拓扑图,判断该二元组集合中与交换设备n3连接的交换设备非一台,因此可以确定该交换设备n3位于转发链路的中间。
该数据流中交换设备n3转发该数据流的端口为端口2,根据网络拓扑图,确定在该集合中交换设备n3连接的下一跳交换设备为n6,网络拓扑图中,与n6相连的链路有(n6,1)(n6,2)(n6,3),但是根据网络拓扑标记信息可知(n6,2)已被标记,所以交换设备n6转发该数据流的端口为端口2。因交换设备n6转发该数据流的端口非无效端口,因此交换设备n6也非该转发链路的末端,交换设备n6转发该数据流的端口为端口2,根据网络拓扑图识别该集合中与交换设备n6连接的下一跳交换设备为n7,将交换设备n7的信息记录在交换设备n6的信息之后。交换设备n7转发该数据流的端口为无效端口,因此可知交换设备n7位于该转发链路的末端。
根据上述方式可知按照数据流流经的顺序,依次为交换设备n3、n6和n7,该数据流对应的二元组集合还包括交换设备n1和n2的信息,根据网络拓扑图中的标记可知,与交换设备n3相连的相邻交换设备为n2,n6,由网络拓扑中的标记可知,交换设备n2,n6都被做过标记,但n6已经被搜索过,所以可知n3的上一跳为n2,因此将交换设备n2的信息排列在交换设备n3的信息之前,该二元组集合中与交换设备n2连接的交换设备为n1和n3,因此交换设备n2仍位于转发链路的中间。根据网络拓扑图中的标记可知,交换设备n1和n3都被做过标记,交换设备n3已经被搜索过,因此可知,交换设备n1位于交换设备n2的上一跳,因此将交换设备n1的信息排列在交换设备n2的信息之前。该二元组集合中与交换设备n1连接的交换设备为n2,因此交换设备n1位于转发链路的首端。因此采用上述方式,可以在该集合中根据转发数据流的顺序,确定转发链路中交换设备的信息的顺序为{(n1,3),(n2,2),(n3,2),(n6,2),(n7,null)}。
采用上述方式,可以根据转发数据流的顺序,在每个集合中确定交换设备的信息的存储顺序。
图3B本发明实施例生成的全局流表的结构,该全局流表包括数据流标识Flow id以及该数据流的路径flow path,在该数据流的路径中记录有交换设备的标识信息以及转发该数据流的端口的信息,另外,在该全局流表中还可以记录该数据流中包含的交换设备的数量Matching entryset。如图3B所示,在该全局流表中记录有两个数据流,其标识分别为flow1和flow2,该两个数据流路径分别包括4台和3台交换设备,其中flow1的数据流路径为交换设备n1、n2、n3和n6,经由交换设备n1的3端口、交换设备n2的2端口、交换设备n3的2端口和交换设备n6的2端口转发,flow2的数据流路径为交换设备n6、n5和n2,经由交换设备n6的3端口、交换设备n5的2端口和交换设备n2的无效端口转发。
在本发明实施例中数据流在流经网络的过程中,可能其某些字段会被修改,当该数据流被修改后,该流在后续转发的过程中,对其进行描述的match字段将会发生变化。由于match字段发生了变化,根据本发明的上述实施例该数据流将会被作为两个数据流进行统计,但是实际上两个数据流实际上属于一个数据流,该两个数据流流经的路径是相同的,为了保证确定的全局流表的准确性,在本发明实施例中可以将确定的针对该两个数据流的交换设备的信息进行合并。具体的所述方法还包括:
判断每个流表项中是否存在修改数据流标识的字段;
如果是,将修改前的数据流标识和修改后的数据流标识对应的交换设备的信息合并。
常见的修改数据流标识的字段包括:OUTPUT、SET_VLAN_ID、SET_VLAN_PCP、STRIP_VLAN、SET_DL_SRC、SET_DL_DST、SET_NW_SRC、SET_NW_DST、SET_NW_TOS、SET_TP_SRC和SET_TP_DST。网络控制器根据每个修改字段,可以确定修改后的数据流标识。
图3B为本发明实施例提供的一种基于SDN的全局流表另一生成过程,该过程包括以下步骤:
S301:网络控制器按照设定的时间间隔,获取网络拓扑图中每台交换设备上保存的转发流表。
S302:根据转发流表中每个流表项的匹配域字段,确定具有相同数据流标识的交换设备的信息的集合,其中所述交换设备的信息包括:交换设备的标识信息及其转发该数据流的端口的信息。
S303:根据转发数据流的顺序,在每个集合中确定交换设备的信息的存储顺序。
S304:判断每个流表项中是否存在修改数据流标识的字段,如果是,进行S305,否则,全局流表生成过程结束。
S305:将修改前的数据流标识和修改后的数据流标识对应的交换设备的信息合并。
当网络控制器识别到流表项中存在修改数据流标识的字段时,则记录下修改前的数据流标识及修改后的数据流标识,例如发现数据流标识match_1和match_3分别为修改前和修改后的数据流标识。根据识别的结果,将同一数据流修改前和修改后的所有数据流标识集合在一起,按照顺序将每个数据流标识对应的交换设备信息的顺序连接起来。
具体的,将修改前的数据流标识和修改后的数据流标识对应的交换设备的信息合并包括:
查找存在数据流标识修改字段的第四交换设备;
在该第四交换设备所在的交换设备的信息的集合之后排列修改后的数据流标识对应的交换设备的信息集合。
网络控制器根据获取的每个交换设备的转发流表,可以识别出每个转发表项中存在修改数据流标识的字段,根据修改数据流标识的字段,可以确定修改后的数据流标识。根据针对每个数据流标识,确定的该数据流标识对应的二元组集合,将修改前的数据流标识和修改后的数据流标识对应的交换设备的信息合并。
还以图2为例进行说明,例如网络控制器识别到在交换设备n1当前保存的转发流表中存在数据流标识修改的字段,修改前的数据流标识对应的二元组集合为{(n1,3)},修改后的数据流标识对应的二元组集合为,{(n3,2),(n2,2),(n6,2),(n7,null)}。
采用本发明的上述实施例所示的方法,根据转发数据流的顺序,确定转发链路中交换设备的信息的顺序分别为{(n1,3)}和{(n2,2),(n3,2),(n6,2),(n7,null)}。
网络控制器识别存在数据流标识修改字段的为交换设备n1,n1转发该数据流的端口为端口3,在二元组集合{(n2,2),(n3,2),(n6,2),(n7,null)}中,交换设备n1的下一跳交换设备为交换设备n2,因此合并后转发链路中交换设备的信息的顺序为{(n1,3),(n2,2),(n3,2),(n6,2),(n7,null)}。
由于在本发明实施例中可以根据交换设备中保存的转发流表,识别出归属于同一转发链路的交换设备,并根据转发数据流的顺序,确定转发链路中交换设备的顺序。因此可以有效的获取当前周期网络拓扑中的每个数据流的信息,从而可以实现对整个网络数据流的管控,对恶意流进行遏制,提高网络的安全性。
图4为本发明实施例提供的一种基于SDN的全局流表生成装置结构示意图,所述装置包括:
获取模块41,用于按照设定的时间间隔,获取网络拓扑图中每台交换设备上保存的转发流表;
分类模块42,用于根据每个流表项中记录的匹配域字段,确定具有相同数据流标识的交换设备的信息的集合,其中所述交换设备的信息包括:交换设备的标识信息及其转发该数据流的端口的信息;
排序模块43,用于根据转发数据流的顺序,在每个集合中确定交换设备的信息的存储顺序。
所述装置还包括:
合并模块44,用于判断每个流表项中是否存在修改数据流标识的字段;如果是,将修改前的数据流标识和修改后的数据流标识对应的交换设备的信息合并。
所述合并模块44,具体用于根据网络拓扑、存在数据流标识修改字段的第四交换设备及第四交换设备转发该数据流的端口;在修改后的数据流标识对应的交换设备的信息中,查找该第四交换设备的下一跳交换设备;将该下一跳交换设备所在交换设备的信息的集合排列在第四交换设备所在的交换设备的信息的集合之后。
所述排序模块43,具体用于根据每个集合中包含的交换设备的信息,在网络拓扑图中标记每个交换设备;在该集合中选择任一第一交换设备的信息;判断该第一交换设备的该端口是否为无效端口;如果是,则确定该第一交换设备位于转发链路的末端,根据网络拓扑图中的标记识别该集合中与该第一交换设备连接的上一跳第二交换设备,将该第二交换设备的信息排列在第一交换设备的信息之前,之后继续识别第二交换设备的上一跳交换设备,直至将该集合中的交换设备的信息排序完成;如果否,根据网络拓扑图中的标记,判断在该集合中与第一交换设备连接的第二交换设备是否为一台;如果是,确定第一交换设备位于转发链路的首端,根据网络拓扑图中的标记及该第一交换设备转发该数据流的端口,识别该集合中与该第一交换设备连接的下一跳第二交换设备,将该第二交换设备的信息排列在第一交换设备的信息之后,之后继续识别第二交换设备的下一跳交换设备,直至将该集合中的交换设备的信息排序完成;如果否,根据网络拓扑图中的标记及该第一交换设备转发该数据流的端口,识别该集合中第一交换设备连接的下一跳第二交换设备,将该下一跳第二交换设备的信息排列在该第一交换设备的信息之后,当该下一跳第二交换设备的端口非无效端口时,继续识别该集合中与第二交换设备连接的下一跳第三交换设备,直至查找到的第三交换设备的端口为无效端口;并根据网络拓扑图中的标记识别该集合中第一交换设备连接的上一跳第二交换设备,将该上一跳交换设备的信息排列在第一交换设备的信息之前,当该集合中与该上一跳第二交换设备连接的交换设备非一台时,继续识别该集合中与该第二交换设备连接的上一跳第三交换设备,直至查找到该集合中与第三交换设备连接的交换设备为一台。
本发明实施例提供了一种基于SDN的全局流表生成方法及装置,该方法中网络设控制器按照设定的时间间隔获取每台交换设备上保存的转发流表,根据每个流表项的匹配域字段,确定具有相同数据流标识的交换设备的信息的集合,在每个集合中根据转发数据流的顺序,确定转发链路中交换设备的信息的顺序。由于在本发明实施例中可以根据交换设备中保存的转发流表,识别出归属于同一转发链路的交换设备,并根据转发数据流的顺序,确定转发链路中交换设备的顺序。因此可以有效的获取当前周期网络拓扑中的每个数据流的信息,从而可以实现对整个网络数据流的管控,对恶意流进行遏制,提高网络的安全性。
对于系统/装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种基于SDN的全局流表生成方法,其特征在于,所述方法包括:
网络控制器按照设定的时间间隔,获取网络拓扑图中每台交换设备上保存的转发流表;
根据每个流表项中记录的匹配域字段,确定具有相同数据流标识的交换设备的信息的集合,其中所述交换设备的信息包括:交换设备的标识信息及其转发该数据流的端口的信息;
根据转发数据流的顺序,在每个集合中确定交换设备的信息的存储顺序。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
判断每个流表项中是否存在修改数据流标识的字段;
如果是,将修改前的数据流标识和修改后的数据流标识对应的交换设备的信息合并。
3.如权利要求2所述的方法,其特征在于,所述将修改前的数据流标识和修改后的数据流标识对应的交换设备的信息合并包括:
查找存在数据流标识修改字段的第四交换设备;
在该第四交换设备所在的交换设备的信息的集合之后排列修改后的数据流标识对应的交换设备的信息集合。
4.如权利要求2或3所述的方法,其特征在于,所述修改数据流标识的字段包括以下字段中的至少一种:
OUTPUT、SET_VLAN_ID、SET_VLAN_PCP、STRIP_VLAN、SET_DL_SRC、SET_DL_DST、SET_NW_SRC、SET_NW_DST、SET_NW_TOS、SET_TP_SRC和SET_TP_DST。
5.如权利要求1所述的方法,其特征在于,所述根据转发数据流的顺序,在每个集合中确定交换设备的信息的存储顺序包括:
根据每个集合中包含的交换设备的信息,在网络拓扑图中标记每个交换设备;
采用广度优先搜索算法,在每个集合中确定转发链路中交换设备的信息的存储顺序。
6.如权利要求5所述的方法,其特征在于,所述采用广度优先搜索算法,在每个集合中确定转发链路中交换设备的信息的顺序包括:
针对每个集合,在该集合中选择任一第一交换设备的信息;
判断该第一交换设备的该端口是否为无效端口;
如果是,则确定该第一交换设备位于转发链路的末端,根据网络拓扑图中的标记识别该集合中与该第一交换设备连接的上一跳第二交换设备,将该第二交换设备的信息排列在第一交换设备的信息之前,之后继续识别第二交换设备的上一跳交换设备,直至将该集合中的交换设备的信息排序完成;
如果否,根据网络拓扑图中的标记,判断在该集合中与第一交换设备连接的第二交换设备是否为一台;
如果是,确定第一交换设备位于转发链路的首端,根据网络拓扑图中的标记及该第一交换设备转发该数据流的端口,识别该集合中与该第一交换设备连接的下一跳第二交换设备,将该第二交换设备的信息排列在第一交换设备的信息之后,之后继续识别第二交换设备的下一跳交换设备,直至将该集合中的交换设备的信息排序完成;
如果否,根据网络拓扑图中的标记及该第一交换设备转发该数据流的端口,识别该集合中第一交换设备连接的下一跳第二交换设备,将该下一跳第二交换设备的信息排列在该第一交换设备的信息之后,当该下一跳第二交换设备的端口非无效端口时,继续识别该集合中与第二交换设备连接的下一跳第三交换设备,直至查找到的第三交换设备的端口为无效端口;并根据网络拓扑图中的标记识别该集合中第一交换设备连接的上一跳第二交换设备,将该上一跳交换设备的信息排列在第一交换设备的信息之前,当该集合中与该上一跳第二交换设备连接的交换设备非一台时,继续识别该集合中与该第二交换设备连接的上一跳第三交换设备,直至查找到该集合中与第三交换设备连接的交换设备为一台。
7.一种基于SDN的全局流表生成装置,其特征在于,所述装置包括:
获取模块,用于按照设定的时间间隔,获取网络拓扑图中每台交换设备上保存的转发流表;
分类模块,用于根据每个流表项中记录的匹配域字段,确定具有相同数据流标识的交换设备的信息的集合,其中所述交换设备的信息包括:交换设备的标识信息及其转发该数据流的端口的信息;
排序模块,用于根据转发数据流的顺序,在每个集合中确定交换设备的信息的存储顺序。
8.如权利要求7所述的装置,其特征在于,所述装置还包括:
合并模块,用于判断每个流表项中是否存在修改数据流标识的字段;如果是,将修改前的数据流标识和修改后的数据流标识对应的交换设备的信息合并。
9.如权利要求8所述的装置,其特征在于,所述合并模块,具体用于根据网络拓扑、存在数据流标识修改字段的第四交换设备及第四交换设备转发该数据流的端口;在修改后的数据流标识对应的交换设备的信息中,查找该第四交换设备的下一跳交换设备;将该下一跳交换设备所在交换设备的信息的集合排列在第四交换设备所在的交换设备的信息的集合之后。
10.如权利要求7所述的装置,其特征在于,所述排序模块,具体用于针对每个集合,根据每个集合中包含的交换设备的信息,在网络拓扑图中标记每个交换设备;在该集合中选择任一第一交换设备的信息;判断该第一交换设备的该端口是否为无效端口;如果是,则确定该第一交换设备位于转发链路的末端,根据网络拓扑图中的标记识别该集合中与该第一交换设备连接的上一跳第二交换设备,将该第二交换设备的信息排列在第一交换设备的信息之前,之后继续识别第二交换设备的上一跳交换设备,直至将该集合中的交换设备的信息排序完成;如果否,根据网络拓扑图中的标记,判断在该集合中与第一交换设备连接的第二交换设备是否为一台;如果是,确定第一交换设备位于转发链路的首端,根据网络拓扑图中的标记及该第一交换设备转发该数据流的端口,识别该集合中与该第一交换设备连接的下一跳第二交换设备,将该第二交换设备的信息排列在第一交换设备的信息之后,之后继续识别第二交换设备的下一跳交换设备,直至将该集合中的交换设备的信息排序完成;如果否,根据网络拓扑图中的标记及该第一交换设备转发该数据流的端口,识别该集合中第一交换设备连接的下一跳第二交换设备,将该下一跳第二交换设备的信息排列在该第一交换设备的信息之后,当该下一跳第二交换设备的端口非无效端口时,继续识别该集合中与第二交换设备连接的下一跳第三交换设备,直至查找到的第三交换设备的端口为无效端口;并根据网络拓扑图中的标记识别该集合中第一交换设备连接的上一跳第二交换设备,将该上一跳交换设备的信息排列在第一交换设备的信息之前,当该集合中与该上一跳第二交换设备连接的交换设备非一台时,继续识别该集合中与该第二交换设备连接的上一跳第三交换设备,直至查找到该集合中与第三交换设备连接的交换设备为一台。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510275684.0A CN104917760B (zh) | 2015-05-26 | 2015-05-26 | 一种基于sdn的全局流表生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510275684.0A CN104917760B (zh) | 2015-05-26 | 2015-05-26 | 一种基于sdn的全局流表生成方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104917760A CN104917760A (zh) | 2015-09-16 |
CN104917760B true CN104917760B (zh) | 2018-12-11 |
Family
ID=54086466
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510275684.0A Active CN104917760B (zh) | 2015-05-26 | 2015-05-26 | 一种基于sdn的全局流表生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104917760B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107196891B (zh) * | 2016-03-15 | 2020-02-14 | 华为技术有限公司 | 数据流转发异常检测方法、控制器和系统 |
CN106254244B (zh) * | 2016-07-28 | 2020-01-07 | 上海斐讯数据通信技术有限公司 | 一种基于sdn网络的合并流表项方法 |
CN108306748B (zh) * | 2017-01-12 | 2021-03-30 | 阿里巴巴集团控股有限公司 | 网络故障定位方法、装置及交互装置 |
CN109951397B (zh) * | 2017-12-20 | 2021-07-20 | 华为技术有限公司 | 报文处理的方法和设备 |
CN110430094B (zh) * | 2019-07-31 | 2021-01-19 | 西安交通大学 | 一种sdn中基于主动探测的探测包生成方法 |
CN112632079B (zh) * | 2020-12-30 | 2023-07-21 | 联想未来通信科技(重庆)有限公司 | 一种数据流标识的查询方法及装置 |
CN114884745B (zh) * | 2022-06-10 | 2023-08-01 | 安徽中电光达通信技术有限公司 | 一种数据中心的信息安全保护方法及系统 |
CN115277510B (zh) * | 2022-07-28 | 2023-12-01 | 科来网络技术股份有限公司 | 自动识别网络会话中设备、设备接口、设备路径的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103051557A (zh) * | 2012-12-27 | 2013-04-17 | 华为技术有限公司 | 数据流处理方法及系统、控制器、交换设备 |
CN104348727A (zh) * | 2013-08-05 | 2015-02-11 | 杭州华三通信技术有限公司 | OpenFlow网络中的流表表项处理方法及设备 |
CN104518970A (zh) * | 2014-12-12 | 2015-04-15 | 北京智谷睿拓技术服务有限公司 | 流表更新方法、装置及控制器 |
-
2015
- 2015-05-26 CN CN201510275684.0A patent/CN104917760B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103051557A (zh) * | 2012-12-27 | 2013-04-17 | 华为技术有限公司 | 数据流处理方法及系统、控制器、交换设备 |
CN104348727A (zh) * | 2013-08-05 | 2015-02-11 | 杭州华三通信技术有限公司 | OpenFlow网络中的流表表项处理方法及设备 |
CN104518970A (zh) * | 2014-12-12 | 2015-04-15 | 北京智谷睿拓技术服务有限公司 | 流表更新方法、装置及控制器 |
Also Published As
Publication number | Publication date |
---|---|
CN104917760A (zh) | 2015-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104917760B (zh) | 一种基于sdn的全局流表生成方法及装置 | |
CN103493441B (zh) | 使用路由轨迹生成无回路路由拓扑 | |
CN104521191B (zh) | 使用环形拓扑的多层次级别的路由弧的无环路由拓扑中的层次标签分发和路由安装 | |
CN101888333B (zh) | 用于在网络元件的转发平面内保持端口状态表的方法和装置 | |
CN100394742C (zh) | 开放最短路径优先路由协议的监测与分析系统及工作方法 | |
EP2880826B1 (en) | Label distribution and route installation in a loop-free routing topology using routing arcs | |
CN109787817A (zh) | 网络故障诊断方法、装置和计算机可读存储介质 | |
US10164867B2 (en) | Generating non-congruent paths having minimal latency difference in a loop-free routing topology having routing arcs | |
CN103036787B (zh) | 一种网络路由收敛处理方法和装置 | |
CN101547125B (zh) | 一种自治系统内网络异常定位的系统和方法 | |
CN105827456B (zh) | 一种嵌入分布式组网方法及其系统 | |
CN101888307B (zh) | 用于本地实现端口选择的方法和装置 | |
CN113660140B (zh) | 基于数据控制平面混合感知的服务功能链故障检测方法 | |
CN106375105A (zh) | 一种确定路径故障的方法、控制器、交换机和系统 | |
CN101420331A (zh) | 一种t-mpls网络中的超长连接快速故障定位方法 | |
CN110391977A (zh) | 一种网络故障保护的方法、系统和存储介质 | |
CN112350948B (zh) | 一种基于sdn的分布式网络溯源系统的分布式网络溯源方法 | |
CN109246013A (zh) | 一种fc-ae-1553交换型网络中的路由方法 | |
CN103078796A (zh) | 一种路由计算方法和设备 | |
CN102355373B (zh) | 一种传输网络大汇聚点隐患自动排查的方法和装置 | |
CN108965288A (zh) | 一种基于流指纹的跨域溯源的方法 | |
CN105450524B (zh) | 一种媒体转发路由优化计算的方法 | |
CN102136957B (zh) | 一种标签交换路径监控的实现方法、装置和系统 | |
CN107689920A (zh) | 一种端到端的多业务自动路由感知方法 | |
CN105391638B (zh) | 一种ospf、isis路由流量数据融合的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |