多功能需求使得路由器设计变得越来越复杂。从而导致设计开发难度、成本、功耗等问题。可重构路由器可根据不断变化的功能需求动态加载不同的处理构件,不但能满足各种新出现的互联网处理需求,而且可以降低设备功耗,延长使用周期和减少电子垃圾,因此更加节能环保。
路由器是互联网的核心设备,随着人们对下一代互联网研究的不断深入,关于路由器体系结构和设计方法的创新也逐渐引起关注。从2008年开始,面向服务扩展的可编程路由器PRESTO (Programmable Routers for Extensible Services of Tomorrow)workshop每年与SIGCOMM会议同时举行,重新研究IP网络的功能分布问题,以提升网络服务的能力,简化管理复杂度。
可重构路由器基本思想是打破网络交换节点的封闭性,支持具有不同功能的构件植入路由器的处理通路,从而扩展路由器的功能。
产生背景
由于互联网长期遵循端到端的设计哲学,使得路由器在网络中仅作为分组的交换设备存在,与端系统的应用无关。路由器体系结构和相关技术的研究也一直集中在如何提供更大容量的交换能力、更高的端口密度以及更好的服务质量保证方面。然而随着互联网规模的膨胀,业务模式的演变,对路由器的功能需求也在不断发展,目前拓展路由器功能的主要有可编程、虚拟化和可重构三个途径。
可编程网络又称软件定义网络,要求路由器具有开放的控制接口,管理员可通过外部配置控制网络设备的处理行为。典型的如2008年美国斯坦福大学提出的目的在于支持校园网内网络技术创新的Openflow技术。其主要思想是在交换机内部定义一个标准流表,可通过对流表配置定义交换机的处理行为。目前Openflow交换技术已经在数据中心网络、无线接入网络的研究中得到应用。虚拟化技术源于上世纪九十年代出现的可编程交换机思想,即通过对硬件交换平台的资源划分,在一个物理交换机上虚拟出多个逻辑的交换机,以支持在一个物理网络上构建多套逻辑网络。但如何实现逻辑交换机之间的资源划分和硬隔离十分困难,目前许多厂商推出的逻辑路由器只是在转发表的生成和查找上隔离,还难以做到真正的转发和交换和缓冲资源的隔离。因此路由器的虚拟化更多集中在如何通过数据平面获控制平面的虚拟化来提高路由器的可靠性。
可重构路由器的思想源于下面的观察,即路由器的功能随着时间和空间的变化而变化。当路由器在T1时刻部署在A点(如边缘接入网络)和B点(如汇聚网络)时需要的功能不同。同样在B点,当时间变化到T2时,路由器的功能集合也可能变化。例如T1时刻路由器需要对网络中爆发的蠕虫病毒进行监测和过滤,而在T2时刻蠕虫病毒平息后,并不需要此项功能。同样,在T3时刻路由器又部署到A点时,其需要的功能又有可能发生变化。
上述分析表明,随着时间和空间的变化,路由器需要的功能集合F1-F4也在不断变化。目前的设计方法是在路由器中尽可能实现多的功能,根据部署的要求选择开启相应的功能。这样的结果是路由器设计变得越来越复杂。例如,根据Cisco公司的相关论文,在其SPP网络处理器设计中仅仅在转发查表方面就支持了考虑支持IPv4全局转发表(1M项)、反向路径检查(RPF)表(1M项)、IP VPN控制表(5-10M)、IPv4组播表(1M)、MPLS标签表(1M)、IPv6单播表(1M)、IPv6组播表(1M)等多种长度、容量不同的控制表格。这些复杂的功能导致设计开发难度、成本、功耗等问题。使SPP网络处理器一度成为世界上密度最高,处理最复杂的处理芯片,远远超过同时期Intel和AMD的多核CPU系统。而对于一些新出现的功能需求,如深度报文监测(DPI),SPP却无法支持。
可重构路由器可根据不断变化的功能需求动态加载不同的处理构件,不但能满足各种新出现的互联网处理需求,如视频感知的处理,而且可以降低设备功耗,延长使用周期和减少电子垃圾,因此更加节能环保。
与可编程和虚拟化路由器停留在学术研究方面不同,在863“新一代高可信网络”重大专项“开放式构件化通用路由器研制”课题资助下,国防科技大学和华为公司已经展开可重构路由器的研制工作,大型的实验网络将在2010年下半年构建。
可重构路由器的实现方法
构件是可重构路由器功能重构的基本单元。实现转发查表、缓冲管理、交换调度等转发平面功能的构件称为转发构件,实现路由计算、设备管理配置等控制平面功能的构件称为控制构件。由于目前路由器功能扩展主要受转发平面功能的限制,因此转发构件设计是可重构路由器研制的核心。
路由器转发平面功能通常使用ASIC、网络处理器、多核处理器和FPGA等器件实现。其中可通过编程重新定义处理功能的器件,如网络处理器、多核处理器和FPGA,在理论上均可用于转发构件的实现,其特点比较如表1所示。其中FPGA接口定义简单,性能容易保证;网络处理器使用汇编编程,平台相关性大,构件资源管理实现困难,因此可移植性差;而专用多核CPU有简单操作系统,高级语言编程并有专用协处理器加速,因此FPGA和多核处理器比网络处理器更适合转发构件的设计。
构件运行环境为转发构件提供标准的接口和运行所需的资源。不同类型的构件需要不同的运行环境。例如在基于FPGA的构件设计中,构件运行环境包括时钟、复位以及其他标准的接口信号、FPGA逻辑和布线资源等。
具有相同构件运行环境的转发构件间分为共存关系和互斥关系。系统中同时存在的多个构件具有各自独立的运行环境,实现不同的功能,如对于业务识别构件包括广电业务识别构件(C1)、电信业务识别构件(c2)和互联网业务识别构件(c3)等,这些构件同时存在于系统中,到达的报文同时送到这三个构件,每个构件的输出结果为0或1,1表示属于该类型的分组,0表示不属于该类型的分组。互斥的构件运行环境,任何时候系统中只存在一个该构件的运行环境,只能在C1/C2/C3中选择一个构件运行。典型的如输出调度构件,只能从公平队列、优先级调度和先进先出等调度构件中选择一个构件植入运行环境。
通常共存的构件用来扩展系统的功能,例如可以通过构件的重新植入将广电业务识别构件替换为某种蠕虫病毒的检测构件;因此我们认为共存模型下的构件开发是目前可重构路由器构件研制的切入点,是扩展路由器功能的有效手段。
可重构路由器的研制
国防科技大学计算机学院研制的可重构路由器(以下简称OR路由器)的设计指标为单机柜640Gbps,报文转发率80Mpps以上,支持10G/1G以太网、10G/2.5G POS接口等。路由器支持多种链路层、网络层处理构件和交换网络调度构件,为新一代高可信网络实验网的构建提供设备支撑。
OR路由器采用高密度FPGA和多核处理器相结合的转发引擎实现方案。接口接收的报文首先进入预处理FPGA。该FPGA内部实现多种业务识别构件和流量控制机制,对接口到达的分组首先进行业务分类和流量控制,然后将报文送多核处理器完成IPv4/IPv6/MPLS和组播等多种分组的处理。
业务识别构件是OR路由器支撑未来三网融合传输业务的关键,通过深度报文检测(DPI)识别TS over UDP的广电业务和RTP over UDP的电信业务,并将不同的业务映射到路由器内部不同的QoS优先级上。
FPGA内部实现的业务识别构件结构定义了的标准的分组接收路径(信号格式、含义、时钟工作频率等),接口接收的分组在被送到A和E之间的FIFO缓冲区中的同时也通过复制送到包含n个业务识别构件和识别结果控制逻辑的业务识别模块中。每个业务识别构件具有标准的输出接口B,该接口只有一个Yes信号。当报文结束后4个时钟周期内Yes信号为高表示报文属于该业务报文,否则不属于该业务报文。识别结果控制逻辑内部包含一个n位向量,表示报文是否属于n中业务中的一种。同时识别结果控制还从A接口获得报文长度和输入端口信息,这些信息与业务类型一起送令牌桶阵列,实现对某种业务的流量控制。令牌桶阵列生成最终的报文处理控制字段(包括业务类型标识、丢弃标识和优先级标识等)并将该控制字写入FIFO缓冲区,后续处理逻辑从F接口读取控制字,并对E接口读取的报文进行相应的处理。
业务识别逻辑通过构件的方法实现。在FPGA逻辑的编译时静态指定构件的类型、版本等标识。目前基于该接口,国防科大、解放军信息工程大学开发了广电业务、电信业务、IPv4、IPv6和MPLS等多种业务的识别构件。这些构件通过构件库进行管理,网络管理员通过构件库管理软件可根据需要将包含不同构件的FPGA配置文件下载到路由器转发引擎的板卡上。转发引擎复位后,自动重新加载包含新构件的FPGA配置文件,实现构件的植入。
目前OR路由器对第三方设计者开放的构件只有FPGA上的业务识别构件,其主要原因是该构件接口定义简单,第三方设计易于植入。总体看来,对可重构路由器及其构件设计方法的研制还处于初级阶段,主要表现在:(1)还没有成熟的方法描述构件的指标性能,因为构件的性能与其运行环境提供的工作频率、访存延时等因素密切相关;(2)目前的FPGA还难以支持硬件构件的运行时加载;(3)如何保证第三方构件的知识产权目前还没有好的方法。
虽然存在上述问题,我们仍然认为可重构路由器极有可能成为我国在网络设备研制中的创新,通过不断努力,OR路由器将为建设支持三网融合的网络基础设施提供新的思路。
(作者单位为国防科学技术大学计算机学院)
文章来源:《中国教育网络》杂志7月刊
特别声明:本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。