H3C的路由芯片删了重发版…
昨天半夜一边处理客户故障,一边随手写了点东西关于某友商,居然就被友商说涉及它家机密要求删帖了。只是偷偷的笑一下,竞争对手分析做到位了。都在一个圈子混,互相行个方便,不知道另一位H开头不是华三的友商要不要奖励我一个棒棒糖(开玩笑啦,某思道德规范不允许的。
其实一开始我看指标就大概清楚是NPS-400的IP Core,增加了56G PAM4 Serdes、换了DDR5的内存控制器,工艺换到了16nm. 对比两张图就很清楚了:
但是很多话不用说透
,毕竟国内能够顺利的流出这样一块片子也实属不易了,更多的需要一些鼓励。所以文章开头埋了一个彩蛋:
既然涉及一些机密,咱们就不谈660这个芯片了,我们来说说NPS-400。28nm工艺,当年的说法是400Gbps, Oversubscription to 960Gbps, 性能为600Mpps@64B. 那么对比660应该是600Gbps的吞吐,原文比较含糊的写了一个1.2Tbps的接口吞吐能力
.
NPS-400是内置了200Gbps的IPsec/SSL的加解密引擎的,同时内置了200G的正则表达式引擎,可能是一些授权的限制,一些敏感的器件,660上并没有介绍,这也是我昨天说:
,设计指标上来看主要还是用于核心的,但是功能上没有涉及
SDWAN
有点意外,也没有内嵌Crypto
卸载的协处理器,更加意外了。
NPS-400核心结构
不记得看过啥了, 反正从原理来看换我设计也就是一个如下图的大致结构,每个CTOP要跑C编译的代码,PC、I-Cache、D-Cache这种东西都少不了。不过CTOP 16个一组,每个核不可能都有很大的独立Cache,更多的应该是共享的方式。通常16个CTOP还会共享一个L2 Cache,应该差不多这样..
通常这样的核心支持C语言编程,能够执行的指令条数是有限制的,毕竟栈空间受限于芯片尺寸。
每个CTOP Cluster
应该有4根总线构成东南西北四条通路,然后16×16的方式构成一个大的2D-Mesh的网络,这也是标准的片上网络实践,然后通常会把Traffic Manager、Packet Manager、MAC放置在东西向的位置,而DRAM控制器、外接TCAM放置在南北向。
查表转发
这也是一个很有趣的话题,理论上路由器转发查询应该是采用每包必查,TCAM执行的策略,但是这样可能因为TCAM容量不够导致招标测试中并发路由条目受限,所以有些人直接留言说我不懂NP了,其实不然,背后有一些商务的逻辑的。
例如ASR1000经常的打法就是带大量ACL的同时配置最大路由条目,这个是因为ASR1000采用了TBM的算法构建的PLU带来的便利不需TCAM,因此TCAM可以完全给ACL用。当然现在高端路由器已经不用这个TBM算法了,因为多次Access DRAM的延迟。
而另一种策略是采用OpenFlow
的思维方式,这是华三以往一直使用的架构, 即每个flow的第一个包触发LPM查询,然后系统自动将转发结果安装到DRAM中,后续flow根据DRAM的内容直接转发。这样避免了每包都去查询,然后ACL的结果也可以首包查询好了以后放进去。后续的Match flow就可以直接拿到转发决策。
这样的结果就是路由器的并发路由条目和ACL数量都会高的非常惊人,与华为NE40这样TCAM平台对标优势非常突出,是一个非常好的控标点。而正好NPS-400也有现成的Stateful Flow Table, 同时可以支持负载均衡、DPI等多种操作:
而且和华三以前的软件转发架构兼容,所以这是我说他们可能延续这样的做法的根本原因。(当然SR88以上的改了没我也不清楚了,但愿是改了,另外SR66以下的也要考虑一下了…
但是这样的架构有一个天生的缺点, 收敛慢,每次收敛可能需要更新大量的流表,或者说反正Internet上平均流时间就10s,一会儿就超时了?哈~
Packet Manager
但是这样基于流的处理有一个潜在的缺陷,那就是Packet Manager的调度了,通常内存控制器分了12个,我们应当尽量通过调度使得片上16×16的2D-Mesh网络降低拥塞,同时也避免多个CTOP的内存访问冲突。通常的解决方案是根据五元组做hash,hash完了丢到某个CTOP处理,这样对于大象流的处理就很不好了。同时,Fixed Hash的调度很容易被人攻击,例如Hash-Collision的攻击,很容易通过二分法找出规律来。
展望
总体来说,我还是持有这种态度:民族工业在这些高科技的地方需要有投入,能看到这些投入逐渐转化为产品是非常的好,虽然还有些稚嫩,虽然有些人又扯什么抄作业嗤之以鼻
,但是谁不是从蹒跚学步,一步一个脚印走出来的。只是提出一些有用的观点…所以前一篇总结出来一些测试例,可能华三自己也要考虑一下:
- 建议测试一下源目的端口随机时,把流表撑爆后整机的转发能力
- 利用二分法查看一下是否存在Fixed Hash的行为
- 建议单端口多子接口配置多ACL和QoS的最大容量,及QoS队列深度。
- 测试最大路由表项
- 测试最大路由表项时,构建10M并发连接数后的转发收敛能力
- 测试最大ACL时,构建10M并发连接数后,动态修改ACL,查看是否有流量被匹配而拒绝。
NPS-400其实工业界Adoption并不是那么的好,多核的架构基本上走到极限了,你看思科不也是从QFA到NxPower再到Lightspeed,最后革命性的出了Silicon One..
而这类芯片虽然有C编程能力,但是真的处理防火墙、负载均衡等复杂业务逻辑时,如果要涉及多次内存读写,那么性能就会直线下降了。
另外这个Engiant 660的定位一定要想清楚, 芯片业务模式来看,企业网不合适,只适合于运营商,如果要做企业网又要被迫外挂一堆X86业务处理板卡, 而即便是定位于运营商,竞争对手们都在10Tbps以上玩了~,还是要加油呀~
《H3C的路由芯片删了重发版…》来自互联网,仅为收藏学习,如侵权请联系删除。本文URL:http://www.bookhoes.com/712.html