处理网络流量的计算机系统及方法_2

文档序号:9436007阅读:来源:国知局
由防火墙101根据有效的防火墙策略进行处理。这样的处理包括反恶意程序扫描和/或内容过滤。
[0035]图2示出了示例性的具有多个虚拟域的网络配置200。具体地,位于物理网络122与123中的局域网络实体104到111分为两个VLAN 216与217,如上所述。在防火墙101中,VLAN 216与217分别与逻辑接口 219和220相连接。局域网络实体112 — 115设置在物理网络124中,与防火墙的物理接口 225连接。逻辑接口 219、220以及物理接口 225 (以及所有连接的网络实体)被分为两个相互不相交(disjoint)的网络或虚拟域226与227。从每个虚拟域内发出的网络流量只能在同一个虚拟域内路由。互联网102中的远程主机103与虚拟域226及227中的实体之间传输的网络内容由防火墙101进行处理。每个虚拟域226及227可以具有不同的生效的内容处理策略(未示出)以处理与各个虚拟域有关的网络内容。虚拟域226与227具有不相交的路由,包括到互联网的路由。因此,设置有额外的路由器(或逻辑接口)228及229以便将每个虚拟域到互联网之间的流量进行分离。另夕卜,远程主机103在正常情况下允许连接到虚拟域226及227其中的一个,但不能同时与该二者连接。
[0036]图3示出了根据本发明一个方面的网络内容处理系统的实施例。参照图3,所示的实施例防火墙系统300包括逻辑接口 219、220以及物理接口 225。逻辑接口 220与物理接口 225 —起形成一虚拟域227。虚拟域226与单一逻辑接口 219相连接。局域网络实体104 - 115根据各自连接的接口组被分为虚拟域226与227。
[0037]通过防火墙传输的网络流量由防火墙系统进程305和306进行处理。具体地,在所示的实施例中,服务系统进程305对虚拟域226与227执行内容过滤的同时对内容进行反恶意程序扫描。服务进程305与306通过独立的通信信道特别是套接字315 — 318与接口 219、220及225进行通信。在本发明系统的实施例中,每个这样的套接字都具有其自身的接收缓存以使得从一个虚拟域发出的信息包不会使其它虚拟域对应的缓存溢出。因此,对应一特定域的缓存的溢出不会影响其它虚拟域中的流量。
[0038]在图3所示的本发明的实施例中,系统进程305与306将来自多个虚拟域226与227的套接字聚集(aggregate),从而减少每个虚拟域执行系统进程305与306的相关的资源开销。在该配置中,当多个虚拟域发出的连接被聚集在同一个系统进程中时,系统进程305与306需要识别正在处理的虚拟域的身份。在本发明的一实施例中,该步骤是通过检查关联套接字的属性及具体的套接字标识符(socket_id)来完成的。因为在如图3所示的配置中,与虚拟域由连接的另一端的逻辑或物理接口是虚拟域的唯一识别特征,虚拟域的识别信息可以从各套接字的套接字识别符socketjd中获得。
[0039]图4所示是本发明的另一实施例的防火墙系统400,在该实施例中所述多个系统进程405与406用于将来自不同虚拟域的网络内容处理任务分配到多个可用的CPU资源407及408,有益于系统的负载均衡。图4所示的实施例可包括用于处理不同方面内容的第二套系统进程(图中没有示出)。作为选择地,可利用图中所示的系统进程405与406处理所有方面的内容。
[0040]此外,将多个虚拟域的服务集中在单个的系统进程中时需要其频繁地获取虚拟域状态以及其它的配置信息。为了实现这个目的,图3与图4所示的本发明实施例的系统包括一配置管理服务器307,用于提供集中的配置信息、多个虚拟域的管理以及升级通告。配置服务器307同步管理所有虚拟域的配置,并对系统300及400中的系统进程305及306中的任何一个发出的配置信息查询提供应用程序接口(API)。
[0041]在所示的本发明的实施例中,配置管理服务器307引用一关联的配置信息数据库313,该数据库中存储有系统300中的其它模块的配置信息;系统300的全局参数,该参数在多个虚拟域中是通用的;以及每个独立虚拟域226及227的配置信息。存储在数据库313中的域配置信息包括对虚拟域采用的内容处理策略的详细内容。数据库313可实现为一本地或远程的实际数据库,或者,作为选择地,其可实现为一配置文件或一系列这样的配置文件。配置服务器307也可提供一系列API,用于管理存储在关联的配置数据库313中的配置数据。
[0042]多数情况下,上述的配置数据库313只能通过一系列的配置服务器API来修改,这些API根据用户的配置权限对用户提供限制级访问。这些配置权限可以被充分细化设置,例如,可以根据每个虚拟域进行分配。配置管理服务器307确保了一个虚拟域的管理员不能够更改影响其它不相交虚拟域的参数。在本发明的一实施例中,采用一种不单独存储每个虚拟域的数据的优化格式组织配置服务器307的内部状态。但是,配置数据仍将在API级别呈现在每个虚拟域中。
[0043]因为不同的管理员可能负责管理不同的虚拟域,所以在本发明的一个实施例中在防火墙系统中至少设定一个用户帐号拥有增加或删除虚拟域的权限。增加或删除虚拟域时,将对所有的有关的应用程序,如防火墙系统中(具有一定的权限)的系统进程305与306发出一通知信息以通知其该事件。这些应用程序可以采取任何必要的动作来响应该通知(例如,为新虚拟域添加管理员或清除旧的虚拟域的状态)。当存储在数据库313中一现有虚拟域的配置被修改时,将发送相似的通知信息告知相关的应用程序该修改。正如本领域的技术人员所知道的,由于虚拟域可单独管理,所以希望在一个虚拟域中发生的配置改变不影响导致一全局的动作,例如导致系统的重新启动。
[0044]日志服务器308可将多个虚拟域226及227服务的多个系统进程305及306的日志信息进行聚集。从应用进程305与306接收的每一日志信息310及312可以被分类为全局信息,或者在该日志信息中可包含指定该信息是关于哪个虚拟域的属性信息。在本发明的一个实施例中,日志服务器308对每条日志信息所执行的动作(例如,丢弃、本地存储或转发到外部服务器)可根据日志的类型不同而不同。在本发明的一实施例中,为了便于以后日志信息的存档与存储,将关于每一虚拟域的日志信息存储在单独的文件夹中。在另一实施例中,利用单独的文件夹存储不同类别的日志。由于激活的日志文件与套接字的数目可能超过了操作系统的限制,一实施例的日志服务器308中保留有对应每一激活的日志文件的打开文件描述符表格,并关闭非活动日志文件的文件描述符,如本领域的技术人员所熟知的最近最少使用算法(LRU,Least Recently Used algorithm)所指示的。具体地,根据上述的LRU算法,本发明系统的一实施例首先关闭最近最少使用的文件描述符。为达到这个目标,系统使用上述的文件描述符表格来跟踪确定哪个日志文件被使用以及最后是什么时间使用的。在另一实施例中使用伪LRU算法,在该算法中采用一几乎总是丢弃最近最少使用过的条目的概率方案。
[0045]在本发明的一实施例中,用于为多个虚拟域进行内容过滤和/或反恶意程序服务的系统进程305与306将与其所有虚拟域相关的内部变量汇集成一称作虚拟域状态的结构。系统进程305或306可以创建或管理多个该结构的实例,每一该实例对应一不同的虚拟域。
[0046]每个系统进程305与306的全局引用(或指针)变量是设置用来指向与当前活动的虚拟域相对应的上述虚拟域状态数据结构的实例。每一进入系统服务进程的入口点,例如从一套接字里读取数据的模块、事件通知处理器、信号处理器等,根据所接收到信息中的属性将该指针更新到当前的虚拟域。或者,当前活动的虚拟域的信息可以从如上所述的信息本身获得。举例说明,如套接字描述符,系统进程可根据与套接字相关联的socketjd变量的值来查找关联的虚拟域的身份。
[0047]对于所添加的容错,系统进程可选择性地在每个退出点重新设置所述的当前虚拟域引用变量。在系统进行模块的一实施例中,通过上述当前虚拟域引用变量的间接引用,各种函数能够访问与活动虚拟域相关的任何变量,就如同这些变量是全局变量。另外,系统进程模块可以提供一系列调用函数来处理新虚拟域状态的创建以响应增加虚拟域的消息,虚拟域状态的移除以响应一删除消息,以及虚拟域状态的改变以响应对配置的更改。
[0048]在本发明防火墙系统的一实施例中,一些系统进程可以充当服务器进程,产生子进程来处理具体的输入连接。在某些熟悉的协议中(例如PPTP、L2TP或HTTP),甚至子进程还可以产生其子进程。本发明技术的一实施例中,为了减少系统的进程开销,不仅将虚拟域的服务器程序汇集而且将子进程也汇集将更有利。这通过利用从父进程发到子进程的另外的通知消息来实现。当新会话创建时,父进程会将该会话分配给已经存在子进程而不会产生新的子进程。具体地,父进程将所有的初始状态参数
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1