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

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仍然可以对用户数据应用策略,进行监控,极大缓解了纯软件方案带来的网络不可视问题。
精简Delphi数据库应用系统 精简Delphi数据库应用系统-定制BDE驱动程序 精简数据库应用系统-Delphi资料 开 发 基 于ORACLE7 数 据 库 的 管 理 信 息 系 统-Delphi资料 开 发AS/400 应 用 系 统: PB5 与Delphi3 的 比 较 利 用Delphi 开 发 响 应 用 户 输 入 的 数 据 库 查 询Web Server 程 利用Delphi开发响应用户输入的数据库查询Web Server程序 利用Tbatch组件完成数据批处理-Delphi资料 如 何 恢 复Sybase SQL Anywhere 的 数 据 库-Delphi资料 如何捕捉KEY VIOLATION等错误-Delphi资料 如何得到SQL返回的计算结果-Delphi资料 如何动态的读取Delphi中的PopupMenu的Caption ? 如何动态设置DBGRID。比如,动态设置DBGRID的COLUMNS。及如何在数值数据格式成千分位 如何返回BDE的状态信息?-Delphi资料 如何控制关键字段的重复输入及报错-Delphi资料 如何设置Microsoft SQL Server 全文索引服务 ?-Delphi资料 如何设置多用户环境的PARADOX数据库-Delphi资料 如何实现在一个Dbgrid中显示多数据库-Delphi资料 如何用SQL查询日期型字段?-Delphi资料 如何在数据库中存放avi文件-Delphi资料 如何在注册表中注册BDE-Delphi资料 筛选数据-Delphi资料 实现不同数据库系统之间的数据转移-Delphi资料 使 用WISQL32 同 时 访 问SQL SERVER 和SYBASE 数 据 库Delphi资 使用Session构件可以在打开有密码的库时不用输入密码-Delphi资料 使用SQL实现字段数据的模糊查询-Delphi资料 数据表的索引被损坏了怎么办-Delphi资料 数据库的密码、日期显示-Delphi资料 数据库应用程序开发中图像数据的存取技术-Delphi资料 数据库中图像数据的存取技术-Delphi资料 数据库转换-Delphi资料 oracle8.1.7的数据库备份文件怎样恢复到oracle8i上 ? 怎样屏蔽flash的右键菜单,弹出自己的菜单? 我想问一下有没有不写入数据库用ASP代码可以查看当天的浏览访问量 灌水区的水越来越没质量了,你觉得呢? 按钮消息响应的问题,详细请看进去再看 异常详细信息: System.Data.OleDb.OleDbException: 无法启动应用程序。工作组信息文件丢失,或是已被其它用户以独占方式打开。 求助,网页制作0=={=========>(在线等,送分) 谁能告诉我《C++Builder 5编程实例与技巧》这本书在哪儿可以下载到完整的电子版!高分感谢! 请教如何将一张图片旋转? 关于流媒体和vc++的结合,高人请进!! 关于DataOutputStream和DataInputStream求教 会DirectX的一起来讨论! 4444 菜鸟求助~~~ help me 刚才发现www2.google.com www3.google.com也不能访问了,见鬼:( 我想停止window2000[域控制器]的389端口,但我不知服务是不是LDAP,因为我想占用端口389 各位!帮个忙! 帮忙啊!因为很着急,只有在技术论坛发了,大家原谅 电子地图 上海的程序员都在哪里"混"? 如何最小化所有窗口? 你们有谁读大学一学年要交近1000元书籍费? 帮忙啊!因为很着急,只有在技术论坛发了,大家原谅 asp中如何使用ADO实现对sql数据库操作 求助,网页制作0=={=========>(在线等,送分) 我在用mcisendcommond()函数时,总提示设备类型出错,是什摸原因? 紧急求教高分相送100分。 怎么判断女孩喜欢你? CSDN的首页能登录吗? C 与 C++ 到底有什么不同?? 偶然发现的mysql排序问题 是否有专业PL/SQL编辑器(能够提供类似VC的类成员或方法提示、格式自动排版等功能)可以下载 ?? 关于条码编程 非常急,请各位帮忙想想办法 怎样实现同一窗口的不同字体大小的显示 请问谁有HTTP代理服务器内容检查与病毒检查的代码 在程序流程中要等待几秒,应该调用什么函数啊 请问各位高手,哪有C++ Builder 教程可供下载? 有没有办法使用VC控制键盘做Reset动作,即键盘自测的动作。 怎样建立一个企业的WEB网站 高程考试寻求帮助 新店开张,欢迎光临 考试论证 四级挂了,考试挂了!这是不是大学底谷~~~~~~~~~~什么是高潮? Windows 2000 服务器,工作机,客户机权限问题!! 如何获知某个目录里都有哪些文件? FastReport好还是ReportBuilder好? 高手们!帮忙看一下这段源程序! cdo编程高手看过来! ★★★TQuery的RequestLive=true时查询日期的问题★★★ 油的分子是否比水的大? 如何判断用电器短路——电流为什么不走这条导线?如图,当S1,S2都闭合时,为什么电流不走R2和电压表而导致R2和电压表短路?究竟怎样判断短路?怎样判断电流是否走这条导线?如图 塑料袋为什么漏油不漏水我们常用塑料袋装一些油炸食品,然而放在桌子上经常有渗出的痕迹!我觉得应该是露出来的 但是要是装上水就没有问题了桌面上也没有水的痕迹! 真不明白这是什 水和油为什么不容不是说分子会运动吗最好详细解释一下谢谢啊 什么是18k金钻石戒指?求婚用的话,哪个牌子更好?求解答. 藤野先生中哪些语句体现了鲁迅的爱国主义 油分子大,还是水分子大如题 谢谢了急! 电流是否宁走导线也不走用电器? 豆芽放在塑料袋里一段时间后塑料袋里有水珠?将一包吸干水分的新鲜豆芽装在塑料袋里.密封放在黑暗环境中12个小时后,塑料袋壁上有水珠,用温度计测量豆芽的温度,发现比周围环境的温度高 超声波在陶瓷中的传播速度是多少? 温度计制作需要考虑的因素为什么制作温度计要考虑比热容,还要考虑密度吗?(请不要说凝固点和熔点)例如水银... 为什么用塑料袋套住脚在被子里睡一觉后 塑料袋里有水珠 轮廓要素和中心要素的形位公差标注有什么区别? 如图,△ABC和△CDE都是等边三角形,求证AD=BE 甲中塑料袋内的水珠是由于蒸腾作用和______产生的 7.8. 如图,△ABC和△CDE是等边三角形.求证BE=AD其中,BC是直线,AE不是直线 在藤野先生这篇课文中,作者的思想感情具体在哪里体现 超声波在不同物质中的传播速度有何规律( )[exam=254] 有没有防震防撞的塑料包装温度计,就是在原有温度计外再包一层塑料会导致读数失真吗 藤野先生选读文章,这30—32段传达出作者怎样的情感,从那些词语可以看出“万岁!”他们都拍掌欢呼起来.  这种欢呼,是每看一片都有的,但在我,这一声却特别听得刺耳.此后回到中国来,我看 超声波的纵波和横波在不同介质中的传播速度? 鱼吃了塑料温度计!急!急!急!我养的猫鱼长度约40公分,把鱼缸内直径4CM的塑料温度计吞了.哪位大师指点一下.回答的好.分都给你们了.谢谢啊. 宇宙的空间存在什么气体,人不穿宇航服会即时死亡吗?宇宙是一切生命都不能生存吗?人如果流失于宇宙中,会即时死亡吗?还是因没痒气过分来钟才死亡.死亡飘浮于宇宙尸体会腐烂吗? 18k金钻石是什么意思 道路转弯半径指的是内径、外径,还是中线? 人不穿宇航服,在宇宙中能活多久? 请问手表的18K金与间金有什么不同,18K金是个什么概念? 7,8,9, 人在太空中不穿宇航服会爆炸吗? 麻烦高人帮我解释一下这个公式是怎么来的IB=UCC-UBE/RB+(1+β)RE 这个除以βRE是什么意思啊,另外 这个UCC-UBC/RB+RE得到的是IE吗? 冷水机组水管中水流一般是层流还是湍流我就是想算下沿程阻力系数, 消防车有哪些 18k素金是什么意思? 天气热了,开冷水机的模具上的水管外会有水珠,容易流在模具上.有什么好办法呢 常见的消防车有哪些? 是表示金的含量吗? 宇宙飞船在太空中如何变轨,加速呢?就是,如果是通过喷气的话,那么在真空中,没有空气的反作用力,为什么会加速呢? 请问这是什么消防车? 以下是两个方法.希望最好能解释下意思猴子吃桃问题.猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个.第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都 在一个长6分米,高4分米的长方体玻璃缸中装了些水,把一个正方体铁块浸没在水中水面上升了2.5厘米,这个正方体铁块的体积是( )立方厘米 藤野先生句子赏析 最后一句 煤炭转化为二氧化碳,煤灰等,有没有新物质形成? 宇宙飞船怎样在太空中加速、转弯? 《藤野先生》中“中国是弱国.也无怪他们疑惑”这句的赏析 350字秋天的落叶作文怎么写 MBTI职业性格测试看不懂, 宇宙飞船加速问题宇宙飞船的能量可以用核反应提供吗?是不是缺少控制它的材料? 秋天的 作文600字最好是秋天的落叶10月25日前要 晚上喝蜂蜜水好吗?晚上睡前喝杯蜂蜜水对身体有好处吗? PU管(工业的那种气动管)可以作为饮用水管吗?本人采用的是4毫米的.那样子可以吗?它有没有含有害物质?请高人回答. 酸性的条件下 钠离子 铝离子 氯离子 硫酸根离子能共存吗 喝药时能用蜂蜜水吗 为什么塑料袋不渗水?有些东西渗水如卫生纸,有些东西不渗水如塑料袋. 超声波的水中传播速度 超声波(横波或纵波)在水、有机玻璃、钢中的传播速度是多少,随温度变化,有无公式? 水管装上软管怎么就变小了好多 函数y=x^2的图像平移向量a,得到函数解析式是y=(x+1)^2+2,那么a等于? 用电器两端接上导线,为什么电流不走用电器,只走导线ne 为什么塑料袋里盛水,水不会渗透出来?请问一楼 为什么塑料袋的高分子结构没有提供给水分子可以穿透的间隙?请问三楼 为什么水分子比塑料袋的间隙大,怎么知道的?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘