SDNLAB是专注网络创新技术的先锋媒体和实践平台,涵盖SDN、NFV、CCN、软件定义安全、软件定义数据中心等相关领域。提供新闻资讯、技术交流、在线实验、行业分析、求职招聘、教育培训、方案咨询、创业融资等多元服务。
分类: IT业界
2015-05-04 13:52:02
编者按:全球第一颗SDN交换芯片一直被一层神秘的面纱包围着,小编近日采访了一下盛科网络的张卫峰张总,为您揭开全球第一颗SDN交换芯片神秘的面纱,以下是采访内容。
SDN是一个很泛泛的概念,它可以有很多不同的实现方式,而OpenFlow技术是发展最早的,最广为人知的,并且唯一标准化的SDN实现。但是由于一直没有针对OpenFlow的网络交换芯片问世,所有做OpenFlow交换机的设备商都做得很郁闷,用现有的传统交换芯片做出来的OpenFlow交换机,限制都太多,甚至业内有人说,SDN之所以落地缓慢,一个很重要的原因是没有专门的SDN/OpenFlow交换芯片。ONF组织还专门成立了一个芯片顾问委员会(CAB,Chipmaker Advisory Board),想推动一颗专门的OpenFlow芯片的问世,但是一直进展不顺,不得已采用了一些折衷的办法,如TTP。前不久,国内芯片厂商盛科网络推出的全球第一颗OpenFlow交换芯片打破了这一局面,SDNLAB君试图带领大家一起来看看这颗芯片都取得了哪些突破。在了解这些突破之前,我们先请张总为我们介绍一下OpenFlow对交换芯片有什么样的要求以及现有的芯片为什么无法满足OpenFlow的要求。
OpenFlow对网络交换芯片的要求
OpenFlow相对于传统芯片来说,它的一些理念是颠覆性的,具体表现在以下几个方面:
■总体上,它要求所有的报文解析、报文匹配查找、报文编辑、报文转发都必须是可编程的
■在报文解析上,它要求既能识别所有已知的报文类型,也要能识别未来可能出现的而当前还不存在的未知报文类型
■在报文匹配查找上,它要求能够针对2-4层任意的字段组合进行匹配查找,而且可以查完一张表之后再进入下面一张,即能够支持多级流表
■在报文编辑上,它要求能够对任意报文字段进行修改,不受任何模式的限制
■在报文转发上,它要求能够将报文转发到任意的单个或者多个目的地,包括物理端口,逻辑端口(如tunnel),控制器,本地CPU等,还包括丢弃。
它的流水线处理(Pipeline)看起来类似下图所示,看得出来,这完全是协议无关的。
传统交换芯片的处理流程
在传统芯片设计中,所有的行为都是协议相关的。特定的协议有自己特定的处理模式和处理过程,某个协议处理过程中要编辑什么字段,做什么动作都是确定的,比如路由处理过程中,是使用目的IP加上掩码去做匹配查找,查到之后会去替换二层头,会去减TTL,可能会去修改DSCP,但是不会去改IP地址。再比如普通二层转发,可能会去修改vlan tag,但是绝对不会去修改IP地址,也不会去修改Mac地址。从理念上,它就跟OpenFlow截然相反。它的流水线处理类似下图所示。
从两者的对比就可以看出来,要使用传统交换芯片来支持OpenFlow,必然是限制多多。要支持任意字段匹配,只能用TCAM,而传统芯片中通常只是ACL用TCAM,而ACL能执行的动作也有限(如丢弃、统计、重定向等),无法做到任意的编辑和任意的转发,而且表项大小也很有限(因为TCAM是昂贵的资源),至于多级流表,就更是不支持。
全球第一颗SDN交换芯片GoldenGate全方位解析
位于苏州的盛科网络,是国内唯一一家核心交换芯片和白牌交换机提供商。3月底他们面向全球发布了全球首颗SDN交换芯片,全面支持OpenFlow,同时还兼容传统交换芯片功能。关于这颗芯片的情况,已经由多家媒体的深度新闻稿进行了详细报道。但是,关于这颗芯片到底对SDN支持到了什么程度,为什么会号称是业界第一颗全面支持SDN的芯片,我们能获得的资料仍然不多,SDNLAB君最近有机会跟盛科SDN云计算CTO张卫峰做了深入交流,具体了解到了该芯片对SDN支持的一些细节信息。在此做一个详细披露,以飨读者。
第一,灵活的架构和表项共享
这颗芯片沿袭了盛科前几代芯片FTM(Flexible Table Management)的技术,所有的内置eDRAM和eTCAM都可以多级流表之间共享,这样可以根据场景需要,把内置memory的利用率做到最大。而不像很多传统芯片,每个表项都有自己固定memory,彼此之间不共享。
第二,可编程的报文解析
除了硬编码之外,这颗芯片还引入可编程的解析器寄存器,允许通过用户自定义的方式,来支持未来新的报文类型。
第三,灵活的报文匹配和动作执行
在流表里面,将2-4层所有可能匹配的字段全部做成了匹配可选项,可以支持任意的匹配组合。最重要的,也是最区别于传统芯片的一个创新在于,在每个流表项里面,可以直接出一个动作组合,在这个组合里面,可以直接对任何一个字段进行任意的编辑,转发到任意的端口,包括物理的和逻辑的(如vxlan/nvgre端口)。这一点是要完美支持OpenFlow所必须的,也是目前其它芯片都做不到的。
第四,大容量的多级流表
表项大小是OpenFlow芯片的一个硬伤,因为你如果用TCAM,想把表项做大,一定意味着成本的上升,这是一个矛盾。GoldenGate芯片利用盛科专利的N-Flow技术,用一个折衷的方案解决了这一矛盾。其实N-Flow技术在上一代芯片里面就有了,还因此夺得了ONS全球峰会的第一届SDN IDOL大奖。GoldenGate芯片进一步改进了N-Flow技术,在继续使用eDRAM做hash的基础上,引入更灵活的表项控制,可以做到接近于TCAM的灵活性,但是在基本上不增加成本的基础上,将表项大小做到64K。
除此之外,GoldenGate还设计了两级真正的TCAM流表,以及另外的两级hash流表,理论上可以支持到4级流表,而且流表之间可以传递真正的metadata。相比较而言,使用传统芯片封装,最多只有一级真正的TCAM流表。
第五,对网络虚拟化的支持
用SDN来实现网络虚拟化,是SDN的一大应用场景。除了使用VxLan/NvGRE来做Tunnel Overlay之外,还包括通过SDN来对service chain的动态支持。这就对交换机芯片提出了一些特殊的要求。而这些要求,当前的传统芯片支持得并不好。一方面,很多芯片不支持VxLan routing或者支持起来有很多限制,另外一方面,很多芯片都不支持识别封装在Tunnel里面的原始报文,这样在使用SDN交换机做service chain引流的时候就不好做。
那问题来了,基于这套芯片方案做的SDN交换机什么时候能面世了?根据SDNLAB君的了解,目前国内一些设备商已经开始使用这颗芯片做设计,相信在年内,基于GoldenGate芯片的交换机产品以及盛科自己的白牌交换机就会在市场上销售,小伙伴们翘首以待吧!
本文转自