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

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仍然可以对用户数据应用策略,进行监控,极大缓解了纯软件方案带来的网络不可视问题。
让开发者高效编程的10个新框架 Google Analytics中显示访客停留时间为“0”的秘密 大数据之惑 麻省理工三位物理学家自建数据库服务Cloudant 融资1200万美元 网页浏览器进入再造新时代 AMD揭露HSA运算架构新技术hUMA细节 美团悄然上线云主机服务:与亚马逊殊途同归,还是另有谋划? 微软发布deep-tech团队招募令,期望获得下一代开发者的支持 2013谷歌I/O开发者大会:发布多个软件产品和服务 C语言实现二分法求解方程 开发测试云与虚拟化解决方案 学苹果?微软淘汰Points支付系统改用Gift cards 甲骨文改变Java版本号命名方式 [CTO俱乐部第97期]中科院、腾讯、深圳明源研发团队管理经验分享 Android Studio来了,它能取代Eclipse吗? Google Play Game不够开放,被OpenKit炮轰 Google Play Game Service详解 不仅提供API更提供后端支持 IBM Power走向Linux,是必然的! 美国国家安全局解密特工培训手册:如何利用谷歌等大众搜索工具搜集保密数据 微软IE10如何保护上网安全(大图) 谷歌无畏苹果的理由:强力的算法和基础设施架构 开发者热议异构统一内存访问技术(hUMA) 千万级并发实现的秘密:内核不是解决方案,而是问题所在! Apache RewriteRule重写规则语法入门 IDC:2013 Q1 Android和iOS出货量占92% WP首超黑莓 传雅虎欲10亿美元收购轻博客网站Tumblr A Beautiful Mess:如何赚男人女人的钱 CSS、JavaScript开发者必备的10款最佳工具 IBM推出API管理平台 抢占API经济市场份额 2013中国云计算榜单之一:15云平台,谁主沉浮? 移动周报:百万壁纸、85后程序媛,我为梦想代言! 关于函数的调用方式问题 斑竹和各位朋友,请帮忙看看,有关frame的问题 写作业,大家帮帮忙~~~~~~~~~~~~~~~~ 在ASP中,如何将一个XML文档的内容放到一个字符串变量中? 就这么多分了,好心人过来看看吧,给分一向守诚信!!!! 请问一个c++builder中的问题! 求救!!!!!!!!! 提取信息! 求完整的用ADO连接SQL SERVER的语句 请问想调用系统时间可以用什么函数啊? 关系数据库到对象的映射??? 请问在applet 中如何用url模拟post发送多数量参数 语音识别的识别率有什么标准吗? 老是出现错误1562怎么办?help me! 求助 请问如果我的数据库中的类别有1,2,3,可是有许多重复的,我该怎么才能选出唯一的,select * from products where .... 我有一段代码,但运行时好象总不对!请各位兄弟帮帮忙 请教:为何总有Document command is not available出现?急! 下面的话使咋回事啊? 一个关于iis发布站点的问题?? 50分,只换您来看一看; 这里有5。1愿意到凤凰去旅游的吗?偶可以在吉首市接待你们一吨饭 请问想调用系统时间可以用什么函数啊? *(int*)pstrBuffer = icharsPerLine 到底代表什么意思? 请问关于QT的站点有哪些?还有就是我如何给新装的卡装驱动呢? 超简单问题:如何换行? 有誰用過ppReport6.0?請問那里可以下載 怎样恢复WIN2000SERVER的目录服务? 又在深圳的Delphi程序员吗?-->请进 CString的对象该怎么释放啊? 有没有记录DBGrid的当前位置的,我说的不是用bookmark,因为我的DataSet是动态建立的,在刷新时好象Bookmark用不了。 情大家关注这个问题呀!!! 为什么我的程序对鼠标反应慢? 关于 mssql_close()函数的问题。 考过SCJP的朋友,请问考试卷可以转让吗?那上面有没有购买人的信息? 用什么软件可以把 .rm格式的多个文件进行合并? 请问如何得到早上0点到现在所过的秒数?我记得好象有个函数行的,可忘了 急急急。。。请问高手。window窗口的问题。。。 PB中继承关系能不能改? 请问有关用DELPHI开发WEB应用程序的经验、书和网站 String用法释疑 在sql server2000中如何制作大批量的数据并把它倒入数据库? 寻<<C语言常用算法>>第二版配套软盘 打印机的问题! 请问:一台w2k server的服务器安装了exchang sever w2k 如何实现用户自行更改PW。(次服务器在internet上)... 我的程序debug完以后,说strcore.cpp中有内存泄漏?咋回事? 用JAVA操作数据库居然出现这种现象 怎样将第三方控件打包? 请各位帮助,找增强型编辑控件!!! 窗体导航的问题??????????????? 客户端socket连接时间长了之后,客户端锁死.请大家帮帮忙 证明为什么上三角矩阵与上三角矩阵的乘积仍是上三角矩阵 .一个正方体木盒,棱长总和为96厘米,这个木盒的表面积是多少平方厘米? 一个短成语故事 线性代数 用初变求逆矩阵 能先把矩阵化成上三角矩阵 再求吗 成语故事围魏救赵视频要短一点,最好只有5分钟 在棱长8cm的正方体表面涂上红漆切成棱长是1cm的小正方体在切成小正方体中没有涂漆有多少块两个面涂漆多少 教室格言并说明理由 围魏救赵这个成语故事中的主角是谁? 给棱长为0.8米的正方形木箱的表面涂上油漆,涂漆部分的总面积是多少快 急用 今天我没财富了 小明体重30kg,比小丽重五分之一,小丽重多少千克? 一个正方体表面积是2.16平方米,它的棱长是多少? 把一个棱长为1.2分米的正方体木箱表面都涂上油漆,需要涂油漆的面积是多少 一种糖水是糖与水按1比19的比配置而成.要配制这种糖水2千克,需要糖和水各多少千克? 一种正方体木箱,棱长20cm,做50个,至少用木板多少平方米. 我要几篇成语故事1 字数不能太少,600字以上;2 故事不少于3篇;3 故事不能是文言文;4 必须有题目;5 不许有错别字 一种糖水是由糖和水按:1:19的比例配置而成.30克糖需要加入多少克的水才能配制成这种糖水? 如何辨别诺基亚5230手机的行水说点实际的好吗,他说过年打折,5230行货只卖1300,我有点不信!这家店是在上海中环百联3楼(国美对面)!还有怎么辨别翻新机! 一个成语故事 做一个无盖的正方体木箱,棱长0.8米,做这个木箱至少需要木板多少平方米? 手机行和水的区别是什么麻烦回答的简短点 我要十个成语故事.一篇成语故事的字数不能超过50个字. 一个木箱的形状是正方体,棱长0.8米.制作这个木箱需要木板多少平方米?木箱的上面没有盖 手机行 的和水的有什么区别 告诉我一个成语故事,要比较短,我要背下来. 一个无盖的正方体木箱,棱长是1.2米.做这个木箱至少需要木板多少平方米? 短小的成语故事 线性代数转化阶梯矩阵把零怎么排? 小丽在解关于x的方程5a-x=13时,误将-x看作+x,得方程的解为x=-2,则原方程的解为? 短的成语故事经典的!短一点的! 【大一线性代数】行阶梯矩阵的定义若一个矩阵的每个非零行(元素不全为零的的行)的非零首元(第一个非零元素)所在的列的下标随着行标的增大而严格增大,并且元素全为零的行(如果 分块矩阵,求逆,线性代数 线性代数矩阵|A|=0有什么意义,最好说全一点~ 漆油100个棱长2分米的正方体有盖木箱,如果每平方米需要油漆0.5千克一共需要多少千克油漆 线性代数的矩阵的逆怎么求求3 1 51 2 1 (是个矩阵)这个矩阵的逆4 1 -6 讲个成语故事滥竽充数的故事 要油漆100个棱长0.8米的正方体木箱的外表面,如果每平方米需要油漆0.4千克,共需油漆多少钱克?要过程!给悬赏! 线性代数题,利用分块求矩阵的逆,利用分块求矩阵A=2 1 0 0 01 2 0 0 00 0 3 0 00 0 0 1 20 0 0 0 1的逆.再问下1 20 1 的逆为什么是1 -20 1 讲一个成语故事.200字左右! 张师傅要在下面的正方体木箱子表面涂上油漆(下地面不涂),需要涂油漆的面积是多少平方分米?正方体木箱子一个面的面积是28平方分米 线性代数,怎么用分块矩阵求逆矩阵 讲一则成语故事?班主任让课前讲一则成语故事,讲什么好呢?推荐个好的!不好意思,能不能换个。因为惊弓之鸟是我们小学三四年级课文学过的! 65千克重的人的血液约重5千克,如果每个人血液与体重的比例总相等,那么52千克重的人的血液约重多少千克?人的体重约是自己的血液重量的几倍? 将20克糖放入100克水中,糖水的含糖率是()%用一根60cm的铁丝围城一个正方体框架(不计接头),这个正方体的表面积是(),体积是()红球8个,蓝球5个,红球比蓝球多()%,蓝球比红球少 Excel里怎么把两个数相乘的结果小数点后的数值去掉但不四舍五入.比如A1*B1结果显示在C1,我已经在C1上用了一个公式了.但结果有小数,现在我不想要小数但不四舍五入.想把结果显示为整数.如21 如何分离洗洁精和花生油 有一个长80厘米,宽60厘米高30厘米的长方体鱼缸,里面装了一些水,别有一块观赏石沉入水中,如将观赏石捞出水面将下降两厘米求观赏石的体积是多少立方分米. 围魏救赵的成语故事回答出来有糖吃哦! 一个长方形的金鱼缸,长30cm,宽20cm,浸没在一个质量为2.5kg的金属块时,液面上升了0.5cm,则此金属块的密度为多少kg/m的3次方?知道的告诉下 一个正方体的棱长是0.它的棱长和和表面积各是多少? 一个正方体木盒棱长总长96厘米这个木盒表面积是多少 一个正方体的金鱼缸,从里面量长40cm,宽30cm,原来装的水深14cm.放进些鹅卵石,水上升到32cm,鹅卵石的体 小雨,小丽,小文,小青4名同学的体重,是下类4个数据中的一个:36.3千克,40.9千克36.7千克和40千克.已知小雨比小丽重但比小青轻,小文比小丽轻.你知道他们的体重各是多少吗? 写出下面成语故事的关联人物:完璧归赵( )围魏救赵( )退避三舍( ) 毛遂自荐( )负荆 手机行水怎么区分?各位美女帅哥…谁能告诉我,手机行货怎么认,有那些特点……水货又有什么不同? 线性代数 证明上三角矩阵的逆矩阵是上三角矩阵 请提供一个简单详细的方法搜索了一下 已解决的答案看不懂在线等 急 答案满意会提高悬赏 一个正方体的木盒,棱长总和为96厘米,这个木盒的表面积是多少平方厘米? 一个长方体金鱼缸从里面量长40cm宽30cm原来装的水深14cm放进一些鹅卵石猴水面上升岛32cm 这些鹅卵石的体 怎么证明两个上三角矩阵积还是上三角矩阵 围魏救赵有哪些成语故事,短一点 怎么样区分手机是水的还是行的?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘