作者像叙述一件稀松平常的事情一样讲述SDN,语言诙谐,见解独到。从SDN的起源讲起,简单介绍了SDN架构,并且列举了学习SDN过程中常见的问题,可以看出作者热衷于相关的八卦,喜欢从八卦事件中抽丝剥茧理出道理。整个文章虽然有点碎碎念的感觉,但不得不说,很实在!很有意思!
上篇:
大话吹出去了,不写不行了,唉,下午总结一下要写什么,发现自己什么都不会了,做了几个关键词,还算有些脉络,关于开篇的图片,会在文中解释一下和这个文章的关系,第一篇,先做一个回顾吧,熟悉SDN的兄弟请略过本篇。
开题,SDN,这个话题我是从2010年的时候开始听说,在2010-2012年那时候最火的应该是云计算和虚拟化,在2012年-2013年突然间SDN就火了,其实我们发现,整个行业在这几年里面,不断有新的概念出现,有的技术确实改变了世界,比如以太网,无线网,虚拟化等等,但是有的概念却始终局限在名词和科研的paper里面,云计算尚未冷却,SDN就开始踏上舞台,确实是让我感到意外,不过还好,近期看到一些媒体的文章,逐渐的也对SDN产生了更多冷静的思考,对于网络技术而言,我个人的看法是这样的:
(1)任何一门技术,软件和硬件,都需要具有对前代的继承和演进,都不是石头里面蹦出来的,只是在当时的环境下,没有适合发展的土壤而已。
(2)技术带来的革命,第一要从技术本身考虑,第二要从带来的商业利益去考虑,两者的关系有可能相互促进,也有可能相互对立,最大的可能保持暧昧。
(3)技术不能决定一切,行业是利用技术进行不断的革新和洗牌,但是不存在某些技术轰然倒地的情况,任何技术都是一个缓慢加速,逐渐成熟的过程。
SDN的定义,这里面就不重复了,参看ONF的这个link(https://www.opennetworking.org/sdn-resources/sdn-definition)
翻译过来叫做软件定义网络,其实我个人更喜欢把这个S理解成service,服务定义网络,如果用一个小型的园区网络去理解的话,最粗糙的概念如下:控制和转发分离,并且控制集中化,转发平面就是普通的交换机,提供连接server的端口,以前的时候每个交换机都是一个独立的个体,交换机之间运行一些协议什么的,形成转发表项,根据表项转发数据,要么是L2的MAC,要么是L3的IP,当然,在复杂的也有,慢慢来,但是到了SDN的年代,控制平面将会完全的集中起来,作为外置的大脑存在,下面的交换机会变得比较驽钝,所有的表项的生成,都将由大脑生成,下发给下面的交换机。
由此我们知道了SDN的几个组件:转发平面—-交换机/其他网络转发设备,控制平面—习惯上我们会说这是controller,控制平面和转发平面之间的协议,可以定义为支持SDN的协议,比较热闹的就是openflow了,进一步讨论,转发平面是否依据原有的转发表规则进行转发,基于MAC或者IP或者其他等等呢?这就有涉及到了转发表的结构定义,最近比较热闹的还是openflow,如此,一个SDN的雏形出来了,但是我们会发现,这个模型,不过是交换机的另一种实现方式而已,真真切切的谈不上是SDN,SDN需要灵活,需要和业务紧密结合才能发挥作用,从controller的角度,他要形成表项,下发给下面的交换机,那么他的表项是自动获取,还是手动配置?是根据有业务进行动态调整,还是根据模板可以灵活创建,这里面才是SDN的一个更重要的环节之一,这一点,就是软件要做的事情了,所以我一直觉得,SDN的精髓不仅仅在于控制和转发的分离,以及控制的集中,也不仅仅在于openflow的诞生种种,而在于业务,如何和业务挂钩,如何能够使用在现实的网络环境中来并且可以带来对现有网络的优化和提升,这才是SDN真正要做的工作,这也就是南向接口和北向接口的定义和概念。
对于SDN的起源,前段时间听了coursera的SDN课程,coursera是一个很不错的网站,可以锻炼英语,学习一些技术,更重要的都是免费的哦(https://www.coursera.org/),提到了很多SDN的前身,包括active network这样的概念,其实我觉得没必要扯的那么不靠谱,SDN本身最早应该还是要从ethane这个项目说起,
ethane(http://yuba.stanford.edu/ethane/)这个项目的发起者Martin Casado,也是后来nicira的CTO,本身是斯坦福的高材生,同时有属于Nick Mckeown的工作组http://yuba.stanford.edu/,(同时这个项目也得到了Scott Schenker,加州大学伯克利分校的教授的支持)我们可以理解为Nick这个牛X的教授,在牛X的学校里面带着一群牛X的人,发明或者说创造了SDN,创造了openflow,并且还有ONRC这样的组织,进而还有ONF这样的组织支持和跟进,SDN的概念诞生于斯坦福,但是这个理论是由来已久的,只不过长久原来一直没有在网络层面上这么热闹而已
对于SDN的发展,目前我觉得仍处于混战的状态,学院派,保守派,厂商,搅局者,看热闹的,打小旗儿的,趁机捞稻草的,什么样的都有,这个感觉特别像清末的时候,一声革命起,大鬼小鬼全敲门,所以,我对SDN充满期待,因为相信业务和基础架构的配合,一定会带来技术的革新和改变,同时,也要保持冷静,罗马不是一天建起来的,很多人叫嚣说以后传统厂商就完蛋了这样的说法,还是要慎重一些,传统厂家有他存在的道理,这么多年不会适应潮流,早就挂了,还能在SDN里面翻船,你牛,好,我直接收购你……快到碗里来。
八卦一下:为什么说Nick教授和斯坦福牛呢,我就举个例子吧,随便说几个sdn的初创公司,还算大家耳熟能详的
bigswitch
Guido Appenzeller
Guido is the Co-Founder and CEO of Big Switch Networks. Before co-founding Big Switch Networks, he was a Consulting Assistant Professor at Stanford University and head of the Clean Slate Lab
Nicira – 已经被vmware收购了
八卦一下这个名字,在Nircia的一个文档里,有这样一句话the company’s name “Nicira”,meaning “vigilant” in Sanskirt.—是梵语“警惕”的意思
Martin Casado
Co-Founder and Chief Technology Officer
Martin Casado received his PhD from Stanford University in 2007 where his dissertation work led to the technology on which Nicira is based. He received his Masters from Stanford University in 2005. While at Stanford, Martin co-founded Illuminics Systems, an IP analytics company, which was acquired by Quova Inc. in 2006. Prior to attending Stanford, Martin held a research position at Lawrence Livermore National Laboratory where he worked on network security in the information operations assurance center (IOAC).
在来看看contrail–被juniper收购了。
Ankur Singla, CEO. Ankur has over 14 years of experience in building world-class networking products and leading high performance teams. Prior to Contrail, Ankur served as Chief Technology Officer and VP of Engineering at Aruba Networks, where he played critical roles in the rapid expansion of team, products, and global businesses. Before Aruba, Ankur helped drive Juniper’s initial entry into and expansion of the Ethernet Switching market. Ankur received his MSEE from Stanford University & BSEE from the University of Southern California.
据Ankur说,Casado和他还是大学的同学,所以contrail和nircia在很多地方相像,或许真有些渊源。
八卦结束,有机会在写,需要沉淀一下,写的东西我会按照,技术,公司,适合场景以及个人愚见这几个方面下手,能学多少学多少吧。
下篇:
对于SDN的发展,目前我觉得仍处于混战的状态,学院派,保守派,厂商,搅局者,看热闹的,打小旗儿的,趁机捞稻草的,什么样的都有,这个感觉特别像清末的时候,一声革命起,大鬼小鬼全敲门,所以,我对SDN充满期待,因为相信业务和基础架构的配合,一定会带来技术的革新和改变,同时,也要保持冷静,罗马不是一天建起来的,很多人叫嚣说以后传统厂商就完蛋了这样的说法,还是要慎重一些,传统厂家有他存在的道理,这么多年不会适应潮流,早就挂了,还能在SDN里面翻船,你牛,好,我直接收购你……快到碗里来
这四个月里,其实对于SDN没有过多的关注,只能说偶尔关注,毕竟是很遥远的东西,对于我等还在传统行业乞讨的人来说,卖点东西养家糊口,解决现在的问题才是日常工作,大家都知道,SDNAP有一个QQ群,号码是279796875,现在大概有900人以上了,可见这个群有多火,请注意我说的是以人数作为判断依据,但是其实这几个月一直看下来,我觉得没有什么进展和火花,而且群里面的学生和行业人士都有,就带来很多认知上的错位,群里面经常遇到的问题是:
(1) 什么是SDN啊,谁能告诉我(请度娘)
(2) SDN来啦,革命开始啦(请度娘,看看辛亥革命用了多久)
(3) 安装报错了,谁帮忙解决一下,绝大部分是OVS和mininet(这类问题不错,确实值得探讨)
(4) SDN有什么方向可以研究的啊?
(5) SDN是这个不,SDN是那个不?
这段也参加了两次公开的讲座学习,一次是Google的工程师在清华讲课,我顺便听课,另一次是SDNAP组织的活动,Qingcloud的CEO做的技术讲解,尽管比较基础,但是可以开阔更多的思路,就借着如何学这个话题,谈谈如果我学SDN,我该怎么做,只是一点点建议,纯属杂谈,切勿全信。
SDN这么火的一件事情,究竟是什么,长什么样子,恐怕和前几年的云计算一样,每个人拉过来都是一套理论,但是究其根本,我想,无外乎以下几件事情
(1) 现有的网络不能适应业务的需求—-这是根本
(2) 新的技术可以帮助业务和网络需求的密切耦合,例如openflow等
(3) 传统厂商太狡猾,太恶毒,东西贵,使用SDN可以降低成本
(4) 新的玩家可以进入市场,改变行业的格局,从日前的初创公司可见一斑。
以上几件事情,不是本章的重点,在后面的好吧SDN系列里面我会逐一提出自己的看法,对于学习者来说,上述这些有些部分仅仅是谈资,或者说是眼红的动力,对于SDN的研究和学习,真的仅仅在起步状态,理智的看待SDN,一定要保持冷静的态度,不要以为革命了,自己就能摆脱传统,所有SDNer都在相信,SDN确实改变现状,但是,如果让你说说改变了什么,你可曾说的明白呢?进一步诡辩一下,作为学习者来说,为什么你说不明白呢,如果你说不明白,那就只能用上面的四个论点作为结果,而不是原因,那么恭喜你,你或许可以成为了网络产业的一种从业者—所谓的跟风者。
我猜测最核心的是,你们只是关注了SDN的S和D的部分,而不知道不了解N的部分,你们抓住了S的灵活,了解到D带来的机会(技术或者政治或者种种),却不知道N的基础,N的由来,N的未来,你们拿着以为是令箭的鸡毛,却不知道该指挥谁,结果D中间被勒住了脖子,变成了B,SDN就变成了???
先从openflow举个例子,翻看openflow 1.4 spec的目录来看,其实有很多部分,都是最原始的交换机原理,openflow的诞生,也是要打破传统的园区网络的转发规则,希望学生可以基于此能有所创新,所以如果你略微懂一点交换机的转发原理,在理解这方面的内容,的确不会很复杂,当然,在1.4之后,增加了更多的内容,多个表项也好,对QOS的处理也好,以及其他的action等等,从最简化的openflow实现来说,实际上就是在讲述一个传统的网络设备,路由器也好,交换机也罢的转发流程。
那么,如果你不先去看看现在的路由器交换机怎么工作的,怎么能说出来现在路由器交换机有哪些问题,需要openflow去支持和弥补呢?
我的建议如下,先列个list,问自己几个问题
第一:什么是交换机,路由器,防火墙(进而可以看看什么是IPS,Loadbalance,WAAS)
第二:对于交换机而言,什么是Vlan,什么是STP,二层转发的基本原理,mac table的flood,learning,aging?什么是端口捆绑,什么是私有VLAN,什么是二层安全,ARP欺骗,ICMP咋回事,LLDP又是啥
第三:对于路由器来说,什么是ARP,什么是IP,什么是routing protocol,什么是routing table,什么是forwarding table,什么是ospf,什么是bgp,什么是class of service
第四:什么是mpls,什么是mpls/vpn,什么是Trill,什么是OTV,什么是EVPN,什么是Vxlan
第五:一个传统的园区网是怎么连的,什么结构,什么设备,一个数据中心怎么连的,什么结构,什么设备,广域网是怎么构建的,流量规则是什么,防火墙的工作原理啥样子
第六……
上面说的这些名词,就是SDN号称要改变之前,现在网络中我们时时刻刻遇到的东西,加上每个产品的实现方法,运行机制,部署类型等等,就形成了目前的网络世界的基本轮廓,我还没有提到SPF算法,芯片结构等等
如果这些都不了解,拿什么去革命啊?
只有天天和这些东西打交道的人,才有资格吐口吐沫说:4k个vlan完全不能满足DC的需求嘛,你们厂家的万兆端口成本太贵了,白牌机很便宜,你们板卡上的TCAM容量有点小啊,我们用不到那么复杂的协议,但是你们还卖给我了,我不想要花那么多钱(问了这些问题的人,就去搞SDN了,比如Google)
所以,我强烈建议所有的准备学习SDN的孩子,踏踏实实的先去了 解一下现在的网络是什么样子,才能有机会知道网络遇到了什么问题,才有机会想到SDN能解决什么问题,你们懂软件,知道数据库,了解操作系统,对peocess那么熟悉,学网络就是分分钟的事情(单指最基础的了解),其实刚才讲到的那些,在Cisco,huawei,Juniper和H3C这些传统厂商的最基础课程里面都有涉猎,Google一下CCNA的教材,大把大把的,学起来到理解有个把月足够了,不需要精通,就可以在研究研究SDN的基础了,而当你们了解到了这些,才能知道什么需求,需求带来了什么挑战,挑战之后现在的厂商和网络设备为什么不能解决,如果他们不能解决,如果去改变—–这,才是SDN要解决的问题,或许SDN没法解决,但是可能TDN,QDN,什么鸟DN就会把这些问题解决掉了,这才是革命,革命是治病,而不是推倒重来,这也是openflow一直以来雷声大,但是芯片推出堪忧和雨点小的原因之一
那天我发了一个微博,原文如下:“你嫌弃菜刀钝了不好使,给你个金箍棒你又不会变成双立人,拎个烧火棍子就冒充肛肠科医生,能通么?供大部分不懂网络又迷恋SDN和openflow的在校学生参考,所谓万能,恰恰万万不能。”
稍微的冷静一下,做一个小学生的思考题,网络技术,就是要解决人们的需求,他要上网快,那就给他10M宽带,技术的演进和革新,都或多或少会有一些规律可以遵循,基本的套路无非是,以前的技术实现是这个样子滴(Vlan),我们可以用的很好滴(就几十个人七八条枪),现在我们有了新的需求(tmd好几千虚拟机和业务分区,没事还老漂移),你的需求解决不了了(VLAN4K),怎么办,Vlan还要飞扬过海到对端,那好吧,我们来个Vxlan。
任何技术的学习,都考虑一下What,这货是啥,Why,为毛出现,How,咋弄能行?SDN不是一套技术,却是一套思路和技术的结合,别动辄就说SDN解决了什么,到目前为止,他解决的只是一小撮-不好意思打错了,一小部分问题,这部分问题真的完全不能作为招牌,拿来革命,即便Google的B4如何如何,即便NFV如何如何,君不见ONF和ODL之间也心怀叵测?大牛厂商和开源社区也在IEEE以及IETF上争论不休?天下这盘棋,有些我们看不懂,先捡着看懂的拆开来慢慢看吧。
今天就说到这里,祈祷明天天气可以好一些,以后的话题,会围绕着前面这两次继续开始杂谈。
继续八卦时间:Google从2009年开始SDN,原因有这么几个:(1)业务激增,(2)设备太多,管理复杂,(3)厂商购买成本(4)保持业界技术大牛地位(6)对于一个广告公司而言,先扯淡的软件专家太多了(7)被斯坦福和伯克利的学霸们忽悠了。第六点和第七点有意思,你觉得呢?
转载自:KkBLuE个人博客@KkBLuE知行合一
声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。