OpenFlow – 打造弹性化的可控互联网

Sina WeiboBaiduLinkedInQQGoogle+RedditEvernote分享




OpenFlow – 打造弹性化的可控互联网

2012的故事

2012年的某天,你跟往常一样起床,打开电脑,却发现无法登录到邮箱、无法连接到公司的VPN网络、无法订购任何东西……,你会发现一切都简直跟世界末日一样,离开了网络,现代社会根本无法正常运行。这并不是可笑的无根据的幻想,如果世界末日真的来临,摧毁互联网无疑是最直接有效的办法,而现代互联网并没有我们想象的那样鲁棒。

从上个世纪70年代初,互联网在短短不到40年时间里已经发展成为这个星球上不可或缺的基础设施。然而由于一开始的设计并没有考虑到后来互联网的规模会如此庞大、承载的应用会如此复杂、地位会变得如此重要,现代的互联网在过重的压力下已经凸显出太多亟待解决的问题。互联网太危险,恶意攻击、病毒、木马每年造成上千亿刀的损失;互联网太脆弱,无标度(Scale-free)的特性让整个网络可以在精心设计的少数攻击下即告崩溃;互联网太随意,p2p等应用的出现一度造成各大ISP网络堵塞,严重影响传统正常的访问;互联网太迟钝,现代臃肿的路由机制不能支持快速的更新,即便发现问题也无法快速反应;互联网太局促,IPv4的分配地址已经捉襟见肘……

这一切的问题都隐隐的指向了互联网这个庞然大物最关键的软肋——可控性。缺乏有效的控制措施让互联网这个为服务人类而设计的机器,正在逐渐演变成一头臃肿而暴躁的凶兽,挣扎着要摆脱人类所施加的脆弱枷锁。

下一代互联网和GENI

为了解决当前互联网的问题,不少国家都纷纷提出了下一代互联网计划,代表性计划有美国的FIND(Future Internet Network Design,未来互联网网络设计)和GENI (Global Environment for Network Innovations,全球网络创新环境),欧洲的FIRE (Future Internet Research and Experimentation,未来互联网研究和实验),中国的CNGI-CERNET(China Next Generation Internet)。所有这些计划参与者大都是各个国家产、学、研顶尖的机构。

这三大计划中,CNGI-CERNET主要是研究在IPv6体系下的新一代网络;而NSF支持的FIND计划计划在不受当前互联网的制约下提出未来互联网的需求,从2006年到2014年分三个阶段主要致力于五个问题:是否继续采用分组交换、是否要改变端对端原理、是否要分开路由和包转发、拥塞控制跟资源管理、身份认证和路由问题。FIND计划最主要的成果之一就是GENI——一套网络研究的基础平台,同时FIRE计划跟GENI项目合作也非常密切。GENI计划的两大任务是为最前沿的网络科学工程领域革命性研究开路;刺激和促进重大社会经济影响的奠基性创新的出现;围绕这两大任务,GENI致力于打造下一代互联网的虚拟实验室,为研究者提供验证创新的架构、协议的灵活、可扩展、可配置的实验平台,并促进学术界和业界的相互合作。长期以来,缺乏合适的实验平台让各界的专家学者们伤透了脑筋,PlanetLab的种种局限已经不能满足广大researcher越来越令人fz的需求了。

毫无疑问,GENI的目标将让每个网络研究者为之着迷和激动,一套完全可控、可定制、大规模的网络试验床,对学术界将意味着大批的顶级paper,对业界意味着大量的新标准、新协议。

OpenFlow的前世今生

GENI的好处虽多,但要部署这个平台无疑是一件太过昂贵的事情,于是一个自然的事情就是在目前现有的网络下,能否省时省力的干好这个事情?

很自然的想法,如果我能控制整个Internet就好了,而网络中最关键的节点就是交换设备。控制了交换设备就如同控制了城市交通系统中的红绿灯一样,所有的流量就可以乖乖听话,为我所用。然而现代的交换设备被几家巨头垄断,开放的接口十分有限,能做的事情也十分有限。如果能有一套开放接口、支持控制的交换标准该多好?OpenFlow应运而生。

最初的想法其实十分简单,无论是交换机还是路由器,最核心的信息都存放在所谓的flow table里面,用来实现各种各样的功能,诸如转发、统计、过滤等。flow table结构的设计很大程度上体现了各个厂家的独特风格。OpenFlow就是试图提出这样一个通用的flow table设计,能够满足大家不同的需求,同时这个flow table支持远程的访问和控制,从而达到控制流量的目的。具体来说,OpenFlow的flow table中每一个entry支持3个部分:规则,操作跟状态。规则无非是用来定义flow,OpenFlow里flow定义十分宽泛,支持10个域(除了传统的7元组之外增加了交换端口、 以太网类型、Vlan ID);操作就是转发、丢弃等行为,状态部分则是主要用来做流量的统计。在此基础上最关键的特性就是支持远端的控制,试想,如果我要改变entry就必须跑到交换机前重新编程写入得多麻烦,而且如果我想获知网络的实时状态咋办,有了统一的控制机制,我们的网络才变得真正智能可控起来。OpenFlow的控制机制也十分灵活,感兴趣的同仁可以参考NOX。

好了,有了这个标准,只要大家以后生产的交换设备都支持,那么学术界以后能做的事情就太多了,以前YY无数次的梦想终于开始变成了现实。比如我们可以在正常运行的网络中自己在定义一些特殊的规则,让符合规则的流量按照我们的需求走任意的路径,就仿佛将一张物理网络切成了若干不同的虚拟网络一样,同时运行而又各不干扰,我们可以轻而易举的测试各种新的协议;以前要做什么处理,需要考虑到具体的拓扑结构,考虑到box的先后顺序,现在好了,通过定义不同的flow entry就可以任意改变流量的运行策略,这也很好的为解决移动性问题提供了便利(一个著名的demo是笔记本在不同交换机之间切换,虚拟机在两地之间切换,运行的游戏不受影响)。从这个意义上说,OpenFlow将传统的物理固定的硬件定义互联网改造成为了动态可变的软件定义互联网(software defined networking)。而一个软件定义的可控的互联网,除了更加灵活以外,毫无疑问,通过恰当的控制算法,将大大提高网络自身的鲁棒性、运行效率以及安全性。

目前学术界OpenFlow主要是stanford、berkeley、MIT等牵头的研究组在推动,而业界据说包括Google在内的几大巨头已经纷纷参与其中,最新的版本1.0协议已经发布。牵头人Nick Mckeown曾在Sigcomm08上做过专题的demo,后续这几年仍有不少的相关工作在高水平的会议上发表。国内据说清华大学已经有研究机构参与进去。

Nick Mckeown这个人十分有意思(主页在http://yuba.stanford.edu/~nickm),现任standford的AP,从他本人提供的简历就可以看出,Nick同学跟业界关系十分紧密,phd毕业两年就创办了公司,还参与了Cisco的项目,后来新公司卖给Cisco(Cisco这种模式很不错,有兴趣的同仁可以搜索过往案例)。笔者有幸在某次国际会议上碰到真人,给人感觉是十分的humorous且energetic的。Nick同学在推OpenFlow的时候明显十分重视跟业界结合,基本上是一边做,一边拉生产商的支持,很重视做demo,很早就在stanford的校园网中部署了OpenFlow,做的差不多了再提标准,再做宣传就事半功倍了。他的这种发展模式也十分为笔者所推崇。

最后的战役

OpenFlow的出现无疑给现有的交换市场带来了新的巨大的商机。网络行业发展到今天,垄断已经十分的严重,许多年来,交换机制造商已经麻木于每天忙碌提高性能的目标,偶尔做点小工作,支持下出现的新的需求。而OpenFlow创造了一块前所未有的大蛋糕,能否抓住这一机遇,不夸张的说是重新瓜分市场的生死之战。目前Cisco、HP、Juniper、NEC等巨头已经纷纷推出了支持OpenFlow的交换设备,不仅有固网的,移动互联网领域也相关产品开始试水。从另外一个角度看,市场的重新瓜分,新需求的出现,也会给小规模的生产商带来一线生机,对于新出现的厂家来说,这也许是能争得一席之地最后的战役。

相关资料

官方网站见http://www.openflowswitch.org,目前有软件版本、netfpga版本可供使用,支持的交换设备相信很快就可以能够买到。

(4个打分, 平均:5.00 / 5)

雁过留声

“OpenFlow – 打造弹性化的可控互联网”有25个回复

  1. cls 于 2010-11-07 4:26 下午

    好文章

  2. jj 于 2010-11-07 6:34 下午

    收到过一个邮件,听起来不错:

    We are starting to distribute Pica8 Open Source Cloud Switches :

    http://www.pica8.com/

    Especially, to have a better overview of the OpenFlow technology, I
    would greatly appreciate to invite you to a further reading of the
    presentation entitled “FI technologies on cloud computing and trusty
    networking” from our partner, Chunghwa Telecom (Leading ISP in Taiwan)
    :

    http://www.asiafi.net/meeting/2010/summerschool/p/chu.pdf

    Moreover, to have a better overview of the specifications :

    a) Redundant power supply :

    We have a new platform 3295 (~3k USD), 48x1GE + 4×10 GE with dual
    power supplies coming up in January.

    b) Stacking capabilities :

    Pronto 3295 has 4 x 10 Gb uplink, which could be connected to Pronto
    3780 (~12k USD), nonblocking 48-port 10GE switch. Totally 12 Pronto
    3295 could bind together to construct totally 576 ports without
    blocking.

    c) Terms of support

    We provide different support service. Email support will be 2000 USD
    and jump-start engineering consulting and troubleshooting assistance
    will be 50K USD per customer.

    d) Integration in existing network

    The Firmware is based on an Open Source Carrier-Grade Linux Network
    Stack stack that includes L2/L3 management for VLAN, LACP, STP/RSTP,
    LLDP, OSPF, RIP, static route, PIM-SM, VRRP, IGMP, IGMP Snooping,
    IPv6, Radius/Tacacs+ as well as OpenFlow 1.0

    e) NMS/Fault Management/Service provisioning integration

    OpenFlow/Software Defined Networks :

    http://www.thequilt.net/meetings/GENI%2520WKSP/GENI%2520Workshop%2520Presentations/OF-intro-Quilt-workshop%2520(new)%2520-%252016%2520July%25202010.ppt

    f) Real MTBF

    46410 hours

  3. 青云浮水 于 2010-11-07 7:52 下午

    意淫而已

  4. jkdo 于 2010-11-07 8:12 下午

    与目前已经获得广泛支持的VPN、TE、QOS等相比,有何本质不同?不解。

  5. 理客 于 2010-11-07 11:56 下午

    几年前国内863中也有类似的项目。因为IP网络的高速拓展,仅仅在实验室模拟可能难以满足将来如果大规模更改网络基础协议架构的巨大风险,所以希望在实际网络中的大量设备上留一小片试验田做实验,既不影响商业网网络运行,又能对基础协议架构进行实地trial,比技术问题更大的是运作模式能否被大部分vendor接受的问题

  6. xueruoyun 于 2010-11-09 8:40 下午

    03年就被提出来了,即所谓的流路由器,后来很快被淘汰了,这个不太靠谱

  7. slopover 于 2010-11-11 8:24 上午

    很早就了解这个内容,但好像一直只是小打小闹

  8. 疾风 于 2010-11-12 5:43 上午

    不相信可以替代。
    也就只在数据中心内用用而已。

  9. Yang 于 2010-11-12 11:44 下午

    话说回复“所谓的流路由器”的同学,您真的看文章了吗?

    简单的说OpenFlow的目的是在实际的网络上用到的路由和交换设备上允许研究人员跑一些实验。目前都是自己机器上跑simulation或者假设一个小型的testbed,跟真实的网络比从规模到topology到traffic model都差太远了。

  10. maygarden 于 2010-11-30 6:50 下午

    好文章
    是楼主自己写的吗?
    牛人啊

  11. qiuxiaofeng 于 2010-12-22 11:54 下午

    Openflow 通过集中的controller实现对交换机flow talbe的可编程,安全、扩展性会是个问题,在云的内部用还可以,对互联网上大量细粒度的flow控制可行性方面还需努力。
    在互联网上没有一个统一的算法,而依赖Openflow对交换机编程来调度flow,是不是和三层上不用路由,都用流量工程一样呀,能行吗?
    特别不理解,为什么允许packet通过controller转发,看着象当年ATM和IP融合时的过渡方案。
    看来,局部的优化,Openflow还可用,但如题中所说”打造弹性化的可控互联网“只有Openflow怕是不够的,如果真要实现programmable,还是需要增加新的控制协议(象信令一样)

  12. 清华土著 于 2010-12-24 2:31 上午

    支持楼主的文章,金玉良言之后,我接着扔点儿砖吧。

    1)最初,OpenFlow以交换机的形式出现在stanford一伙人的实验室里,后来又部署到了他们的楼里。OpenFlow提供了基于包头多个域(而不仅仅是mac或IP)的交换方式,因此被认为细粒度,且无所不能。

    2)稍后,吞吐和容量等瓶颈出现。于是有了基于NetFPGA的实现(ancs’09),也有了一些工业界结合的OF switch(HP, NEC, J/C)。在吞吐不是问题的情况下,新建连接速度(受controller限制)和flow table的size始终困扰OpenFlow发展。

    3)稍后,flow table size的问题通过两个思路解决,一是使用multi-table(openflow spec 1.1),通过pipeline来解决指数及增长的size;二是使用reactive+proactive的双重模式,分布查找+动态加载(sigcomm’10)。个人以为,问题离解决还早,因为诸位OF的仁兄还停留在TCAM的空间上想问题。

    4)同时,集中控制端的Nox发展也在进行。最早的controler是用于校园内一个building的,之后的Ethane/Nox(sigcomm’07)拓展到了enterprise level。也有一个Nox用于data center (基于VL2,sigcomm’09)的讨论,但要求10K机器使用多达600+的controller,且aggregation的交换层流表有很大局限。个人认为,DC中的OF应用还有几个核心问题要解决。

    5)近期,Onix(OSDI’10)通过DHT存储Network Information Base (类比一下,RIB–>NIB),完成了一套internet scale的部署方案。由于管控粒度在不同scale下面变得不同,可以看出OpenFlow的网络功能越来越接近现有internet。但OpenFlow仍在尽量保留其全局可控性以及first-hop附近的细粒度可控性。个人认为,痛苦而漫长的trade-off仍在进行中。

    6)假如,这种trade-off最终收敛了,i.e. openflow spec 2.0最终成行了,那么OpenFlow确实能带来相当大的变革。从大的讲,在全网领域,基于OF的FlowVisor(OSDI’10)可以提供互联网分层,在同一物理拓扑的网络提供不同逻辑拓扑的交换;从小的讲,参考OF技术而实现Open vSwitch已经达到了商用水平,提供了虚拟交换的多层管控机制(www.nicira.com)。

    7)个人结语,OpenFlow的研究是创新和奔放的体现,虽然有圈钱的企图(试图说服大辽给400所大学安装openflow),有炒作的嫌疑(sigcomm,osdi的大肆圈占),有对现世的妥协(无止境的各种trade-off);但是,OpenFlow近8年来一直坚持的理念,一直更新的meeting notes,一直递增和开放的代码,一点点build出来的各种小板子,一个个精彩的demo,都是要远远大于之前“虽然”里面的东西的。

    在大宋,也有几个人在这么坚持。

  13. 陈怀临 于 2010-12-24 7:30 上午

    这个Future Internet Tech的专题非常好。我们一定要坚持写,发表评论。最后弯曲评论可以荣誉出品,出专辑。

  14. Will Chie 于 2011-03-01 11:21 下午

    根据现在的趋势,是不是可以把NGFW中的APP-ID和USER-ID的概念也加进 flow table中?

  15. ABC 于 2011-03-02 7:41 下午

    控制和转发分离是趋势,我觉得在某个中东小国找个试验田是没问题的,比如巴林或阿联酋。看看效果。

  16. Jie 于 2011-03-31 5:28 上午

    跟802.11里面的Access Controller + Thin AP一个道理.
    只不过OpenFlow还是理论阶段, CAPWAP已经被客户接受.
    一直不喜欢capwap, 因为它破坏了网络的架构, 要把所有的80211报文全部集中到AC上处理(运营商的理由是这样好计费啥的).
    15楼上的对, 控制和转发一定会分离, capwap有三种操作模式(local, split, remote)
    个人非常喜欢split模式(跟openflow差不多了), 把每个AP的控制报文送到Controller统一处理, 数据转发在本地完成, 这个即不破坏现在的网络结构, 又能做到统一管理.
    一开始对capwap抱有怀疑态度的, 总拿它跟snmp相比. 细细想来capwap还是不错的.
    有兴趣研究openflow的, 先拿capwap练练手吧
    http://www.tektalk.org/2011/03/09/%E5%BC%AF%E6%9B%B2%E6%9C%BA%E4%BC%9A%EF%BC%9Aaruba-networks/

  17. 谢建平 于 2011-04-10 5:22 上午

    作者说的很对,为了解决当前互联网的问题,不少国家都纷纷提出了下一代互联网计划,代表性计划有美国的FIND(Future Internet Network Design,未来互联网网络设计)和GENI (Global Environment for Network Innovations,全球网络创新环境),欧洲的FIRE (Future Internet Research and Experimentation,未来互联网研究和实验),中国的CNGI-CERNET(China Next Generation Internet)。所有这些计划参与者大都是各个国家产、学、研顶尖的机构。但补充一点,工信部十进制网络标准工作组代表中国国家成员体参加了ISO/IEC JTC1/SC6WG7 “未来网络”的工作会议,其中我与张庆松仼未来网络命名和寻址方案编辑,并己起草了:未来网络技术报告-问题陈述和要求 第2部分:命名和寻址”,并经入流转程序文号为:6N14581 此文观点之一:认为未来网络不一定依靠IP网络,而是一个电路交换和分组交换的混合网络。详见www,em777.net

  18. bigrong 于 2011-05-11 7:48 下午

    老韩昨天把他写的openflow的文章发给我看,非常感谢他能看得起我,投入实业之后我才发现自己半瓶子醋咣当的厉害。看了这篇写的很好的文章,激起了我对技术废话的想法,就再废话几句,然后继续开工干活!
    我觉得类似Open Flow的想法从包交换刚出现到今天已经有多次了,之前是协议层面,今天是协议加开放编程接口(类似TCL在测试编程领域)在ATM、QoS领域和MPLS领域都有过多个类似的东西,具体名称由于时代久远我就基本上记不住了。比如MPOA?比如Diff Serv里的dsvp还是啥,都是号称将路由选路的功能与承载平面分离。
    但是基本上都没有成功过。华为当年还做过类似的东西在核心网上。几乎所有的大的网络厂商都去支持,我觉得新厂商是为了支持有机会,老厂商支持为了应付客户的需求。但是这几轮下来我觉得看了没有丝毫的兴奋点。
    所有的人都在说互联网有问题,要去解决。但是我们发现互联网发展到今天其根本精神一直没有变,可能是产业的原因、历史遗留的原因。也有我认为是很根本的原因。所以我们今天看到实际上互联网不断涌现新的技术,但是本质上是一个在基础核心精神下的打补丁的过程。
    我悲观的认为所有革命性的技术,除了IPv6因为地址空间确实不够需要进行升级以外,可能都不会有真正革命性的出现。当然如果把1Mbps=》10Mbps=》1Gbps=>100Gbps认为是革命性的技术的话,另说。
    核心还是互联网的商业模式,以及整个社会对它的期待!
    Open Flow可能会在一些领域里用用,比如无线啊、3G啊或者一些相对窄的领域,但是普适领域里会是一个新的故事而已,还会被遗忘。就像今天我们更多做的配置是VLAN,Default Gateway,ACL,如何防范DHCP或ARP欺骗。昨天和伙伴交流他之前做的酒店网络里有没有双核心,多链路上联,跑生成树并且做链路trunk的?他说没有开始打标的时候还会弄得很漂亮,后来客户就会裁减费用……我看低成本让客户用好用、够用、稳定的网络还是关键。
    上周替朋友给一个公司主持发布会,那家公司叫做飞鱼星。之前和他们marketing的人交流时,他们说他们的上网行为管理路由器设计时遵循了上网行为管理的2、8理论。我当时很纳闷儿,虽然很长时间不碰技术,也确实不知道什么叫2/8理论,莫非我很孤陋寡闻。后来听该公司董事长,创始人周龙说,所谓的2/8理论是指,80%的用户只用20%的功能。我觉得这话极度靠谱!

  19. 老韩 于 2011-05-11 11:01 下午

    飞鱼星我是一直没机会接触,其实很佩服他们的想法和做法的。包括这次他们的转型,角度找得也挺好的。有点像曾经的深信服。

  20. OpenFlow 于 2011-05-13 7:23 上午

    斯坦福的同学们真能折腾,居然已经有两帮人成立了两个公司来搞这个openFlow.其中一个
    http://www.nicira.com/
    Nick Mckeown同学赫然在列,而且是
    Co-Founder

  21. 陈怀临 于 2011-05-13 7:44 上午

    不错。另外,赫然发现Juniper的Robb Enns也去了。我的老熟人呀。在那里做VP E。Robb,白人,人还是很不错的。很nice。

  22. 三千大千世界 于 2011-05-13 8:11 上午

    “从另外一个角度看,市场的重新瓜分,新需求的出现,也会给小规模的生产商带来一线生机,对于新出现的厂家来说,这也许是能争得一席之地最后的战役。”

    有搞头啊~,机会来了:)

  23. huhu 于 2011-06-14 3:05 上午

    非常好,我在push 进去

  24. ben 于 2012-04-20 12:08 上午

    google将网络分为 服务用户的网络 和 内部IDC互联的网络,运行openflow的是 内部IDC互联网络,解决IDC间数据传输不可控的问题; http://www.wired.com/wiredenterprise/2012/04/going-with-the-flow-google/all/1;
    —在企业内部网络使用,还是有一定价值的;

  25. Jie 于 2012-04-20 1:07 上午

    当然, OpenFlow在企业网络实施有先天性的优势. 这回看做WLAN的了, 看看谁先与有线网络整合. 做WLAN的Aruba, AeroHive在这一方面都有一定优势, 就是看谁反应快!~