本文提出第一代IP业务路由器存在可扩展性和功能难以提高的问题,结果会导致现有网络无法满足高带宽IP业务的需要。为了适应新的光接入业务以及高速租用线路业务的需要,本文阐述IP业务边缘交换机的概念以及基于硬件的数据包处理管线技术,其管线由专用网络处理器构成,允许处理器层叠并方便地扩展管线,从而扩展了整个系统的数据吞吐能力。
传统的边缘汇集路由器的功能有限,只能进行IP数据包的转发。现在对于IP业务平台的需求正逐渐转变,除了路由外还要求能处理许多其他功能。在传输用户定制业务的推动下,这些设备要执行的功能不断增加,逐渐去掉一些难以管理的用户端设备(CPE)。同时,网络服务提供商将IP作为一个通用业务基础来巩固用于其接入点平台(POP)。现在的问题是如何平滑地实现这种转换。
第一代IP业务路由器主要受结构的限制,严重依赖通用处理器,经常是多个处理器并行使用。现在,随着业务的不断增加,在可扩展性和提高功能的问题上,这种早期的结构遇到了困难。另外,由于慢的并行处理隧道导致的管理复杂性也增加解决这个问题的难度。这个问题导致了早期基于这种设计的平台无法处理高吞吐量的单个隧道(或任何类型的高带宽用户连接)。因此,它们不适合新的光接入业务甚至也不适合高速租用线路业务。
IP业务边缘交换结构
IP业务边缘交换结构解决了上述问题,该结构采用了建立在多个网络处理器上的硬件管线、高速ASIC和加密协处理器。这种管线结构实现了很大改进,而这种改进可以实现未来的光速IP业务的开展,这与基于ASIC的第3层交换机同样重要,第3层交换机改变了基于软件的路由器。
服务质量方面的新标准和要求推动了这种转变,这些新标准和要求包括差异化业务(DiffServ)、多协议标签交换(MPLS)的流量处理、状态检测防火墙以及IPsec安全等。随着其它新协议的出现,数据包处理将更加复杂。
一种成熟的解决办法不仅要求速度快,而且要能够对用户服务质量监测并加强对各个用户的服务水平,同时收集所有必需的数据。这需要许多处理步骤,要跨越几个IP相关的通信协议以及链路层封装和管道技术。
数据包的分步处理
从基本的边缘汇集功能转变到一系列更高级的IP相关业务,每个进入系统的数据包都要执行一系列处理步骤(见图1)。
首先,系统必须去除链路层包头并解密。简单的IP网络只有一个链路层包头,比如以太网或PPP帧。但现在的复杂接入网络环境却可能有多个链路层和隧道,其中一些需要结合多种协议的解密,如∶PPP协议或通过ATM的以太网协议,通过IP 、ATM(或MPLS)的Ipsec协议,甚至通过L2TP、UDP、IPsec、IP、ATM的PPP协议(或MPLS)。有时多个MPLS标签堆积在数据包上,在隧道终端必须全部去掉。
其次,进入的用户必须能被识别。这一步必须紧接着上一步执行,因为在这一步里链路层协议或隧道包头带有多种信息,例如该数据包属于哪个用户(如PPP用户名验证)以及用户标识在什么地方存放数据流解密的正确密钥信息(如IPsec)。其他包信息,例如从系统的什么地方产生数据包也可以用作入口用户标识。
这种多层用户标识对支持不同商业模型是必需的,其中包含批量用户和个别用户的关系。这也是实现最终用户按需服务和为移动用户提供高级服务的关键。
一旦入口用户被识别,可以根据定制规则采用过滤器进行过滤处理,这种定制规则可以是由用户定义或由服务提供商为用户定义。通过设置,过滤器可以以一定的顺序对数据过滤。过滤器的设计可以匹配包头的各种属性、上层协议包头以及应用类型,以满足防火墙要求的动态过滤。功能强大的过滤器还能允许并行处理IPsec规则。
这样一来,通过数据流分类器用户可以进行不同的数据流管理,例如QoS、安全以及应用于不同数据流类型的路由规则。通常这些也用来区别不同类型的应用,比如对时延敏感的语音VoIP与批量数据,但也可以用于满足其它与安全或运行效率相关的商业需要。
对每个数据流都进行测量、标记以及控制等处理,可以通过测量设备来控制承诺信息速率(CIR)和峰值信息速率(PIR)以及相关允许的数据包大小。每个用户类可以有自己定制的PIR和CIR设置的测量。
CIR范围内的数据流用DiffServ编码点(DSCP)对该数据流类的下一个单跳行为(PHB)进行标记。丢弃在CIR范围外的数据流或设定为低级PHB。这样可以按需求进行带宽分配,并防止用户使用超过付费所容许的带宽,同时提高了整个网络的效率。
使用定制路由规则,来自一个用户的某些或所有的数据流可以发送到不同的目的地,包括互联网、连接到预定目标的简单虚拟专用网(VPN)或虚拟专用路由网(VPRN)。VPRN允许属于同一客户组织的用户通过他们自己的路由网络以及使用他们自己的专用地址空间进行专用通讯,需要时还可以完全加密。
另外,来自可疑位置或特别应用的数据流可直接发送到下一个地址作特殊的处理。这对电子邮件和病毒屏蔽、Web缓存以及其它高级业务十分有用。
如果用户使用专用地址空间,他们可能需要地址转换服务来实现与互联网或其它地址空间通信。无论是网络地址转换(NAT)还是网络地址端口转换(NAPT)都能实现这一目的,既可以使用一对一地址映射的静态NAT,也可以使用多对一映射的动态NAPT。这里的地址转换是对用户的源地址进行转换。
在路由表查询方面,IP业务平台执行最基本的任务,即执行目的IP地址的最佳前缀匹配并把该数据包转发到正确的下一跳主机或路由器。这些设备必须支持巨大的互联网路由表(约100,000项),而且这些路由表还在不断增大,并执行开放最短路径优先(OSPF)和外部BGP-4路由协议。如果用户规则指定使用VPRN,则必须在正确的专用路由表内查询。
数据流的其它处理
以上的过程实际上只实现了一半:入口用户数据流负载和规则决定的PHB还没有完全采用。为特定的PHB标记数据流与实际上的传送并非一回事。
可以将数据包的目的用户指定到另外一个具有不同的QoS处理、信息过滤和加密规则的用户(在同一IP业务设备的出口侧)。另外,将数据包发送到目的地可能还需要加密或其它隧道技术,可能需要再一次的路由表查询。
由于目标地址可能属于一个需要地址转换的用户,因此出口用户还需要其它处理(包括反复的NAT和NAPT)。通过结合源地址和目标地址转换,可以提供本地和广域网负载均衡以及灾难恢复等高级业务。
如果出口用户与入口用户在本地同一系统,同样需要进行识别。数据包发送时必须采用适当的规则。另外,可能会再次需要过滤处理,因为本地出口用户可能对发给他们的数据包采用其他的过滤规则。需要IP业务平台来采用这些规则。像以前一样,这些规则可能基于动态的状态过滤器,这些过滤器在应用层定义或在IP和更高协议头的其他属性进行定义。
出口用户可能选择采用与入口用户不同的数据流分类器,这些分类器可能不采用先前定义的QoS处理。因为对一个人是优先的应用对另一个人可能毫无用处。
入口用户或出口用户可能都需要输出加密、隧道技术和查询功能。如果数据包需要通过隧道进行传输,可能需要再次进行路由表查询,还必须采用合适的链路层包头。
链路共享可能减轻一些诸如端口竞争引起的拥塞,但这种链路共享只能在输出链路处的交换机或路由器中。这样,允许对具有指定PHB的每个数据包进行适当的QoS处理。
加权随机早期检测(WRED)和优先权加权公平排队(PWFQ)的结合是处理所有类型信息拥塞情况的强有力工具。DiffServ标准允许多达64个可能的PHB,这可以要求每一虚拟电路(VC)有64个排队,对于一个具有100,000个VC的系统来说,将会出现六百四十万个排队。
精简数据流
虚拟链路成型可使数据流在虚拟主干链路上传送,例如ATM VC或MPLS隧道。通过以太网或POS技术连接的用户信息通常必须转换成特定的信元或比特率。输出成型可以定义全部排队共享链路的范围。作为一个选择,到下一个相同目标的不同虚拟链路可用于不同的排队,每一个排队有不同的容量。这确保了一些PHB限制在最大容量内,从而保证其他的具有一定的最小容量。
最后一点也不可忽视,在数据包流经系统的各个点必须进行统计信息收集。要进行多层次的实时和过去的统计信息收集。无论是对记账数据采集还是对每个客户的服务级协议(SLA)管理,信息收集都是必要的。
许多现有的结构无法支持这些处理步骤,不能满足时延要求严格的实时数据传输。解决这个问题的简便方法是大量减少对IPsec、DiffServ和MPLS的支持,或不支持。许多路由器过分简化链路共享,只支持几个排队以及对ATM链路上的信息进行成型。许多简单方法假定数据始终在用户和主干网之间流动,不支持用户之间的通信。同样,常常省掉以线速度对每个数据包进行加密和解密的IPsec操作。
早期结构的实现
对每个数据包执行上面所说的全部任务常常需要十多个查表操作。由于其中几个步骤需要净载荷处理,因此必须能对整个数据包进行访问。
另外,当每个数据包流经系统时,许多计数器、标志和描述符都必须累加,进行设置和/或读取。由于同时有成千上万的有效用户,每个用户有不同的规则,因此会有数百万不同的应用数据流,所要求的表大小和编号也将迅速增大。这对设计高性能的解决方案提出了严峻的挑战。
为了能支持一个与满载的千兆位以太网连接的用户,系统必须每秒能处理1,500万个数据包,这意味着每个数据包必须在百万分之一秒内处理完所有的步骤。而现在很多通用处理器并没有对IP数据包处理进行优化。
在采用内部缓存时,处理器工作性能很好;但当访问外部存储器时,无论内部时钟有多快,处理器速度都变得很慢。同样地,读写速度成为这种高带宽操作的瓶颈。由于高级数据包处理需要许多大型独立的表格,并通常具有供随机访问查询的短记录,因此无论通过缓存还是高速存储器都无法增加处理能力。
通过将几个标准处理器结合成一个群,并增加加密或其它的专用协处理器,可使性能稍稍增加:如果只有一个加密或解密步骤并停止其他业务时,可达到30Mbps;如果没有加密时可达100Mbps。但是这一速率远远不能满足当前用户对快速增长的互联网业务的要求。
为了克服这个问题,第一代IP业务路由器采用并行处理设计,在这个设计中采用了多个这样的处理群(见图2)。采用一种插入交换结构将进来的信息分配到整个群,在这种分配中来自单个用户的信息将分配给一个群完成。
遗憾的是,即使采用这种设计仍然不能满足单个用户的连接要求。一旦超过了规定的吞吐量,数据包可能在输入的时候不作任何选择地丢弃,也可能不能使用某些高级功能。因此,必须认真地管理系统处理器资源以避免将过多用户指定到同一处理群。
早期的结构要求每个处理群能够高速访问很大的路由表,这些路由表必须包含用户特定规则。由于表格内容复制以及复杂的更新和同步过程将导致昂贵的成本。如果为了提高性能在入口与出口处理中使用不同的群,必须对这些群之间的连接进行手动配置,这样就使系统管理变得更加复杂。
此外,这种方法有个缺点:在数据流到达智能输出排队之前,通过交换结构在出口处重新汇集时该方法会产生拥塞。因此,内部交换结构必须决定将哪一个数据包丢弃,即使它不清楚哪一个数据包属于哪一个IP流或在某些情况下不知道属于哪一个用户。
另外,许多内部交换结构的缓冲区非常小,不可能为对丢失或时延敏感的应用提供IP层QoS,因而无法支持SLA。因此,基于此结构的系统必须在轻负载或几乎没有输出链路拥塞的情况下运行,以保持QoS。将处理群数量增大只能使系统操作更加复杂,而且会增加产生输出拥塞的可能性。同时,系统成本的增加比性能的增加更快。
结构的发展趋势
IP业务边缘交换机是目前出现的一种具有全新结构,用来传输高级IP业务的产品。此设备利用一种基于硬件的数据包处理管线,解决了提高性能和可扩展性问题。
这种结构沿着管线分配表查询处理、包处理以及其它功能,使得大量的数据在很高的速度下处理。这种管线由专门的网络处理器构成,这些网络处理器以很高的速度执行每个数据包的各种处理。这种面向数据包的流水线结构允许处理器层叠,轻易地扩展了管线,同时也扩展了整个系统的处理能力。
然而,用IP业务边缘交换机处理高级数据包,仅有网络处理器是不够的。当以千兆位速度传送IP业务时,为避免瓶颈,管线中最复杂的处理阶段的运行速度必须比数据包到达的速度更快。
要做到这一点,交换机的管线处理器必须用高速定制ASIC和加密协处理器来实现。ASIC仍然是实现以最快速度处理大量复杂数据的最好器件。ASIC和网络处理器的联合形成了一种灵活的结构,能够满足提供高级IP业务的要求,同时保证最大的传输性能。
通过一些并行管线可以实现具有多个千兆位容量和冗余功能的IP业务边缘交换机。这比前面提到的高度并行结构简单很多,由于高达千兆位速度的整个I/O端口动态地分配到单个管线,因而这种方法更易于扩展,能处理更大数量的数据流。
通过在管线之间使用特大型后端交换结构可以避免输出时的拥塞丢失,这样单个管线可以实现任何给定输出链路的传输。由于每个管线带有很大的有条理的排队,即使在输出链接拥塞的极端情况下,所有用户的QoS规则仍然保持不变(参见图3)。
引入这种基于硬件的IP业务边缘交换机将改变互联网络的边缘性能。对于原来的设备不能高速处理的高级业务,现在可以用边缘交换机来实现,一种新的集成的更快业务边缘将涌现。这不仅能降低成本和简化操作,而且也加快了用户新业务的开发。
Steve Kohalmi
首席系统工程师
Richard Forberg
产品管理副总裁
Quarry Technologies公司