3.2 运行平台及开发工具
Linux作为开放源代码的操作系统[5],性能稳定且安全性较高,有着广泛的应用。自2.4内核以来的版本不仅支持IPv6协议栈,而且所采用的Netifilter/Iptables框架引入了模块化的构建方式,可以方便地实现IPv6防火墙。并且还得利用MySql数据库来保存信息。开发工具为C语言。
3.3 基于流过滤技术的IPv6防火墙系统设计
3.3.1 防火墙设计图
图4 IPv6防火墙设计图
3.3.2 本文设计各模块实现的功能
数据包捕获模块:实现对IPv6数据包的捕获,并进行报文分类。
包过滤模块:实现对非关键报文的过滤。
流过滤模块:实现对关键报文的重组过滤。
控管规则模块:负责对过滤规则进行控制和管理。
报警信息记录模块:负责将报警信息记录进日志数据库,并将报警信息交给客户端处理。
客户端模块:查询数据库和查看报警信息。
3.4 实现过程
本文主要是利用Linux内核防火墙底层结构netfilter的高度可扩展性,对其功能进行扩展。Nefilter针对IPv6定义了若干个钩子(HOOK),每个钩子都是处理函数挂载点。当IPv6的数据包将按照一定的规则通过若干个钩子时,就会触发这些函数进行相关处理。本防火墙主要是数据经过钩子NF_IP6_FORWARD即数据包转发时,对数据进行处理和控制,所以本防火墙的程序主要挂载在这个钩子上。
4 实验及结论
经测试本文设计的防火墙系统在IPv6网路环境中能够获得严格的IPv6访问控制策略,实现对IPv6数据包的控制访问;并且在流量大于100Mbps的千兆网卡上,丢包率小于万分之(如表1所示),性能达到了防火墙行业的性能标准。
千兆网卡80%负载丢包率
5 结束语
本文在采用屏蔽子网防火墙体系结构基础上,设计并实现了基于流过滤技术的IPv6防火墙系统,经实验测试达到了防火墙行业的性能标准。但该系统却打破了IPv6的端到端模式,在IPv6网络中,端对端的通信是一种重要的通信方式也是IPv6的一个重要的优点。如何实现基于流过滤技术的IPv6端对端的防火墙系统将是本文下一步研究的重点。