高性能路由器
1、前言
Internet规模的扩展,网络流量的激增,以及新型网络应用的不断出现,对路由器等网络设备提出新的要求。高性能路由器要具有强大的能力和良好的扩展性,具有非常高的稳定性、可靠性和安全性,同时要具备支持多协议、多类型端口、多种安全认证的灵活性。高性能路由器的设计和实现面临着非常多的挑战。. 在国家科技部和“863”计划及其他相关部门的支持下,国防科技大学计算机学院承担了多项网络设备研制任务,并取得一些重要成果,例如,“银河玉衡核心路由器”、“新一代互联网高性能路由器”、“IPv6路由器系统”、“安全路由交换机”和“安全高速路由器”等。
高性能路由器是互联网的核心设备。高性能路由器的研制涉及计算机网络、光通信、微电子和高性能计算机等多项关键技术。从一定意义上讲,高性能路由器的研发和应用水平是一个国家信息技术综合实力和国际竞争力的体现。. 高性能路由器产品的研制经历过一次热潮,受整个网络经济的影响,现在正在为广泛部署和新的崛起积聚力量。国内对路由器研发的关注也已经从中低端产品更多地转向高端产品,并在高性能路由器的研制方面取得一些很好的成果,对下一代高度可扩展超高速路由器的研究也在积极开展。
高性能路由器的设计是富有挑战性的课题,在核心路由协议、高效转发引擎和高可扩展交换结构的设计以及基础协议软件的实现、关键芯片的研制等诸多关键技术的研发上都迫切需要我们自主创新,拥有更多核心技术的自主知识产权。
2、高性能路由器主要术指标
作为超高性能路由器,有许多重要的技术指标,参考国内外各类路由器的技术指标,尤其是重要测试指标,本文提出超高性能路由器的主要设计指标,主要包括吞吐量与转发率、延迟、报文重排序、BGP表容量、路由抖动和QOS服务质量,以及最长匹配、路由收敛性、过滤等。由于篇幅关系,本文主要阐述前面6个指标。
2.1 吞吐量与转发率
1
接口吞吐量和转发率是路由器的基本指标,接口吞吐量和转发率仅仅是路由
器指标的一部分,但人们经常将吞吐量和转发率理解为最重要的指标,甚至是唯一的指标。
接口吞吐量和转发率测试时,向被测试设备的每一个接口发送报文。目的地址要求覆盖20万个以上的子网,测试设备提供的信息流要达到线速度。需要注意的是吞吐量在商业中是一个很通顺的词,而事实上,路由测试技术文件RFC 1242将它定义成设备在零丢失下包转发的最高负载。容易出现概念混淆的是将吞吐量理解为以线速率提供信息流,然后在对传送的包进行计数,忽略任何损失。应该强调吞吐量意味着零损失,吞吐量是严格的指标,为了得到路由器的完整行为,还要测量在最大给定负载下的转发率。在转发率测试中,我们以线速率提供包,并对收到的包进行计数,确定有损或零损失。转发率测试结果一般比吞吐量要高。
OC-192 吞吐量是超高性能路由器的重要指标,在40字节负载下,每秒要处理的报文超过80亿个,聚合速度为115.2 Gbit/s。Cisco12416在处理Imix时(指按照因特网流量特征构造的报文组合,40字节56%、1 500字节23%、576字节17%和52字节5%),获得了接近线速率吞吐量。40字节IP包的吞吐量为52%,这意味着12416将以线速率的52%对信息流进行无损转发,但并不意味会丢失48%。事实上,Cisco 和Juniper 在转发40字节IP包时超过了线速率的99%。
奇怪的是,Juniper M160 OC-192的40字节IP包吞吐率为92.2%,Imix为90.0%。这个结果与预想的结果相反,按理短报文会给路由器带来更多的负载。
2.2 延迟
路由器处理延迟能力在某种程度上与吞吐量一样重要。对于声音和视频等对
延迟敏感的应用显得尤为重要。理想情况下,延迟最好低而且恒定,一个延迟抖动很大的路由器难以获得很好的应用。在吞吐量测试时,可以利用Spirent Smartbits 产生/分析每个包生成的时间信息;然后在接收端计算处理延迟,Smartbits 精度为100ns。表1是5个路由器OC-48接口的40字节包延迟测量
2
结果。银河玉衡和Juniper具有较好的结果,前者最小是6.5μs,平均是6.5μs,后者最小是13μs,最小值和最大值之间差8μs。表中除银河玉衡外,其它测试数据引自Internet core router test,由于银河玉衡9108采用全硬件实现报文转发,所以对每个报文的处理时间都是一致的。
2.3 报文重排序
Juniper推出OC-192接口后,同行们就一直盯着报文重排序问题。导致重
排序的原因是通过Juniper OC-192卡实际上存在4条路径,也就意味着报文可以通过不同路径乱序到达。事实上Juniper的OC-192接口确实在IP和多协议标记交换(MPLS)流量上重排序了一些报文。当转发40字节IP报文时,Juniper的 OC-192卡至多只对IP和MPLS流量的0.51%进行了重排序。而在Imix情况下,IP报文重排序达到了2.65%,在OC-192上,只要流量速度超过了Imix线速度的73%或者IP的56%,就会发生重排序。在OC-48接口上没有这类重排序。
Cisco认为,重排序对传输控制协议(TCP)来讲,是一件非常糟糕的事,而TCP占互联网流量90%以上。Cisco认为TCP希望报文能够有序接收,如果不这样,就可能出现重传,导致更高的延时,如果延时过长,连接就会超时。为了说明它的观点,Cisco在IEEE和ACM杂志上发表了由两位杰出的计算机专家Jon C R Bennett和Craig Partridge撰写的文章。
Juniper也发表了一篇文章来解释重排序,他还提供了4个参数来说明为什么不会像Cisco所说的那么严重。首先,他指出我们所见到的重排序并没有接近Bennett和Partridge所说的那么多;其次,Juniper指出重排序只针对每一次连接有意义,互联网核心电路处理成千上万个并发的连接,即便两个报文乱序到达,它们同时属于某一个连接的可能性是非常小的,销售商也提出非常乐意接受重排序,这样会使网络上的所有连接获得高吞吐率和低延迟;再次,Juniper指出TCP 和Spirent smartbits使用不同的方法来解决报文重排序,相对于TCP来说,Smartbits会报告更多的重排序;最后,Juniper指出由于OC-192而造成的重排序的碰撞是不会累积的。无论争论如何,必须肯定的是重排序对于TCP连接会有比较大的负面影响,它会戏剧性地增加延时,为此在设计时必须避免出
3
现重排序。
2.4 BGP表容量
经过20世纪90年代的发展,BGP网络的个数直线上升,在最近18个月里,
BGP网络数量已经开始以接近指数的速率增长。不难想象在今后的几年里BGP表在规模上至少会翻倍或是变为原来的3倍。
事实上BGP表容量很大程度上取决于设备存储器。Juniper的M160提供768Mbytes的RAM。Cisco公司的12416配置为256Mbytes,新的12416版本会提供1Gbytes存储器,但没有明确说明1Gbytes 的12416能否获得超过40万个路径。
BGP表项多少取决于软件的设计。如何构造一个合理的算法快速处理大容量的路由表是设计者面临的主要问题。例如Juniper M160处理路由硬件本质上是高端PC,具有自己的CPU和硬件驱动,即使有了768Mbytes的RAM,大约可以存储140万个路径,之后,M160开始将内存的内容存到硬盘上。M160在超过240万个路径后停止获得路径,因为它超出了交换区的空间。即使获得更多的存储空间,路由器还是不能完成更多的表项。
2.5 QOS服务质量
QOS是人们常挂在嘴边话题之一。大部分考虑是通过保证确定流量类型来收
取额外费用。例如,在Internet发生拥塞时获得优先处理。实际上,很多经营者都把QOS视为有利可图之道。QOS效果或许与商家描述的正相反。有人作过测试,假设定义3种服务级别:黄金级、白银级、青铜级,传输流量比率为70:20:5。Cisco 12416和Juniper M160实际为70:16:5和70:14:5。也就是说即便是在拥塞的情况下,有足够的带宽来满足所有黄金级流量而不产生数据包丢失,而白银级和青铜级则丢失较多。
3、高路由器的扩展性及其解决方案
目前,解决路由器容量扩展性问题已经有多种解决方案,最简单的方法是依靠以端口路由互联为基础的多路由器群集(clustering)方式。基本思路是将若干
4
较低容量的路由器群集在一起,构成一个外部接口容量很大的节点,需要扩容时增加一个较低容量的路由器。这种方案的实质是将负荷分配在多个不同路由器上然而这种扩容方案有如下缺点:第一不同路由器靠端口互联会浪耗大量昂贵的外部端口,互联成本大幅度上升,特别是互联的路由器数超过四个后,互联链路将消耗掉大部分端口的带宽。第二,随着IP流经过的路由器数的增加或实时业务的IP流的比例增加,网络延时和抖动值会迅速增加。第三,多个路由器靠端口互联会引起热点问题,即瞬时的动态流量在不超过总容量的情况下却会使容量最小的路由器过载或延时变大。第四,协议处理开销较大、路由表条目增加、路由收敛时间增加,影响了总的群集路由器的扩展性和性能。第五,如果考虑到实际网络中路由器有很大一部分是转接容量,内部和外部接口的容量都必须增加转接业务预期的数量,导致很大的浪费。最后,这种群集路由器的网络管理很困难,每个路由器运行自己的路由控制协议,路由协议的对等实体很多,使路由体系的实施很复杂,而且软件升级必须在每个节点内的多个路由器上进行,网络有可能出现稳定性问题。
解决扩展性的第二种方法是采用多网络平面方式,这是目前很多运营商采用的扩容方案。其思路是每个核心节点均由多个数目相同的较低容量路由器组成,构成一个个高容量核心节点,同一核心节点内的路由器间并不互联,而不同核心节点中的较低容量路由器则分别一一对应互联形成多个不同的网络平面。网络边缘节点分别与相邻的核心节点中的每个较低容量路由器相联。采用这种配置方式不会因为同一核心节点内较低容量路由器的内部互联而损失核心节点的外部接口容量。运营商可以根据业务量需要增加更多的网络平面来满足容量需求,而以前安装的设备仍然可以继续使用。然而,这种扩容方案有两个重要缺点。其一,当两个核心节点间的流量增加,而其槽位已经占满时,既便其他核心节点间没有扩容的需要,整个网络也必须新增一个网络平面,配置大量路由器,造成投资浪费。最后,网络复杂性的增加导致大量的路由器更新信息时可能造成网络的不稳定。其二,若两个核心节点间的流量增加而其中一个核心节点的所有槽位都已经占满时,可以在相同位置新增一个核心节点的方式来扩容。缺点是即便只需要新增一个槽位,也需要新增若干路由器并提供给其他节点大量互联链路。
解决扩展性的第三种方法是采用扩展性较好的单个大容量路由器,构成一个网
5
络平面,结构和规划设计简单,成本较低,根据需要增加接口卡和机箱即可。主要实现方案有总线、全网状连接、共享内存、三维环形网状和交叉开关等,其中交叉开关方案是当前主流实现方案。然而,交叉开关方案仍不够理想,主要原因是其交换矩阵的规模随端口数N的平方关系增长。随着端口数和端口速率的增加,为了有效保持无阻塞特性,需要更多的输入队列和更复杂的集中调度,实现难度越来越大,代价和成本也越来越高。而且,这种单级单平面交换结构的仲裁器往往形成瓶颈。升级扩容必须依靠机箱和交换矩阵的更新。简言之,采用单级单平面交换矩阵总是会遇到这样或那样的技术瓶颈,最终导致接口数的增加。可见,这种方案也不是长远的大容量路由器解决方案。进一步的解决方案是采用多级多平面交换矩阵,即空间域多级交换矩阵。这种方案的基本原理是利用多个自主的交换矩阵,组成一个多级多平面交换矩阵,每个平面拥有自己的仲裁器,解决了仲裁器瓶颈问题。平面间的性降低了增加平面可能造成的丢包。从扩展性看,采用多平面交换矩阵可以利用多个并行的交换矩阵,从而扩大了系统总容量或增加了系统的冗余能力,避免了现行制造技术的瓶颈。从交换矩阵看,采用多级交换矩阵设计可以增强系统的动态扩展能力,其成本随端口数的N•logN关系而缓慢增长,因而端口数可以大大增加,明显改进了容量扩展性。然而,这种方案的单节点容量潜力仍然不能满足长远的需求,使网络总容量的扩展性受限,需要探求更进一步的扩容方案。
解决扩展性的第四种方法是采用一体化路由器结构方案,又称为路由器矩阵技术或多机箱(Multi-Chassis)组合技术。通过采用并行交换技术,组成一个多级多平面的交换矩阵系统,从而突破单机箱在交换容量、功耗、散热等方面的,实现更大容量的路由交换系统。此时每台路由器由一个专用交换矩阵机箱和多个接口板机箱组成,所有机箱之间的连接都是路由器内部连接,由一个集中的管理和路由控制引擎负责控制管理,每个节点只有一个路由控制进程,从外部看仿佛一台路由器一样,即逻辑上是一台路由器。这样可以使路由体系和MPLS实施变得比较简单,运行管理得以简化,运营成本可以降低;由于消除了协议开销和进程间通信的最佳化,扩展性和性能得到明显改进;通常采用新型的高容量低成本光接口互联各个机箱的背板,无需普通接口板卡所必须的超高速存储芯片阵列和用于缓存的高速同步动态芯片阵列,再加上采用低成本的光源VCSEL,使互联成
6
本远低于普通端口互联方式。然而,这种方案需要解决路由器矩阵的无阻塞设计、路由和控制引擎的处理能力、可靠性设计以及运行管理等关键技术问题。此外,光交换矩阵本身也会增加系统的初始投资,但考虑未来升级扩容费用后,总成本仍然是合算的,能够较好地解决路由器的扩展性问题,真正实现Tb/s级和数十Tb/s级的超大容量核心路由器。
4、高性能路由器的发展趋势
路由器市场将呈几何级数增长、更大宽带、更智能是发展趋势。高性能路由器的研究方向是更大带宽,更聪明,更安全。
当前,传递数据只是路由器需具备的基本功能,同时,更要承载起网络安全、信息安全等重任,安全路由器成了近年来路由器领域增长最快的一块。顺应市场需求,虽然不同的组网需求需要功能不尽相同的路由器,但更大带宽、更智能是路由器将来的主要研发方向。
“由于组网角色不同,对路由器的需求肯定不一样,但今后的发展方向肯定是更大带宽和更聪明!”带宽容量更大,现在提出的千兆网就是顺应这一趋势而发展壮大的,往昔的几百KBS在现在可能连个人的网络需求都满足不了。而更聪明,就是指路由器在组网、通讯、业务处理的过程中能更自主、自觉、多能,能自主维持网络正常,出现异常时能自主恢复正常,而不需要人工干预。
7