“智囊团”亓亚烜分享:SDN的应用、实战与趋势

leny

2015年10月14日

核心技术

云头条,云计算领域的垂直媒体。云杉网络CEO亓亚烜,作为云头条“智囊团”成员,今日为大家在线分享了SDN的应用、实战和趋势。

分享人:亓亚烜博士,毕业于清华大学自动化系,国内最早从事SDN技术研究的学者。曾在国际会议上发表论文20余篇,拥有中国发明专利3项和美国发明专利1项,深耕网络安全及SDN领域近十年,于2011年创立云杉网络并担任CEO。

大家好,我是云杉网络亓亚烜,名字不好读,叫我yaxuan即可。今天主要跟大家交流下SDN与网络虚拟化的东西。希望多多提问,我会分享云杉的实战经验。

云杉网络主要帮助用户在云数据中心部署SDN解决方案,解决网络虚拟化、网络安全以及混合云管理的问题。

SDN的出现,源于2006年的Openflow技术。那时候第一次可以用API(Openflow协议)直接控制交换芯片上的流表,使得很多依赖复杂网络协议的应用都变得可以简单有效实现了。

SDN出现之前,网络行为的控制,需要通过网络设备上的控制平面实现,也就是CCIE们的考试内容。

SDN出现之后,控制工作转移到了软件上,因此效率大大提高。但要用Software代替(部分代替)以前网络专家做的工作,对Software的要求就非常高。

因此,SDN从一开始,核心就在控制器设计上,如何设计控制器成为所有的秘密所在。

记得当年Nicira做的控制器,Onix,就有很多有意思的故事:

1)这个控制器可以卖代码,但是100w美金起;

2)Google用了Onix;

3)曾经有一个持枪劫匪(据说是亚裔),入室抢走了Nicira的一台开发服务器。

控制器的价值和重要性可见一斑:)

从控制器的设计说起,主要是三点:1)控制器能控制什么?2)控制器能控制多大规模?3)控制器如何保证控制质量?

第一:能控制什么,决定了SDN能实现什么。

比 如能控制服务器上Hypervisor里的vSwitch,那么就可以实现虚拟机的隔离、安全等。如果还能控制接入交换机,例如ToR架顶交换机,那么就 可以控制物理及虚拟设备。如果进一步能控制防火墙、IDS、AD、甚至传输设备,那么NFV和DCI也就能实现了。

第二:能控制多大规模。

通常,规模不能小,没有数千个虚拟交换机,或者数十个物理交换机,控制器的意义就不大。因为,人也能做好这些事情。因此,常见的都是面向数据中心或云平台的大规模部署。

规模大了之后,控制器负载会极速增加,一个交换机在特殊情况下,有可能每秒钟会配置1000次(实际生产环境中的结果)。那么上千个交换机就会有百万次的配置可能。这对控制器的冲击非常大。

因此控制器一定要设计成多层次,每层次多集群的部署。否则遇到特殊情况,例如新上机柜,或者断电重启等,控制器一旦不能及时处理需求,那么会产生大规模的网络震荡,严重影响业务运行。

第三:控制器的质量。

这个其实跟控制论有关,就是要通过反馈,消除震荡。分布式系统里,有最终一致性的说法,有些类似吧。控制器每发一条指令(每秒可能发上百万条),都有可能失效。失效的原因是控制网络抖动,交换机处理不过来,或者设备不可用等,情况非常复杂。

要确保控制器发出指令和最终系统状态是一致的,就需要一系列的反馈装置。这些反馈节点通常是部署在Hypervisor上及Switch上的App。这些反馈装置一样需要高可用,通常采用多层次实现,非常复杂。

开发控制器这么多年,大部分时间都用在这里了:)接下来,我继续讲SDN应用。

前几天在硅谷跟Insieme和PlumGrid交流。SDN在硅谷的看法是,It’s done。也就是说SDN已经成熟了。创新空间在向上(业务)走,这也是云杉的发展方向。

这里总结下SDN的三类应用(都是硅谷验证过的)。

SDN第一类应用:网络虚拟化

就是给用户提供一个虚拟网络,也就是大家常说的virtual L2。这个用vSwitch,ToR等都可以做,VLAN,VxLAN都能实现。这个已经成熟。也就是说,就L2来说,各种解决方案都有了。但是有了virtual L2之后,就带来了两个问题:一个是网络服务问题,另一个是网络规模问题。

SDN第二类应用:网络服务

最近大家常讨论“上云”的问题。

两 种方法,一种是应用上云,就是将应用改写成CNA(cloud native application),这个不是SDN要解决的问题,需要各类NoSQL,Docker等大神来做。另一种就是如何将现有业务直接搬到云端,例如一个 网上银行业务,搬上去之后,还要满足合规性需求。

这 个难点在,现有业务通常都有网络服务,比如异构防火墙,以及所谓Service Chain的功能,但在Virtual Network中,这些功能的添加都变得非常困难。这里其实有很大的商业机会,云杉在做,一些传统安全企业也在做,硅谷则是类似 vARMOUR,PlumGrid,Embrane等在做。OpenStack中也有Service Chain的提法,但很遗憾目前还没能商用,并且很难说是因为技术问题。

最近VMware等也提到了micro segmentation的问题,其实从某种方面来说也是在将Service Chain的云端实现。

这里真正的创新,肯定不是用传统方法,具体需要很多努力才能真正解决未来的云中安全问题。

SDN第三类应用:网络扩展

这个问题最有意思。因为L2网络本身不能大,大了谁也吃不消,包括QFabric。凡是做大L2的产品,目前还没有看到在生产中部署设计最大规模(比如10000个万兆口)的例子。原因很简单,L2要广播,数学上不允许你搞太大。

但是,virtual L2其实可以做大,比如跨数据中心的virtual L2。做法就是,virtual

L2随用户的应用需求动态变化;同时结合vSwitch,ToR(VxLAN Gateway)以及SDN-transport,实现围绕业务的动态virtual L2。

最终实现的效果就是,在若干数据中心的Cloud Fabric (spine-leaf DCN + multi-channel DCI)实现成千上万个动态的virtual L2网络。每一个virtual L2网络的节点数不多(理性对待广播),但分布可以横跨多个数据中心,而且构建速度极快。

这样为用户带来的结果是:你不需要两地三中心,但你的每个业务都是两地三中心部署。

以上是从SDN最重要的三类应用的讲解。其中,第一个已经Done;第二个适合小公司创新来做;第三个需要跟大玩家一起搞。今天分享这些吧,希望能对大家有一点点参考价值,欢迎大家与我及云杉网络团队切磋交流。

问答环节:

问:我是搞SDN控制器开发和solution architect。关于刚才的分享有几个问题想请教下。第一个关于控制器,控制器有Proactive和Reactive两种方式,感觉你主要指的是reactive 是么?

答:Proactive是control命令,Reactive是监控(反馈)。Proactive系统和Reactive系统分开设计,不能有任何时序依赖关系。

问:这个没看明白。你是说Proactive和Reactive 打个比方,一个是主动rpc;一个是notification的意思么?

答:Proactive 包括Openflow命令,VLAN、VxLAN配置,Port管理等,这个都是自上而下,义无反顾的:)packet-in等,即使有,一定要 Hypervisor本地处理,不能进入Reactive环节。Reactive主要是做流表校验,流量统计等,反馈真实的交换机配置状态和运行状态给Controller。Controller根据Reactive的统计信息,React给交换机,这个是跟Traffic 转发完全无关的过程,就是要保证最终一致性。

 

问:这个Proactive和Reactive是针对控制器对交换机的流表下发模式吗?

答:不是,所有配置都是Proactive的。Reactive做校验以及一些其他重要功能,形成一个闭环。

问:请教下为什么CNA(cloud native application)应用不需要SDN呢?

答:CNA主要是开发者的工作吧,SDN在整个转化过程中,不是主要部分。

问:关于SFC,现在有两种倾向,一是用nsh sch做,一是裸包做,你觉得哪个比较合理呢?

答:我觉得Flow做靠谱,包做难度太大,莫不成把每台Hypervisor都变成防火墙?再加一个MIPS处理器?另外,在Virtual Network里,当信息足够的时候,未必需要传统的方式解决所有问题。

问:如果可以的话,云杉的控制器,大约每秒多少个flow?

答: 每秒处理1M指令,单台x86,普通配置即可,因为可以分层+集群、负载均衡做。压力最主要来自Reactive那边,是对Flow的全貌的获取和分析。 Proactive这边,本来就不复杂,而且还可以控制速度。一层主要过滤统计信息(来自Reactive),二层做分析。二层控制器是作为一个 Configuration Tool 就是Mgnt层面的。所有Mgnt都在第三层,第二层在每个数据中心部署,最底层在每个Rack或Server部署。

Related Posts

K8S的SDN容器网络解决方案及其价值

SDN in China

2019年1月21日

核心技术

关于容器网络的解决方案业界已经有较多的讨论,笔者无意继续赘述。本文从K8S的网络实现入手,重点阐述SDN再容器网络中的应用价值。K8S及其网络模型体现了鲜明的解耦设计思想,采用SDN技术实现K8S容器网络,并与相应的生态组件形成SDN监管控一体化解决方案,可以更好地提高整个系统的运营水平,更有效地提升企业的核心竞争力。

Read More

SDN云网分析中的服务拓扑与业务网络

SDN in China

2018年11月21日

核心技术

SDN云网分析基于服务拓扑和业务网络两个视角对数据中心的业务应用进行相应的用量、性能、回溯、安全等分析,是实现SDN白名单模式的细粒度网络与安全整体解决方案部署与运维自动化的基础和保证。

Read More