千兆防火墙的两种方案选择

近年来随着千兆网络开始在国内大规模推广应用,用户对千兆防火墙的需求已逐渐升温。在很多网络环境下,传统的基于X86体系结构的防火墙已不能满足千兆防火墙高吞吐量、低时延的要求,因此,两种新的技术,即网络处理器(Network Processor)和专用集成电路(ASIC)技术成为众多国内厂家实现千兆防火墙的主要选择。可以说,防火墙的硬件体系结构正面临着一次变革。

  百兆防火墙的不足

  在百兆防火墙时代,国内防火墙厂商普遍采用的是通用CPU配合软件的技术方案。虽然很多厂家也把它称之为硬件防火墙,但实际上都是基于X86架构的服务器或工控机。这类防火墙一般运行在经过裁减的操作系统上(通常是Linux或BSD),所有的数据包解析和审查工作都由软件来完成。虽然这种技术方案在百兆防火墙市场取得了很大的成功,但由于CPU处理能力和PCI总线速度的制约,在实际应用中,尤其在小包情况下,这种结构的千兆防火墙远远达不到千兆的转发速度(64字节包长时,双向转发速率一般为百分之二十以下),难以满足千兆骨干网络的应用要求。

  千兆防火墙的两种技术实现

  要实现真正的千兆防火墙,目前的技术途径基本上有两条:一种是采用网络处理器,另一种是采用ASIC。下面我们来分析一下这两种技术架构各自的特点。

  网络处理器是专门为处理数据包而设计的可编程处理器,它的特点是内含了多个数据处理引擎,这些引擎可以并发进行数据处理工作,在处理2到4层的分组数据上比通用处理器具有明显的优势。网络处理器对数据包处理的一般性任务进行了优化,如TCP/IP数据的校验和计算、包分类、路由查找等。同时硬件体系结构的设计也大多采用高速的接口技术和总线规范,具有较高的I/O能力。这样基于网络处理器的网络设备的包处理能力得到了很大的提升。它具有以下几个方面的特性:完全的可编程性、简单的编程模式、最大化系统灵活性、高处理能力、高度功能集成、开放的编程接口、第三方支持能力。基于网络处理器架构的防火墙与基于通用CPU架构的防火墙相比,在性能上可以得到很大的提高。网络处理器能弥补通用CPU架构性能的不足,同时又不需要具备开发基于ASIC技术的防火墙所需要的大量资金和技术积累,最近在国内信息安全厂商中备受关注,成为国内厂商实现高端千兆防火墙的热门选择。

  第二种方案是采用基于ASIC技术的架构。Netscreen是采用该技术的代表厂家。采用ASIC技术可以为防火墙应用设计专门的数据包处理流水线,优化存储器等资源的利用,是公认的使防火墙达到线速千兆,满足千兆环境骨干级应用的技术方案。Netscreen公司也因此取得了令人瞩目的成功。但ASIC技术开发成本高、开发周期长且难度大,一般的防火墙厂商难以具备相应的技术和资金实力。

  哪种方案更适合用户应用

  网络处理器与ASIC方案哪种更适合千兆防火墙的应用是目前争论的一个热点。用户可以从性能、灵活性、功能完备性、成本、开发难度、技术成熟性等方面来进行比较。从性能上说,由于基于网络处理器的防火墙本质是基于软件的解决方案,它在很大的程度上依赖于软件设计的性能,而ASIC由于是将算法固化在硬件中,因而在性能上有比较明显的优势。

  目前国内基于ASIC技术的首信防火墙已可达到4个千兆网口的全线速包转发速率,而一般基于网络处理器的防火墙在小包情况下还不能完全作到2网口的千兆线速转发。反过来说,网络处理器的软件色彩使它具有更好的灵活性,在升级维护方面有较大的优势。纯硬件的ASIC防火墙缺乏可编程性,这使得它缺乏灵活性从而跟不上防火墙功能的快速发展。

  现代的ASIC技术通过增加ASIC芯片的可编程性,使其与软件更好地配合,从而同时满足来自灵活性和运行性能的要求。从实现功能方面看,ASIC技术可以比较容易地集成IDS、VPN等功能,也有产品已经实现了内容过滤和防病毒功能,而网络处理器受限于它的计算能力,这些功能一般只能靠协处理器来实现。从今后产品的成本上看,一片网络处理器的价格在三、四百美金左右,如果需要协处理器,还要加上协处理器的成本。ASIC技术前期如果使用FPGA(Field Programmable Gate Arrays,现场可编程门阵列)来实现,两者价格大致相当。不过如果量产投片以后,ASIC的价格可以降低一个量级,因而长远来看ASIC技术更有潜力。

  在开发难度、开发成本和开发周期方面,网络处理器技术有比较明显的优势,毕竟网络处理器产生的一大原因就是降低这方面的门槛,这也是国内很多防火墙企业选中网络处理器的原因。不过从技术成熟度方面来看,相比ASIC这样已经为实践证明了的成熟技术,网络处理器用于防火墙其实是近一年多才出现的。在此之前网络处理器在市场上的表现并不理想,一般只被用于低端路由器、交换机等数据通信产品。究其原因,主要是网络处理器开发需要的编程技术比预期的复杂困难,而且在实际应用中的性能往往并不理想,远低于其厂家的标称性能。这种技术应用在防火墙这样的复杂网络设备上究竟能否在不影响功能的前提下达到预期的性能还有待检验。

  目前防火墙的体系结构已经处于一个更新换代的门槛上,未来的发展趋势基本上是网络处理器与ASIC两条道路。从性能、功能、技术成熟度方面考虑,ASIC方案较好,从进入门槛、研发成本和灵活性考虑则网络处理器占优。

  从目前的情况来看,国外的高端防火墙大部分采用的是ASIC技术,国内厂商则选用网路处理器的居多。今后高端防火墙的技术将是ASIC和网络处理器这两种主流技术并存,它们各自都会继续向前发展,在速度、功能方面都还有很大的发展空间。究竟谁将成为最后的赢家,只能有待时间的检验了。而用户在选择千兆防火墙产品时也要综合考虑厂商实力、实际应用需求、采购成本、防火墙技术与产品的成熟度等多种因素全盘考虑为宜。

  相关资料:防火墙的三大发展趋势

  未来防火墙的发展趋势是朝高速、多功能化、更安全的方向发展。

  1、高速。目前防火墙一个很大的局限性是速度不够,真正达到线速的防火墙少之又少。防范DoS (拒绝服务)是防火墙一个很重要的任务,防火墙往往用在网络出口,如造成网络堵塞,再安全的防火墙也无法应用。应用ASIC、FPGA和网络处理器是实现高速防火墙的主要方法,但尤以采用网络处理器最优,因为网络处理器采用微码编程,可以根据需要随时升级,甚至可以支持IPv6,而采用其他方法就不那么灵活。实现高速防火墙,算法也是一个关键,因为网络处理器中集成了很多硬件协处理单元,因此比较容易实现高速。对于采用纯CPU的防火墙,就必须有算法支撑,例如ACL算法。

  2、多功能化。多功能也是防火墙的发展方向之一,鉴于目前路由器和防火墙价格都比较高,组网环境也越来越复杂,一般用户总希望防火墙可以支持更多的功能,满足组网和节省投资的需要。例如,防火墙支持广域网口,并不影响安全性,但在某些情况下却可以为用户节省一台路由器,支持部分路由器协议,如路由、拨号等,可以更好地满足组网需要;支持IPSec VPN,可以利用因特网组建安全的专用通道,既安全又节省了专线投资。据IDC统计,国外90%的加密VPN都是通过防火墙实现的。

  3、安全。未来防火墙的操作系统会更安全。随着算法和芯片技术的发展,防火墙会更多地参与应用层分析,为应用提供更安全的保障。在信息安全的发展与对抗过程中,防火墙的技术一定会不断更新、日新月异,在信息安全的防御体系中,起到堡垒的作用。

(0)

相关推荐

  • 千兆防火墙的两种方案选择

    近年来随着千兆网络开始在国内大规模推广应用,用户对千兆防火墙的需求已逐渐升温.在很多网络环境下,传统的基于X86体系结构的防火墙已不能满足千兆防火墙高吞吐量.低时延的要求,因此,两种新的技术,即网络处理器(Network Processor)和专用集成电路(ASIC)技术成为众多国内厂家实现千兆防火墙的主要选择.可以说,防火墙的硬件体系结构正面临着一次变革. 百兆防火墙的不足 在百兆防火墙时代,国内防火墙厂商普遍采用的是通用CPU配合软件的技术方案.虽然很多厂家也把它称之为硬件防火墙,但实际上都

  • 一个非常好用的文字滚动的案例,鼠标悬浮可暂停[两种方案任选]

    网上找了很多,万变不离其宗,写法核心都是一样的,在这里我给大家总结一下,可收藏备用. html: <div class="scroll"> <ul class="list"> <li><a href="#" target="_blank">公告一 或 中奖者 甲</a></li> <li><a href="#" tar

  • 详解Grunt插件之LiveReload实现页面自动刷新(两种方案)

    方案一:grunt-livereload + Chrome Plug-in 优点:安装.配置简单方便. 缺点:需要配合指定的浏览器插件(Firefox也有相关插件,IE么你懂的). 1. 需要安装2个插接件:grunt-contrib-watch.connect-livereload 执行命令: 复制代码 代码如下: npm install --save-dev grunt-contrib-watch connect-livereload 2. 安装浏览器插件:Chrome LiveReload

  • Java解决No enclosing instance of type PrintListFromTailToHead is accessible问题的两种方案

    今天在编译Java程序时遇到如下问题: No enclosing instance of type PrintListFromTailToHead is accessible. Must qualify the allocation with an enclosing instance of type PrintListFromTailToHead (e.g. x.new A() where x is an instance of PrintListFromTailToHead). 源代码为:

  • 密码强度的正则表达式两种方案JS总结篇

    本文给出了两个密码强度的正则表达式方案,一个简单,一个更复杂和安全.并分别给出了两个方案的解析和测试程序.一般大家可以根据自己的项目的实际需要,自行定义自己的密码正则约定. 前言 用户注册时,都会用到密码正则校验.要写出正确的正则表达式,先要定义表达式规则. 方案1 (简单) 假设密码验证做如下规则定义: 最短6位,最长16位 {6,16} 可以包含小写大母 [a-z] 和大写字母 [A-Z] 可以包含数字 [0-9] 可以包含下划线 [ _ ] 和减号 [ - ] 根据以上规则,很容易给出正则

  • laravel 自定义常量的两种方案

    常量定义方案A: step1 按路径生成constants文件 app/config/constants.php step2 constants文件里写 return [ 'ADMIN_NAME' => 'administrator', 'ADMIN_NAME1' => ['INIT' => '1'] ]; step3 在用到的时候 echo Config::get('constants.ADMIN_NAME'); echo Config::get('constants.ADMIN_NA

  • SpringBoot配置文件中数据库密码加密两种方案(推荐)

    SpringBoot项目经常将连接数据库的密码明文放在配置文件里,安全性就比较低一些,尤其在一些企业对安全性要求很高,因此我们就考虑如何对密码进行加密. 介绍两种加密方式:jasypt 可加密配置文件中所有属性值; druid 自带了加解密,可对数据库密码进行加密. jasypt 加解密 jasypt 是一个简单易用的加解密Java库,可以快速集成到 Spring 项目中.可以快速集成到 Spring Boot 项目中,并提供了自动配置,使用非常简单. 步骤如下: 1)引入maven依赖 <de

  • vue 强制组件重新渲染(重置)的两种方案

    数据通过异步操作后,对之前刚加载的数据进行变更后,发现数据不能生效 方案一 当数据变更后,通过watch 监听,先去销毁当前的组件,然后再重现渲染.使用 v-if 可以解决这个问题 <template> <third-comp v-if="reFresh"/> </template> <script> export default{ data(){ return { reFresh:true, menuTree:[] } }, watch

  • vue打包上传服务器刷新404问题的两种方案

    一:nginx服务器解决方案,修改   .conf  配置文件 有两种解决方案 1: location / { try_files $uri $uri/ @router; index index.html; } location @router { rewrite ^.*$ /index.html last; } 2: location / { error_page 404 /index.html; #try_file $uri $uri/ /index.html =404; } 二:apach

  • 使用Docker搭建私有GitLab的两种方案

    第一种:docker安装 1.拉取开源版本镜像 2.创建对应的数据卷,分别是配置.数据.日志 3.启动容器 4.访问地址 http://ip:8080 即可打开,首次进入需要设置root的密码 第二种:rancher安装 到此这篇关于使用Docker搭建私有GitLab的两种方案的文章就介绍到这了,更多相关Docker搭建GitLab内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

随机推荐