CN104270390B - 基于IPv6的IPSec嵌入式防火墙的系统及其操作方法 - Google Patents
基于IPv6的IPSec嵌入式防火墙的系统及其操作方法 Download PDFInfo
- Publication number
- CN104270390B CN104270390B CN201410571261.9A CN201410571261A CN104270390B CN 104270390 B CN104270390 B CN 104270390B CN 201410571261 A CN201410571261 A CN 201410571261A CN 104270390 B CN104270390 B CN 104270390B
- Authority
- CN
- China
- Prior art keywords
- packet
- data
- module
- modules
- address
- 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/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/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0236—Filtering by address, protocol, port number or service, e.g. IP-address or URL
-
- 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/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0485—Networking architectures for enhanced packet encryption processing, e.g. offloading of IPsec packet processing or efficient security association look-up
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明提供一种基于IPv6的IPSec嵌入式防火墙的系统,包括:以太网模块,用于接收和发送以太网上的数据包;CAM模块,用于匹配数据并判断数据是否符合要求;TCAM模块,用于快速匹配IP地址范围;CPU管理控制模块,用于初始化各个CAM模块和TCAM模块,与网络防火墙模块进行实时的交互,实现数据包过滤算法,对IP数据包采用合理高效的拆分策略,并通过控制信号协调以太网模块、CAM模块、TCAM模块、网络防火墙模块;网络防火墙模块,用于实现对时钟的控制,在每个相应的时钟下执行特定的功能,并根据以太网模块、CAM模块、TCAM模块产生的信号决定状态的跳转和输出,并根据时钟的变化依次进行各个模块的处理。本发明公开的基于IPv6的IPSec嵌入式防火墙的系统提高了匹配处理的速度和准确性。
Description
技术领域
本发明涉及嵌入式防火墙技术领域,特别涉及一种基于IPv6的IPSec嵌入式防火墙的系统及其操作方法。
背景技术
IPSec 在网络安全技术方面具有举足轻重的地位,也是安全联网的长期研究方向。IPSec 可以提供主动的保护并能防止专用网络与 Internet 的攻击。IPSec 为 IP 及上层协议提供了完整性、数据源身份认证、抗重播攻击、数据内容的机密性等安全服务。因此,针对 IPSec协议的研究与实现有助于保护人们日常生活工作中网络通信的安全,具有重要的商业价值和现实意义。伴随着网络的普及与发展,如何应对互联网容易受到各种安全威胁的特点,VPN 受到了广泛的关注。VPN 的实现主要依靠的是 IPSec,IPSec 也成为了VPN 的主要标准之一。应用 IPSec 协议使得企业之间通信安全得到有效的保证。
Internet的爆炸式增长,造成IPv4地址空间严重不足,由此引出IPv6是必然趋势。IPv6的新特性包括:1、全新的数据包头部格式;2、广大的地址空间;3、无状态和状态化的地址配置;4、对于IPSec头部的支持;5、对于按照优先级传输的支持更加完善;6、全新的邻居节点交互协议;7、扩展性更强。
传统的防火墙没有过多考虑局域网内部的不安全,将防火墙分布到局域网内的方案让防御措施更贴近终端用户,但这种方案增大了对分散的各个防火墙的管理开销,同时随着网络拓扑结构的变化,对分散防火墙的管理也明显复杂。另外,传统防火墙由于依赖于网络拓扑结构,因此其安全保护也无法扩展到移动终端。
分布式防火墙体系中防火墙被放置在网络的终端,因此不再与网络的拓扑结构相关,且策略的定义管理是针对每个网络的终端节点的,可以有效防范局域网内的攻击。但分布式防火墙是建立在“本地被保护的主机是可信任的”假设下的,然而实际情况下本地的用户并非都是可信的,且即使本地用户是可信任的,像一些蠕虫病毒如 Code Red 等都可以将可信的用户变为不可信。
因此,分布式防火墙的安全监测核心引擎要以嵌入操作系统内核的形态运行,直接接管网卡,把所有数据包进行检查后再提交主机操作系统。嵌入式防火墙即是以此为设计核心的基于硬件网卡的分布式防火墙,该解决方案将分布式防火墙的功能嵌入到网卡中。嵌入式防火墙的实施以网络的终端节点为条件,而不再与网络的拓扑结构相关,因此策略的定义与管理也是针对每个网络的终端节点,可以有效防范局域网内的攻击,对移动用户也可以提供有效的安全保护,并且可以防止被保护的终端绕过基于软件方式的分布式防火墙对网络进行攻击。
基于硬件的嵌入式分布式防火墙是在网络适配卡(NIC)上集成了处理器、内存以及其它一些功能器件,这样即使是主机用户也无法干涉安全策略的执行机制,满足了独立于主机操作系统的要求。防火墙和主机操作系统的相互独立,使得恶意的攻击即使攻破了主机操作系统,也无法取得对防火墙的控制权,避免了攻击者以被攻破的主机为跳板进一步攻击网络其它主机的可能。
有鉴于此,本领域急需一种基于IPv6的IPSec嵌入式防火墙的系统和方法,能够在不同的场合达到快速且准确的对网络数据包进行处理,从而为后面进行IPSec处理做好充足的准备。
发明内容
为了提供一种基于IPv6的IPSec嵌入式防火墙的系统和方法,该设计能够实现快速的对IP数据包进行过滤操作,而且方便配置应用在不同的场合,达到快速且准确的对网络数据包的处理,为后面进一步进行IPSec处理做好充足的准备。
本发明提供一种基于IPv6的IPSec嵌入式防火墙的系统,包括:以太网模块,用于从以太网上接收网络数据包,在没有错误产生时就发送从以太网上的接收的数据包到网络防火墙模块;CAM模块,当接收到来自CPU管理控制模块发出要匹配的信号后,该CAM模块从网络防火墙模块接收发过来的数据,部分数据是经过TCAM模块粗略匹配成功的数据包,包括:源IP地址和目的IP地址;CAM模块需要匹配的数据类型包括:源IP地址、源端口、目的IP地址、目的端口以及源MAC地址;TCAM模块,当接收到CPU管理控制模块发出粗略匹配的信号后,即发出调用TCAM模块的信号后,TCAM模块从网络防火墙模块接收IP地址数据,包括:源IP地址和目的IP地址,若匹配结束,将结果是粗略匹配成功就将发出成功的信号给网络防火墙模块,若匹配失败,发出失败信号给网络防火墙模块,并清空数据。用于快速匹配IP地址范围,包括:源IP地址范围和目的IP范围;CPU管理控制模块,用于初始化各个CAM模块和TCAM模块,与网络防火墙模块进行实时的交互,实现数据包过滤算法,对IP数据包采用合理高效的拆分策略,并通过控制信号协调以太网模块、CAM模块、TCAM模块、网络防火墙模块;网络防火墙模块,是一个用硬件描述语言Verilog编写的一个有限状态机,用于实现对时钟的控制,在每个相应的时钟下执行特定的功能,并根据以太网模块、CAM模块、TCAM模块产生的信号决定状态的跳转和输出,并根据时钟的变化依次进行各个模块的处理。
所述的以太网模块进一步包括:数据包的接收子模块,用于将首先请求缓冲区内存的一部分来保存传入的数据包,当一个数据包到达接口时,将数据包保存在内存中,若发生内存溢出,就将数据包丢弃并且分配的内存也将被释放掉,当接收完成,在分配缓冲区内存中的第一个字段中可以查看可能发生的任何错误信息,若接收的数据包比标准的以太网帧更长或更短将被丢弃,在进行循环冗余校验接收到的数据包时,若没有错误出现,那么就将数据包写入接收队列,并产生一个中断信号,如果CRC校验有错误发生,就将数据包丢弃,内存被释放,没有中断信号发生;数据包的发送子模块,若数据包发送队列中的数据排满,数据包就被送到发送媒介,当发送完成,第一个在缓冲区内存中的字被写成一个状态字,这种状态字包含重要的信息,若发送失败,则数据包可以再一次放入队列,并进行下一次的发送。
所述的CAM模块进一步包括:18个CAM,每个CAM的宽度为2字节,深度为8,其中目的端口需要2个这种规格的CAM,源端口需要2个这种规格的CAM,目的IP地址需要4个这种规格的CAM,源IP地址需要4个这种规格的CAM,源MAC地址需要6个这种规格的CAM。
所述的TCAM模块进一步包括:2个TCAM,每个TCAM的宽度为4字节,深度为16,其中目的IP地址范围需要1个TCAM,源IP地址范围需要1个TCAM。
所述的网络防火墙模块进一步包括:该模块是一个用硬件描述语言Verilog编写的一个有限状态机,该状态机的状态包括:等待中断状态、读中断类型状态、接收中断状态、发送中断状态、存储芯片状态、释放数据包状态、数据预取状态、读以太网类型状态。
本发明还提供一种基于IPv6的IPSec嵌入式防火墙的操作方法,所述方法包括:以太网模块对以太网上的数据进行接收和发送处理;CPU管理控制模块,初始化各个CAM模块和TCAM模块,与网络防火墙模块进行实时的交互,实现数据包过滤算法,对IP数据包采用合理高效的拆分策略,并通过控制信号协调以太网模块、CAM模块、TCAM模块、网络防火墙模块;CAM模块对数据进行快速的匹配和查找,输出更加精确的匹配结果;TCAM模块对数据进行模糊查找,对数据范围的查找更加快速和高效;网络防火墙模块是一个用硬件描述语言Verilog编写的一个有限状态机,用于实现对时钟的控制,在每个相应的时钟下执行特定的功能,并根据以太网模块、CAM模块、TCAM模块产生的信号决定状态的跳转和输出。并根据时钟的变化依次进行各个模块的处理。
所述的接收和传送以太网上的数据进一步包括:数据包的接收,系统开始启动时,CPU会将接收内存中的数据全部清除,准备接收数据;先请求缓冲区内存的一部分来保存传入的数据包,当一个数据包到达接口时,将数据包保存在内存中,若发生内存溢出,就将数据包丢弃并且分配的内存也将被释放掉,当接收完成,在分配缓冲区内存中的第一个字段中可以查看可能发生的任何错误信息,若接收的数据包比标准的以太网帧更长或更短将被丢弃,在进行循环冗余校验接收到的数据包时,若没有错误出现,那么就将数据包写入接收队列,并产生一个中断信号给CPU,通知CPU数据接收完成,如果CRC校验有错误发生,就将数据包丢弃,内存被释放,没有中断信号发生;数据包的发送子模块,系统启动时,也将数据包发送内存中的数据清除,准备随时发送数据,若数据包发送队列中的数据排满,数据包就被送到发送媒介,当发送完成,第一个在缓冲区内存中的字被写成一个状态字,这种状态字包含重要的信息,若发送失败,则数据包可以再一次放入队列,并进行下一次的发送。
所述的数据匹配CAM进一步包括:用于匹配源IP地址CAM;用于匹配目的IP地址CAM;用于匹配源端口的CAM;用于匹配目的端口的CAM;用于匹配源MAC地址的CAM。
所述的数据粗略匹配TCAM进一步包括:用于匹配源IP地址范围的TCAM;用于匹配目的IP地址范围的TCAM。
所述的CPU管理方法进一步包括:利用CPU管理控制平台初始化CAM模块和TCAM模块,协调各个模块之间的数据传输并实时的更新策略以使得该防火墙应用于不同的场合。
本发明公开的本发明提供了一种基于IPv6的IPSec嵌入式防火墙的系统和方法的实现,可以快速和高效的对网络数据包进行过滤,查询的操作。由于在本发明中嵌入了一个开源的CPU(OpenRisk),使数据的初始化和数据的配置能够快速、高效、精确的进行实时的配置,对CAM模块,TCAM模块,进行参数的配置时能够根据不同的应用场合进行自动的配置,使得本发明能够应用于不同的场合,增加多用性。实现数据包过滤算法并实时更新匹配策略,使其可以应用在不同场合,增强多用性。另外,本发明中提出了CAM模块,能够实现快速的数据匹配与查找,节省时间,实现速度的提升。本发明提出的TCAM模块,可以实现IP地址范围的查找及匹配,这样使得本发明提出的方案不仅可以实现判断单个IP地址是否可以通过防火墙,还能实现粗略的判断某个IP地址范围的网络数据包能否通过网络防火墙,这样就可以实现快读的过滤掉大量不相关的网络数据包。从而大大提升该防火墙的工作速度并减少了不必要的处理过程从而降低功耗。由于本发明是应用于IPSec处理的,因此在对网络数据包进行过滤处理后所得到的数据包都是满足要求的网络数据包,这样IPSec模块就可以更专注于对网络数据包进行IPSec处理,而不需关注是否对该网络数据包进行IPSec处理,从而使IPSec处理部分的功能更加统一单纯化,从而提高IPSec对网络数据包处理的速度和效率。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
图1示出本发明实施例提供的基于IPv6的IPSec嵌入式防火墙的系统的结构示意图;
图2示出本发明提供的基于IPv6的IPSec嵌入式防火墙的系统的另一具体实施方式的结构示意图;
图3示出本发明实施例提供的基于IPv6的IPSec嵌入式防火墙的方法的流程图;
图4示出本发明实施例提供的种基于IPv6的IPSec嵌入式防火墙中网络防火墙模块的状态转换图;
图5示出本发明实施例提供的基于IPv6的IPSec嵌入式防火墙中网络防火墙模块的状态转换图的另一具体实施方式的结构示意图。
具体实施方式
下面详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。
图1示出本发明实施例提供的一种基于IPv6的IPSec嵌入式防火墙的系统和方法的结构示意图。如图1所示,一种基于IPv6的IPSec嵌入式防火墙的系统和方法的结构包括:以太网模块102、CAM模块104、网络防火墙模块106、TCAM模块108、CPU管理控制模块110。其中,以太网模块102用于接收和发送从以太网来的数据,在接收数据时若发生接收错误或进行CRC校验时有错误就丢弃该数据包,接收正确则给CPU发出信号,然后将数据存储起来,发送子模块接到CPU要发送数据的指令,则开始将数据发送给网络防火墙模块106。例如,当以太网模块102接收数据成功后,发出一个接收成功的信号给CPU管理控制模块110,CPU管理控制模块110随即发出可以发送数据的信号给以太网模块102,当以太网模块102接收到准许发送的信号时,将数据发送给网络防火墙模块106,随后进行数据的进一步处理。CAM模块104用于对数据进行匹配并输出结果。匹配的数据类型包括:1、源IP地址,2、源端口,3、目的IP地址,4、目的端口,5、源MAC地址;当CPU管理控制模块110接收到数据后,就对数据进行拆分处理,首先查看IP数据包的类型,若为IPv6数据包则接收,若不是则丢弃该IP数据包。然后等在TCAM模块108输出数据后,代表初略匹配完成,随后进行更加细致的匹配。例如,在TCAM模块108发送来数据后,CPU管理控制模块110将对接收到的以太网数据进一步拆分,将依次去匹配IP数据包的1、源IP地址,2、源端口,3、目的IP地址,4、目的端口,5、源MAC地址;只有当以上5中数据类型都匹配成功了,才代表数据匹配成功,该IP数据包就是符合要求的数据包。网络防火墙模块106, 是一个用硬件描述语言Verilog编写的一个有限状态机,用于控制各个时钟周期要完成哪些任务,以及每个状态执行什么功能。根据各个模块发出的信号,协调好各个信号之间的关系,然后在相应的时钟周期内通知CPU管理控制模块110,以便CPU管理控制模块110能够及时地做出相应的应答和做出相应的判断,然后发信号给网络防火墙模块106,然后该模块继续做下一步处理。例如,以太网模块102当信息接收完成,并且接收正确时,发出接收正确的信号给CPU管理控制模块110,该模块发出数据发送指令给以太网模块102,然后以太网模块102将数据传输到存储器中,给出发送成功的信号通知网络防火墙模块106,进入定制的状态机,开始一个完整的循环过程。最后根据判断决定接收还是丢弃该数据包。TCAM模块108,是用于存储IP地址范围并对输入的数据包的IP地址做粗略的匹配,将匹配的结果告知网络防火墙模块106和CPU管理控制模块110,然后CPU管理控制模块110对数据进行进一步的处理。例如,网络防火墙模块106将IP数据包的源IP地址和目的IP地址发给了TCAM模块108,若IP数据包的源IP地址和目的IP地址都在相应TCAM模块108存储的IP地址范围内,那么就输出匹配成功的信号给CPU管理控制模块110,并进行下一步的处理。CPU管理控制模块110,该模块用于初始化CAM模块104,TCAM模块108,并在其中写入相应的数据,并实时的更新数据以用于不同的场合,对网络防火墙模块106发来的数据包进行相应的数据包过滤操作,并将数据包拆分的结果与相应CAM模块104和相应的TCAM模块108进行相应的匹配,将匹配的结果作为信号发送给网络防火墙模块106,进入网络防火墙模块106的状态机,随后就是相互通信和协调的工作。例如,以太网模块102接收数据成功后,网络防火墙模块106接到成功的信号,通知CPU管理控制模块110根据数据包拆分算法将数据包拆分出来,然后数据包进入TCAM模块108,进行IP地址的粗略匹配,匹配成功后通知给网络防火墙模块106,进入网络防火墙模块106的状态机,通知CPU管理控制模块110调用CAM模块104进行更加细致的匹配工作,最后将结果发给网络防火墙模块106,最终输出结果。
图2示出本发明提供的一种基于IPv6的IPSec嵌入式防火墙的系统的另一具体实施方式的结构示意图。如图2所示,以太网模块202进一步包括接收子模块2020、发送子模块2022。其中,接收子模块2020,设备将首先请求缓冲区内存的一部分来保存传入的数据包,当一个数据包到达接口时,将数据包保存在内存中,若发生内存溢出,就将数据包丢弃并且分配的内存也将被释放掉。当接收完成,在分配缓冲区内存中的第一个字段中可以查看可能发生的任何错误信息,若接收的数据包比标准的以太网帧更长或更短将被丢弃,在进行CRC校验(循环冗余校验)接收到的数据包时,若没有错误出现,那么就将数据包写入接收队列,并产生一个中断信号,如果CRC校验有错误发生,就将数据包丢弃,内存被释放,没有中断信号发生。例如,接收子模块2020接收到一个1500字节的数据包,并且没有发现错误,就将这1500字节的数据包存到内存中,并发送接收成功的信号给CPU管理控制模块110。发送子模块2022,数据包的发送子模块,若数据包发送队列中的数据排满,数据包就被送到发送媒介,当发送完成,第一个在缓冲区内存中的字被写成一个状态字,这种状态字包含重要的信息,若发送失败,则数据包可以再一次放入队列,并进行下一次的发送。例如,当接收子模块2020接收数据成功,CPU管理控制模块110发出要发送数据的指令,发送子模块2022将数据发到网络防火墙模块106。CAM模块204进一步包括目的端口CAM模块2040、源端口CAM模块2042、源IP地址CAM模块2044、目的IP地址CAM模块2046、源MAC地址CAM模块2048。其中,目的端口CAM 2040模块用于存放目的端口号的信息,如TCP、UDP目的端口号。例如,CAM 2040模块中存放16位的TCP目的端口号。源端口CAM 2042模块用于存放目的端口号的信息,例如TCP、UDP源端口号。例如,CAM 2042模块中存放16位的TCP源端口号。源IP地址CAM 2044模块用于存放源IP地址的信息。例如,CAM 2044模块中存放128位的源IP地址。目的IP地址CAM2046模块用于存放目的IP地址的信息。例如,CAM 2046模块中存放128位的目的IP地址。源MAC地址CAM 2048模块用于存放源MAC地址的信息。例如,CAM 2048模块中存放48位的源MAC地址。TCAM模块208进一步包括源IP地址范围TCAM模块2080、目的IP地址范围TCAM模块2082。其中,源IP地址范围TCAM模块2080用于存放源IP地址范围的信息。例如,源IP地址范围TCAM模块2080分为4组来存放128位的源IP地址范围。目的IP地址范围TCAM模块2082用于存放目的IP地址范围的信息。例如,目的IP地址范围TCAM模块2082分为4组来存放128位的目的IP地址范围。
图3示出本发明实施例提供的一种基于IPv6的IPSec嵌入式防火墙的方法的流程图。如图3所示,一种基于IPv6的IPSec嵌入式防火墙的实现方法的流程300包括:步骤302,以太网模块接收和发送,负责接收以太网上的数据,并将接收正确的数据包发送到CPU管理控制模块做下一步的处理。步骤304,以太网模块在接收和发送数据时都没有发生错误,则数据包可以发到CPU管理控制模块做接下来的处理。若接收和发生过程中出现错误信息,则丢弃数据包。步骤306,CPU管理控制模块首先提取IP首部中IP类型的字段进行判断,判断是否是IPv6数据包。步骤308,判断是否是IPv6数据包,若是IPv6数据包则接着进行下一步的操作,若不是IPv6数据包则丢弃数据包。步骤310,CPU管理控制模块根据数据包过滤算法,并根据IPv6数据包的格式将IPv6数据包拆分成各个字段,提取出源IP地址目的IP地址,发送给TCAM模块进行粗略的范围的匹配,查看这个IP源地址和目的地址是否在符合要求的范围之内。步骤312,判断提取的IP源地址和目的地址是否在符合要求的范围内,若在就进行下一步处理,若不在则直接丢弃该数据包。步骤314,CPU管理控制模块对IP数据包进行拆分处理,拆分的数据字段分别为源IP地址,目的IP地址,源端口号,目的端口号,源MAC地址。分别与相应的CAM模块进行匹配操作,将匹配的结果输出来。步骤316,各个CAM模块的输出结果都正确代表该IP数据包是符合规则的,因此可以通过防火墙,将信号发给网络防火墙模块,只要有一个CAM或多个CAM输出匹配不成功的信号,就丢弃该数据包。步骤318,当CAM中输出匹配成功的信号后,网络防火墙模块接到匹配成功的信号,代表该数据包是符合规定的数据包,所以将数据包完整的输出。
图4示出本发明实施例提供的一种基于IPv6的IPSec嵌入式防火墙中网络防火墙模块的状态机的状态转换图。如图4所示,一种基于IPv6的IPSec嵌入式防火墙的简单工作过程包括:对以太网数据包进行过滤操作的系统组件,是一个有限状态机设计的模块。这种有限状态机的一个状态图如图所示。从这个图中,可以看出总共有八个状态,带有一些转换标志。这个图中包括一些状态信息,以及在每个状态执行什么功能。有限状态机是使用嵌套的case语句实现的。在外case语句,每个case代表一个有限的状态,而内部case语句有一个case选择参数,这个参数在每个系统时钟命令执行周期增加1,并确定下一个状态。这满足任何以太网芯片指令要满足的时间要求,自系统时钟速度永远是已知的和任何内部的正在执行的指令,case语句可以在任何多个时钟周期执行命令,使以太网模块的时序要求得到满足。
图5示出本发明实施例提供的一种基于IPv6的IPSec嵌入式防火墙中网络防火墙模块的状态转换图的另一具体实施方式的结构示意图。如图5所示,状态502实现的功能和处理的步骤进一步包括:1、等待中断或存储芯片状态;2、检查中断是否发生;3、读中断类型或等待中断。状态504实现的功能和处理的步骤进一步包括:1、等待中断;2、存储芯片状态并决定中断类型;3、下一个中断;4、发送中断或存储芯片状态。状态506实现的功能和处理的步骤进一步包括:1、读中断类型,数据预取或读以太网类型;2、过滤输入的数据包;3、数据预取、释放数据包、读以太网类型或存储芯片状态。状态508实现的功能和处理的步骤进一步包括:1、读中断类型,数据预取或读以太网类型;2、存储目的IP地址;3、数据预取、读以太网类型或存储芯片状态。状态510实现的功能和处理的步骤进一步包括:1、读中断类型、接收中断、发送中断或释放包;2、储存之前保存的芯片数据;3、等待中断。状态512实现的功能和处理的步骤进一步包括:1、接收中断;2、从队列中移除数据包并释放已分配的内存;3、存储芯片状态。状态514实现的功能和处理的步骤进一步包括:1、接收中断或发送中断;2、至少等待370ns;3、接收中断发送中断。状态516实现的功能和处理的步骤进一步包括:1、接收中断或发送中断;2、读以太网类型并决定IP位置;3、接收中断或发送中断。
参考前述本发明示例性的描述,本领域技术人员可以知晓本发明具有以下优点:本发明提供了一种基于IPv6的IPSec嵌入式防火墙的系统和方法,该系统和方法可应用于IPv6下IPSec协议处理模型,该系统能够对来自以太网上的数据进行过滤处理,对我们所需要的数据选择出来,对不需要的数据进行丢弃处理,该系统具有数据匹配快速高效的特点,另外采用一个开源的CPU来处理数据包过滤算法,这样能够实时的更新数据包的匹配规则,使该系统的可扩展性增加,便于应用于不同场合,从而提高系统的可扩展性和多应用性。本发明提供了一种快速的匹配方法,采用TCAM进行模糊匹配,将IP地址限定在一定范围内的IP数据包可以匹配成功,这样就可以过滤掉大量不相关的数据包,从而很大的提高了数据的处理速度,节省了系统资源并降低了功耗。另外对通过TCAM模块的数据包还要进行更加精确的数据包过滤机制,采用CAM模块进行精确的匹配,很大的提高了速度和准确性。采用更加严格的数据过滤规则,提高了对IP数据的处理正确率,进一步加强了用户对网络安全性的要求。
本发明提供了一种快速的数据匹配规则,同时也提供了一种精确的数据匹配规则,利用TCAM和CAM存储要匹配的数据,提高了匹配处理的速度和准确性,该数据匹配规则可适当的优化,也可用于其他需要进行数据筛选的应用中。
本技术领域技术人员可以理解,本发明中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本发明中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本发明中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (4)
1.一种基于IPv6的IPSec嵌入式防火墙的系统,其特征在于,包括:
以太网模块,用于从以太网上接收网络数据包,在没有错误产生时就发送从以太网上的接收的数据包到网络防火墙模块;
CAM模块,当接收到来自CPU管理控制模块发出要匹配的信号后,该CAM模块从网络防火墙模块接收发过来的数据,部分数据是经过TCAM模块粗略匹配成功的数据包,包括:源IP地址和目的IP地址;CAM模块需要匹配的数据类型包括:源IP地址、源端口、目的IP地址、目的端口以及源MAC地址;
TCAM模块,当接收到CPU管理控制模块发出粗略匹配的信号后,即发出调用TCAM模块的信号后,TCAM模块从网络防火墙模块接收IP地址数据,包括:源IP地址和目的IP地址,若匹配结束,将结果是粗略匹配成功就将发出成功的信号给网络防火墙模块,若匹配失败,发出失败信号给网络防火墙模块,并清空数据,用于快速匹配IP地址范围,包括:源IP地址范围和目的IP范围;
CPU管理控制模块,用于初始化各个CAM模块和TCAM模块,与网络防火墙模块进行实时的交互,实现数据包过滤算法,对IP数据包采用合理高效的拆分策略,并通过控制信号协调以太网模块、CAM模块、TCAM模块、网络防火墙模块;其中:在TCAM模块108发送来数据后,CPU管理控制模块110将对接收到的以太网数据进一步拆分,将依次去匹配IP数据包的1、源IP地址,2、源端口,3、目的IP地址,4、目的端口,5、源MAC地址;只有当以上5种数据类型都匹配成功了,才代表数据匹配成功,该IP数据包就是符合要求的数据包;
网络防火墙模块,是一个用硬件描述语言Verilog编写的一个有限状态机,用于实现对时钟的控制,在每个相应的时钟下执行特定的功能,并根据以太网模块、CAM模块、TCAM模块产生的信号决定状态的跳转和输出,并根据时钟的变化依次进行各个模块的处理;
所述的以太网模块进一步包括:
数据包的接收子模块,用于将首先请求缓冲区内存的一部分来保存传入的数据包,当一个数据包到达接口时,将数据包保存在内存中,若发生内存溢出,就将数据包丢弃并且分配的内存也将被释放掉,当接收完成,在分配缓冲区内存中的第一个字段中可以查看可能发生的任何错误信息,若接收的数据包比标准的以太网帧更长或更短将被丢弃,在进行循环冗余校验接收到的数据包时,若没有错误出现,那么就将数据包写入接收队列,并产生一个中断信号,如果CRC校验有错误发生,就将数据包丢弃,内存被释放,没有中断信号发生;
数据包的发送子模块,若数据包发送队列中的数据排满,数据包就被送到发送媒介,当发送完成,第一个在缓冲区内存中的字被写成一个状态字,这种状态字包含重要的信息,若发送失败,则数据包可以再一次放入队列,并进行下一次的发送;
以太网模块接收数据成功后,网络防火墙模块接到成功的信号,通知CPU管理控制模块根据数据包拆分算法将数据包拆分出来,然后数据包进入TCAM模块,进行IP地址的粗略匹配,匹配成功后通知给网络防火墙模块,进入网络防火墙模块的状态机,通知CPU管理控制模块调用CAM模块进行更加细致的匹配工作,最后将结果发给网络防火墙模块,最终输出结果。
2.根据权利要求1所述的系统,其特征在于,所述的CAM模块进一步包括:
18个CAM,每个CAM的宽度为2字节,深度为8,其中目的端口需要2个这种规格的CAM,源端口需要2个这种规格的CAM,目的IP地址需要4个这种规格的CAM,源IP地址需要4个这种规格的CAM,源MAC地址需要6个这种规格的CAM。
3.根据权利要求1所述的系统,其特征在于,所述的TCAM模块进一步包括:
2个TCAM,每个TCAM的宽度为4字节,深度为16,其中目的IP地址范围需要1个TCAM,源IP地址范围需要1个TCAM。
4.根据权利要求1所述的系统,其特征在于,所述的网络防火墙模块进一步包括:
该模块是一个用硬件描述语言Verilog编写的一个有限状态机,该状态机的状态包括:等待中断状态、读中断类型状态、接收中断状态、发送中断状态、存储芯片状态、释放数据包状态、数据预取状态、读以太网类型状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410571261.9A CN104270390B (zh) | 2014-10-23 | 2014-10-23 | 基于IPv6的IPSec嵌入式防火墙的系统及其操作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410571261.9A CN104270390B (zh) | 2014-10-23 | 2014-10-23 | 基于IPv6的IPSec嵌入式防火墙的系统及其操作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104270390A CN104270390A (zh) | 2015-01-07 |
CN104270390B true CN104270390B (zh) | 2017-10-10 |
Family
ID=52161880
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410571261.9A Active CN104270390B (zh) | 2014-10-23 | 2014-10-23 | 基于IPv6的IPSec嵌入式防火墙的系统及其操作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104270390B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10397263B2 (en) * | 2017-04-25 | 2019-08-27 | Futurewei Technologies, Inc. | Hierarchical pattern matching for deep packet analysis |
CN110209431B (zh) * | 2018-02-28 | 2021-04-27 | 杭州海康威视数字技术股份有限公司 | 数据分区拆分方法及装置 |
CN111147382B (zh) * | 2019-12-31 | 2021-09-21 | 杭州迪普科技股份有限公司 | 报文转发方法和装置 |
CN112511548B (zh) * | 2020-12-02 | 2022-09-16 | 中电科鹏跃电子科技有限公司 | 一种防止重放攻击的方法及装置 |
CN117278660B (zh) * | 2023-11-21 | 2024-03-29 | 华信咨询设计研究院有限公司 | 一种基于dpdk技术的流量过滤的协议解析方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101035060A (zh) * | 2006-03-08 | 2007-09-12 | 中兴通讯股份有限公司 | 一种三重内容可寻址存储器报文分类的统一处理方法 |
CN101399754A (zh) * | 2007-09-28 | 2009-04-01 | 华为技术有限公司 | 一种移动ip穿越防火墙的方法及设备 |
-
2014
- 2014-10-23 CN CN201410571261.9A patent/CN104270390B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101035060A (zh) * | 2006-03-08 | 2007-09-12 | 中兴通讯股份有限公司 | 一种三重内容可寻址存储器报文分类的统一处理方法 |
CN101399754A (zh) * | 2007-09-28 | 2009-04-01 | 华为技术有限公司 | 一种移动ip穿越防火墙的方法及设备 |
Non-Patent Citations (2)
Title |
---|
一体化安全网关防火墙报文过滤技术研究与实现;杨赞;《中国优秀硕士学位论文全文数据库信息科技辑》;20120212(第2期);第3.3、3.5、3.7、3.8、5.1、5.4节、图13、图15 * |
基于IPv6的硬件防火墙的设计与研究;何可;《中国优秀硕士学位论文全文数据库信息科技辑》;20061215;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN104270390A (zh) | 2015-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104270390B (zh) | 基于IPv6的IPSec嵌入式防火墙的系统及其操作方法 | |
US11824796B2 (en) | Protocol independent programmable switch (PIPS) for software defined data center networks | |
US9866540B2 (en) | System and method for rule matching in a processor | |
US9652505B2 (en) | Content search pattern matching using deterministic finite automata (DFA) graphs | |
CN104426909B (zh) | 用于将图样编译成非确定有限自动机(nfa)图形的方法和计算机系统 | |
US8176300B2 (en) | Method and apparatus for content based searching | |
EP3952215B1 (en) | Methods and systems for removing expired flow table entries using an extended packet processing pipeline | |
EP3952252A1 (en) | Flow table programming using flow miss metadata and burst action assist via cpu offload | |
JP2002524891A (ja) | フィルタコードを使用するipsecポリシー管理を実行するための方法および装置 | |
WO2015018188A1 (zh) | 一种深度报文检测方法、设备及协处理器 | |
TWI360978B (en) | Network message processing using inverse pattern m | |
CN102123082A (zh) | 数据包转发方法和设备 | |
CN108833299A (zh) | 一种基于可重构交换芯片架构的大规模网络数据处理方法 | |
CN107465567B (zh) | 一种数据库防火墙的数据转发方法 | |
CN107070674A (zh) | 第三方控制的数据包转发路径的网络装置数据平面沙盒 | |
CN101242409B (zh) | 一种多语言的网络数据包高效过滤的方法 | |
CN107800626A (zh) | 数据报文的处理方法、装置及设备 | |
CN103179109B (zh) | 基于二级会话查询功能的过滤分流装置及其方法 | |
CN107534601B (zh) | 分组过滤装置 | |
CN103795705B (zh) | 用于交换安全的数据包的时间锁定的网络和节点 | |
CN103281335A (zh) | 一种基于WinPcap的嵌入式网络协议栈开发方法 | |
Kiraly et al. | Traffic flow confidentiality in IPsec: Protocol and implementation | |
WO2016149121A1 (en) | Protocol independent programmable switch (pips) for software defined data center networks | |
CN115412512B (zh) | 一种基于IPv6的多云跨网互通方法及装置 | |
CN107528794A (zh) | 一种数据处理方法和装置 |
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 |