论文部分内容阅读
随着互联网应用的日益普及,网络已成为主要的数据传输和信息交换平台,网络安全和信息安全是保障网上业务正常进行的关键。在构建安全网络环境的过程中,防火墙作为第一道安全防线,正受到越来越多用户的关注。目前防火墙仍然起着最基本的预防作用,仍然是保护网络安全所必须的工具。目前,传统的软件防火墙大多数是在Linux的Netfilter框架之下实现的。更准确地讲,Netfilter是Linux内核中一个包过滤框架,它实现了包过滤、状态检测、网络地址转换和包标记等多种功能。本文对Linux的Netfilter框架进行了深入的研究和探讨,利用Netfilter设计的开放性,在内核的数据链路层、网络层实现了自己的功能模块。本文在分析Netfilter框架的基础上,结合FPGA设计的灵活性,设计了一种具有可扩展性和高性能的硬件防火墙的体系结构。鉴于防火墙产品功能不断完善的发展趋势,交换功能和路由功能几乎成了防火墙产品不可或缺的组成部分。本文将在FPGA芯片内部实现交换功能和路由功能,但考虑到交换和路由功能的软件的复杂性,采取了一种折衷的处理方法:Linux内核完成路由表和交换表的创建,FPGA芯片以规则的形式把路由表和交换表存储下来。本文借鉴Linux内核提供的交换、路由以及Netfilter框架的设计及实现方法,在FPGA芯片内部实现了交换、路由以及防火墙功能。同时,利用Linux系统提供的动态模块加载机制,把对FPGA芯片的操作和驱动实现为动态模块加入Linux内核,从而成为Linux内核的一部分。通过在Linux内核适当位置挂接钩子函数,以及在动态模块中实现钩子函数的方式,使Linux内核的交换、路由及防火墙规则与FPGA硬件交换、路由及防火墙规则保持一致。最后,对该框架实现的防火墙的功能和性能进行了测试,从测试结果可以看出,该防火墙达到了千兆线速的要求。分析整个防火墙产品的框架设计和测试结果,最终得出结论:Linux内核和动态模块实现软硬件规则的一致性,FPGA芯片完成对数据包的处理,这使得该防火墙同时具有了软件的灵活性和硬件的高速性,突破了软件防火墙的性能瓶颈,从而为硬件防火墙的设计开辟了一条新的思路。