CN109600318A - 一种监控sdn中应用程序的方法及sdn控制器 - Google Patents
一种监控sdn中应用程序的方法及sdn控制器 Download PDFInfo
- Publication number
- CN109600318A CN109600318A CN201811444076.8A CN201811444076A CN109600318A CN 109600318 A CN109600318 A CN 109600318A CN 201811444076 A CN201811444076 A CN 201811444076A CN 109600318 A CN109600318 A CN 109600318A
- Authority
- CN
- China
- Prior art keywords
- message
- interchanger
- flow
- address
- flow table
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0888—Throughput
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开实施例提供一种监控SDN中应用程序的方法及SDN控制器。方法包括:控制器向所述SDN中的交换机下发流表,流表中设置有匹配项以及动作项,交换机利用所述匹配项确定接收到的报文是否为应用程序的收发报文,动作项用于指示交换机将与匹配项相匹配的报文进行复制,或者,转发并统计转发的报文的流量;接收复制的报文或统计的流量,对所述应用程序进行监控。如此,可以减少控制器处理报文的数量,具有减少对控制器带宽的占用的积极效果。
Description
技术领域
本公开实施例涉及互联网技术领域,具体而言,涉及一种监控SDN(SoftwareDefined Network,软件定义网络)中应用程序的方法及SDN控制器。
背景技术
SDN是一种新型网络创新架构,包括控制器以及交换机,其核心思想是利用控制器,将交换机的控制层面与转发层面分离,以实现对网络流量的灵活控制。
SDN中端到端的监控是当前智能运维的重要内容,所谓的端到端监控,也就是对SDN中所有终端用户的应用程序进行监控,例如,对应用程序的连接或该应用程序的流量信息进行监控。并将监控的结果提供给终端用户,以使该终端用户根据该监控结果进行相应调整。
现有技术中,控制器通过获取交换机复制的所有报文,对获取的报文进行解析并筛选,得到属于同一应用程序的报文,从而依据得到的该应用程序的报文,对该应用程序进行监控。但该监控应用程序的方法,由于需要接收交换机复制的所有报文,数量太大,使得控制器需要解析处理大量的报文,尤其是在应用程序数量较多时,会严重占用控制器的带宽。
发明内容
有鉴于此,本公开的目的在于提供一种监控SDN中应用程序的方法及SDN控制器,用于解决现有技术中严重占用控制器带宽的问题。
第一方面,本公开实施例提供一种监控SDN中应用程序的方法,应用于控制器,所述方法,包括:
所述控制器向所述SDN中的交换机下发流表,所述流表中设置有匹配项以及动作项,所述交换机利用所述匹配项确定接收到的报文是否为应用程序的收发报文,所述动作项用于指示所述交换机将与所述匹配项相匹配的报文进行复制,或者,转发并统计转发的报文的流量;
接收复制的报文或统计的流量,对所述应用程序进行监控。
第二方面,本公开实施例提供一种软件定义网络SDN控制器,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的方法的步骤。
第三方面,本公开实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述的方法的步骤。
相对于现有技术而言,本公开实施例具有以下有益效果:
本公开实施例中,控制器通过向SDN中的交换机下发流表的方式,指示交换机将与匹配项相匹配的报文进行复制到控制器,或者转发并统计转发的报文的流量,进而控制器可以获取想要的报文,以及获取统计的流量,实现对应用程序进行监控;本公开实施例中,通过流表可以精确的进行报文匹配,以获取想要的报文和流量数据,相对于现有技术中控制器通过获取交换机复制的所有报文,控制器对该报文进行解析并筛选的方式相比,具有能够减少控制器处理报文的数量,减少对控制器带宽的占用的积极效果。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本公开实施例的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本公开实施例提供的一种监控SDN中应用程序的方法的应用场景示意图;
图2为本公开实施例提供的一种监控应用程序连接建立过程的方法的流程示意图;
图3a为本公开实施例提供的交换机针对第一流表的处理过程的示意图;
图3b为本公开实施例提供的交换机对第二流表中的匹配项进行匹配的示意图;
图4为本公开实施例提供的监控SDN中应用程序的方法的应用实例图;
图5为本公开实施例提供的一种监控SDN中应用程序的装置的结构示意图;
图6为本公开实施例提供的计算机设备的结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本公开的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本公开中的具体含义。
图1示出了本公开实施例的一个应用场景示意图,参照图1所示,本公开实施例中的一种监控SDN中应用程序的方法应用于控制器10,在SDN中,用户主机20或者服务器50上可以安装有一个或多个应用程序,不同的应用程序的数据的传输报文具有不同的IP地址和端口地址;上述的服务器也可以是虚拟机,用户主机20与服务器50之间建立通信连接时,需要经过中间设备:交换机40,用户主机20发送至服务器的报文和用户主机20接收的服务器50发送的报文都会经过交换机40,通过控制器10与交换机40可以实现对应用程序的监控。
图2示出了本公开实施例提供的一种监控SDN中应用程序的方法的流程示意图,该方法应用于控制器,参照图2所示,该方法包括如下步骤S101-S102:
步骤S101、控制器向所述SDN中的交换机下发流表,所述流表中设置有匹配项以及动作项,所述交换机利用所述匹配项确定接收到的报文是否为应用程序的收发报文,所述动作项用于指示所述交换机将与所述匹配项相匹配的报文进行复制,或者,转发并统计转发的报文的流量。
本公开实施例中,控制器下发至交换机的流表中设置有匹配项和动作项,流表中的匹配项用于与交换机转发的报文进行匹配,以匹配出应用程序接收或发送的报文;流表中的动作项用于指示交换机执行的具体动作。其中,应用程序的收发报文指的是应用程序接收或者发送的报文。
步骤S102、接收复制的报文或统计的流量,对所述应用程序进行监控。
本公开实施例中,作为一可选实施例,交换机执行控制器所下发的流表中所设置的动作项,将与流表中的匹配项相匹配的报文复制并上送到控制器,此处的报文主要是指服务器与应用程序间连接建立过程和连接断开时所产生的报文,控制器接收该交换机复制的报文以后,可以从报文中获取应用程序的连接建立的时间以及应用程序的连接是否关闭的信息。
作为另一可选实施例,交换机执行上述流表中设置的动作项,将与该流表中设置的匹配项相匹配的报文进行正常转发,如转发至服务器,并统计转发的报文的流量,此处的报文是指在应用程序建立连接以后,在用户主机与服务器之间正常通信过程中所产生的数据报文,控制器可以读取该交换机统计的报文的流量,进而可以实现不必将报文上传至控制器,即可实现对应用程序整个数据传输过程的监控。
相对于现有技术中的控制器通过获取交换机复制的所有报文,再由控制器对该报文进行解析并筛选的方式相比,本公开实施例中,通过控制器下发流表,交换机根据接收的流表,对应用程序连接建立过程中或连接断开时特定的报文进行复制并上传,和/或,对该应用程序连接建立后,经由该交换机转发的报文进行流量统计,具有减少控制器处理报文的数量,和减少对控制器带宽的占用的积极效果。并且也避免了现有技术中,通过在交换机侧开启netflow功能,由交换机进行先期采样和统计的方式对应用程序进行监控,不能获取完整的用于对应用程序进行监控的数据(例如,端口正常的数据传输速率为1000M/s,采样速率为仅为100KB/s,此时会导致丢失部分数据),进而无法精确跟踪一个应用程序的数据传输的完整过程,以及开启netflow功能会对交换机本身造成较大的性能影响的问题。
本公开一实施例中,上述步骤S101中,具体包括如下步骤A10:
步骤A10、控制器向所述交换机下发流表,所述流表中设置有匹配项以及动作项,所述交换机利用所述匹配项确定接收到的报文是否为应用程序的收发报文,所述动作项用于指示所述交换机将与所述匹配项相匹配的报文进行复制。
本公开实施例中的应用程序的收发报文指的是应用程序接收或者发送的报文。
本公开实施例中,上述步骤S102中,将接收复制的报文,对所述应用程序进行监控,包括如下步骤A20:
步骤A20、接收所述交换机复制的报文,依据接收的各报文获取连接建立时间;依据获取到的连接建立时间,对所述应用程序进行监控。
本公开实施例中,由于应用程序在建立连接过程中,一般是用户主机与服务器之间通过三次握手的方式建立连接。以安装于用户主机上的应用程序与服务器建立连接为例,具体过程包括:
(1)用户主机发送连接请求报文(SYN报文),等待服务器确认;
(2)服务器收到连接请求报文(SYN报文)以后,向用户主机发送连接请求应答报文(SYN ACK报文);
(3)用户主机接收到该连接请求应答报文(SYN ACK报文)以后,向服务器发送连接确认报文(ACK报文),连接建立完成。
控制器需要对应用程序进行监控,首先需要对应用程序建立连接的过程进行监控。本公开一个实施例提供的一种监控SDN中应用程序连接建立过程的方法,具体包括如下步骤E10:
步骤E10、控制器在与所述交换机建立连接以后,向所述交换机下发第一流表,所述第一流表中设置有第一匹配项以及第一动作项,所述第一匹配项包括协议类型和报文标记,所述第一匹配项的协议类型为TCP协议类型,报文标记为表征报文是连接请求报文的连接请求标记,所述第一动作项用于指示所述交换机将与所述第一匹配项相匹配的第一报文进行复制并上送至控制器,以及,根据所述第一报文中包含的源地址和目的地址,构建以所述源地址和目的地址为标识的第一外部元数据(outer metadata1)和第二外部元数据(outer metadata2),并将所述源地址写入第一外部元数据的第一源地址项,将所述目的地址写入第一外部元数据的第一目的地址项,将所述源地址写入第二外部元数据的第二目的地址项,将所述目的地址写入第二外部元数据的第二源地址项。
其中,上述第一流表如下表所示:
第一流表
需要说明的是,本实施例中所构造的外部元数据可以存储于单独的表空间中,该单独的表空间可以是预设的具有特定标识的表空间,从而使得该外部元数据不会随着一次报文的转发结束而消除。
本公开一实施例中,具体的,上述的第一匹配项包括:OFPXMT_OFB_IP_PROTO和OFPXMT_OFB_TCP_FLAGS;其中,OFPXMT_OFB_IP_PROTO为协议类型,其中,协议类型可以为TCP(例如可以是0x06,8个bit位),OFPXMT_OFB_TCP_FLAGS为报文标记,第一匹配项中的报文标记为表征报文是连接请求报文的连接请求标记,该连接请求标记为SYN(0x002,12个bits位),表征要匹配的报文类型为SYN报文;该第一流表中包含的第一动作项为:COPY_TO_CONTROLLER和Set Outer Metadata,分别用于指示交换机将第一报文进行复制并上送至控制器,以及根据第一报文中包含的源地址和目的地址构建外部元数据outer metadata,具体的,构建第一外部元数据(outer metadata1)和第二外部元数据(outer metadata2),并将该源地址分别写入该第一外部元数据(outer metadata1)的第一源地址项和第二外部元数据(outer metadata2)的第二目的地址项,将该目的地址分别写入该第一外部元数据(outer metadata1)的第一目的地址项和第二外部元数据(outer metadata2)的第二源地址项。
其中,写入outermetadata1和outermetadata2中的源地址和目的地址可以为MAC地址和/或IP地址和/或端口地址。一种可选的实施方式中,metadata1和metadata2中的源地址填写源IP地址和源端口地址,目的地址填写目的IP地址和目的端口地址。
本实施例中以第一报文中携带的源IP地址记为src ip1,源端口地址记为srcport1,目的IP地址为dst ip2,目的端口地址记为dst port2为例对outermetadata1和outermetadata2进行说明。
其中,outermetadata1的第一源地址项包括:第一源IP地址字段和第一源端口地址字段;outermetadata1的第一目的地址项包括:第一目的IP地址字段和第一目的端口地址字段;
outermetadata2的第二源地址项包括:第二源IP地址字段和第二源端口地址字段;outermetadata2的第二目的地址项包括:第二目的IP地址字段和第二目的端口地址字段。
其中,当交换机接收到的报文与第一流表的第一匹配项匹配时(该匹配的报文记为第一报文),构造的outermetadata1和outermetadata2如下表所示:
图3a为本公开实施例提供的交换机针对第一流表的处理过程的示意图,参照图3a所示,本公开实施例中,为了对应于两个数据传输方向上的报文的地址字段,上述的outermetadata1和outer metadata2中包含的地址字段是对应的,即outer metadata1中的源地址对应为outer metadata2中的目的地址,outer metadata1中的目的地址项对应为outermetadata2中的源地址。
本公开实施例中,交换机在接收到报文以后,将该报文的协议类型和标志字段(例如TCP报文中的flag字段,用于表征报文的类型,例如为SYN/ACK/FIN报文)与第一流表的协议类型匹配项和表征报文是连接请求报文的连接请求标记的报文标记匹配项进行匹配,匹配成功的报文记为第一报文,执行第一流表中的第一动作项,将第一报文复制到控制器。由于与连接请求标记匹配,因此该匹配成功的第一报文即为连接请求报文(SYN报文)。控制器可以从该第一报文中,获取包含的发起连接请求的时间点。
本公开另一个实施例提供的一种监控SDN中应用程序连接建立过程的方法,具体还包括如下步骤E11:
步骤E11、所述控制器在与所述交换机建立连接以后,向所述交换机下发第二流表,第二流表中设置有第二匹配项以及第二动作项,所述第二匹配项包括所述协议类型、报文标记以及outer metadata标记,所述第二匹配项的协议类型为TCP协议类型,报文标记为表征报文是连接请求应答报文的连接请求应答标记,所述outer metadata标记用于表征所述交换机获取与所述外部元数据表的第二源地址项和第二目的地址项一致的第二报文;所述第二动作项用于指示所述交换机将与所述第二匹配项相匹配的第二报文进行复制,并上送至控制器。
第二流表
具体实现时,outer metadata标记置位(为1),交换机会匹配出报文的头部地址存在于上述外部元数据(outer metadata)中的报文。
具体的,上述的第二流表中的第二匹配项包括:OFPXMT_OFB_IP_PROTO、OFPXMT_OFB_TCP_FLAGS和outer metadata,OFPXMT_OFB_IP_PROTO为协议类型,其中,协议类型可以为TCP,OFPXMT_OFB_TCP_FLAGS为报文标记,第二匹配项中的报文标记可以为表征报文是连接请求应答报文的连接请求应答标记,该连接请求应答标记为SYN ACK,上述outermetadata为outer metadata标记。
图3b为本公开一可选的实施例提供的交换机对第二流表中的匹配项进行匹配的示意图,参照图3b所示,本公开实施例中,交换机在接收到报文以后,获取该报文的源IP地址、源端口地址、目的IP地址和目的端口地址,将该报文的源IP地址、源端口地址、目的IP地址和目的端口地址与outer metadata1中的地址字段以及outer metadata2中的地址字段分别进行匹配,若确定该报文的源IP地址、源端口地址、目的IP地址、目的端口地址分别与outer metadata1或者outer metadata2中的地址字段相匹配后,交换机在该报文上设置outer metadata匹配结果标记,通常该outer metadata匹配结果标记设置为1,由于第二流表中的outer metadata标记也为1,该outer metadata标记用于匹配报文上所设置的outermetadata匹配结果标记,进而可以匹配出报文的头部地址已经存在于outer metadata中的报文,然后交换机再确定报头中包含的标志字段(SYNACK),是否与连接应答标记匹配,如此可以避免不相关的其他应用程序的报文冲击控制器。
可选的实施例中,上述交换机在将报文的源IP地址、源端口地址、目的IP地址和目的端口地址与outer metadata1中的地址字段以及outer metadata2中的地址字段匹配时,如果该报文的源IP地址、源端口地址、目的IP地址和目的端口地址与outer metadata2中的地址字段匹配成功,交换机也可以在该报文上做更详细的标记,以更加详细的指明该报文的头部地址位于outer metadata2中。进而标记的方式,在此不做限定。
上述匹配成功的报文,在本实施例中记为第二报文,该匹配成功的第二报文即连接请求应答报文(SYN ACK应答报文)。
在上述的第二匹配项均匹配成功以后,交换机执行第二流表中的第二动作项;具体的,该第二动作项为:COPY_TO_CONTROLLER,交换机执行该动作项,将连接请求应答报文(SYN ACK应答报文)复制,并上送到控制器;控制器实时记录该连接请求应答报文。
本公开再一个实施例提供的一种监控SDN中应用程序连接建立过程的方法,具体还包括如下步骤E12:
步骤E12、所述控制器在与所述交换机建立连接以后,向所述交换机下发第三流表,第三流表中设置有第三匹配项以及第三动作项,第三匹配项包括所述协议类型、报文标记以及outer metadata标记,所述第三匹配项的协议类型为TCP协议类型,报文标记为表征报文是连接确认报文的连接确认标记,所述outer metadata标记用于表征所述交换机获取与所述第一外部元数据的第一源地址项和第一目的地址项一致的第三报文;所述第三动作项用于指示交换机将与所述第三匹配项相匹配的第三报文进行复制,并上送至控制器。
第三流表
本公开实施例中,具体的,上述的第三流表中设置的第三匹配项包括:OFPXMT_OFB_IP_PROTO、OFPXMT_OFB_TCP_FLAGS和outer metadata,其中,OFPXMT_OFB_IP_PROTO为协议类型,OFPXMT_OFB_TCP_FLAGS为报文标记,该第三匹配项的报文标记为表征报文是连接确认报文的连接确认标记,该连接确认标记为ACK,表征要匹配的报文类型为ACK报文。
上述的outer metadata标记置位时(例如为1时),交换机会匹配出报文的头部地址存在于上述外部元数据(outer metadata)中的报文。
本公开一可选的实施例中,参照图3b所示,交换机在接收到报文以后,获取该报文的源IP地址、源端口地址、目的IP地址和目的端口地址,将该报文的源IP地址、源端口地址、目的IP地址和目的端口地址与outermetadata1中的地址字段以及outer metadata2中的地址字段分别进行匹配,若确定该报文的源IP地址、源端口地址以及该报文的目的IP地址、目的端口地址分别与outer metadata1或者outer metadata2中的地址字段相匹配后,交换机会在该报文上设置outer metadata匹配结果标记,通常该outer metadata匹配结果标记设置为1,由于第三流表中的outer metadata标记为1,进而可以匹配出报文的头部地址已经存在于outer metadata中的报文,然后交换机再确定报文的报头中包含的标志字段(ACK),与连接确认标记是否匹配,匹配成功的报文记为第三报文,该匹配成功的第三报文即连接确认报文(ACK报文)。如此可以避免不相关的其他应用程序的报文冲击控制器。
在上述的第三匹配项均匹配成功以后,交换机执行第三流表中的第三动作项;具体的,该第三动作项为:COPY_TO_CONTROLLER,交换机执行该动作项,即将该第三报文复制,并上送至控制器。
控制器接收交换机复制的第三报文,获取所述第三报文中包含的连接确认时间点。
本公开实施例中,控制器依据上述的发起连接请求的时间点以及上述的连接确认时间点,确定应用程序的连接建立时间,即连接确认时间点与发起连接请求的时间点的差值为该应用程序的连接建立时间。
本公开实施例中,上述的控制器下发第一流表、第二流表和第三流表的方式,可以是在控制器与交换机建立连接以后同时进行下发;也可以是在控制器与交换机建立连接以后首先下发第一流表,在接收到交换机复制的第一报文以后下发第二流表,在接收到交换机复制的第二报文以后,下发第三流表;或者是在下发第二流表的同时下发第三流表;因此,本公开中流表下发的方式有多种,在此不做限定。
此外,交换机在接收到报文进行流表匹配的过程中,对于匹配的先后顺序并不加以限定,例如究竟是先匹配outer metadata还是先匹配报文标记,本实施例中并不加以限定。
在控制器在对应用程序的连接建立过程进行监控以后,还需要对应用程序在连接建立完成以后进行正常的通信的过程进行监控。
本公开一实施例中,上述的步骤S101中,具体包括如下步骤B10:
B10、控制器在接收到所述交换机复制的所述第三报文后,向所述交换机下发监控流表,所述监控流表中包括两个流表项,本实施例中两个流表项的动作项的动作相同,因此本实施例两个流表项的动作项均记为第四动作项,所述两个流表项为:第一流表项和第二流表项;
第一流表项和第二流表项均包括协议类型、预匹配源地址、预匹配目的地址和第四动作项,其中,第一流表项的预匹配源地址为所述源地址(即第一报文包含的源地址)、预匹配目的地址为所述目的地址(第一报文包含的目的地址),第一流表项的协议类型可以为TCP协议,当然也可以为其他协议类型,本实施例中仅仅是以TCP协议为例进行说明。
其中,第二流表项包括的协议类型与第一流表项的协议类型相同、预匹配源地址为所述目的地址、预匹配目的地址为所述源地址;所述第四动作项用于指示所述交换机将与所述第一流表项或第二流表项相匹配的第四报文进行转发并统计所述第四报文的流量。
上述预匹配源地址可以包括:源IP地址和源端口地址,上述预匹配目的地址可以包括:目的IP地址和目的端口地址。一种监控流表的示意如下表所示:
监控流表
本公开实施例中,在应用程序连接建立完成以后,控制器向交换机下发监控流表,由于在正常的数据传输过程中,数据流量的传输是双向的(即传输数据的报文在从用户主机到服务器和从服务器到用户主机两个方向上都会有),因此,作为一可选实施例,下发的监控流表数量为1,但该监控流表中包括两个流表项,以监控两个方向上的报文。具体的,上述第一流表项和第二流表项中均包括以下匹配项:OFPXMT_OFB_IPV4_SRC、OFPXMT_OFB_IPV4_DST、OFPXMT_OFB_TCP_SRC、OFPXMT_OFB_TCP_DST、OFPXMT_OFB_IP_PROTO;其中,OFPXMT_OFB_IPV4_SRC、OFPXMT_OFB_IPV4_DST、OFPXMT_OFB_TCP_SRC、OFPXMT_OFB_TCP_DST分别对应为:源IP地址字段、目的IP地址字段、源端口地址字段、目的端口地址字段;OFPXMT_OFB_IP_PROTO为协议类型,该第一流表项和第二流表项中包含的第四动作项为:将报文进行转发,并统计报文的流量。
具体的,上述第一流表项中的源IP地址字段、目的IP地址字段、源端口地址字段、目的端口地址字段匹配项对应数据双向传输方向上的一传输方向的源IP地址、目的IP地址、源端口地址、目的端口地址,上述第二流表项中的源IP地址字段、目的IP地址字段、源端口地址字段、目的端口地址字段匹配项对应数据双向传输方向上的另一传输方向的源IP地址、目的IP地址、源端口地址、目的端口地址,进而该监控流表可以用于对应用程序任一个方向上传输的报文进行匹配。
上述监控流表中的第一流表项与第二流表项中所包含的地址字段信息可以是从之前被复制到控制器的第一报文、第二报文或第三报文中复制得到;也可以是从设置的outer metadata中获取得到。
上述第四动作项包括:转发(Forward);交换机执行该动作项,将与该监控流表匹配的第四报文按照该报文中的源地址和目的地址进行正常转发。上述第四动作项还设置有扩展动作项,即统计表项(meter表),用于统计与该监控流表所匹配的报文的流量,具体的,可以是包含有:报文的个数和报文的字节数等。
本公开实施例中,交换机在接收到报文以后,获取该报文的源IP地址、源端口地址、目的IP地址和目的端口地址,将该报文的源IP地址、源端口地址、目的IP地址和目的端口地址分别与监控流表中的第一流表项以及第二流表项的地址字段进行匹配,若确定该报文的源IP地址、源端口地址与第一流表项或第二流表项的地址字段相匹配,匹配成功的报文,在本实施例中记为第四报文。
在上述的第一流表项或第二流表项匹配成功以后,交换机执行第四动作项;具体的,交换机执行该第四动作项,即将第四报文进行转发,并统计第四报文的流量。
本公开实施例中,控制器读取监控流表中交换机统计的第四报文的累加流量,得到所述应用程序的流量信息。
控制器通过该监控该流表监控应用程序两个方向上传输的报文,获取应用程序在建立连接以后正常数据传输过程中的流量;相对于现有技术,无需将大量的报文复制到控制器,进而显著地减少了控制器处理报文的数量,具有节省控制器带宽的积极效果。
本公开一可选的实施例中,上述的统计表项(meter表)中还设置有允许带宽和阈值门限,该允许带宽和阈值门限用于使交换机根据统计的第四报文的流量进行限流。例如,根据允许带宽和阈值门限调节放入缓存中的流量,并将超过允许带宽的流量进行丢弃。
本公开一可选的实施例中,控制器还为应用程序上述的监控流表设置执行优先级,将该监控流表的执行优先级设置为最高级。进而使在交换机侧,在有该应用程序的监控流表存在时,该应用程序原有的第一流表、第二流表、第三流表不再被执行,避免了该应用程序其他与流量监控无关的报文被上送至控制器。
实际应用中,也可以针对一个方向上传输的报文(如从服务器向用户主机传输的第四报文或者从用户主机向服务器传输的第四报文)下发一监控流表。这样,本公开实施例中,为监控两个传输方向上的第四报文,需要设置针对两个方向上传输的报文的第一监控流表(从用户主机向服务器传输的第四报文)和第二监控流表(从服务器向用户主机传输的第四报文)。其中,第一监控流表中的匹配项中包括:源IP地址(用户主机IP地址)字段、源端口地址(用户主机上的应用程序的服务端口地址)字段、目的IP地址(应用服务器的IP地址)字段和目的端口地址(应用服务器上与应用程序进行通信的服务端口地址)字段,第一监控流表包含的动作项为:将报文进行转发,并统计报文的流量;第二监控流表中的匹配项中包括:源IP地址(应用服务器的IP地址)字段、源端口地址(应用服务器上与应用程序进行通信的服务端口地址)字段、目的IP地址(用户主机IP地址)字段和目的端口地址(用户主机上的应用程序的服务端口地址)字段,第二监控流表包含的动作项为:将报文进行转发,并统计报文的流量。
本公开一实施例中,上述方法,还包括如下步骤C10-C12:
步骤C10、在向所述交换机下发监控流表后,向所述交换机下发结束流表,所述结束流表中包括第三流表项和第四流表项,本实施例中两个流表项的动作项的动作相同,因此本实施例两个流表项的动作项均记为第五动作项。
所述第三流表项包括所述协议类型、报文标记以及预匹配源地址为所述源地址(第一报文包含的源地址)和预匹配目的地址为所述目的地址(第一报文包含的目的地址),所述报文标记为表征报文是连接结束报文的连接结束标记。
所述第四流表项包括的协议类型与第三流表项的协议类型相同、报文标记以及预匹配源地址为所述目的地址和预匹配目的地址为所述源地址,所述报文标记为表征报文是连接结束报文的连接结束标记。
所述第五动作项用于指示所述交换机将与所述第三流表项或第四流表项相匹配的第五报文进行复制,并上送至控制器。
上述预匹配源地址包括:源IP地址和源端口地址,上述预匹配目的地址包括:目的IP地址和目的端口地址。本实施例提供的一结束流表的示例如下表所示:
结束流表
具体的,上述的第三流表项和第四流表项均包括以下匹配项:OFPXMT_OFB_IPV4_SRC、OFPXMT_OFB_IPV4_DST、OFPXMT_OFB_TCP_SRC、OFPXMT_OFB_TCP_DST、OFPXMT_OFB_IP_PROTO、OFPXMT_OFB_TCP_FLAGS,其中,OFPXMT_OFB_IPV4_SRC、OFPXMT_OFB_IPV4_DST、OFPXMT_OFB_TCP_SRC、OFPXMT_OFB_TCP_DST分别对应为:源IP地址字段、目的IP地址字段、源端口地址字段、目的端口地址字段;OFPXMT_OFB_IP_PROTO为协议类型,该协议类型为TCP;OFPXMT_OFB_TCP_FLAGS为报文标记,该报文标记为表征报文是连接结束报文的连接结束标记,该连接结束标记为FIN,表征要匹配的报文类型为FIN报文。
具体的,上述第三流表项和第四流表项中的源IP地址字段、目的IP地址字段、源端口地址字段、目的端口地址字段匹配项分别对应为两个数据传输方向上的源IP地址、目的IP地址、源端口地址、目的端口地址,进而该结束流表可以用于对应用程序上任一个方向上传输的报文进行匹配,以使服务器以及用户主机中的任一方需要断开应用程序的连接时,都能匹配到对应发送的报文。第三流表项和第四流表项中的报文标记为表征报文是连接结束报文的连接结束标记。
具体的,在用户主机与服务器断开连接时,用户主机和服务器都会发出FIN报文,上述的第五报文为FIN报文,上述表征报文是连接结束报文的连接结束标记为FIN,用于匹配该FIN报文。
上述结束流表的第三流表项与第四流表项中所包含的地址字段信息可以是从之前被复制到控制器的第一报文、第二报文或第三报文中复制得到的;也可以是从设置的outer metadata中获取得到。
上述的第五动作项为:COPY_TO_CONTROLLER,用于指示交换机将与结束流表相匹配的FIN报文复制到控制器。
实际应用中,也可以针对一个方向上传输的报文(如从服务器向用户主机传输的第五报文或者从用户主机向服务器传输的第五报文)下发一个结束流表。这样,本公开实施例中,为监控两个传输方向上的第五报文,需要下发针对两个方向上传输的报文的两个流表,例如第一结束流表(从用户主机向服务器传输的第五报文)和第二结束流表(从服务器向用户主机传输的第五报文)。
其中,第一结束流表中的匹配项中包括:源IP地址(用户主机IP地址)字段、源端口地址(用户主机上的应用程序的服务端口地址)字段、目的IP地址(应用服务器的IP地址)字段和目的端口地址(应用服务器上与应用程序进行通信的服务端口地址)字段,第一结束流表中的动作项包括:将第五报文进行复制,并上送至控制器;
第二结束流表中的匹配项中包括:源IP地址(应用服务器的IP地址)字段、源端口地址(应用服务器上与应用程序进行通信的服务端口地址)字段、目的IP地址(用户主机IP地址)字段和目的端口地址(用户主机上的应用程序的服务端口地址)字段,第二结束流表中的动作项包括:将第五报文进行复制,并上送至控制器。
步骤C12、控制器接收所述交换机复制的所述第五报文,获取所述第五报文中包含的连接结束标记,向所述交换机下发删除流表,以使所述交换机删除所述监控流表以及结束流表。
本公开实施例中,控制器可以及时感知应用程序的连接的断开,并在应用程序断开连接以后,将监控流表以及结束流表进行删除,以减少对内存的占用。
本公开另一可选的实施例中,上述的监控流表还设置有老化时间,并且该老化时间大于TCP默认老化时间。当用户主机侧的应用程序因突发异常关闭连接时,用户主机并不能及时发送FIN报文以通过交换机通知服务器,使得服务器不能及时感知到用户主机的异常,因而,交换机也一直等待接收该FIN报文,这样,导致控制器以及交换机的资源消耗。这样,通过设置监控流表的老化时间大于断开连接时的TCP默认老化时间,交换机在计时到TCP默认老化时间后,如果没有报文与上述监控流表匹配,此时认为应用程序连接可能出现异常,为再次确认该应用程序连接异常,在计时到监控流表设置的老化时间后,还是没有报文与上述监控流表匹配,设置该监控流表失效,不再将接收的报文与该监控流表进行匹配,以节约资源。
图4为本公开实施例提供的监控SDN中应用程序的方法的应用实例图,参照图4所示,在SDN中,GW为网关设备,SW1、SW2、SW3分别为交换机,HOST10为外网用户主机,VM10、VM11、VM20、VM30分别为虚拟机,本公开实施例中以用户主机HOST10通过http访问交换机SW1下的虚拟机VM10上的http server为例,进行说明。
初始条件下,控制器在所有交换机上下发了用于匹配SYN报文的第一流表。
在应用程序建立连接时,HOST10的应用程序触发SYN请求,HOST10发送SYN报文,该SYN报文的源IP地址为IP1_host10,目的IP地址为VM10的外网IP地址FloatIP1_vm10,源端口地址为PORT1_host10(此处的源端口是指应用端口,该应用端口可以为TCP端口或者UDP端口,此处以该应用端口为TCP端口为例),目的端口地址为8080(或者其它绑定的接口);SYN报文经过网关GW以后,SYN报文的目的地址被转换成vm10的私网地址IP1_vm10,并按照现有技术将报文封装隧道后转发给SW1。
SW1接收到的是封装有隧道的报文,按照现有技术终结掉隧道后,会命中第一流表的匹配项,则执行该第一流表中的动作项,即:一方面复制SYN报文到控制器,另一方面根据SYN报文中包含的源地址和目的地址构建第一外部元数据(outer metadata1)和第二外部元数据(outer metadata2),并将该源地址分别写入该第一外部元数据(outer metadata1)的第一源地址项和第二外部元数据(outer metadata2)的第二目的地址项,将该目的地址分别写入该第一外部元数据(outer metadata1)的第一目的地址项和第二外部元数据(outer metadata2)的第二源地址项。
具体的,地址的格式为:outer metadata1:SRC_IP=IP1_host10,SRC_PORT=PORT1_host10,DST_IP=IP1_vm10,DST_PORT=8080;以及,outer metadata2:SRC_IP=IP1_vm10,SRC_PORT=8080,DST_IP=IP1_host10,DST_PORT=PORT1_host10;交换机将SYN报文继续转发给vm10。
控制器下发第二流表后,当第二流表中outer metadata标记为1时,交换机获取源地址与目的地址为:SRC_IP=IP1_vm10,SRC_PORT=8080,DST_IP=IP1_host10,DST_PORT=PORT1_host10的报文;即交换机首先匹配出报文的头部地址存在于outer metadata中的报文,然后对该报文进行连接请求应答标记、协议类型的匹配,最后匹配得到与第二流表中的匹配项相匹配的第二报文。第二流表的动作项是COPY_TO_CONTROLLER。
虚拟机vm10接收到SYN报文以后,交由http server应用处理,产生SYN ACK报文,该SYN ACK报文的源IP为IP1_vm10,源端口为8080,目的IP为IP1_host10,目的端口为PORT1_host10,该SYN ACK报文会被送到交换机SW1。
交换机SW1接收到SYN ACK报文,会命中上述的第二流表的匹配项,执行第二流表中的动作项,复制SYN ACK报文到控制器,控制器接收交换机SW1上送的SYN ACK报文。另一方面,交换机SW1按照现有技术将该SYN ACK报文封装隧道转发到网关GW。
网关GW接收到封装隧道的SYN ACK报文,按照现有技术对该SYN ACK报文进行解隧道封装,并执行IP地址转换,将报文的源IP地址转换为vm10的外网FloatIP1_vm10,报文将会被转发给用户主机HOST10。
用户主机HOST10主机上http client应用程序会再次产生ACK报文,该报文的源IP为IP1_host10,目的IP为VM10的外网IP地址FloatIP1_vm10,源端口为PORT1_host10,目的端口为8080。
ACK报文到达网关GW,转换目的IP地址为IP1_vm10,封装隧道后转发到交换机SW1;交换机SW1接收到隧道报文,解隧道封装,则会命中第三流表的匹配项,执行第三流表的动作项,复制ACK报文上送至控制器,并将ACK报文转发到虚拟机vm10。
控制器接收到上送ACK报文后,判定HOST10和vm10设备之间的http应用TCP连接建立完成,下发针对该应用程序的监控流表,该监控流表中的第一流表项以及第二流表项均包括:OFPXMT_OFB_IPV4_SRC、OFPXMT_OFB_IPV4_DST、OFPXMT_OFB_TCP_SRC、OFPXMT_OFB_TCP_DST、OFPXMT_OFB_IP_PROTO;第一流表项和第二流表项分别对应于两个方向的数据报文的匹配;第一流表项和第二流表项的动作项为Forward,交换机SW1执行该动作项,将与该监控流表匹配的报文按照该报文中的源地址和目的地址进行正常转发。上述的动作项设置有扩展动作项,即meter表项,用于统计与该监控流表所匹配的报文的流量;控制器读取交换机统计的第四报文的累加流量,得到所述应用程序的流量信息。
控制器判定HOST10和vm10设备之间的http应用TCP连接建立完成后,还下发结束流表,结束流表中的第三流表项、第四流表项均包括:OFPXMT_OFB_IPV4_SRC、OFPXMT_OFB_IPV4_DST、OFPXMT_OFB_TCP_SRC、OFPXMT_OFB_TCP_DST、OFPXMT_OFB_IP_PROTO、OFPXMT_OFB_TCP_FLAGS,第三流表项和第四流表项分别对应于两个方向的FIN报文的匹配,分别用于匹配两个方向上的FIN报文。第三流表项和第四流表项的动作项是COPY_TO_CONTROLLER。
上述下发监控流表之后,用户主机HOST10和虚拟机vm10之间的http应用数据流将会被控制器实时监控,控制器能够实时感知这两个设备之间的http应用的连接状态和数据传输状态。当用户主机HOST10需要关闭虚拟机vm10之间的http应用时,用户主机HOST10会触发四次挥手过程,发送FIN报文,此时控制器也能接收到交换机SW1上送的FIN报文。
通过上述方式,控制器只需要利用流表的精确匹配功能就可以及时跟踪应用程序连接的建立和流量状态,不必对设备上的数据流执行大量的复制操作和解析大量数据流报文,大大提升了控制器对接入设备上应用流的监控效率,为在大规模数据中心内实现端到端应用拓扑可视化提供了更加高效的手段,降低了SDN网络的应用维护成本。
图5为本公开实施例提供的一种监控SDN中应用程序的装置的结构示意图参照图5所示,该装置包括:
流表下发模块301,用于向所述SDN中的交换机下发流表,所述流表中设置有匹配项以及动作项,所述交换机利用所述匹配项确定接收到的报文是否为应用程序的收发报文,所述动作项用于指示所述交换机将与所述匹配项相匹配的报文进行复制,或者,转发并统计转发的报文的流量;
监控模块302,用于接收复制的报文或统计的流量,对所述应用程序进行监控。
本公开一可选的实施例中,上述的监控模块302,包括:
连接建立监控单元,用于接收所述交换机复制的报文,依据接收的各报文获取连接建立时间;依据获取到的连接建立时间,对所述应用程序进行监控。
本公开一可选的实施例中,上述的连接建立流表下发单元,具体用于:
在与所述交换机建立连接以后,向所述交换机下发第一流表,所述第一流表中设置有第一匹配项以及第一动作项,所述第一匹配项包括协议类型和报文标记,所述第一匹配项的协议类型为TCP协议类型,所述报文标记为表征报文是连接请求报文的连接请求标记,所述第一动作项用于指示所述交换机将与所述第一匹配项相匹配的第一报文进行复制,以及,根据所述第一报文中包含的源地址和目的地址,构建以所述源地址和目的地址为标识的第一外部元数据和第二外部元数据,并将所述源地址写入第一外部元数据的第一源地址项,将所述目的地址写入第一外部元数据的第一目的地址项,将所述源地址写入第二外部元数据的第二目的地址项,将所述目的地址写入第二外部元数据的第二源地址项。
本公开一可选的实施例中,上述的连接建立流表下发单元,还用于:
在与所述交换机建立连接以后,向所述交换机下发第三流表,所述第三流表中设置有第三匹配项以及第三动作项,所述第三匹配项包括所述协议类型、报文标记以及outermetadata标记,所述报文标记为表征报文是连接确认报文的连接确认标记,所述outermetadata标记用于表征所述交换机获取与所述第一外部元数据的第一源地址项和第一目的地址项一致的第三报文;所述第三动作项用于指示所述交换机将与所述第三匹配项相匹配的第三报文进行复制。
本公开一可选的实施例中,上述的连接建立监控单元,具体用于:
从所述第一报文中,获取包含的发起连接请求的时间点;
接收所述交换机复制的所述第三报文,获取所述第三报文中包含的连接确认时间点;
依据所述发起连接请求的时间点以及所述连接确认时间点,确定所述应用程序的连接建立时间。
本公开一可选的实施例中,上述的流表下发模块301,还包括:
监控流表下发单元,用于在接收到所述交换机复制的所述第三报文后,向所述交换机下发监控流表,所述监控流表中包括第一流表项和第二流表项;所述第一流表项和所述第二流表项均包括协议类型、预匹配源地址、预匹配目的地址和第四动作项;其中,所述第一流表项的预匹配源地址为所述源地址、预匹配目的地址为所述目的地址;所述第二流表项包括的协议类型与所述第一流表项的协议类型相同、预匹配源地址为所述目的地址、预匹配目的地址为所述源地址;所述第四动作项用于指示所述交换机将与所述第一流表项或第二流表项相匹配的第四报文进行转发并统计所述第四报文的流量;
上述的监控模块302,还包括:
流量监控单元,用于读取所述交换机统计的所述第四报文的累加流量,得到所述应用程序的流量信息。
本公开一可选的实施例中,上述的流表下发模块301,还包括:
结束流表下发单元,用于在向所述交换机下发监控流表后,向所述交换机下发结束流表,所述结束流表中包括第三流表项和第四流表项,所述第三流表项和所述第四流表项均包括协议类型、报文标记、预匹配源地址、预匹配目的地址和第五动作项;
其中,所述第三流表项的预匹配源地址为所述源地址,预匹配目的地址为所述目的地址;
所述第四流表项包括的协议类型与第三流表项的协议类型相同、预匹配源地址为所述目的地址和预匹配目的地址为所述源地址;所述报文标记为表征报文是连接结束报文的连接结束标记;
所述第五动作项用于指示所述交换机将与所述第三流表项或第四流表项相匹配的第五报文进行复制并上送至控制器;
接收所述交换机复制的所述第五报文,获取所述第五报文中包含的连接结束标记值,向所述交换机下发删除流表,以使所述交换机删除所述监控流表以及结束流表。
图6为本公开实施例提供的计算机设备的结构示意图。该计算机设备可以是SDN控制器。如图6所示,本公开实施例一实施例提供的一种计算机设备,用于执行图1至图5中的监控SDN中应用程序的方法,该设备包括存储器1000、处理器2000及存储在该存储器1000上并可在该处理器2000上运行的计算机程序,其中,上述处理器2000执行上述计算机程序时实现上述监控SDN中应用程序的步骤。
具体地,上述存储器1000和处理器2000能够为通用的存储器和处理器,这里不做具体限定,当处理器2000运行存储器2000存储的计算机程序时,能够执行上述监控SDN中应用程序的方法,从而解决现有技术在对应用程序进行监控时,采用复制的方式获取交换机上所有的报文,对得到的报文进行解析并筛选,由于需要复制的报文数量太大,使得控制器需要解析处理大量的报文,尤其是在应用程序数量较多时,会严重占用控制器的带宽的问题。本公开实施例中,控制器通过向SDN中的交换机下发流表的方式,指示交换机将与匹配项相匹配的报文进行复制到控制器,或者转发并统计转发的报文的流量,进而控制器可以获取想要的报文,以及获取统计的流量,实现对应用程序进行监控;具有能够减少控制器处理报文的数量,减少对控制器带宽的占用的积极效果。
对应于图1至图4中的监控SDN中应用程序的方法,本公开实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述监控SDN中应用程序的方法的步骤。
具体地,该存储介质能够为通用的存储介质,如移动磁盘、硬盘等,该存储介质上的计算机程序被运行时,能够执行上述监控SDN中应用程序的方法,从而解决现有技术在对应用程序进行监控时,采用复制的方式获取交换机上所有的报文,对得到的报文进行解析并筛选,由于需要复制的报文数量太大,使得控制器需要解析处理大量的报文,尤其是在应用程序数量较多时,会严重占用控制器的带宽的问题。本公开实施例中,控制器通过向SDN中的交换机下发流表的方式,指示交换机将与匹配项相匹配的报文进行复制到控制器,或者转发并统计转发的报文的流量,进而控制器可以获取想要的报文,以及获取统计的流量,实现对应用程序进行监控;具有能够减少控制器处理报文的数量,减少对控制器带宽的占用的积极效果。
在本公开实施例所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本公开实施例的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本公开实施例各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开实施例各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以权利要求的保护范围为准。
Claims (8)
1.一种监控软件定义网络SDN中应用程序的方法,其特征在于,应用于控制器,所述方法,包括:
所述控制器向所述SDN中的交换机下发流表,所述流表中设置有匹配项以及动作项,所述交换机利用所述匹配项确定接收到的报文是否为应用程序的收发报文,所述动作项用于指示所述交换机将与所述匹配项相匹配的报文进行复制,或者,转发并统计转发的报文的流量;
接收复制的报文或统计的流量,对所述应用程序进行监控。
2.根据权利要求1所述的方法,其特征在于,
接收复制的报文,对所述应用程序进行监控,包括:
接收所述交换机复制的报文,依据接收的各报文获取连接建立时间;
依据获取到的连接建立时间,对所述应用程序进行监控。
3.根据权利要求1所述的方法,其特征在于,所述控制器向所述交换机下发流表,所述流表中设置有匹配项以及动作项,包括:
所述控制器在与所述交换机建立连接以后,向所述交换机下发第一流表,所述第一流表中设置有第一匹配项以及第一动作项,所述第一匹配项包括协议类型和报文标记,所述第一匹配项的协议类型为TCP协议类型,所述报文标记为表征报文是连接请求报文的连接请求标记,所述第一动作项用于指示所述交换机将与所述第一匹配项相匹配的第一报文进行复制并上送至所述控制器,以及,根据所述第一报文中包含的源地址和目的地址,构建以所述源地址和目的地址为标识的第一外部元数据和第二外部元数据,并将所述源地址写入第一外部元数据的第一源地址项,将所述目的地址写入第一外部元数据的第一目的地址项,将所述源地址写入第二外部元数据的第二目的地址项,将所述目的地址写入第二外部元数据的第二源地址项。
4.根据权利要求1所述的方法,其特征在于,所述控制器向所述交换机下发流表,所述流表中设置有匹配项以及动作项,还包括:
所述控制器在与所述交换机建立连接以后,向所述交换机下发第三流表,所述第三流表中设置有第三匹配项以及第三动作项,所述第三匹配项包括所述协议类型、报文标记以及outer metadata标记,所述报文标记为表征报文是连接确认报文的连接确认标记,所述outer metadata标记用于表征所述交换机获取与所述第一外部元数据的第一源地址项和第一目的地址项一致的第三报文;所述第三动作项用于指示所述交换机将与所述第三匹配项相匹配的第三报文进行复制并上送至所述控制器。
5.根据权利要求2所述的方法,其特征在于,所述接收所述交换机复制的报文,依据接收的各报文获取连接建立时间,包括:
从第一报文中,获取包含的发起连接请求的时间点;所述第一报文为连接请求报文;
接收所述交换机复制的第三报文,获取所述第三报文中包含的连接确认时间点;所述第三报文为连接确认报文;
依据所述发起连接请求的时间点以及所述连接确认时间点,确定所述应用程序的连接建立时间。
6.根据权利要求4或5所述的方法,其特征在于,所述控制器向所述SDN中的交换机下发流表,所述流表中设置有匹配项以及动作项,所述交换机利用所述匹配项确定接收到的报文是否为应用程序的收发报文,所述动作项用于指示所述交换机将与所述匹配项相匹配的报文进行转发并统计转发的报文的流量,包括:
在接收到所述交换机复制的所述第三报文后,向所述交换机下发监控流表,所述监控流表中包括第一流表项和第二流表项;所述第一流表项和所述第二流表项均包括协议类型、预匹配源地址、预匹配目的地址和第四动作项;其中,所述第一流表项的预匹配源地址为所述源地址、预匹配目的地址为所述目的地址;所述第二流表项包括的协议类型与所述第一流表项的协议类型相同、预匹配源地址为所述目的地址、预匹配目的地址为所述源地址;所述第四动作项用于指示所述交换机将与所述第一流表项或第二流表项相匹配的第四报文进行转发并统计所述第四报文的流量;
接收统计的流量,对所述应用程序进行监控,包括:
读取所述交换机统计的所述第四报文的累加流量,得到所述应用程序的流量信息。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述方法还包括:
在向所述交换机下发监控流表后,向所述交换机下发结束流表,所述结束流表中包括第三流表项和第四流表项,所述第三流表项和所述第四流表项均包括协议类型、报文标记、预匹配源地址、预匹配目的地址和第五动作项;
其中,所述第三流表项的预匹配源地址为所述源地址,预匹配目的地址为所述目的地址;
所述第四流表项包括的协议类型与第三流表项的协议类型相同、预匹配源地址为所述目的地址、预匹配目的地址为所述源地址;所述报文标记为表征报文是连接结束报文的连接结束标记;
所述第五动作项用于指示所述交换机将与所述第三流表项或第四流表项相匹配的第五报文进行复制并上送至控制器;
接收所述交换机复制的所述第五报文,获取所述第五报文中包含的连接结束标记值,向所述交换机下发删除流表,以使所述交换机删除所述监控流表以及结束流表。
8.一种软件定义网络SDN控制器,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811444076.8A CN109600318B (zh) | 2018-11-29 | 2018-11-29 | 一种监控sdn中应用程序的方法及sdn控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811444076.8A CN109600318B (zh) | 2018-11-29 | 2018-11-29 | 一种监控sdn中应用程序的方法及sdn控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109600318A true CN109600318A (zh) | 2019-04-09 |
CN109600318B CN109600318B (zh) | 2022-07-12 |
Family
ID=65960522
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811444076.8A Active CN109600318B (zh) | 2018-11-29 | 2018-11-29 | 一种监控sdn中应用程序的方法及sdn控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109600318B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110611671A (zh) * | 2019-09-12 | 2019-12-24 | 北京邮电大学 | 基于移动目标防御的局域网通信方法及装置 |
CN111600811A (zh) * | 2020-04-14 | 2020-08-28 | 新华三信息安全技术有限公司 | 一种报文处理方法和装置 |
CN111970497A (zh) * | 2020-08-31 | 2020-11-20 | 重庆紫光华山智安科技有限公司 | 视频流处理方法、装置、sdn控制器及存储介质 |
CN113114570A (zh) * | 2020-01-13 | 2021-07-13 | 阿里巴巴集团控股有限公司 | 流表项的控制方法、装置及*** |
CN113595822A (zh) * | 2021-07-26 | 2021-11-02 | 北京恒光信息技术股份有限公司 | 一种数据包管理方法、***和装置 |
CN114374563A (zh) * | 2022-01-19 | 2022-04-19 | 深圳市天机云信息技术有限公司 | 网络连接方法、装置、存储介质及电子设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140146674A1 (en) * | 2012-11-29 | 2014-05-29 | Futurewei Technologies, Inc. | Packet Prioritization in a Software-Defined Network Implementing OpenFlow |
WO2014177097A1 (zh) * | 2013-08-16 | 2014-11-06 | 中兴通讯股份有限公司 | 一种流表条目生成方法及相应设备 |
CN104348716A (zh) * | 2013-07-23 | 2015-02-11 | 杭州华三通信技术有限公司 | 一种报文处理方法及设备 |
CN104426762A (zh) * | 2013-08-30 | 2015-03-18 | 中兴通讯股份有限公司 | 一种传输、接收元数据的方法、开放流逻辑交换机 |
CN104618194A (zh) * | 2015-02-15 | 2015-05-13 | 杭州华三通信技术有限公司 | 软件定义网络报文监控方法和sdn控制器、交换设备 |
CN105763465A (zh) * | 2016-01-29 | 2016-07-13 | 杭州华三通信技术有限公司 | 一种分布式组合流量控制方法及装置 |
CN105827487A (zh) * | 2016-05-30 | 2016-08-03 | 上海斐讯数据通信技术有限公司 | 一种sdn网络报文流统计方法、处理方法及sdn网络*** |
CN108259378A (zh) * | 2017-03-30 | 2018-07-06 | 新华三技术有限公司 | 一种报文处理方法及装置 |
-
2018
- 2018-11-29 CN CN201811444076.8A patent/CN109600318B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140146674A1 (en) * | 2012-11-29 | 2014-05-29 | Futurewei Technologies, Inc. | Packet Prioritization in a Software-Defined Network Implementing OpenFlow |
CN104348716A (zh) * | 2013-07-23 | 2015-02-11 | 杭州华三通信技术有限公司 | 一种报文处理方法及设备 |
WO2014177097A1 (zh) * | 2013-08-16 | 2014-11-06 | 中兴通讯股份有限公司 | 一种流表条目生成方法及相应设备 |
CN104426762A (zh) * | 2013-08-30 | 2015-03-18 | 中兴通讯股份有限公司 | 一种传输、接收元数据的方法、开放流逻辑交换机 |
CN104618194A (zh) * | 2015-02-15 | 2015-05-13 | 杭州华三通信技术有限公司 | 软件定义网络报文监控方法和sdn控制器、交换设备 |
CN105763465A (zh) * | 2016-01-29 | 2016-07-13 | 杭州华三通信技术有限公司 | 一种分布式组合流量控制方法及装置 |
CN105827487A (zh) * | 2016-05-30 | 2016-08-03 | 上海斐讯数据通信技术有限公司 | 一种sdn网络报文流统计方法、处理方法及sdn网络*** |
CN108259378A (zh) * | 2017-03-30 | 2018-07-06 | 新华三技术有限公司 | 一种报文处理方法及装置 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110611671A (zh) * | 2019-09-12 | 2019-12-24 | 北京邮电大学 | 基于移动目标防御的局域网通信方法及装置 |
CN113114570A (zh) * | 2020-01-13 | 2021-07-13 | 阿里巴巴集团控股有限公司 | 流表项的控制方法、装置及*** |
CN113114570B (zh) * | 2020-01-13 | 2023-04-07 | 阿里巴巴集团控股有限公司 | 流表项的控制方法、装置及*** |
CN111600811A (zh) * | 2020-04-14 | 2020-08-28 | 新华三信息安全技术有限公司 | 一种报文处理方法和装置 |
CN111970497A (zh) * | 2020-08-31 | 2020-11-20 | 重庆紫光华山智安科技有限公司 | 视频流处理方法、装置、sdn控制器及存储介质 |
CN111970497B (zh) * | 2020-08-31 | 2022-06-03 | 重庆紫光华山智安科技有限公司 | 视频流处理方法、装置、sdn控制器及存储介质 |
CN113595822A (zh) * | 2021-07-26 | 2021-11-02 | 北京恒光信息技术股份有限公司 | 一种数据包管理方法、***和装置 |
CN113595822B (zh) * | 2021-07-26 | 2024-03-22 | 北京恒光信息技术股份有限公司 | 一种数据包管理方法、***和装置 |
CN114374563A (zh) * | 2022-01-19 | 2022-04-19 | 深圳市天机云信息技术有限公司 | 网络连接方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109600318B (zh) | 2022-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109600318A (zh) | 一种监控sdn中应用程序的方法及sdn控制器 | |
CN103532672B (zh) | 一种sdn网络中分片报文乱序的处理方法及应用 | |
CN1937541B (zh) | 一种网络性能测试方法 | |
CN103747470B (zh) | 用于控制无线接入点的方法和设备 | |
CN103237024B (zh) | Tcp/ip协议与ndn协议之间的数据转换传输方法 | |
CN105591974B (zh) | 报文处理方法、装置及*** | |
CN104518908B (zh) | 用于提供网络管理的方法和*** | |
CN105227393B (zh) | 一种双向转发检测方法 | |
CN104378249B (zh) | 数据链路的检测方法、装置、***、控制器及网关 | |
CN104852855B (zh) | 拥塞控制方法、装置及设备 | |
CN109819067A (zh) | 利用stun协议实现基于vxlan隧道技术的nat穿越处理的方法 | |
JP4823156B2 (ja) | リモートトラフィック監視方法 | |
CN109217983A (zh) | 一种工业物联网的作业终端通信协议设计方法 | |
CN108881031A (zh) | 一种基于sdn网络的自适应可靠数据传输方法 | |
CN107454000A (zh) | 网络数据传输装置及方法 | |
CN104993979A (zh) | 网络连接监测方法、终端设备及通信*** | |
US7543072B1 (en) | Method and system capable of performing a data stream over multiple TCP connections or concurrent interleave of multiple data streams over multiple TCP connections | |
CN108833232A (zh) | 一种基于VPP的PPPoE客户端实现方法及PPPoE客户端 | |
WO2021092839A1 (zh) | 数据传输方法、电子设备、***及存储介质 | |
CN114866477A (zh) | 一种网络设备拥塞控制机制的测试方法、***及设备 | |
WO2009117920A1 (zh) | 网络流量采样方法和*** | |
CN104168302B (zh) | 设备操控实现方法、***和代理网关 | |
JP2016174268A (ja) | ネットワークシステム、ネットワークシステムの制御方法、通信装置、及びプログラム | |
CN103916489B (zh) | 一种单域名多ip的域名解析方法及*** | |
CN103220585B (zh) | 一种支持QoS的网络视频传输方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |