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

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仍然可以对用户数据应用策略,进行监控,极大缓解了纯软件方案带来的网络不可视问题。
自动记录应用软件工作时间 -VB资料 自动卷动TextBox -VB资料 自动开始上次关机时关闭的应用 -VB资料 自动装入注册设置 -VB资料 自己编程模拟 MouseEnter,MouseExit 事件 -VB资料 走进VB6啃一块骨头 做成一个时间限制的测试版 -VB资料 PHP中利用jQuery实现SWF图像上传和裁剪 VB.NET或C#将DataSet快速导出到Excel中 HashSet的equals和hashCode重写问题 PendingIntent实现原理和代码 IntentService实现原理及内部代码 AsyncTask实现原理和内部代码 Neither user nor current process错误 ListView的右边滚动滑块启用方法 Live Wallpaper动态壁纸开发 控制软键盘显示和隐藏 设置Activity大小不再全屏原理 Android面试题,看看你基础如何? Android Canvas绘图抗锯齿解决方法 Android xliff和字符串资源 android.hardware.USB类介绍 Android开发经验谈之应用间数据共享 android_asset这个URL详细使用方法 Android 2.3系统自带高清UI图标下载 设置ScrollView滚动条的颜色 WakeLock使用方法示例代码 Concurrent并发库常见问题总结 Android数据库SQLite性能优化技巧 Android开发之Java设计模式基础篇 Android开发之Java设计模式入门篇 我想在运行时把form里面的所有控件缩小一半(控件很多,不想一个一个设),该怎么办? c++builder6快出现了。散分!!!!!!!!!!!!!!!!!!! 如何在程序中插入 EXCEL表格 我是个菜鸟,我这个问题这么这么的简单,以经在CSDN上问了好多好多天,为什么就是没有人会帮我解决? 急,所以到谁圆问一下,.dwg的文件是什么格式,用什么打开,谢谢! 一段读串口的代码有问题,高手帮我看看 紧急求救!!!怎样用C++Builder在链接服务器中创建一个表呢?SOS 特惠虚拟主机:dtp.51.net! 想把一系统内存块拷贝到位于D3DPOOL_DEFAULT的Surface中,怎样做更快?谈谈你的经验吧 在msdn中我看了一下午关于枚举的可就是不明白他到底在什么情况或者处理什么情况的时候用? All-in-Wonder Radeon 是不是不支持 Real Producer???? 用ACCESS设计了一个报表,在VB中如何调用? 支持ASP、PHP高迅特价主机:(推荐)dtp.51.net 套接字问题再次提问 C#参考文档要的举手啊! 怎样做服务程序? (在系统后台运行) TComboBox的text能否设为只读? 站点属性中“应用程序保护”有三个选项,分别是---低,中,高。有什么区别吗?安全性有什么不同?为什么有的isapi程序必须设置成低才能正确执行啊? 怎样才能使Web页上的ACTIVEX控件自动下载注册? ADO 与 DATA MODUAL 怎样判断一个文本文件中的数据。 绝对的诚意邀请高手加盟 请问邮件服务器,如何用java实现,最好有源代码,谢谢了,急 急贴:>>>>>>>>>>>>>>>>>>>>>>>>>>这里有英语好的网络专家吗? 关于java中的画矩形 哪里有将股票数据转换成数据库格式的工具? 从哪里能找到用opengl绘制三维图形的源码?基于unix下的。 asp 怎么判断客户端的操作系统还有屏幕大小什么的? 卡在了一个错误里出不来,求救! 谁知道??????求救~~~~用asp操作注册表,从注册表中删除指定的主键! 何处能找到用opengl绘制三维图形的源码?基于unix下的 谁有多种字符窜转换的方法或代码呀? 用JBuilder5做的数据库应用程序怎么打包? 我的机器上没有装outlook,当我点击mailto时,就直接链接到hotmail的邮箱,怎么回事那 请问我在一个窗体里拖动了十几个ADODC控件,启动时很慢请问我该怎么样 怎样调整图片适应"picturebox"大小 请问那位大哥有求切线的C程序。 关于赵薇着装的讨论可以停止了 怎样远程连接安装在Linux 上的Mysql数据库? 谁能帮我解压缩从huizen.dds.nl/~roalt/h263.html下载的 H263软件 真诚的希望你加入振兴软件产业的 事业中来 两个函数之间变量可以共享吗 拷贝ACCESS 库 请教高手(关于数据结构)的一个问题 关于Rundll32.exe程序的问题 播放AVI动画的问题 c#和asp.net有什么关系? 串口打不开怎么办? 请问各位大虾,怎样在java里打开一个IE窗口。 网络问题! 我的浏览器怎么了? 特征X射线产生的机理是什么? x射线荧光光谱仪有辐射吗 铝丝是什么东西?铝丝和不锈钢又有什么区别呢? 不锈钢酸洗后为何表面发黑 广东省长城304不锈钢矩形管比重、价格各多少? 用肉眼怎么区别铝和不锈钢最好能立刻就看出来 不锈钢酸洗后出现黑色怎么回事 浓硝酸能使活泼金属(如铝铁锌镁)发生钝化.为什么是错的?还有…用浓盐酸如何鉴别浓硫酸和稀硫酸. 太空铝和不锈钢,有什么区别,价格一样吗. 简述特征X射线产生的机理? 浓硝酸和铝反应的化学方程式.除了钝化之外还有么?生成什么? 304不锈钢螺丝做过钝化处理后,户外盐雾测试能达多长时间 求各种材料的比重,如铜,不锈钢 不锈钢钝化工艺 不锈钢(SUS302/303/304)螺丝或螺栓,清洗后生锈问题怎么解决?用什么钝化液呢? 铜,铁,不锈钢的比重是多少 不锈钢的比重是多少? 304不锈钢螺丝做钝化后盐雾可以达到多少小时? 什么就201半铜不锈钢装饰管,201与201#不锈钢有什么不同? 不锈钢抛光处理和钝化处理区别,请高手解答并请告抛光处理和钝化处理的基本工艺流程 X射线荧光光谱仪测试时对样品是否有要求测试样品是否需要为单一相或均质什么的.假设我的样品里面有高分子部分和无机物部分相互交错规律排列,测试结果是否会有影响?若样品里面有晶体 不锈钢钢管的酸洗配方硝酸,氢氟酸的配方比例,及各自作用? 为什么奥氏体不锈钢要求进行酸洗、钝化处理 X射线荧光光谱仪 检测标准作为生产用设备,到计量院去检测时,计量院采用什么标准?或者说有哪个标准明确规定了该仪器的检测周期? 酸洗是否会造成材料腐蚀 不锈钢钝化处理 如何分辨铁.铝.不锈钢没有对比物 不锈钢管为什么要酸洗 410不锈钢加硬是否可以钝化处理 不锈钢弹簧怎么会变黄供应的不锈钢弹簧在存放了一段时间后逐步开始发黄,而且比例越来越大, 不锈钢用什么酸洗没腐蚀 什么是X射线荧光光谱仪? 我的不锈钢水壶瓶口是黄色的,是什么金属 X射线的特征谱是由于什么原因产生的? X射线荧光光谱仪价格用于测试塑料、线材铜丝等,主要检测元素有Br、Pb、As、Cd、Hg、Cl、Cr等ROHS有害物质.固定道的,国产的就行了,越便宜越好,性价比越高越好! 超声波探伤仪抑制按钮的作用是什么 不锈钢管是否需要酸洗? 怎么辨认铁 铝 铜 不锈钢 汕头22B模拟超声波探伤仪怎么用,怎么调节那些旋钮? x射线如何产生 铁,钢,不锈钢如何区分?碰水不生锈的是那种? 铝钛合金比重 430不锈钢密度是多少,430不锈钢板是按理论重量收费的吗?我在“祺元金属”买了几吨430不锈钢2B板,给我算理重时说430不锈钢密度值是7.75g/cm3, 如何区分自行车是铁的还是不锈钢的 铝原材料的比重 酸洗与钝化只是针对不锈钢材质吗 马氏体416不锈钢材料钝化后会生锈吗?盐雾试验应该在多少小时不生锈啊? 6063变形铝的比重是多少 便携式x射线探伤机的使用 不锈钢酸洗与钝化有何不同 不锈钢焊斑净与钝化膏处理过后效果一样吗? 不锈钢酸洗钝化膏制作方法是否需要一些处理工艺?是搅拌还是离心或者还是其他什么工艺? 不锈钢酸洗钝化? 不锈钢316材质的钝化用硌酐调成钝化液钝化可以吗?烟盐雾试验可以做多长. 不锈钢酸洗钝化液是什么酸 X射线荧光光谱仪的原理是什么? 肉眼如何鉴别铝与不锈钢 不锈钢酸洗钝化液哪家比较有效啊 X射线荧光光谱仪分析原理? 怎样区别铝条和不锈钢请将所依据的性质说明
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn