网络通信 频道

网络处理器平台之设计与应用

网络处理器平台之设计与应用  
  
  摘要
  
  因特网、企业网络等网络应用的带宽需求急剧上升,传输、检查、拆分、组合、搜寻、内容比对、转递等IP封包运算处理动作,以往可以靠软件程序在一般X86微处理器上完成,搭配以网卡做封包出入口。但是近年来这些封包的运算处理越来越复杂,将数据输入处理单元,完成后再将结果送往输出单元,慢速处理造成的时间延迟会严重影响到数据吞吐量,无法满足Lin e Rate Operation的需求。Intel 公司提供的网络处理器系列产品专门用来解决这样的问题,IXP-4XX属于较低端的系列,本文则集中探讨IXP-2XXX系列高端网络处理器,文中将以IXP-2400处理器在凌华科技cPCI-6240系列产品的设计为例做出说明。
  
  以下将先介绍IXP-2XXX处理器的功能特性,再探讨处理器的平台设计、应用开发,最后探讨它在网络安全领域的应用,以入侵检测系统为实例做出说明。
  
  Intel IXP-2XXX 网络处理器
  
  Intel XP-2XXX系列网络处理器大致包含:IXP-2400、IXP-2800及IXP-2850,请参考表一的性能差异。除此之外,Intel还考虑比照了IXP-42X系列的做法,高度整合MACs等功能模块,建造优异的性价比产品,使这一系列处理器的应用更普及化。 
 



  全系列IXP-2XXX网络处理器都可拆分为『控制管道』(Control Plane)及『数据管道』(Data Plane)两大部分。参考图一 IXP-2400网络处理器,它内建一颗600MHz 32-bit XScale来负责Control Plane的处理工作,XScale执行相当底层的控制工作,包括信息传送,还有跟系统内其它处理器的沟通。Data Plane则由内建的八颗微处理引擎(Micro-Engine Version 2, MEv2)来做平行处理,MEv2是XScale精简下来的 (Reduced) 可程序处理器,使用者可用Micro-Code汇编语言或是高端Micro-C语言撰写应用程序,透过指令告诉这八颗MEv2怎样处理封包运算,以达到应用目的。

  



  图一是IXP-2400示意图外观,它有两个信道的QDR SRAM接口,存放重要的数据结构,比如:Route Tables, Free Buffer Pools,Flow State Tables,Queue Descriptors等等重要的信息,其中一个信道还可以接一颗协处理器,做TCP/IP封包比对时的内存搜寻引擎,加速决定封包的协议属性跟流向(Flow)。DDR DRAM则用来储存封包以及大量的State tables,另外C-bus接口可以连接第二颗处理器,这是采用一进一出架构的双处理器设计时用的。
  
  另两个重要接口,一个是64-bit/66MHz PCI 2.2接口,作为Control Plane连通的Bus,可以透过此接口外挂控制处理器,像是PrPMC控制卡;另一个是Flash界面,是存取RedBoot的通道,Redboot相当于X86系统的BIOS;媒体及切换接口(Media and Switch Fabric Interface, MSF)是网络封包进出处理器的主要途径,视应用可以规划为SPI-3、CSIX或是UTOPIA Level2接口。
  
  图二是IXP-2400内部示意图,内部的SHaC 是一个多功能控制单元,内含Hash单元,可以建立48-bit,64-bit或是128-bit宽的 Hash indices,XScale与MEv2可存取Hash来帮助Table的搜寻,特别是要搜寻的Keys很大时;第二个单元是16KB的Scratch Pad memory,这是处理器内第三个内存资源,XScale与MEv2可共同存取,三种内存资源可以让海量存储器存取同时间平行发生;第三个单元是Control and Status Register (CSR),起到9颗处理器(1 * XScale + 8* MEv2)之间沟通的作用。
  
  除此之外,还有 XScale 外围,包含中断控制器、Timers, UART、GPIO等单元。在处理器内部,XScale、MEv2、DRAM Controller、SRAM Controller、T/R-Buffer之间透过 Chassis Bus,将 Data Plane 的路径在处理器内部连通起来,这些控制单元可以共享 SRAM、DRAM 等内存资源做数据交换。



  网络处理器的『平台设计』、『应用开发』
  
  (一) 平台规划、开发
  
  平台规划 设计IXP-2XXX平台首先要先为产品做准确的定位,定义平台最终应用、带宽需求、封包处理效能等级。若是想一半接到ATM网络,则MSF接口有一半要规划成Utopia Level 2接口,连接的ASIC像是Intel IXF-6012/6048 Cell/Packet Framer;若是要直接连IP网络,则MSF接口规划成SPI-3或是CSIX,连接像Intel IXF-1104 (Quad Giga-E MACs的ASIC);或是接FIC(Fabric Interface Controller) 的ASIC。另外规划时要全面考虑:Control Plane的处理效能、是否外挂辅助处理器、开机影像文件下载速度;Data Plane则须考虑SRAM大小、DRAM资源使用、是否须加密功能 (IXP-2850有)、是否外挂网络搜寻加速器、是否外挂内容检查加速器等、要多少个网络接口。这些硬件规格要根据功能应用,做整体效能评估才行,在开案初期要审慎评估。
  
  平台开发 包括硬件、Redboot、系统支持套件(Board Supporting Package, BSP),BSP内含组件驱动程序。其中硬件设计跟一般X86运算平台没什么两样,记得要预留软件除错端口,就像X86-CPU的 ITP Port一样;Redboot则相当于X86 BIOS,系统初始化、自我测试、Boot Loader都包在Redboot内;Redboot及BSP可以藉由Intel IXA SDK得到帮忙,建立以XScale为处理核心的操作系统平台,最后这三大要素即可建立一个完整的网络处理器平台。
  
  (二) 应用程序开发
  
  Intel 建立了IXA 软件可携式架构,让今天花力气辛辛苦苦在IXP-2400建立起来的软件,明天在下一代IXP-2XXX仍然适用,而这个软件架构可以简单用图三表示。
  
  应用程序的开发也可以藉由Intel IXA SDK得到帮忙,考虑到投资杠杆效应,Intel IXA软件程序架构采用模块化,SDK提供一些基本的microblocks,开发者再开发自有的microblocks,将这些microblocks视为基础组件(Building Blocks),去组合实现实际的功能应用,让开发者的工作简单化,也缩短TTM时间。



  
  网络安全的需求
  
  据统计,2000年企业及政府部门遭受黑客(Hacker)攻击的比率高达85%,而网络安全的漏洞不是防止黑客入侵就解决了,其它像是遭窥探者窃取机密性数据,或是心怀不满的员工蓄意破坏系统内重要档案,警觉性不足的员工外泄重要密码、不小心由Email引入计算机病毒等,都是威胁网络安全的几个危险因素。
  
  为了让区域内网络维持安全运作,建立一套安全防护网才是根本解决之道,较完整的防卫机制大概有三层:
  
  (一)虚拟私有网络(VPN)
  
  (二)防火墙(Firewall)
  
  (三)入侵检测系统(Intrusion Detection System; IDS)。
  
  三种应用各有不同的系统规格需求,VPN 的系统需将信息全数打乱再丢到网络上,透过加密机制在公开的网络里建立起加密通道(Encrypted Tunnel),接收端再解密取得真实信息,在浩瀚的因特网内建立起安全私密的虚拟局域网络;Firewall则像大楼管理员,检查来访封包的通行许可证,包含检查封包的来源、目的地、连接块等字段,但是防火墙并没有办法挡掉所有的入侵者,此时就须要另一道防线IDS;IDS 就像网络上的监控摄影机,可以分析流经的封包数据,侦测未经授权的行为,IDS大致区分为「网络系统」跟「主机系统」两类。基本上IDS需求的系统处理能力可以涵盖VPN及Firewall的需求,因此接下来我们就以较复杂的IDS为例做IXP-2400的应用说明。
  
  入侵检测系统的应用
  
  图四是采用IXP-2400为核心建立的IDS系统结构图,凌华采用IXP-2400内建的XScale去控制管理Control Plane的组件,内建的八颗MicroEngine去收送处理封包的分类及内容比对,处理Data Plane的运算。IXP-2400的QDR SRAM通道0也叫做LA-1(Look Aside Interface)接口,可以选择接市面上现有的TCAM(Ternary Content Addressable Memory) 辅助处理器,帮忙做第三层以下封包数据搜寻比对的工作,帮IXP-2400处理器卸载(offload)一些运算负担。




 



  
  网络安全系统内最关键性的功能可以说是封包表头辨识(Classification)及内容检查(Content Inspection),表头辨识是针对其流向、连结、输入端口及目的地址等做比对;内容检查则有复杂的算法,处理带宽及内存容量需求极高,很显然内容检查即将是此系统非常严重的交通瓶颈所在,这个运算将耗用大量IXP-2400网络处理器的运算资源。因此必须采用另一颗处理器卸载此运算,有两种方法可行,其一是如图四:加入一颗可编程内容检查引擎(Programmable CIE, Content Inspection Engine),比如IDT PAX.port 2500 CIE;或是在封包经网络处理器集结成较大封包后,进入一张专属内容检查的高速运算服务器,比如ADLINK cPCI-6860 Dual-Xeon Server Blade。加CIE的做法可以卸载95% 的MicroEngine资源使用量,删除掉85%的MicroCode,同时削减75%内存带宽使用量,成本可大大节省,TTM(Time to Market)时间可以显著缩减。加一张专属服务器则维持旧有软件延续使用,节省软件开发的时间及人力成本,两者各有优点,但是CIE是纯硬件运算所以效率较好,从长远角度看应会成为较受欢迎的选择。
  
  结论
  
  网络处理器的时代已经来临,它可以有效解决网络交通拥塞的问题,也可以处理复杂的封包运算。无论如何,Inetel IXA架构已经正确的跨出第一步,接下来就须要更多的平台设计者投入开发工作,以及更多的应用开发者投入资源,发展软件程序,逐步建立完整的可携式Microblocks。网络兴起、带宽加速拓展,使整个网络通讯的市场板块不断的在调整、挪动,凌华科技与Intel合作,共同推广IXP-2XXX网络处理器的应用,希望能有抛砖引玉之效。 

 

转载地址:http://www.net130.com/CMS/Pub/network/network_manage/224720.htm

0
相关文章