互联网的持续高速发展催生了两种矛盾的需求:更高的性能与更好的安全性。用户要求在他们访问信息和娱乐内容时延迟更短,因而服务提供商需要更快、更高效地传输数据。为了满足这些需求,服务提供商必须创建这样的网络,它既能满足个人用户对访问速度和服务质量(qos)的要求,同时还能提供投资回报。
为了实现这些目标,最显而易见的途径是选择这样的设备组建网络:它们允许服务提供商提供一系列能按需进行“定制裁剪”,并依据个人的使用需求进行计费的可靠服务。
但是这种类型的网络需要更强大和更高效的数据处理能力,它们不仅能提供服务,而且还必须确保数据以及访问这些网络数据的用户的安全性。
互联网环境中的“安全”是指什么呢?简单来说,安全就是保证服务的可用性,鉴别用户身份和他们的数据,并确保数据的机密性和完整性。
在过去两年里,业界一直在向基于网络处理单元而构建的网络处理架构转移,这种趋势已经改变了设计网络的方式。与此同时,这种趋势成就了崭新的、从前无法想象的处理能力,并引入了更强的易用性。所有这一切使得我们更容易提高网络的性能及安全性。
网络处理架构由网络处理元件(npe)及对它们进行编程的软件组成。npe可以是一个网络处理器或经编程用于执行某种特定数据处理功能的协处理器。网络处理器论坛(npf)将网络处理单元(npu)定义为“一种可编程或可配置的半导体器件,专为处理网络数据(数据包)而设计和优化。网络处理器的优化包括用以支持高速数据包分类和数据包修改的硬件和指令集。”
网络协处理器被定义为“一种为加密、压缩/解压缩等特殊用途而设计的附属处理器。通常,协处理器与网络处理器或定制ic协同工作,而且它自身不具备转发数据包的能力。”这种类型的架构非常适合于为互联网上任何有价值的通信提供所需的支持,包括可用性、认证、机密性和完整性。
互联网面临的一个重要问题是如何抵御服务攻击。这些攻击会导致双重问题:破坏为付费用户提供的服务,以及摧毁服务供应商的网络可靠性。
这并不是一个新问题。随着越来越多可被恶意程序员侵入、因而并不安全的服务主机联上网络,攻击的严重性与日俱增。这些黑客编写的程序能操纵主机发送大量超过网络或站点处理能力的数据包。其结果是,网站瘫痪,所有用户都失去连接。
此外,这种恶意的泛滥流量会造成网络阻塞,通过霸占可用的带宽,使得任何其他人无法通过。在“最后一跳(hop)”的路由器上抛弃这些恶意的数据包并不能解决链路拥塞问题和从总体上消除传输这些无用数据流对网络产生的影响。
要解决这个问题,网络必须完全地执行过滤协议。采用与路由协议发送路径更新信息相同的方式,过滤协议能更新过滤器。但是,即使部署了这样的协议,现有的许多路由器不具备足够的cpu处理能力,以在高速接口上对每个数据包实施过滤规则。此外,现有的路由器硬件在其它方面还存在限制。大多数路由器只能操纵少量过滤器,而且在那些过滤器何时处理数据包的问题上通常受到限制。
即使泛滥的数据包都是相同的(除ip源地址以外),而且很容易被过滤器识别,但不同的泛滥源必须在过滤之前被鉴别出来。网络管理员今天面临的一个棘手问题是,尽管他们能发现进入路由器端口的数据速率瞬间达到峰值的情况,但他们缺乏检测这些数据的工具。如果他们能捕获数据的某一部分,那么就有可能判定泛滥数据包的来源。
未经认证的数据包
不过,当前的路由器让数据包与cpu分离,因为cpu无法赶上前者的速度。既然cpu不能共享自己没有获得的信息,那么系统管理员就不能识别或阻止恶意的泛滥数据包。在以cpu+fpga/cpu+asic为基础设计的路由器中,增加对新型流量控制功能的支持也许是不可能的,但这对基于npu的路由器而言则是小事一桩。
在cpu+fpga的设备中,不同的芯片执行不同的功能。系统架构提供了专用芯片,经编程后用于移动数