说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

OpenFlow多级流表在云计算网络中的应用

HTML文档下载 WORD文档下载 PDF文档下载
OpenFlow多级流表是当前的热点话题,但缺少实际应用案例,本文中盛科张卫峰分享了OpenFlow多级流表在实际网络方案中的运用。该方案是基于SDN的性能优化方案,将影响网络性能的工作从服务器Offload到TOR交换机上。

编者按:OpenFlow多级流表是当前的热点话题,但目前缺少实际的应用案例,盛科基于SDN提出一种性能优化方案,将影响网络性能的一些工作从服务器Offload到TOR交换机上去做,将TOR交换机作为服务器网卡的一部分,并且该方案已经在实际网络中进行了部署。本文中,盛科张卫峰分享了OpenFlow多级流表在这个方案中的运用。以下为原文:


作者简介:盛科张卫峰,熟悉二三层路由交换、PTN/IPRAN技术、芯片设计,对SDN/OpenFlow技术也有深刻的研究和理解。著有《深度解析SDN》。新浪微博ID:@盛科张卫峰


先说个题外话

众所周知OpenFlow里面很多行为都是协议无关的,在很多人看来都是脱离实际地要求任意灵活,纯属瞎胡闹。比如要求流规则中至少匹配12元组,比如要求任意数量的多级流表,既难实现又找不到应用。但是事实上,它的要求是否合理,完全取决于你怎么去理解它。在讲正文前,先顺便聊一下这个题外话。如果你对OpenFlow标准的理解是:厂家的实现必须要能同时匹配12元组,必须要能支持任意数量的多级流表,必须要能在流表之间任意跳转,那我可以告诉你,这种要求是做不到的,也是不合理的,这并不是OpenFlow的本意,OpenFlow的本意在于要求你能满足各种实际应用的需求,场景一中需要匹配Mac,那你要能匹配Mac;场景二中需要匹配IP,那你要匹配IP。场景三种需要你先匹配Mac,再匹配IP,你要能做到;而场景四种要求你先匹配IP,再匹配Mac,你也要能做到。换句话说,公司要求你懂中英日韩四国语言,不是要求你同时能讲这四种语言,而是要求你碰到日本人能讲日文,碰到英国人能讲英文,碰到韩国人能讲韩文。

现有的纯软件Tunnel Overlay云计算网络解决方案

题外话说完了,再回头讲正题。尽管如此,就算是理性的人,也还是觉得难以找到OpenFlow多级流表的实际应用案例。今天我就来分享一个在实际生产网络中对OpenFlow多级流表的运用,这个实际生产网络就是IaaS云计算网络,已经在客户那里实际部署。

我们都知道现在最主流的IaaS云计算网络的解决方案就是纯软件的Tunnel Overlay,为什么最主流?因为灵活嘛,而且能解决问题。包括现在最火的OpenStack,使用Tunnel Overlay方式来组网的也很多,它在转发面的大概工作流程就是一个VM发送报文到vSwitch,vSwitch加上Tunnel Header(VxLAN或者NvGRE)后,从服务器网卡发出去,通过中间的物理网络,送到目的服务器上的vSwitch, vSwitch将Tunnel解封装后,原始报文转发到目的VM。如下图所示。


基于硬件的OpenFlow四级流表架构

纯软件Tunnel Overlay方案虽然灵活,但是有不同程度的性能问题(程度取决于每个云平台研发团队对它的优化力度),而且云计算网络中通常都会因为各种各样的原因,有非虚拟化的设备,这些设备如果要接入到tunnel overlay的网络中去,必须借助于硬件TOR交换机作为tunnel gateway。

盛科网络一直都在为各种应用场景进行SDN定制,云计算网络作为SDN的目前最重要的应用领域,自然也不例外。现在盛科基于SDN提出一种性能优化方案,将影响网络性能的一些工作从服务器Offload到TOR交换机上去做,从理念上讲并不是把TOR交换机作为物理网络的一部分,而是作为服务器网卡的一部分。该方案已经在部分客户网络中部署。现在我们来分享一下OpenFlow多级流表在这个方案中的运用。

在该方案中,云平台(如OpenStack)跟SDN TOR交换机紧密集成,通过Controller控制SDN TOR交换机的流表下发,来完成虚拟网络转发路径的建立。VM将报文送到vSwitch,vSwitch直接将报文加上Vlan通过网卡送到TOR交换机,TOR上查流表,去掉VlanTag,识别VM,进而识别Tenant,可选地,可以对VM或者Tenant应用一些策略(如限流,安全过滤),然后查表,如果是跨机架送到别的TOR,则加上Tunnel,经过中间物理网络,送到目的TOR,目的TOR剥去Tunnel Header后查表转发(仍然可以先应用策略),到了服务器上,vSwitch查本地流表(只需要维护本地VM信息)后,转发到目的VM。整个架构和报文流程如下图所示。

为了完成整个过程,盛科专门针对云计算的应用场景,利用交换机芯片内置的N-FlowTM技术,专门研发出一种四级流表的OpenFlow模型。


每张Flow Table完成的具体功能如下:

Table ID为0的功能:

  • VM识别(基于macSa);
  • 租户识别(基于macSa or Vlan);
  • Tunnel识别(基于Tunnel VniId);
  • 基于VM或者租户的策略应用
  • 传递metadata到后面
Table ID为1的功能:

  • 全局安全或者QoS策略应用
  • 决定下一级table跳转到2还是3
Table ID为2的功能:

  • 二层流表转发到Port或者Tunnel
Table ID为3的功能:

  • 三层流表转发到Port或者Tunnel

跟云平台的集成

云平台直接通过盛科提供的(或者用户自己写的)插件跟一个集中式的Controller打交道(当然用户也可以出于可扩展性的考虑自己设计分布式Controller),通过这个Controller的标准OpenFlow接口去控制交换机,大量的工作(抽象信息翻译成流表)是在插件里面做的。这种架构的一个好处是可以兼容不同厂商的设备,只要这些设备都能支持云平台所需要的OpenFlow的能力(比如多级流表),支持足够数量的Tenant和VM。

Controller跟TOR交换机之间的消息不仅仅有OpenFlow消息,还需要OVSDB消息,用来创建Tunnel(OpenFlow并不支持创建Tunnel)。

原则上这种架构可以跟任何云平台集成,我们以OpenStack为例来说明如何将多级流表SDN TOR交换机集成到云平台中。

如下图所示,计算节点上的OVS Agent跟盛科 插件之间只有Query消息,是OVS Agent主动发过来查询VlanId/TunnelId的。所有的流表项配置消息都仅仅发生在Controller和SDN TOR之间,将Neutron Server所需要控制的节点数量从Hypervisor的数量级降低到TOR的数量级,可以大大缓解控制面的压力,提高云平台的可扩展性。

总结

SDN时代的网络,不再是以设备为中心,而是以应用为中心,应用驱动网络变革。这就需要很多深度定制的工作,云计算网络尤其如此。OpenFlow协议设计了多级流表,一直以来我们都没看到有什么典型的应用场景。本文所介绍的这个例子,可以算是OpenFlow多级流表的一个绝佳实践,我们能看到这个方案带来的明显的优势。

  1. 它基于标准的OpenFlow接口,可以防止厂商锁定,只要厂商支持OpenFlow多级流表,且能支持相应的匹配字段和编辑动作。
  2. 让Server专注于计算,将流表查找、Tunnel加解封装、QoS、Security Group等网络处理功能都Offload到TOR,可以大大减轻Server负担,提升网络性能。
  3. 分布式L3 Gateway的设计,特别是将L3 Gateway做到TOR上,可以避免集中式L3 Gateway带来的single point failure的风险,并消除它的性能瓶颈。而且是将router功能做在TOR而非hypervisor,可提升路由性能。
  4. 将云平台需要控制的网络节点数量从Hypervisor的数量变为TOR的数量,降低了一个数量级,有效减轻云平台的可扩展性压力。特别是在VM迁移的时候,需要去更新的节点数量降低一个数量级。
  5. 可以很好地支持非虚拟化环境。
  6. TOR仍然可以对用户数据应用策略,进行监控,极大缓解了纯软件方案带来的网络不可视问题。
最难忘的Bug调试经历 LiveCode:让每个人都能开发APP的开发平台 17173总经理赵佳:媒体移动化需抓住三大要素 Django 1.6发布 支持持久数据库链接 如何优化单页面网站搜索引擎? TechCrunch国际创新峰会将于上海举行 极路由:一场由路由器引发的概念盛宴 14nm制程:三星64bit处理器 Exynos 6/S曝光 从Oracle到MySQL,余额宝云实践分享 从南水北调东线工程看物联网,大数据的另一面 不只是技术!成为IT经理必备的十大软技能 看看传说5亿行代码的Healthcare.gov网站的架构 如何走出选择PHP还是ASP.NET的两难境地? 你的设计够档次吗?分享25个奇异的404页面 百度LBS推Openmap战略:无编程经验者可通过拖拽制作个性化地图应用 百万用户时尚分享网站feed系统扩展实践 Twitter上市首战告捷的四大因素 大幕将启!MDCC2013移动开发者大会下周召开 TUP第30期:微软资深专家论如何用Visual Studio开发iOS、Android应用 [开源推荐]Riot.js:不足1KB的MVP客户端框架 研发周报:最难忘的Bug调试经历 NSA如何侵入Google和雅虎的私有数据网络? 飞天5K:开放比开源更有意义 MDCC之移动娱乐游戏峰会:手游金玩奖即将揭晓 开源巨人火狐浏览器:9周岁生日快乐! 感受OpenStack Summit香港大会 渣打科营中心:创建以技术为核心的企业文化 抱怨IT公司人才缺乏?留住现有人才方是正途 专访Esri中国区技术总监:打造新一代WebGIS平台 TIOBE 2013年11月编程语言排行榜:C#、Transact-SQL及VB.NET厚积薄发 透过KitKat,Android或与ChromeOS融合? (7)今夜狂放1000分,8:15结帐:)需要分的来吧:)前600分已经放出。。 小问题,恳请帮忙,在线等候! 如何实现两个数据库之间的实时通讯? 高分请教,如何用JAVA实现浏览局域网里的其他机子的目录。在线等待 主板上是USB1。0的接口用USB2。0标准的移动硬盘,有办法安装使用吗?(在线等候) 探讨一下JSP的多国语言实现 这样一个功能怎么实现(在线等待) 调用COM时出错~~~ 问答:仅知类D是由类B按某种形式派生得到的,举一例说明,D不一定是B的子类型。 小问题,帮个忙 刚用C#开发了一个游戏,大家多提意见!有分 关于插入数据的问题 请问:谁有Delphi 5.x分布式多层应用电子商务篇的下载地址, pdf格式 Applet嵌入HTML中的问题!急!急!急! 小小问题,散分100!!!!!!!!!!!!你心动了吗? 如何在程序运行时让用户选择按照哪一列进行分组? 文件合并问题? 帮帮忙 请教如何删除控件 圈点“英雄”,针砭实弊 谁能帮我解决IMail不能外发邮件的毛病? vb请教 如何设置remote_login_passwordfile为exclusive TScrollBox在隐藏滚动条情况下,如何用按钮控制其上下滚动?(在线) 高分请教:用VC怎样编写群发mail的程序? jsp 连 oracle 问题? 请教:ASA7.0安装后启动Sybase Central 4.0时出错".....内存错,该内存不能为read" 请教一个关于Javascript的变量能否在Asp中使用? 高分求解(有类似源代码都行)-处理桌面一个台球运动轨迹问题,方向,球速碰到桌边后速度减慢!进去就结束。 如何在SOAP中发布EJB? 请教各位高手:怎样在状态栏中加进度条? 散分! 关于progress control的小问题 如何传递文件名 求深入浅出MFC2附书源码。 大家帮个忙!! 明天过生日,散分! 使用内存查看 [分享]你的精神年龄是多少?进来测试一下! 以后的路给点意见 刚做的游戏,大家来看看 请问如何在一个窗体中引用另外一个窗体的对象? 挨T的都进来灌水聊天吧 当sql server某张表有变化时,VC+ADO写的程序能否去读数据库更新Listctrl?好像是触发器,如何实现? 刚做的游戏,请多多指点 win2000中,播放avi文件的问题 一些小问题! 为控件的ToolTipText属性赋值的时候怎么样能够换行? 怎样打开程序,看到源代码? TScrollBox在隐藏滚动条情况下,如何用按钮控制其上下滚动?(在线) 为什么就生生的得多出了一个空行??? 文根英张根硕尹恩惠李胜基申敏儿 明星小S郭德纲王菲 明星重口味雷人事件大赵薇执导电影《致我们终将逝去的青春》西游捧红龙套大妈 揭秘周星驰龙套血泪《那年冬天风在吹》宋慧乔赵寅成相爱有揭秘昔日情侣嫁做人妇为他人夫的明星平安女友朱洁静海量私密照曝光 当事人那些“剧红人不红”的清纯女星女星被偷瞄事件大集结范冰冰刘亦菲赵薇 当红明星童年囧照曝四位龙套大妈因西游意外走红 盘点星爷女星古装造型终级PK 谁才是真正的仙剧情反转曝董洁王大治相恋细节 难道董徐静蕾黄立行传已经结婚 亲密照曝光羡忆当年 明星清纯只能靠回味窦靖童身价500万预超王菲 海量学校黄绮珊林志炫辛晓琪齐秦 《我是歌手》人大美女翻译似赵薇 两会美女明星代表阿娇携韩国男友公开亮相 男方正脸曝光董洁被指才是小三 回顾董洁潘粤明生活人大美女翻译似赵薇走红 “冰美人”身19岁男生骑电动车坠河身亡空调维修8折优惠化学:删除了“化学与信息技术”“金50”成份股每周播报冬天到电野兔的真多想打新股持股市值要过万卖性感 恋上她便恋上她的糖潮孩是父母的审美扩散香菇蛋肉卷莎拉波娃成“明星女企业家”东莞财富脸谱:土豪很低调一个平凡的救援故事小施雨前日动手术尚未完全脱离危险女子围甲江苏平北京卖概念 用形状标注品牌个性《正义的重量》陈展连续两轮当选最佳小黄鸭漂流改期 等通知哦空载渣土车转弯撞死骑车女“吃人”的右转弯卖名气 大满贯成免费展销会
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘