IXP2400忽悠了谁

本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。
msn: [email protected]
来源:http://yfydz.cublog.cn

1. 前言
 
网络处理器(NP)在防火墙领域的应用在前几年出现时即成为热点,当时觉得NP几乎是同时具备了ASIC和X86的优点,而且只要进行软件部分的开发就可以了,毕竟搞ASIC硬件国内厂商没有几家能够承担得起的,而搞软件就是国人的相对强项,门槛就低得多了,就算是微码编程,一般也就当作是汇编级别的编程了,毕竟国内的汇编高手还是很多的。因此当时的很多分析文章即使没有明确说,但言语之中都乐观表达NP将是x86工控机防火墙的终结者。当时 IXP2400是Intel推出的最新NP芯片,其早期版本IXP1200系列也已经在路由器等网络产品中应用,由于Intel在芯片界的名气,很多厂家都把2400作为了NP开发平台进行开发,几年过去了,真正推出适用IXP2400防火墙的厂商不多。
 
2. IXP作路由器
 
IXP2400处理分上下两层处理,上层处理核心为32位RISC处理器,称为Xscale,主频只有600M,处理速度不会比PIII600 强多少;下层处理称为微引擎(ME),一共8个,并行处理,NP的特点也主要就是从ME体现出来了,ME最大的能力是查表操作,但其他方面的处理能力就比较弱,但如果8个ME都并行使用的话,ME之间的相互转发的确可以达到很高的速度,千兆线速是没有问题的。
 
如果要将IXP2400应用为路由器,可以发现是非常适合的,Xscale处理上层的路由表,ME处理底层的路由cache项,由于ME强在查表,因此数据包可以非常快地进行转发,只有新地址的包才需要上传到Xcale处理,由于路由表本身也不会太大,Xcsale处理起来也已经足够,所以用 2400做成一个路由器还算是不错的。
 
3. IXP作防火墙
 
但如果要将IXP2400应用为防火墙,初步考虑应该是可以实现的,Xscale处理上层数据,负则新连接的建立,把连接信息传到下层的ME,利用ME的快速查表功能,已建连接的后续包就可以直接查状态表,如果查到了就直接进行转发,不在表中才上传Xscale,因此可以实现很高的转发速度。事实的确也是如此,性能测试结果,两端口双向64字节达到千兆线速没有任何问题,而用最高配置的x86架构的防火墙,64字节转发速度最多也就200M。
 
从上述过程来看,可以看到处理的瓶颈在于上层Xscale建立新连接的速度,由于Xscale只有600M,因此处理速度很有限,所以测试新建连接率很差,甚至不如普通P3级别的X86防火墙,不过IXP的连接建立率一直比较稳定,而x86架构在连接数达到一定限度后连接建立率会迅速下降或有较大波动。
 
对于多连接协议、VPN、内容过滤等功能,ME是根本处理不了的,必须将连接中的所有数据上传到Xscale,Xscale对这些功能的处理速度也是很慢的,不如x86架构。
 
一些特殊的网络环境,透明模式、VLAN等情况,ME需要特别处理,和普通转发完全不同,因此基本模式切换时都需要重启系统。
 
最后是ME本身也有欠缺的地方,寄存器数量不够,存储器也有限,无法完成更多的复杂功能。
 
4. 结论:
 
IXP2400根本就是给路由器作的,用来作防火墙实在是有点勉为其难,做成防火墙后最适合的场合是流量大但连接率不高的场合,而且不需要作内容过滤或VPN。
 
当然如果IXP2400的升级版本能提高Xscale的处理能力,使其达到PIV2.0G以上处理能力时,NP能力就将有显著提升;同时如果ME的能力增强,使在ME上能完成更复杂的操作而不用上传的话,IXP系列芯片才真正适用于防火墙,可以取得ASIC的处理能力。
对于其他类型的NP芯片,本人没接触过,不发表评论。
 
现在有厂家推出多核芯片,不是Intel或AMD的那种双核,而是至少4核,高端的可达32甚至64核,每核都有近PIII1G的处理能力,也就是将IXP的ME扩展化了,把ME和Xscale都完全等同,每个核可以当ME处理底层数据,也可以当Xscale处理上层数据,这些都可以编程指定,可以用C编程而不用微码。当这样的产品达到实用化时,NP估计也就没市场了。

猜你喜欢

转载自cxw06023273.iteye.com/blog/866863