SDN三种模型解析
数十年前,计算机科学家兼网络作家Andrew S. Tanenbaum讽刺标准过多难以选择,当然现在也是如此,比如软件定义网络模型的数量也很多。但是在考虑部署软件定义网络(SDN)或者试点之前,首先需要选择要支持哪一种SDN模型。选择错误就会浪费时间和成本,甚至可能将基于SDN的产品置于不利之地。在这里云端卫士将会与大家探讨三种主要的SDN模型,阐述基本目标、机制以及每一种的缺陷。
SDN解析:网络虚拟化模型
市场上最简单的SDN模型就是网络虚拟化模型,因初创公司Nicira流行,该公司2012年被VMware收购。网络虚拟化的主要目标是消除LAN分区限制(这种限制存在于虚拟LAN(VLAN)标准中),通过在一些基于以太网的虚拟网络架构中实现多播解决可扩展性问题。
为了实现这一点,网络虚拟化平台增加了一些软件元素,通常而言是hypervisor,但是云构建软件(比如OpenStack)也要通过创建VLAN的接口被修改,这个VLAN建立在传统以太网顶部运行的隧道之上。网络设备和运营完全不受影响,理论上数以万计的虚拟网络可以通过这种形式创建。
网络虚拟化的最大好处就是支持多租户云,而且不需要改变网络自身。这种SDN模型在云网络机制中可以轻松映射流行的虚拟化接口,比如OpenStack的Quantum或者大多数支持网络分配的云DevOps工具。最终易于集成网络配置和云服务配置。
最大的劣势在于虚拟网络处于网络层之上,简单地表现为网络设备流量。这些设备无法优先考虑单独的虚拟网络或者报告他们的状态,除非进行深度包检测,来鉴定虚拟网络报头。由于作为云服务堆栈一部分的软件创建了虚拟网络,虚拟网络只能同虚拟机链接,而非用户和设备。
SDN解析:“渐进式”方法
第二种SDN模型可以称之为“渐进式”模型。这种模型的目标就是加强网络软件控制和运营,但是是在当前网络技术的边界之内。为了实现这一点,网络服务提供商可能需要对标,比如VXLAN、GRE、BGP和MPLS,并且用这些标准将网络分区,成为虚拟社群,并且管理流量和服务质量。提供商可能需要将自身的解决方案结合到一套管理接口中,这套接口可以为云环境所用,通过DevOps工具或者云虚拟接口。
实施了这种SDN模型的网络设备,完全集成网络运营、FCAPS管理和网络监控。常规流量工程原则适用,而且虚拟网络理论上可以从服务器扩展到用户,只要设备支持所选标准。
大多数SDN厂商目前实施了上面提到的所有网络标准,但是一些可能并不能在所有设备上可用。这也是这种渐进式模型缺陷中的第一点,因此提供商需要评估现有设备支持的标准。目前为止更大的问题是具体的厂商提供的渐进式SDN模型,可能并不能同其他厂商的设备完全交互。这种方法也可能需要在管理系统以及云虚拟网络或者DevOps接口之间进行特定集成,如果厂商不提供这些,运营商就会面临风险。
SDN解析:OpenFlow模型
最后这种SDN模型就是OpenFlow模型,也是和SDN属于最紧密相关的一个。OpenFlow取代了交换机或者路由器中传统的、基于发现的转发表创建,取而代之的是集中控制转发,也意味着一个集中控制器项目对应每一个设备的转发表。这样做为中央控制节点提供了完整的规则,如网络如何分段或者虚拟化,流量如何管理等。任何控制器和支持OpenFlow兼容版本的交换机的结合都可以用于这种SDN模型。
最后这种SDN模型最大的好处就是这种模型是基于SDN的概念来建立的。早起试用测试和部署认为OpenFlow能够改善网络有效性和可靠性,同时增加网络利用率,因此减少了基础架构成本和运营开支。如果OpenFlow交换机能逐渐普遍化,未来网络就可能通过开放硬件构建,成本极低。这种模式的缺陷就是目前缺少所有必备组件的功能细节。OpenFlow为大多数主流交换机和路由器所支持,但是不一定能够实现同传统协议一样的吞吐量。当然,支持OpenFlow的这种机制并不会显著降低交换机成本。
现在有开源和商用的OpenFlow控制器可用,但是能做的比发送命令到交换机创建路径、管理容量多不了多少。需要一套更高层级的管理应用。这些必须通过北向API连接到OpenFlow控制器,这些API并没有标准化。早期OpenFlow实现需要运营商集成多重组件来创造功能软件定义的网络,并没有完全的商业包可用。
三种模型哪种最佳?
云提供商纠结于VLAN的分段限制,或者面临着VLAN的多播问题,首先可能关注虚拟化网络的SDN模型。这种模型也能够覆盖渐进式SDN模型,尽管协调管理接口人存在很多问题。在数据中心网络设备中投资体量巨大的提供商可能更倾向于这种方式来避免冗余成本。未来的主流发展方向应该会倾向于OpenFlow,因此应该关注支持OpenFlow的服务和设备提供商,尤其是在部署新设备的时候。
SDN三种模型解析的更多相关文章
- C语言提高 (3) 第三天 二级指针的三种模型 栈上指针数组、栈上二维数组、堆上开辟空间
1 作业讲解 指针间接操作的三个必要条件 两个变量 其中一个是指针 建立关联:用一个指针指向另一个地址 * 简述sizeof和strlen的区别 strlen求字符串长度,字符数组到’\0’就结束 s ...
- Javascript事件模型系列(一)事件及事件的三种模型
一.开篇 在学习javascript之初,就在网上看过不少介绍javascript事件的文章,毕竟是js基础中的基础,文章零零散散有不少,但遗憾的是没有看到比较全面的系列文章.犹记得去年这个时候,参加 ...
- JSON三种数据解析方法(转)
原 JSON三种数据解析方法 2018年01月15日 13:05:01 zhoujiang2012 阅读数:7896 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blo ...
- PHP.23-ThinkPHP框架的三种模型实例化-(D()方法与M()方法的区别)
三种模型实例化 原则上:每个数据表应对应一个模型类(Home/Model/GoodsModel.class.php --> 表tp_goods) 1.直接实例化 和实例化其他类库一样实例化模型类 ...
- Android中的三种XML解析方式
在Android中提供了三种解析XML的方式:SAX(Simple API XML),DOM(Document Objrect Model),以及Android推荐的Pull解析方式.下面就对三种解析 ...
- Java/JSP获得客户端网卡MAC地址的三种方法解析
java/jsp获得客户端(IE)网卡MAC地址的方法大概有三种. 1.通过命令方式,在客户端执行Ipconfig 等等.(java/jsp) 2.通过ActiveX的方法.(jsp) 3.通过向13 ...
- Java开发学习(三十六)----SpringBoot三种配置文件解析
一. 配置文件格式 我们现在启动服务器默认的端口号是 8080,访问路径可以书写为 http://localhost:8080/books/1 在线上环境我们还是希望将端口号改为 80,这样在访问的时 ...
- ZeroMQ - 三种模型的python实现
ZeroMQ是一个消息队列网络库,实现网络常用技术封装.在C/S中实现了三种模式,这段时间用python简单实现了一下,感觉python虽然灵活.但是数据处理不如C++自由灵活. 1.Request- ...
- hibernate(二)一级缓存和三种状态解析
序言 前一篇文章知道了什么是hibernate,并且创建了第一个hibernate工程,今天就来先谈谈hibernate的一级缓存和它的三种状态,先要对着两个有一个深刻的了解,才能对后面我要讲解的一对 ...
随机推荐
- iOS返回一个前面没有0,小数点后保留两位的数字字符串
/* * 处理一个数字加小数点的字符串,前面无0,保留两位.网上有循环截取的方法,如果数字过长,浪费内存,这个方法在优化内存的基础上设计的. */ -(NSString*)getTheCorrectN ...
- 软件工程练习, 模块化,单元测试,回归测试,TDD
这是<构建之法>实战教学的一部分.适合作为同学们的第二个程序作业. 第一个程序作业: 请看 “概论” 一章的练习,或者老师的题目,例如这个. 作业要求: 软件工程的作业越来越有意思了, 我 ...
- 《CoffeeScript应用开发》学习: 第四章-改进应用程序
检查值是否存在 使用存在运算符 CoffeeScript中有一个非常有用的存在运算符?,它能正确地处理值是否存在(存在的意思为变量不为undefined或者null)的情况.在变量后添加?来判断它是否 ...
- CCS实现input和img水平对齐的方法
在网页制作中,常将 input 和 img 放在同一行,img标签总是比input高出一个头,非常难看. CCS实现input和img水平对齐的方法 同时给input和img添加vertical-al ...
- Java入门记(五):容器关系的梳理(下)——Map
注意:阅读本文及相关源码时,需要数据结构相关知识,包括:哈希表.链表.红黑树. Map是将键(key)映射到值(value)的对象.不同的映射不能包含相同的键:每个键最多只能映射到一个值.下图是常见M ...
- DataSnap修改数据ApplyUpdates出现错误:连接繁忙导致另一个命令
最近准备尝试用DBExpress做个SQL Serer应用,在学习的时候发现一个问题使用DBExpress连接Sql server 2008 express使用以下控件SQLConnection-&g ...
- 使用FreePic2Pdf导出书签至Word建立层级目录——快速初始化Word笔记本目录
使用FreePic2Pdf导出书签至Word建立层级目录 --快速初始化Word笔记本目录 文:安徽师范大学2014级计算机科学与技术 王昊 (Get Contact:441301158@qq.com ...
- 计算机病毒实践汇总六:IDA Pro基础
在尝试学习分析的过程中,判断结论不一定准确,只是一些我自己的思考和探索.敬请批评指正! 1. IDA使用 (1)搜索.下载并执行IDA Pro,对可执行程序lab05-01.dll进行装载,分别以图形 ...
- Net力软快速信息化系统开发框架 + 开发手册+数据库说明
源码目录结构说明LeaRun.Cache –缓存层LeaRun.Resource –本地语言LeaRun.Utilities –公共类库LeaRun.DataAccess –数据库访问核心组件LeaR ...
- 将C#datagridview控件的数据导出到Excel中
1.添加引用Microsoft.Office.Interop.Excel. 2.程序代码引用using Excel = Microsoft.Office.Interop.Excel; 3.控件事件代码 ...