用于在VPN网关处识别数据会话的方法和系统
本申请是申请号为201480076908.9、名称为“用于在VPN网关处识别数据会话的方法和系统”的发明专利申请的分案申请。
技术领域
本发明总体上涉及计算机网络的领域。更确切地说,本发明涉及通过执行深度包检测 (DPI)和相应地更新DPI数据库用于在VPN网关处识别互联网协议(IP)数据会话的方法。
背景技术
在防火墙处执行的深度包检测(DPI)允许检查穿过防火墙的IP包的数据部分(并且另外可能地,标头)、搜索协议不符合项、病毒、垃圾邮件、入侵或定义标准,以决定IP包是否可以通过或者它是否需要被路由到不同目的地,或者出于收集统计信息的目的。
存在多种方式来获取用于深度包检测的包。使用端口镜像(有时被称作跨度端口)是非常普通的方式,以及分光器。深度包检测(和过滤)使得可以进行高级网络管理、用户服务和安全功能以及互联网数据挖掘、窃取和互联网审查。
然而,由于存在许多待检查的信息,包括用户、数据会话、协议、源IP地址和目的地IP地址,管理员可能轻易地忽略一些信息以及信息当中的相关性。因此,易于使用的用户界面是重要的。此外,如果防火墙并不具有解密VPN连接的安全信息,那么防火墙无法检查通过VPN连接而发射和接收的IP包。因此,当IP包封装在一个或多个封装包中时,防火墙必须在检查所述IP包之前从对应的封装包中解封所述IP包。
发明内容
一般来说,本发明的实施例描述了通过执行深度包检测(DPI)以识别一个或多个数据会话的VPN网关。
根据本发明的各种实施例,VPN网关接收封装包并且识别对应的VPN连接,封装包是通过所述VPN连接接收的。所述封装包封装IP包。VPN网关在IP包上执行深度包检测以便识别IP包所属于的一个或多个数据会话。DPI数据库至少部分地基于所述一个或多个数据会话更新。
根据一个实施例,更新所述DPI数据库包括,在一个或多个数据会话第一次被识别的条件下,在所述DPI数据库中添加新记录。
根据一个实施例,对应于一个或多个数据会话的信息显示在用户界面处中。所述信息是从DPI数据库中获取的。用户界面可以在并不耦合到VPN网关的显示器上示出。在一个实例中,在执行查询之后从DPI数据库中获取信息。所述信息可以根据类别和统计数据分类。可替代地,所述信息可以根据多个类别分类,并且所述信息进一步包含所述多个类别中的项目之间的相关性。所述多个类别可以从由以下项组成的群组中选出:源IP地址、目的地IP地址、源端口、目的地端口、IP协议、应用、所接收的IP包有效负载的累积大小、所发射的IP包有效负载的累积大小、域名、开始时间戳和终止时间戳。
根据本发明的一个实施例,VPN网关是分别与一个或多个其它VPN网关建立一个或多个 VPN连接的VPN中心。所述一个或多个VPN连接可以组合以形成集中式VPN连接。
附图说明
图1说明了根据本发明的各种实施例的示例性网络环境。
图2A是说明根据本发明的一个实施例的通信步骤的序列图。
图2B是说明根据本发明的一个实施例的通信步骤的序列图。
图2C是说明根据本发明的一个实施例的通信步骤的序列图。
图3A说明根据本发明的一个实施例中的过程。
图3B是说明本发明的一个实施例的流程图。
图4A是说明根据本发明的一个实施例的从DPI数据库中获取的信息如何可以显示给用户或管理员的用户界面。
图4B是说明根据本发明的一个实施例的从DPI数据库中获取的信息如何可以显示给用户或管理员的用户界面。
图4C说明根据本发明的一个实施例可用于对所显示的显示项目进行过滤的用户界面。
图4D说明根据本发明的一个实施例在应用过滤器之后生成的用户界面。
图4E是说明根据本发明的一个实施例的从DPI数据库中获取的信息如何可以显示给用户或管理员的用户界面。
图4F是说明根据本发明的一个实施例的从DPI数据库中获取的信息如何可以显示给用户或管理员的用户界面。
图5是说明根据本发明的一个实施例的从DPI数据库中获取的信息如何可以显示给用户或管理员的用户界面。
图6A是说明根据本发明的一个实施例的从DPI数据库中获取的信息如何可以显示给用户或管理员的用户界面。
图6B是说明根据本发明的一个实施例的从DPI数据库中获取的信息如何可以显示给用户或管理员的用户界面。
图7A是说明根据本发明的一个实施例的从DPI数据库中获取的信息如何可以显示给用户或管理员的用户界面。
图7B是说明根据本发明的一个实施例的从DPI数据库中获取的信息如何可以显示给用户或管理员的用户界面。
图8是根据本发明的一个实施例的VPN中心的示意性框图。
图9是根据本发明的一个实施例的VPN网关的示意性框图。
图10是说明根据本发明的一个实施例的从DPI数据库中获取的信息如何可以显示给用户或管理员的用户界面。
具体实施方式
以下说明仅提供优选的示例性实施例,并且并非意图限制本发明的范围、适用性或配置。实际上,优选的示例性实施例的以下说明将为所属领域的技术人员提供实施本发明的优选的示例性实施例的有利描述。应理解,在不脱离如在所附权利要求书中阐述的本发明的精神和范围的情况下可以对元件的功能以及布置进行各种改变。
在以下描述中给出具体细节以提供对实施例的透彻理解。然而,所属领域的一般技术人员应理解,所述实施例可在没有这些具体细节的情况下实践。例如,可以框图示出电路以免以不必要的细节混淆实施例。在其它情况下,在没有不必要的细节的情况下示出熟知的电路、过程、算法、结构以及技术以便避免混淆实施例。
同样,应注意,实施例可以描述为过程,过程描绘为流程图、作业图、数据流图、结构图或框图。尽管流程图可将操作描述为顺序过程,但是许多操作可以并行或同时执行。另外,操作的次序可以重新安排。当操作完成时,过程终止,但是过程可以具有不包含在图中的另外步骤。过程可以对应于方法、函数、过程、子例程、子程序等。当过程对应于函数时,其终止对应于函数返回到调用函数或主函数。
实施例或其各部分可以程序指令来实施,所述程序指令可在处理单元上操作以用于执行如本文中所描述的功能以及操作。构成各种实施例的程序指令可以存储在存储媒介中。
构成各种实施例的程序指令可以存储在存储媒介中。此外,如本文中所揭示,术语“计算机可读存储媒介”可以表示用于存储数据的一个或多个装置,包含只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、随机存取存储器(RAM)、磁RAM、磁芯存储器、软盘、软磁盘、硬盘、磁带、CD-ROM、快闪存储器装置、存储卡和/或用于存储信息的其它机器可读媒介。术语“机器可读媒介”包含(但不限于)便携式或固定存储装置、光学存储媒介、磁性媒介、存储器芯片或匣、无线信道以及能够存储、包含或携带指令和/或数据的各种其它媒介。机器可读媒介可以通过虚拟化来实现,且可以是虚拟机器可读媒介,包含在基于云的实例中的虚拟机器可读媒介。
如本文所使用的术语计算机可读存储媒介、主存储器或辅助存储器是指参与将指令提供到处理单元以用于执行的任何媒介。计算机可读媒介仅是机器可读媒介的一个实例,所述机器可读媒介可以携带指令以用于实施本文中所描述的方法和/或技术中的任一个。此媒介可以采用许多形式,包含但不限于,非易失性媒介、易失性媒介,以及传输媒介。非易失性媒介包含(例如)光盘或磁盘。易失性媒介包含动态存储器。传输媒介包含同轴电缆、铜线以及光纤。传输媒介还可以采用声波或光波的形式,例如在无线电波以及红外线数据通信期间产生的声波或光波。
易失性存储器可以用于在通过处理单元执行指令期间存储临时变量或其它中间信息。非易失性存储器或静态存储器可以用于存储用于处理器的静态信息以及指令,以及各种系统配置参数。
存储媒介可以包含多个软件模块,所述软件模块可以实施为通过处理单元使用任何合适的计算机指令类型来执行的软件代码。软件代码可以作为一系列指令或命令、或作为程序存储在存储媒介中。
在将一个或多个指令的一个或多个序列载送到处理器以用于执行时,可以涉及各种形式的计算机可读媒介。例如,最初可以在磁盘上从远程计算机载送指令。替代地,远程计算机可以将所述指令加载到其动态存储器中,且向运行一个或多个指令的一个或多个序列的系统发送指令。
处理单元可以是微处理器、微控制器、数字信号处理器(DSP)、那些装置的任何组合、或经配置以处理信息的任何其它电路。
处理单元执行程序指令或代码段以用于实施本发明的实施例。此外,实施例可以由硬件、软件、固件、中间件、微码、硬件描述语言或其任意组合来实施。当在软件、固件、中间件或微码中实施时,用于执行必要任务的程序指令可以存储于计算机可读存储媒介中。处理单元可以通过虚拟化来实现,且可以是虚拟处理单元,包含在基于云的实例中的虚拟处理单元。
本发明的实施例涉及使用计算机系统来实施本文中所描述的技术。在一个实施例中,本发明的处理单元可以存在于计算机平台等机器上。根据本发明的一个实施例,本文中所描述的技术由计算机系统执行,以响应于处理单元执行易失性存储器中所含有的一个或多个指令的一个或多个序列。此类指令可以从另一计算机可读媒介读取到易失性存储器中。对易失性存储器中所含有的指令的序列的执行使得处理单元执行本文中所描述的过程步骤。在替代实施例中,硬连线电路可以用于取代软件指令或与软件指令组合以实施本发明。因此,本发明的实施例不限于硬件电路以及软件的任何特定组合。
例如程序指令等代码段可以表示过程、函数、子程序、程序、例程、子例程、模块、软件包、类别或指令、数据结构的任何组合或程序陈述。代码段可以通过传递和/或接收信息、数据、自变量、参数或存储器内容而耦合到另一代码段或硬件电路。信息、自变量、参数、数据等可以经由包含存储器共享、消息传递、令牌传递、网络传输等任何合适的方式传递、转发或传输。
替代地,硬接线电路可以用于取代或结合软件指令以实施符合本发明的原理的过程。因此,符合本发明的原理的实施方案不限于硬件电路以及软件的任何特定组合。
可以由节点提供的网络接口是以太网接口、帧中继接口、光纤接口、电缆接口、DSL接口、令牌环接口、串行总线接口、通用串行总线(USB)接口、火线接口、外围组件互连(PCI)接口等。
网络接口可以通过独立的电子组件实施或者可以与其它电子组件整合。根据配置,网络接口可以不具有网络连接或具有至少一个网络连接。网络接口可以是以太网接口、帧中继接口、光纤接口、电缆接口、数字订户线(DSL)接口、令牌环接口、串行总线接口、通用串行总线(USB)接口、火线接口、外围组件互连(PCI)接口等。
网络接口可以连接到有线或无线接入网络。接入网络可以携载一个或多个网络协议数据。有线接入网络可以使用以太网、光纤、电缆、DSL、帧中继、令牌环、串行总线、USB、火线、PCI或可以传递信息的任何材料来实施。无线接入网络可以使用红外线、高速分组接入(HSPA)、HSPA+、长期演进(LTE)、WiMax、GPRS、EDGE、GSM、CDMA、WiFi、CDMA2000、 WCDMA、TD-SCDMA、蓝牙、WiBRO、演进数据优化(EV-DO);数字增强型无绳通信(DECT);数字AMPS(IS-136/TDMA);集成数字增强型(iDEN)或任何其它无线技术来实施。
实施例或其各部分可以计算机数据信号来实施,所述计算机数据信号可以采用用于经由传输媒介进行通信的任何合适形式,使得所述计算机数据信号是可读的以用于通过功能装置 (例如,处理单元)来执行从而执行本文中所描述的操作。计算机数据信号可以包含能够经由传输媒介传播的任何二进制数字电子信号,所述传输媒介例如电子网络信道、光纤、空气、电磁媒介、射频(RF)链路等,且因此数据信号可以采用电信号、光信号、射频或其它无线通信信号等形式。在某些实施例中,代码段可以经由计算机网络来下载,所述计算机网络例如互联网、内联网、局域网(LAN)、城域网(MAN)、广域网(WAN)、PSTN、卫星通信系统、电缆传输系统和/或其类似者。
图1说明了根据本发明的各种实施例的示例性网络环境。VPN网关111a、111b和111c、主机113a和113b、服务器112以及VPN中心101连接到互连网络102。主机114a和114b分别连接到VPN网关111a和111b。VPN网关和主机可以具有连接到互连网络102的一个或多个WAN接口。举例来说,VPN网关111a、111b和111c分别通过两个、一个和三个WAN接口连接到互连网络102。VPN中心101通过一个网络接口连接到互连网络102。VPN中心101 可以通过一个或多个网络接口连接互连网络102。
互连网络102可以是公用网络,例如,互联网。替代地,互连网络102也可以是专用网络。VPN网关(例如,VPN网关111a、111b和111c)是在不同类型的网络或应用之间执行协议转换并且能够建立VPN连接的网络上的装置或节点。术语VPN网关并不意图限于单一类型的装置,因为出于本申请案的目的,可以充当用户与网络之间的桥梁的任何装置、硬件或软件都可以被视为网关。网关可以与多个网络耦合。出于本发明的目的,在计算装置或任何设备中能够充当到另一网络的接入点并且建立VPN连接的路由器、交换机、网桥、无线接入点、虚拟机都可以被视为网关。
VPN网关可以具有一个或多个WAN接口以用于连接到互连网络。VPN网关还可以具有一个或多个LAN接口以用于连接到一个或多个主机。VPN网关111a通过其LAN接口中的一个连接到主机114a并且通过其LAN接口中的另一个连接到主机114c。VPN网关111b通过其LAN 接口中的一个连接到主机114b。
主机可以是计算装置、膝上型计算机、移动电话、智能电话、桌上型计算机、个人数字助理或能够连接到VPN网关和互连网络的任何其它电子装置。
服务器112可以是网络服务器、数据库服务器、传感器服务器、交易服务器、主机或节点。对服务器112的访问可以受限或不受限。
VPN中心(例如,VPN中心101)可以执行为用于其它VPN网关111a、111b和111c以及主机113a和113b的中心。VPN中心101也可以是VPN网关并且也可以由VPN网关111a-111c 以及主机113a和113b的管理员使用。VPN中心101可用于管理VPN网关111a-111c和主机113a和113b。VPN中心101可以是桌上型计算机、膝上型计算机或移动装置。VPN中心101 可以具有一个或多个网络接口。网络接口中的至少一个必须连接到互连网络102以用于建立与VPN网关111a-111c和主机113a-113b的VPN连接。在VPN中心101执行为VPN网关的实例中,一个或多个主机和/或节点可以连接到VPN中心101以及通过VPN中心101发射和接收IP包。
VPN网关111a-111c和主机113a、113b可以与VPN中心101形成VPN连接。举例来说,VPN网关111a可以通过其接口中的一个或多个以及通过VPN中心101的一个或多个WAN接口建立与VPN中心101的VPN连接或集中式VPN连接。在一个实例中,VPN网关111a-111c、主机113a、主机113b是辐射的并且VPN中心101是全部一起形成VPN中心-辐射网络环境的中心。因此,当连接到不同VPN网关的主机彼此通信时,容纳通信数据的IP包将通过VPN 中心101。在另一个实例中,VPN网关111a-111c和主机113a、113b通过与VPN中心101建立的VPN连接将任何封装包发射到任何节点并且从任何节点接收任何封装包。因此,VPN网关111c可以通过VPN中心101将封装包发射到服务器112并且从服务器112接收封装包。
可以组合、结合或聚集一个或多个VPN连接以形成集中式VPN连接。使用集中式VPN连接可以产生较高带宽,所述较高带宽是单独的VPN连接的组合带宽。在一个变体中,多个隧道用于形成一个集中式VPN连接,其中隧道是在VPN网关111与中心101之间建立的。集中式VPN连接可以被使用它的会话或应用视为一个VPN连接。
图8是根据本发明的一个实施例的VPN中心(例如,VPN中心101)的示意性框图。VPN中心101包括处理单元801、主存储器802、系统总线803、辅助存储器804和网络接口805。处理单元801以及主存储器802彼此直接连接。系统总线803将处理单元801直接或间接地连接到辅助存储器804以及网络接口805上。使用系统总线803允许VPN中心101具有较大的模块性。系统总线803将处理单元801耦合到辅助存储器804以及网络接口805。系统总线803可以是若干类型的总线结构中的任一种,包含使用多种总线架构中的任一种的存储器总线、外围总线以及局部总线。辅助存储器804存储用于由处理单元801执行的程序指令。通过VPN中心101执行的过程或步骤响应于处理单元801执行存储于辅助存储器804中的一个或多个程序指令的一个或多个序列。本发明的范围不限于仅具有一个网络接口的VPN中心 101,因此,VPN中心101可以具有一个或多个网络接口。
图9是根据本发明的一个实施例的VPN网关(例如,VPN网关111a、111b或111c)的示意性框图。VPN网关900可以表示VPN网关111a、111b或111c,因为所述VPN网关具有类似架构。VPN网关900包括处理单元901、主存储器902、系统总线903、辅助存储器904、 WAN接口905和LAN接口906。处理单元901以及主存储器902彼此直接连接。系统总线903 将处理单元901直接或间接地连接到辅助存储器904、WAN接口905和LAN接口906。使用系统总线903允许VPN网关900具有较大的模块性。系统总线903将处理单元901耦合到辅助存储器904、WAN接口905和LAN接口906。系统总线903可以是若干类型的总线结构中的任一种,包含使用多种总线架构中的任一种的存储器总线、外围总线以及局部总线。辅助存储器904存储用于通过处理单元901执行的程序指令。通过VPN网关111a、111b或111c执行的过程或步骤分别响应于VPN网关111a、111b或111c的处理单元901执行分别存储于VPN 网关111a、111b或111c的辅助存储器904中的一个或多个程序指令的一个或多个序列。本发明的范围不限于仅具有一个WAN接口或一个LAN接口的VPN网关900,因此,VPN网关900 可以具有一个或多个WAN接口和一个或多个LAN接口。
图2A是说明根据本发明的一个实施例的通信步骤的序列图。
在通信步骤201中,VPN网关111a通过第一VPN连接将第一封装IP包发射到VPN中心101。VPN中心101的处理单元801可以随后对第一封装IP包进行解封以获取第一IP包并且在第一IP包上执行DPI以收集关于第一IP包的信息。第一IP包可以来源于连接到VPN网关111a的主机。出于说明的目的,第一IP包的预定目的地为服务器112。因此在通信步骤202中,VPN中心101将第一IP包发射到服务器112。在通信步骤203中,响应于第一IP包,服务器112随后将第二IP包发射到VPN中心101。第二IP包的预定目的地为VPN网关111a。当VPN中心101接收第二IP包时,它在第二IP包上执行DPI并且随后在第二封装包中封装第二IP包。在通信步骤204中,VPN中心101随后将第二封装包发射到VPN网关111a。VPN 网关111a的处理单元901可以对第二封装包进行解封以获取第二IP包。
当在包上执行DPI之后,VPN中心101的处理单元801在DPI数据库中记录对应于包的信息。在一个变体中,第一VPN连接可以是集中式VPN连接。
图2B是说明根据本发明的一个实施例的通信步骤的序列图。
VPN网关111a和111b分别建立与VPN中心101的第一VPN连接和第二VPN连接。在通信步骤211中,主机114a将第一IP包发射到VPN网关111a,其中第一IP包的预定目的地为主机114b。VPN网关111a的处理单元901随后在第一封装包中封装第一IP包并且在通信步骤212中通过第一VPN连接将第一封装包发射到VPN中心101。VPN中心101的处理单元 801解封第一封装包以获取第一IP包并且路由第一IP包。VPN中心101的处理单元801还可以在第一IP包上执行DPI。VPN中心101的处理单元801随后在第二封装包中封装第一IP 包并且在通信步骤213中通过第二VPN连接将第二封装包发射到VPN网关111b。DPI可以在大约与发射第二封装包相同的时间处执行,以便减少用于存储以执行DPI的第一IP包的存储器占用率。
VPN网关111b的处理单元901对第二封装包进行解封以获取第一IP包并且在通信步骤 214中将第一IP包发射到主机114b。
在通信步骤215中,响应于第一IP包,主机114b随后将第二IP包发射到VPN网关111b。第二IP包的预定目的地为主机114a。当VPN网关111b通过其LAN接口中的一个接收第二 IP包时,VPN网关111b的处理单元901在第三封装包中封装第二IP包并且在通信步骤216中通过第二VPN连接将第三封装包发射到VPN中心101。VPN中心101的处理单元801解封第三封装包以获取第二IP包并且路由第二IP包。VPN中心的处理单元801还可以在第二IP 包上执行DPI。VPN中心101的处理单元801随后在第四封装包中封装第二IP包并且在通信步骤217中通过第一VPN连接将第四封装包发射到VPN网关111a。VPN网关111a的处理单元901对第四封装包进行解封以获取第二IP包并且在通信步骤218中将第二IP包发射到主机114a。
在一个变化例中,VPN中心101在通过它的包中存储数据以用于稍后在所述包上执行 DPI。举例来说,在通信步骤212之后,VPN中心101的处理单元801对第一封装包进行解封以获取第一IP包、存储第一IP包、在第二封装包中封装第一IP包,并且在通信步骤213 中将第二封装包发射到VPN网关111b。替代于在通信步骤213之前执行DPI,VPN中心101 的处理单元801将第一IP包存储在存储媒介中,例如,辅助存储器804或主存储器802,使得它可以在稍后执行DPI。这确保了VPN中心的计算资源专用于在持续的数据会话期间发射和接收包。VPN中心101可以在稍后使用计算资源以用于执行DPI。
图2C是说明根据本发明的一个实施例的通信步骤的序列图。
在通信步骤221中,VPN网关111a通过第一VPN连接将第一封装IP包发射到VPN中心101。VPN中心101的处理单元801可以随后对第一封装IP包进行解封以获取第一IP包并且在第一IP包上执行DPI以收集关于第一IP包的信息。第一IP包可以来源于VPN网关111a。出于说明的目的,第一IP包的预定目的地为VPN网关111b。VPN中心101的处理单元801 在第二封装IP包中封装第一IP包。在通信步骤222中,VPN中心101随后将第二封装IP包发射到VPN网关111b。VPN网关111b的处理单元901随后可以对第二封装包进行解封以获取第一IP包。VPN网关111b的处理单元901随后在第三封装包中封装第二IP包。第二IP 包的预定目的地为VPN网关111a。在通信步骤223中,响应于第二封装包,VPN网关111b 随后将第三封装包发射到VPN中心101。当VPN中心101接收第三封装包时,VPN中心101 的处理单元801对第三封装包进行解封以获取第二IP包。VPN中心101的处理单元801随后在第二IP包上执行DPI并且随后在第四封装包中封装第二IP包。在通信步骤224中,VPN 中心101随后将第四封装包发射到VPN网关111a。VPN网关111a的处理单元901可以对第四封装包进行解封以获取第二IP包。
当在包上执行DPI之后,VPN中心101的处理单元801在DPI数据库中记录对应于包的信息。在一个变化例中,第一VPN连接可以是集中式VPN连接。
根据本发明的一个实施例,VPN中心101提供IP地址用于VPN网关111a-111c、主机113a-113b和主机114a-114b。VPN中心101也将IP地址分配到VPN网关111a-111c、主机113a-113b和主机114a-114b中的每一个。替代地,VPN中心101将IP地址分配到VPN网关111a-111c以及主机113a、113b中的每一个,而VPN网关111a将由VPN中心101提供的IP 地址分配到主机114a,并且VPN网关111b将由VPN中心101提供的IP地址分配到主机114b。举例来说,主机114a配备有IP地址10.8.1.3。IP地址10.8.1.3可以通过VPN网关111a 分配或通过VPN中心101分配。
在一个变化例中,VPN网关111a和111b可以针对分别连接到它们的主机执行网络地址转换(NAT)。举例来说,VPN网关111a可以将IP地址提供和分配到主机114a。所提供和分配的IP地址可以在与通过VPN中心101分配给VPN网关111a的IP地址的子网不同的子网中。因此封装在封装包中的IP包的源IP地址是VPN网关111a的IP地址。当VPN中心101 在IP包上执行DPI时,它可能无法通过使用源/目的地IP地址区分来自/到主机114a的IP 包与来自/到连接到VPN网关111a的其它主机的其它IP包。
图3A说明根据本发明的一个实施例的过程。所述过程可以通过处理单元801执行,方法是执行存储于辅助存储器804或主存储器802中的程序指令。当VPN中心101通过互连网络102在步骤301处接收封装包时,它首先在步骤302处确定封装包所属于的VPN连接。VPN中心101可以终止数百、数千甚至数百万的VPN连接。VPN中心101可以根据嵌入在封装包中的唯一标识符识别VPN连接。唯一标识符可以基于可以通过VPN中心101解密或获取的源 IP地址、目的地IP地址、源端口、目的地端口、存储于封装包的标头中的信息和/或存储于封装包的有效负载中的信息中的一个或多个。举例来说,VPN中心101基于源IP地址和封装包的标头中的目的地端口数目以及封装包的有效负载中的全局序号识别封装包所属于的VPN连接。全局序号可以不是加密的并且可以用于在集中式VPN连接中记录IP包。在一个变化例中,全局序号是加密的,但是可以使用VPN中心101的私用密钥解密。
在步骤303处,VPN中心101获取封装在封装包中的IP包。VPN中心101使用VPN连接的对应的信息对封装包进行解封。举例来说,当VPN中心101在步骤302处识别VPN连接之后,它从数据库中获取对应的信息以对VPN连接进行终止和解密。对应的信息可以包含秘密代码、数字证书、密码和协议。
在步骤304处,VPN中心101根据标头信息和/或IP包的有效负载识别IP包。所属领域的技术人员将理解可以使用一个IP包的不同部分和/或多个IP包的信息执行DPI,所述信息包含流量模式和有效负载的内容的模式。在步骤304中DPI工具中的一些可用于识别IP包,所述DPI工具包含nDPI和OpenDPI。识别可以在不同开放系统互连(OSI)水平下进行。举例来说,IP包可以被识别为由Skype应用生成。在另一个实例中,IP包可以被识别为涉及从YouTube网站下载的视频。
所属领域的技术人员将理解DPI可能能够识别IP包的通信协议,包含安全套接字层 (SSL)、超文本传送协议(HTTP)、域名系统(DNS)、会话起始协议(SIP)、无线接入点控制协议(CAPWAP)、因特网协议安全(IPSec)、因特网控制报文协议(ICMP)等。封装包或IP 包的协议可以记录在DPI数据库的协议区中。
在封装包上执行DPI还可以指示封装包是否是用于管理连接的管理包或容纳数据的数据包。
VPN中心101可以记录封装包在VPN网关或VPN中心101处被发送或接收的时间。所述时间可以记录在DPI数据库中。DPI数据库可以本地存储在VPN中心101的存储媒介中,例如,辅助存储器804或主存储器802,或者可以远程存储在远程服务器中。如果DPI将由VPN网关执行,DPI数据库可以本地存储在VPN网关的存储媒介中,例如,辅助存储器904或主存储器902。
VPN中心101还可以对应于DPI数据库中的节点记录持续数据会话的数目。举例来说,服务器112、主机113a、主机114a和VPN网关111c分别具有七个、二十个、十个和三十个持续数据会话。DPI可以通过VPN中心101执行,以便确定在VPN网关111a-111c以及主机 113a和113b处将发射和接收何种类型的数据。替代地,DPI也可以在VPN网关111a-111c 中的一个或多个处执行,以便确定通过VPN网关111a-111c中的一个或多个发射和接收的数据的类型。
在步骤305处,VPN中心101确定IP包是否属于已经记录在DPI数据库中的任何数据会话。DPI数据库用于在成功地识别IP包之后存储信息。因为IP包在流中发送或接收是常见的,所以属于相同流的先前IP包可能已经被识别和记录在DIP数据库中。为了减小DIP数据库的大小,如果IP包不是流中的第一个,那么不需要为IP包添加新记录。在步骤307处,可以根据涉及IP包的信息更新对应于所述流的记录。举例来说,VPN中心101可能仅根据 IP包的大小和IP包的到达时间更新相应记录中的大小字段和时间字段。如果IP包在所述流中是第一个,那么在步骤306处VPN中心101在DPI数据库中创建记录以存储涉及流的信息,例如,源IP地址、目的地IP地址、起始时间、应用、协议、用户身份标识、源端口、目的地端口、安全信息、VPN连接信息、计算资源使用、带宽使用,以及可以辅助VPN中心101 的管理员以识别和/或管理通过在VPN中心101处终止的VPN连接传输的IP包的其它信息。
DPI数据库可以是关系型数据库或非关系型数据库。在一个实例中,DPI数据库是SQLite 数据库,使得SQL命令可用于获取涉及流的一个或多个记录。具体而言,SQL命令可以基于在IP包上执行DPI之后获取的信息以确定在步骤305中所述流是否已经得到记录。在另一变化例中,SQL命令用于获取涉及所述流的记录。DPI数据库的字段可以包含源IP地址、目的地IP地址、源端口、目的地端口、IP协议、应用、所接收的IP包有效负载的累积大小、所发射的IP包有效负载的累积大小、域名、开始时间戳和终止时间戳。
因为IP包封装在一个或多个封装包中,所以记录在DPI数据库的记录中的IP包的源IP 地址和目的地IP地址可能取决于VPN网关111b是否执行网络地址转换。举例来说,当VPN 中心101在源自主机114b的IP包上执行DPI并且主机114b的IP地址由VPN中心101提供时,IP包的源IP地址是主机114b的IP地址而封装包的源IP地址是用于建立VPN网关111b 与VPN中心101的VPN连接的WAN接口的IP地址。在另一个实例中,当VPN中心101在源自主机114b的IP包上执行DPI并且IP包的源IP地址已经使用网络地址转换(NAT)技术通过VPN网关111b转换时,封装包的源IP地址是VPN网关111b的接口的IP地址,而IP 包的源IP地址是VPN网关111b的IP地址。所属领域的技术人员将理解VPN网关是否将执行NAT可取决于不同的网络架构。
在另一个实例中,封装包的源IP地址可以是VPN网关111a-111c、主机114a-114b或主机113a-113b中的一个的IP地址。举例来说,VPN网关111a建立与VPN中心101的第一VPN连接,并且主机114a通过第一VPN连接发射预定目的地为服务器112的IP包。IP包的源 IP地址是主机114a的IP地址。当VPN网关111a从主机114a中接收IP包时,它可以在源 IP地址是VPN网关111a的IP地址的封装包中封装上述IP包。当VPN中心101在封装包上执行DPI时,它确定IP包的最初源IP地址是主机114a的IP地址,并且因此视需要通过主机114a的源IP地址更新DPI数据库。
通过VPN中心101发射的封装包的目的地IP地址可以通过在封装包上执行DPI来确定。目的地IP地址可以是网页、服务器或主机的IP地址。举例来说,如果主机113a通过与VPN中心101建立的VPN连接发送预定目的地为服务器112的封装包,那么视需要通过服务器112的目的地IP地址更新DPI数据库。
在另一个实例中,主机113a建立与VPN中心101的第二VPN连接,并且通过第二VPN连接发射预定目的地为服务器112的IP包。IP包的源IP地址是主机113a的IP地址。IP 包首先通过主机113a封装在封装包中,并且随后被发射到VPN中心101。当VPN中心101接收封装包时,它在所述封装包上执行DPI并且确定所述IP包的目的地IP地址是服务器112。
在另一个实例中,VPN中心101可以在VPN中心101处在分别发射到服务器112以及从服务器112接收的包上执行DPI。虽然服务器112并不与VPN中心101建立任何VPN连接,但是VPN中心101可以在通过VPN中心101的预定目的地为服务器112的任何数据包上执行DPI,并且还可以在从服务器112中接收的任何数据包上执行DPI。举例来说,当在主机114a与服务器112之间建立数据会话时,服务器112可以通过VPN中心101将IP包发射到主机113b。IP包的源IP地址是VPN中心101的IP地址。VPN中心101在IP包上执行DPI并且视需要更新DPI数据库。VPN中心101随后可以在封装包中封装IP包,并且随后通过第一 VPN连接将封装包发射到VPN网关111a。VPN网关随后对封装包进行解封以获取IP包,并且将IP包发射到主机114a。
对于DPI必须在VPN中心101处执行是没有限制的。DPI也可以由VPN网关111中的一个或多个执行,例如VPN网关111a-111c。在VPN中心和辐射网络架构中,所有IP包将通过VPN中心101,然后到达VPN网络中的另一VPN网关111或主机。因此,VPN中心101能够在通过它与其它VPN网关、主机建立的VPN连接的实质数目的IP包上执行DPI。在一个变化例中,VPN中心101还可以在到主机/来自主机的IP包上执行DPI,例如服务器112,其没有与 VPN中心101建立的VPN连接。
当DPI在VPN网关111处执行时,VPN网关111不限于在通过一个或多个VPN连接发射和/或接收的IP包上执行DPI。VPN网关111可在发射到节点和/或从节点接收的IP包上执行DPI,所述节点不具有与VPN网关111建立的VPN连接。举例来说,当主机114b通过VPN 网关111b从服务器112下载文件时,服务器112可能不具有与VPN网关111b的VPN连接。 VPN网关可以在文件下载会话上执行DPI。
在一个变化例中,步骤304-307的性能可能不会减缓VPN中心101的其它操作,例如,路由和交换,因为步骤304-307可以由处理单元801的不同核心或VPN中心101的操作系统的不同线程执行。当没有足够的计算资源时,步骤304-307的执行可能会影响VPN中心101的其它操作的执行。
图3B是说明本发明的一个实施例的流程图。在步骤321处,VPN中心101产生查询以获取信息。所述查询可以由VPN中心101的管理员创建、由VPN 101创建并且由管理员选择、选自一组预定义的查询并且通过互连网络102由VPN中心101接收。
在步骤322处,执行查询以从DPI数据库中获取信息。举例来说,在步骤321中可以产生查询以获取涉及到达/来自服务器112的数据会话的信息,并且随后通过VPN中心101的处理单元801执行以在步骤322处从DPI数据库中获取所述信息。
在步骤323处,在从DPI数据库中获取信息之后,所述信息随后用于开发VPN中心101 的管理员的用户界面以形象化所述信息。举例来说,从DPI数据库中获取的信息可以是文本格式的,包含可扩展标记语言(XML)、JavaScript对象符号(JSON)、逗号分隔型取值(CSV) 和栏标分隔型取值(TSV),并且是难以直观地提供关于所述信息的洞察的。因此,在步骤323 处,所述信息用于开发用户界面,例如,在图4A、图4B、图4D、图4E、图4F、图5、图6A、图6B、图7A和图7B中所示的那些。可以使用超文本标记语言(HTML)、可缩放矢量图形(SVG)、Qt、JavaScript或能够产生用户界面的任何其它计算机语言或脚本构建用户界面。所属领域的技术人员将理解不同工具、软件、软件库可用于基于所述信息产生用户界面。在一个优选实施例中,用户界面使用HTML、Javascript、层叠样式表(CSS)和D3.js JavaScript库。用户界面可以在耦合到VPN中心101的显示器处示出或发送到例如,膝上型计算机、桌上型计算机和智能电话等能够显示用户界面的电子装置。电子装置可以在VPN中心101的相同局域网中、VPN中心101的相同虚拟专用网络或通过互连网络102与VPN中心101连接的不同网络中。在VPN中心101已经生成HTML、Javascript和CSS程序指令之后,所述程序指令被发送到电子装置以显示用户界面。
不限制步骤301-307和步骤321-323的执行必须在VPN中心101处执行。因为VPN网关 111也可以终止VPN连接,所以VPN网关111也可以执行步骤301-307和步骤321-323以用于分别经过它们的数据会话。
图4A是说明根据本发明的一个实施例的从DPI数据库中获取的信息如何可以显示给用户或管理员的用户界面。所述信息可以包括IP地址、协议、主机标识、VPN网关标识、应用或网站之间的相关性。
列401具有第一类别的项目,包括可以通过VPN连接连接到VPN中心101的节点的IP地址。列402具有第二类别的项目,包括由通过列401中的IP地址建立的数据会话使用的协议和应用,或由列401中的IP地址访问的网站、主机或IP地址。线403示出第一类别的项目与第二类别的项目之间的相关性。举例来说,线403用于显示列402中的哪些协议用于通过列401中的IP地址建立的数据会话,或者列402中的哪些网站由列401中的IP地址访问。出于说明的目的,IP地址10.80.1.1建立一个或多个SSL会话、HTTP会话、SIP会话和 ICMP会话,如通过线403所示。在另一个实例中,IP地址10.8.9.21建立一个或多个CAPWAP 会话和IPSec会话,并且还与一个或多个谷歌服务器和一个或多个雅虎服务器建立一个或多个数据会话,如通过线403所示。列401和402中所示的项目以及线403是基于从DPI数据库中获取的信息的。
示例性地,IP地址10.80.1.1被分配给VPN网关111b的WAN接口,通过所述WAN接口,它建立与VPN中心101的VPN连接。由于主机114b连接到VPN网关111b,所以分配给主机 114b的IP地址是10.80.1.3。IP地址10.8.9.13被分配给VPN网关111a。虽然VPN网关111a 具有与VPN中心101建立VPN连接的两个WAN接口,但是VPN连接组合以形成集中式VPN连接。因此通过VPN中心101分配给VPN网关111a的IP地址是通过其建立集中式VPN连接的 IP地址。IP地址10.8.9.20、10.8.9.21和10.8.9.22通过VPN中心101被分别分配给主机 113a、主机113b和VPN网关111c。IP地址8.1.2.3是服务器112的IP地址。服务器112 具有公共IP地址。VPN中心101并不与服务器112建立VPN连接。线403可指示是否存在通过VPN中心101与服务器112建立的任何数据会话,以及由所述数据会话所使用的协议。在一个变化例中,替代于示出IP地址,主机或VPN网关的名称可以在列401中示出。举例来说,文本“10.80.1.1”可以被“VPN网关111b”代替。
类似地,线403示出哪些协议或网站由IP地址10.80.1.1、10.80.1.3、10.8.9.13、10.8.9.20、10.8.9.21和10.8.9.22.所使用。第一类别的项目可以包括主机名称、用户身份标识或连接到VPN中心101的节点的标识信息,并且不限于它们的IP地址。第二类别的项目可以包括由第一类别的项目中的一个或多个项目访问的网站、IP地址、主机名称或节点的标识信息。第一类别和第二类别不限于显示在列中。举例来说,第一类别可以是顶部的行并且第二类别可以是右边的列,以形成表。
在列401中所选择的项目与第二类别的项目之间的相关性可以动态地指示给用户。举例来说,当用户界面显示在计算机屏幕上时,用户可以通过将光标移动在项目上或通过点击项目来选择所述项目。通过改变对应于所选定项目的线的外观可以将相关性动态地指示给用户。出于说明的目的,当用户选择IP地址10.80.1.1时,对应于IP地址10.80.1.1的线的外观是从实线动态地变成虚线的,如线403中所说明。这使得用户更容易在视觉上检测选定项目与第二类别的项目之间的相关性。用户可以因此区分所有其它线与指示IP地址10.80.1.1使用SSL协议、HTTP协议、SIP协议和ICMP协议建立一个或多个数据会话的线。应注意存在许多指示相关性的方式,并且本发明的范围不限于使用虚线。举例来说,对应于选定项目的线的外观可以通过改变它们的颜色、或通过使所述线闪光等变化。
图4B是说明根据本发明的一个实施例信息如何显示给用户或管理员的用户界面。线413 显示第一类别的项目与第二类别的项目之间的相关性。在图4B中,项目是选自包括第二类别的项目的列402。出于说明的目的,用户从列402中选择“谷歌”使得指示“谷歌”与第一类别的项目之间的相关性。当用户选择“谷歌”时,对应于“谷歌”的线的外观是从实线到虚线动态地变化的,如线403中所说明。用户可以因此区分所有其它线与指示通过IP地址10.8.9.20和10.8.9.21访问谷歌服务器的线。也就是说,IP地址10.8.9.20和10.8.9.21 建立与一个或多个谷歌服务器的一个或多个数据会话,其通过线413指示。应注意存在许多指示相关性的方式,并且本发明的范围不限于使用虚线。举例来说,对应于选定项目的线的外观可以通过改变它们的颜色、或通过使所述线闪光等变化。
图4C说明根据本发明的一个实施例可用于对在图4A的图中所显示的项目进行过滤的用户界面。过滤用户界面404包括输入字段,例如记录的数目字段405、第一类别的项目字段 406、第二类别的项目字段407和更新字段408。记录的数目字段405用于指示应显示在图中的DPI数据库的最近记录的数目。第一类别的项目字段406用于过滤将显示的第一类别的项目。第二类别的项目字段407用于过滤将显示的第二类别的项目。更新字段408用于确认过滤并且根据过滤更新所述图。
图4D说明根据一个实施例在应用图4C中所示的过滤器之后生成的用户界面。为了更好地理解实施例,应该结合图4A以及图4C查看图4D。出于说明的目的,当用户在记录的数目字段405中输入“10”时,VPN中心101确定在图上仅显示从DPI数据库中获取的前十个记录。当用户在第一类别的项目字段406中输入“10.80”时,VPN中心101确定在图上仅显示开始于“10.80”的IP地址。用户可以随后通过点击更新字段408来应用过滤器。VPN中心 101随后将用户界面从图4A中的图更新到图4D中的图。由于用户在第一类别的项目字段406 中输入“10.80”,所以在列421中仅显示了在第一类别的项目中开始于“10.80”的IP地址。开始于“10.80”的IP地址可以是查询的一部分,以从DPI数据库中获取信息。因此,在应用过滤器之后,仅IP地址10.80.1.1和10.80.1.3从第一类别的项目中显示。换句话说,经过滤的第一类别的项目由IP地址10.801.1和10.80.1.3组成。线423示出经过滤的第一类别的项目与第二类别的项目之间的相关性。出于说明的目的,当用户选择IP地址 10.80.1.1时,对应于IP地址10.80.1.1的线的外观可以从实线动态地变化成虚线。
过滤用户界面404也可以用于过滤列402中的第二类别的项目以在列422中显示经过滤的第二类别的项目。
过滤用户界面404中的字段可以相对于彼此择一地使用。举例来说,用户可以仅使用第一类别的项目字段406以过滤第一类别的项目并且不使用记录的数目字段405和第二类别的项目字段407。
本发明的范围不限于用户通过在第一类别的项目字段406中输入IP地址来过滤第一类别的项目。用户可以在第一类别的项目中输入可能对应于一个或多个项目的字符串、值、标准或任何内容。类似地,用户可以在第二类别的项目字段407中输入IP地址、网站名称、主机名称、协议、字符串、值、标准或可能对应于第二类别的项目中的一个或多个项目的任何内容。
字段405、406和407可以包括向用户提供对应于每个字段的建议的下拉菜单。举例来说,当用户点击第一类别的项目字段406时,下拉菜单包括例如第一类别的项目中的项目等建议。用户可以点击建议,在第一类别的项目字段406中输入字符串。所述字符串用作过滤器以过滤掉并不具有所述字符串的项目。建议是通过VPN中心101提供的。通过用户在字段 405、406和/或407中输入的值可用作查询的一部分,以从DPI数据库中获取信息。
在一个变化例中,出于说明的目的,如图4A所示,IP地址10.80.1.1建立一个或多个SSL会话、HTTP会话、SIP会话和ICMP会话,如通过线403所示。SSL隧道可用于使用例如HTTP等其它协议建立会话并且也可以用于访问例如谷歌或脸谱网等网站。所属领域的技术人员将知晓,包可能具有各种水平的封装,其中属于一个协议的包可能封装在属于另一协议的包中。因此,如果HTTP包封装在SSL包中,那么HTTP会话通过IP地址10.80.1.1穿过SSL隧道建立,图4A中的图指示IP地址10.80.1.1使用SSL协议建立一个或多个数据会话。
在一个变化例中,涉及数据会话的统计信息可以示出在线403附近。举例来说,由数据会话使用的带宽的量可以示出在列401中的项目中的一个与列402中的项目中的一个之间的线之上。统计信息还可包含VPN连接的网络性能、数据会话的数目、数据会话的持续时间以及数据会话的货币成本。统计信息可以通过取平均、找最大值、找最小值等方式确定。
在另一变化例中,如图4E中所说明,当一个或多个数据会话是通过另一数据会话建立的时,对应于所述一个或多个数据会话的协议或网站也被显示出。出于说明的目的,IP地址 10.80.1.1建立一个或多个SSL会话、HTTP会话、SIP会话和ICMP会话,如通过线423所示。 SSL会话的建立是通过建立SSL隧道。SSL隧道可用于封装对网站的访问和/或其它数据会话。出于说明的目的,当通过SSL隧道建立HTTP会话时,HTTP包是在SSL包中封装的并且随后 SSL包通过VPN连接发射。当IP地址10.80.1.1是选定项目时,列430是动态地显示的并且包括通过IP地址10.80.1.1穿过SSL隧道建立的数据会话的协议。因此,如列430中所说明,一个或多个HTTP会话是通过IP地址10.80.1.1穿过SSL隧道建立的,并且IP地址 10.80.1.1还穿过SSL隧道访问一个或多个谷歌服务器和脸谱网服务器。存在许多原因使得 SSL隧道中的IP包可以使用DPI技术来分析。举例来说,VPN中心101具有解密SSL隧道的信息。在一个变化例中,列430中所示的SSL可能是指SSL会话。
替代地,如图4F中所说明,当IP地址10.80.1.3是选定项目时,列440是动态地显示的,包括通过IP地址10.80.1.3穿过SSL隧道建立的数据会话的协议。因此,如列440中所说明,一个或多个HTTP会话是通过IP地址10.80.1.3穿过SSL隧道建立的,IP地址 10.80.1.3还穿过SSL隧道访问一个或多个脸谱网服务器。IP地址10.80.1.1和10.80.1.3 分别是VPN网关111b和114b的IP地址。主机114b可以使用建立在网关111b与VPN中心 101之间的SSL隧道以用于发射或接收数据。参考图4E和图4F,主机114b通过VPN网关111b 建立一个或多个HTTP会话并且通过VPN网关111b还访问一个或多个脸谱网服务器。这可以指示列430包含项目“谷歌”,因为另一主机可以通过VPN网关111b访问一个或多个谷歌服务器,或者VPN网关111b本身访问一个或多个谷歌服务器。
根据本发明的多个实施例,所显示的项目可以从由以下项组成的群组中选出:节点的IP 地址、应用、封装包或IP包的协议、策略、IP地址的位置、通过网络接口的性能范围、下载或上传的数据的大小的范围以及用户身份标识。
在一个实例中,节点可以是连接到互连网络102的装置。节点的IP地址可以是VPN网关111a-111c、主机114a-114b或主机113a-113b的IP地址。当节点具有一个以上WAN接口时,节点的IP地址可以是其中一个WAN接口的IP地址。替代地,节点的IP地址可以是服务器112的IP地址,或者不由VPN中心101管理的任何其它公共服务器的IP地址。
应用可以是对应于在特定节点处的特定数据会话的应用。举例来说,如果主机113a发射和接收IP包以用于视频会议,那么所述应用是视频会议。应用的其它实例可以指示为包含Skype、NetFlix、SQL、网络等的项目。
属于通过多个节点中的一个建立的数据会话的封装包或IP包的协议可以被显示作为项目。举例来说,协议可以是SSL、HTTP、DNS、SIP、CAPWAP、IPSec、ICMP等。
可以确定在节点的网络接口处发射和接收封装包或IP包的性能。性能范围可以从由以下项组成的群组中选出:处理量范围、带宽范围、丢包率范围、往返时间范围、时延范围或其它性能范围。当性能被确定时,对应于接口的性能范围可被显示出。
由节点访问的IP地址的位置可以被显示作为项目。IP地址的位置可以通过使用IP地理位置数据库来确定。举例来说,如果网关111a访问服务器112,那么显示服务器112的位置。
通过网络接口建立的或在节点处的数据会话的数目可以被显示作为项目。涉及数据会话的信息是从DPI数据库中获取的。
可以确定已经在节点处下载或上传的内容的大小。示例性地,对于下载的数据的大小,第一、第二和第三项目对应于0MB-300MB、300MB-600MB和600MB-800MB的范围。如果主机113a正在下载文件并且已经下载了700MB,那么对应于主机113a的项目与第三项目相关。这是因为700MB落入在对应于第三项目的601MB-800MB的范围内。因此,主机113a 与第三项目的相关性显示在所述用户界面上。在另一个实例中,所显示的项目可以是正在下载或上传的文件的进度,或者在进行中的下载或上传会话中已经下载或上传的数据的总大小。
节点的用户的身份标识可以被显示作为项目。举例来说,许多用户可以登录和使用主机 113a。目前登录到主机113a的用户的用户身份标识或在特定时间周期中登录到主机113的用户的用户身份标识可以被显示作为项目。
所属领域的技术人员将理解本发明的范围不限于显示如上文所述的项目,因此其它种类的项目也可以显示在用户界面处。
图5是说明根据本发明的一个实施例信息如何显示在用户界面上的图。从DPI数据库中获取的信息可以包含连接到VPN中心101的节点与协议、目的地或网站之间的相关性。图5 与图4A之间的差异在于图5具有三个类别的项目而不是两个。为了更好地理解实施例,应该结合图1查看图5。
列521具有第一类别的项目。项目501、502、503、504、505、506和507分别表示VPN网关111a、主机114a、VPN网关111b、主机114b、VPN网关111c、主机113a和主机113b。用户界面允许用户或管理员查看哪些种类的流量正在通过连接到VPN中心101的节点以及连接到VPN中心101的节点正在访问哪些目的地。
VPN网关111a-111c和主机113a-113b与VPN中心101建立VPN连接。
列522具有第二类别的项目,包括由通过第一类别的项目建立的数据会话使用的协议。列523具有第三类别的项目,包括由第一类别的项目访问的网站或节点。
线530说明第一类别的项目与第二类别的项目之间的相关性。换句话说,线530说明哪些协议是由通过第一类别的项目中的每个项目建立的数据会话使用的。
线531说明第一类别的项目与第三类别的项目之间的相关性。换句话说,线531说明哪些网站或目的地是由第一类别的项目中的每个项目所访问的。
示例性地,线530使项目501与列522中的若干项目相关,包含SSL、HTTP、DNS、SIP和IPSec。这指示VPN网关111a使用SSL协议、HTTP、SIP和IPSec建立一个或多个数据会话,并且VPN网关111a还发射或接收DNS流量。线531使项目501与列523中的若干项目相关,包含项目511和“雅虎”。这指示VPN网关111a访问服务器112以及一个或多个雅虎服务器。
由于主机114a通过VPN网关111a连接到VPN中心101,所以项目502与项目501被相关联的项目的子集相关。线531使项目502与SIP和IPSec相关,并且线531使项目502与项目511相关。这指示主机114a使用一个或多个数据会话,所述一个或多个数据会话使用 SIP和IPSec,并且主机114a访问服务器112。
在图5的说明中项目501是选定项目。换句话说,用户通过在项目501上移动光标或通过点击项目501来选择项目501,因此通过VPN网关111a分别与第二类别的项目和第三类别的项目之间的线530和531示出的相关性动态地指示在用户界面中。举例来说,相关性是通过改变对应于项目501的线的外观动态地指示的。线的外观可以通过从实线变为虚线而改变,或者通过改变线的颜色,或通过使线闪光而改变。这使得用户更容易在视觉上检测项目501 与第二类别的项目和第三类别的项目之间的相关性。因此用户可以区分所有其它线与指示VPN网关111a使用SSL协议、HTTP、SIP和IPSec建立一个或多个数据会话、访问服务器112 和一个或多个雅虎服务器,并且还发射或接收DNS流量的线。
图6A和图6B是说明根据本发明的一个实施例连接到VPN中心101的各节点之间的相关性以及协议、目的地或网站是如何显示在用户界面上的图。图6A或图6B与图5之间的差异在于在图6A和图6B中,对应于通过VPN网关连接到VPN中心101的主机的项目显示在对应于VPN网关的项目内部。
示例性地,随着主机114a通过VPN网关111a连接到VPN中心101,项目602显示在项目601内部。因此,源自主机114a的任何IP包通过VPN网关111a到达VPN中心101。类似地,项目604显示在项目603内部,因为主机114b通过VPN网关111a连接到VPN中心101。
如图6A中所说明,当选定项目601时,对应于项目601的线的外观是变化的。线630和631中的虚线示出VPN网关111a使用SSL协议、HTTP协议、SIP协议和IPSec协议建立一个或多个数据会话、访问服务器112和一个或多个雅虎服务器,并且还发射或接收DNS流量。
替代地,如图6B中所说明,当选定项目602时,主机114a与第二组和第三组的项目之间的相关性应该是动态地指示的。因此,仅将项目601连接到列522的SIP和IPSec和列523的项目511的线的外观是动态地变化的。这是因为主机114a仅使用SIP和IPSec协议建立一个或多个数据会话,并且仅通过VPN网关111a访问服务器112。将理解当项目602是选定项目时,对应于项目601的一些而并非全部线具有变化的外观。因为主机114a是通过VPN 网关111a使用SIP和IPSec协议建立一个或多个数据会话,并且仅访问服务器112,所以对应于主机114a的线连接到项目601而不是项目602。
根据本发明的一个实施例,项目可以分组且显示在一起。举例来说,如图6A中所说明,项目602和601被分组在一起,这是因为VPN网关111a和主机114a是同一拥有者所拥有的。在另一个实例中,项目602和601分组在一起以示出VPN网关111a和主机114a在相同地理位置中。在另一个实例中,项目603和605在显示器中分组在一起以示出VPN网关111b和 VPN网关111c是相同的产品模型。替代地,项目603和605在显示器中分组在一起以示出 VPN网关111b和VPN网关111c是由同一管理员控制的。所属领域的技术人员将理解在用户界面中可能存在多个组标准,并且本发明的范围不限于上文所陈述的分组。
在本发明的一个实施例中,DPI可以通过VPN网关执行,例如,VPN网关111a。DPI是通过VPN网关111a在源自或预定目的地为主机的IP包或封装包上执行的,所述主机为通过其LAN接口中的一个或多个连接到VPN网关111a的主机。因此,显示DPI的结果的用户界面仅显示对应于VPN网关111a的项目,而不显示对应于连接到VPN中心101的其它VPN网关或主机的项目。DPI可以通过VPN网关111a的处理单元901执行,方法是执行存储于VPN 网关111a的辅助存储器904或主存储器902中的对应的程序指令。
举例来说,在图7A和图7B中,列721具有包括项目601和602的第一类别的项目。项目601和602分别表示VPN网关111a和主机114a。
列722具有第二类别的项目,包括由通过第一类别的项目建立的数据会话使用的协议。列723具有第三类别的项目,包括由第一类别的项目访问的网站或目的地。
线730说明第一类别的项目与第二类别的项目之间的相关性。换句话说,线730说明哪些协议是由通过第一类别的项目中的每个项目建立的数据会话使用的。
线731说明第一类别的项目与第三类别的项目之间的相关性。换句话说,线731说明哪些网站或目的地是由第一类别的项目中的每个项目所访问的。
在图7A中,项目601是选定项目,而在图7B中,项目602是选定项目。项目601与第一类别的项目和第二类别的项目之间的相关性以及项目602与第一类别项目和第二类别的项目之间的相关性与上文在图6A和6B中说明的相同。
图10是说明根据本发明的一个实施例显示在用户界面上的信息。所述信息是基于从DPI 数据库中获取的查询结果的。DPI数据库位于辅助存储器804中。查询是获取用于VPN网关 111a、111b和111c的带宽的量。随后查询结果被发送到电子装置,例如,膝上型计算机,所述电子装置能够使用查询结果在电子装置的显示器上产生信息。查询结果通过互连网络 102通过HTTPS协议以JSON格式被发送到电子装置。电子装置可随后生成图表1001。图表 1001可以基于查询结果使用HTML、Javascript、CSS和D3js的组合来构建。
日期输入1041和时间范围输入1042可以一起使用以指定监测VPN网关111a、111b和 111c的网络流量的日期和时间。当管理员想要查看某一日期和时间的网络流量使用时,管理员可分别改变日期输入1041和时间范围输入1042的值。所述值可随后用于形成查询以对DPI 数据库进行查询。
堆叠条1010、1020和1030分别示出由VPN网关111a、111b和111c使用的带宽的量。
区段1011示出了在2014年3月26日在11:00am与01:00pm之间用于VPN网关111a 的HTTP协议相关带宽的平均量是大约10Mbps。区段1012和区段1013示出在相同周期下用于VPN网关111a的SIP协议和SSL协议相关带宽的平均量分别是10Mbps和10Mbps。
类似地,区段1021和区段1022示出在相同周期下用于VPN网关111b的SSL协议和HTTP 协议相关带宽的平均量分别是20Mbps和15Mbps。区段1031和区段1032示出在相同周期下用于VPN网关111c的HTTP协议和SIP协议相关带宽的平均量分别是10Mbps和10Mbps。
堆叠条1010、1020和1030还可以示出与带宽使用相关的协议。不存在仅有带宽使用、时间、日期和VPN网关之间的相关性可以显示在所述用户界面上的限制。例如VPN网关111a-111c的统计信息、地理位置以及警告消息的数目等其它信息也可以连同堆叠条一起示出,即使VPN网关111a-111c的地理位置的信息和警告消息的数目不由DPI数据库提供也是如此。来自其它来源的信息和数据可以与来自DPI数据库的信息一起在用户界面中示出。另外,所显示的信息不限于二维图表,因此三维图表或多维图表也可以用于表示所述信息并且所述信息基本上是基于从DPI数据库中获取的查询结果的。在一个变化例中,当管理员与用户界面交互时,可以基于管理员的鼠标移动、手指位置,和/或数据输入生成一个或多个新查询。一个或多个新查询和对应的查询结果可以通过例如异步JavaScript和XML(AJAX)发送到和接收自VPN中心101的DPI数据库。