揭开全球第一颗SDN交换芯片的神秘面纱

编者按:全球第一颗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芯片的交换机产品以及盛科自己的白牌交换机就会在市场上销售,小伙伴们翘首以待吧!

原文发布于微信公众号 - SDNLAB(SDNLAB)

原文发表时间:2015-05-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏雪胖纸的玩蛇日常

django2 用iframe标签完成 网页内嵌播放b站视频功能

44460
来自专栏java一日一条

Java,传奇的一生!

1991 年,James Gosling 带领着名为“Green Team”的团队着手研发一种新的语言以及专为下一代数字设备和计算机使用的网络系统。历时 4 年...

6320
来自专栏VRPinea

6.1 VR扫描:“仿生VR头显”Varjo,推出AR透视组件;《世嘉模拟器》支持VR模式

19370
来自专栏北京马哥教育

一个很有借鉴价值的编程故事

这是一个真实的故事,关于我自己的。一个理智的生命个体是怎么一步步走向疯狂? 我穿着西装,坐在办公室里,脑子里有一个模糊的创业想法。然后,我决定学习编程。我曾经无...

34360
来自专栏SDNLAB

网络中间设备路在何方

编者按:当今,以交换机和路由器为主建立起来的网络连接和拓扑已经构成相当完善的信息基础设施,差异化提供网络个性服务的呼声更加强烈,智能化提升网络综合品质的要求更加...

30360
来自专栏我是攻城师

Java,传奇的一生!

34970
来自专栏Java学习网

成为专业程序员的 6 个技巧

成为专业程序员的 6 个技巧 1.在你责怪别人之前,先检查自己的代码 先想一想自己的假设和其他人的假设。来自不同供应商的工具可能内置不同的假设,即便是相同的供应...

32360
来自专栏用户2442861的专栏

JAVA月薪两万的一些讨论

作者:匿名用户 链接:https://www.zhihu.com/question/39890405/answer/83676977 来源:知乎 著作权归...

36210
来自专栏猿人谷

如何系统学习Linux

linux太难用了!(一通鼠标点击,进入/etc) 学习linux,你忘记windows的思维方式了吗? 怎么安装软件阿?那一堆文件是干什么的阿? 学习linu...

63360
来自专栏java一日一条

4个费劲心思却走向编程地狱的陷阱

优化你的代码、创建编程抽象、编写跨平台的应用程序,几乎所有遵守这些戒律的程序员不出意外都拿着一等票去往了一个没有休憩时间,项目总能准时完成,代码库永远不会过时,...

9920

扫码关注云+社区

领取腾讯云代金券