拨云见日:企业网络准入策略小议
作者 libing | 2012-01-27 21:32 | 类型 新兴技术, 科技普及, 网络安全 | 62条用户评论 »
近来有机会接触了一些企业网络准入的项目,感触颇深。针对这个复杂的市场有一点自己的心得,没有结论,意在抛砖引玉,为大家的思考和讨论铺路。 本文只关注企业用户,而且是具备一定用户规模的国内企业用户,不是学校、不是小区宽带;其次,范围是用户对网络资源的访问,包括有线、无线、VPN等等。之所以要这么规定一下,是为了后面的讨论更准确、更有针对性,企业用户有自己的特点和需求,适合其它环境的思路在企业网中很可能玩儿不转,任何一种技术方案只有在立足的环境中才存在讨论的意义。 一. 缘起 网络准入是一个由来已久的话题,但一直以来并不是IT安全的重点,直到近年来,才逐渐成为炙手可热的话题。无线接入、智能移动终端和云计算的兴起共同催生了这一波热潮。 随着云计算的不断深入,越来越多的企业业务系统由传统的C/S架构向B/S架构迁移,以往访问后台数据需要安装专用软件,IT部门控制客户端软件的许可发放,就能够大致控制访问用户的范围。而在B/S架构中,用户只需要一个WEB浏览器即可登录系统,加上智能手机、智能平板和WiFi的流行,以往的限制条件消失了,任何人手中的设备都成了可能访问后台数据库的平台,IT部门突然一下子失去了对局面的控制,因此,对网络的准入控制被重新提上日程。只有合法的用户才能够接入网络,通过对接入用户的控制,IT部门开始试图重新夺回对数据访问的控制权。 二. 几种思路 控制用户接入网络的技术伴随网络本身的诞生和发展已经衍生出五花八门的派别,每种方式都有自己的特点和适用场景,很难说那种方式在技术和最终效果上技高一筹取得了绝对的领先地位。 在新形势下,接入技术本身并没有发生翻天覆地的变化,其演进更多地是从满足需求的前提出发,将现有的方式进行重新的优化、组合,从而推出一个满足新需求的解决方案。在实际环境中常见的认证方式包括二层认证、三层认证和基于客户端方式的认证。 二层认证 二层认证就是用户在获得IP地址之前必须通过的认证,大型企业往往利用DHCP进行IP地址分发,用户在接入网络之初同网络侧通过二层连接进行认证数据的交互,只有成功通过认证才能向DHCP服务器申请IP地址,从而收发数据。 二层认证的代表实现方式就是802.1X。802.1X是IEEE 802.1协议集的一部分,定义了EAP在以太网环境中的实现方式,而EAP是IETF在RFC3748中制定的在数据链路层中进行认证行为的一种机制,以满足在不同的二层环境下进行统一、一致的认证的需求。这个逻辑连起来就是,IETF首先制定了在数据链路层也就是二层上进行验证的EAP机制,然后IEEE给出了EAP在以太网环境中的运行方式,这个方式就是大家熟知的802.1X。现在,我们可以回答两个常常被混淆的问题: 1)802.1X是802.11的子集吗? No,802.1X不但可以工作在无线环境中,同样能够工作在有线环境中,并且在WiFi被大规模部署之前,802.1X就已经是有线网络中一种重要的认证方式。 2)EAP是802.1X专用的认证方式吗? No,理论上EAP可以被运用在任何一种数据链路层之上,例如PPP或以太。 基于802.1X的二层认证基本工作方式如下图所示: 上图中的三个元素,分别是客户端(Supplicant)、认证方(Authenticator)和认证服务器(Authentication Server)。客户端就是支持802.1X功能的终端设备,如笔记本、智能手机;认证方是将客户端接入网络的接入设备,在有线网络中是接入交换机,无线网络中是无线AP和控制器,在VPN连接中,认证方则是VPN服务器,认证方负责接受客户端的认证请求,但本身并没有处理这些请求的能力,它会将获得的信息转发到认证服务器,由认证服务器辨别客户端的合法性;认证服务器通常是集中部署在网络内的一台安全设备,当收到转发来的用户请求后,认证服务器将请求信息同已有的用户资料做比对,并将结果返还给认证方,如用户合法,认证方便会将客户端接入网络,否则予以屏蔽,或放入特殊VLAN,至此,一个标准的二层认证流程才结束。 在这个过程中,认证方和认证服务器之间通过特定的协议通信,目前采用最普遍的两个协议是RADIUS和TACACS+,总体说来,TACACS+的稳定性、安全性和灵活性更高,但TACACS+是思科私有协议,因此,在一般的用户接入场合,RADIUS更加常见。 通过多年的发展,802.1X+RADIUS的实现方式已经发展成为一个功能非常强大的准入方案,RADIUS丰富的字段使得认证可以不仅仅针对用户名与密码,还可以根据接入设备的MAC地址、IP地址、交换机端口等信息来进行认证。 之所以解释这么多二层认证的细节,是想说明基于802.1X的二层接入是一个非常成熟的方案,市场接受程度很高,不管认证方还是认证服务器,都不难找到多家厂商的产品,客户端的支持方面也不是问题,主流的桌面操作系统和智能手机终端大都支持802.1X。用户的接受与市场的成熟,对于安全策略的长期部署是非常重要的,802.1X在这方面的优势异常明显,其他方案不一定有这么幸运。 总体说来,802.1X的二层模式具备了以下三个特点: 1)完全公开的架构,每一个部分都有相应的国际标准,便于企业客户自由选择软硬件、搭建一个灵活的安全架构,不会受制于特定厂家; 2)成熟的技术标准,802.1X已经部署在全球成千上万的园区网,本身是一个非常成熟的技术,实施风险和成本低; 3)包含完善的认证和授权机制,能够满足企业用户的大部分需求。 如果仔细揣摩这三点,你会发现802.1X同以太网非常相似–公开、成熟、实用,这其实就是企业客户的核心需求,企业的IT部门在做任何选择时首先考虑的都是技术的可延续性以及成熟性,如果某项技术大家都在用,本身功能又实现得七七八八,这个方案就是最优方案,华而不实的新鲜玩意反而难以得到企业用户的垂青。 三层认证 说了这么多,传统的二层方案是个完美的方案了?如果放在五年前,也许是这样,但随着网络的发展,接入环境越来越复杂,802.1X在某些方面渐渐显得力不从心了。例如,某些企业需要为访客提供无线网络接入,但不可能每次有来访人员时临时在笔记本电脑上配置802.1X策略,这就需要一个快捷的办法将没有经过认证的第三方设备接到网络中。 三层认证就在这种背景下应运而生了。 三层认证又被称为WEB认证,顾名思义,认证过程是通过一个WEB页面完成的。当有新的设备需要接入时,网络设备不会默认屏蔽它,而仅仅为其提供一些基本数据的转发能力,如DHCP、DNS等,客户端可以通过DHCP拿到地址,但他还没有办法获得完全的网络权限,比如上个QQ啥的;此时,用户需要发起一个HTTP请求(在浏览器中访问任意一个WEB页面),交换机或者无线控制器从中截取到用户的这个HTTP请求,并将用户重定向到一个预先写好的认证页面上(这个页面可以存放在任意一个IP可达的WEB服务器上),用户在在这个页面使用用户名/密码完成认证,从而获得全面的网络访问权限。
三层认证凭借其自身的特点获得了市场的认可,但在现阶段毕竟还是一个补充方案,难以作为企业环境的主力认证方式。首先,每次上网通过WEB页面登录的方式对大多数企业用户来说都“土”了一点儿,而且WEB认证检查的内容也比较简单,大部分时候仅有用户名和密码,在高安全级别的环境中仍显单薄。 客户端方式 除了三层认证和二层认证,还有一种很有意思的思路,即通过客户端对接入用户进行认证。这里所说的客户端是指安装在用户设备的上的软件,其表现形式五花八门,以杀毒软件起家的厂商会做成杀软的功能子集、以桌面控制立足的厂家会做成控制软件的一部分、而传统的网络设备厂家则会将这部分功能集成到VPN\无线接入的用户端软件中。不管是什么路子,这类软件一般只干两件事情:1)从操作系统接手802.1X的认证流程;2)对操作系统的健康状况做检查,如是否安装了最新版补丁、杀毒软件是否更新到最新病毒库等等,若操作系统处于可靠的状态则允许接入网络,否则拒绝。 这种方式有一点像一个加强版的360软件,它不但帮你检查身体,还基于你的身体状况决定你是否能获得一张游泳证。由于健康状态的检查内容包含了系统的补丁安装、应用软件安装、杀毒软件更新等情况,因此,必须在客户的设备上安装一个系统权限非常高的客户端软件才能完成所有的检查工作。 很明显,客户端方式完全是从企业IT部门的视角出发,对最终用户采取更多的限制。通常,这种方式都会和厂家进行紧密的绑定,通过在每台终端设备上安装客户端,用户的IT流程和安全规范也紧密地同厂家能够提供的功能选项结合在一起。 三种方式的对比表格 三. 延伸思考 用户需要什么样的方案? 企业网的准入是一项非常特殊的技术,最终用户的体验是决定一个项目成败的关键。有的方案从技术上评估非常完美,但实施之后发现最终用户根本接受不了,过多挑战用户的使用习惯,最终被行政层面废掉。 有的客户在被厂家忽悠过后决定在整个公司范围内推广严格的网络准入控制,在所有PC终端上安装安全客户端软件。结果,客户端装上后频频告警,因为不少人在自己的电脑上安装的下载软件强行修改了系统的下载线程限制,还有的员工干脆卸载了原有杀毒软件,自己重新安装了互联网上的免费杀软。这些被折腾过的电脑,在安全客户端内置的严格的策略规则前统统被亮了红灯,上线测试第一周就有不少员工无法正常接入网络。结果IT部门啥都顾不上,成天到各处救火,最后这个系统被大领导一句话下了马。 即使是最通行的802.1X方式,也不一定适应每个地方的水土。当一台配置了802.1X接入的PC机刚开机时需要一定时间同网络侧交互认证信息,如果用户接受程度不高,很可能会认为网络接入效率低,从而投诉,给IT部门造成很大压力。 因此,对于最用用户来说,最好的方案就是用户体验最友好的方案,只有对原有使用流程影响最小的技术方案才能得到上下一致的支持,从而推动最终的全面部署。另一方面,业务部门对准入的支持也至关重要。 IT部门需要什么样的方案 对于IT部门来说,网络准入是一个非常笼统、模糊的概念,什么样的用户能够接入网络?什么样的安全检查才是足够安全?同企业的其他安全策略该如何整合?这些问题在业界都没有统一的结论,而且安全防护是一场没有终点的拉锯战,IT部门不可能无限制地投入资源去追求极致的安全级别。 准入控制的实施过程是非常复杂的,是一个惊动全局的工程,因此,IT部门在上马准入时无不希望是一个循序渐进的过程,先从最基本的二层准入或三层准入开始,逐渐推进到设备健康状态检查等复杂的机制,这在准入项目的实施过程中尤其重要。 其次,准入控制的最终对象是企业内部的人员,而大部分企业往往已经具备了用户数据库,且用户的合法性以此数据库的实时数据为准,比如供人力部门使用的微软Active Directory。新的准入系统要能够方便地与原有数据库集成,特别是将准入系统内复杂的策略直接绑定到已有的用户帐号上。例如有的用户希望对PC机的MAC地址进行认证,而在原有的Active Directory内是没有MAC地址这一个字段的,且这个数据库的管理权不一定在IT部门手里,那么新添加的MAC地址信息如何同原有的用户帐号绑定,并实现帐号信息的定期自动更新就是一个挑战。 最后,准入控制系统一定要有一个清晰、简洁的管理流程和界面。 什么是完美的产品? 综上所述,一个优秀的准入控制技术方案需要具备以下特点: 1)可延续性 所谓可延续性是指采用的技术方案要具有长期的发展路线和支持力度,或者是被广泛应用的公开标准,或者是强大厂商的主流产品。准入机制一旦部署将延伸到网络的各个角落,并同企业今后的安全策略紧密结合起来,如果基础平台不稳定,后期变更将是迁一发动全局的麻烦事; 2)可用性 准入策略的顺利实施一定是以最终用户的接受为基础,因此,准入系统对最终用户的使用流程不能有太大的影响,要提供一个足够友好的用户体验; 3)灵活性 准入策略的内涵非常广泛,企业IT部门在实施时一定是一个逐渐完善的过程,为了应对这种需求,准入系统要具备一定灵活性,各个功能模块的实现不能有冲突; 4)整合性 准入系统要能够方便地同主流的企业数据库系统整合,并将安全策略绑定到相应的用户帐号之上,实现自动化的用户数据更新。 虚拟桌面的机会 网络环境的变化,带来的是访问方式的变化。一方面,网络准入技术开始快速发展,另一方面,很多人开始询问“是否一定需要在网络边界做这么严格的控制,还有没有其他方法?”。 也许是有的。 虚拟桌面在企业内部的应用开始逐渐铺开,员工对数据库的访问全部通过虚拟桌面完成,而硬件本身可能是一个简单的瘦客户端,不具备复杂的功能。在企业网络内部对虚拟桌面流量设置高优先级QoS策略,对其余流量以及网络接入采取从简的思路,在未来,这并非不会是一种解决方案。 总之,随着云计算、智能手机、WiFi等新应用的快速发展,传统的企业网络不得不开始主动变化,这种变化将如何发生,往哪里去,得出怎样的结果,现在都还不明晰,但有一点是明确的,那就是有意企业数据网络和安全的厂家现在就必须开始重视这股潮流,未雨绸缪,才能从容应对未来的新一代企业网络的发展。 | |
弯曲推荐:下一代互联网体系结构研究
作者 陈怀临 | 2011-11-23 22:35 | 类型 专题分析, 互联网, 新兴技术, 研发动态, 行业动感 | 1条用户评论 »
无锁编程简介
作者 Huiwei | 2011-07-07 21:19 | 类型 学术园地, 新兴技术 | 8条用户评论 »
云计算数据中心网络技术
作者 Roy | 2011-07-05 00:51 | 类型 弯曲推荐, 新兴技术, 行业动感 | 132条用户评论 »
工具箱
本文链接 |
|
打印此页 | 132条用户评论 »
OpenFlow技术及应用模式发展分析
作者 老韩 | 2011-05-21 10:34 | 类型 互联网, 弯曲推荐, 新兴技术 | 88条用户评论 »
3-D and III-V Transistors will be mass production,Moore’s Law Will Go on
作者 thunder1814 | 2011-05-08 08:45 | 类型 新兴技术, 新闻稿 | 8条用户评论 »
Intel宣布革命性3-D晶体管 22nm Ivy Bridge尝鲜摘要:5月4日,英特尔宣布在晶体管发展上取得了革命性的重大突破–被称为三栅极(Tri-Gate)的世界上首款3-D晶体管进入生产技术阶段。使用3-D三栅极晶体管的22纳米英特尔芯片(代号为Ivy Bridge)将在2011年底进行批量生产。 标签:英特尔 3-D三栅极晶体管 Ivy Bridge 5月4日,英特尔宣布在晶体管发展上取得了革命性的重大突破–被称为三栅极(Tri-Gate)的世界上首款3-D晶体管进入生产技术阶段。使用3-D三栅极晶体管的22纳米英特尔芯片(代号为Ivy Bridge)将在2011年底进行批量生产。 3-D三栅极晶体管续写摩尔神话 晶体管是现代电子设备的基石。自五十多年前硅晶体管发明以来,我们使用的一直是2-D平面晶体管。3-D三栅极晶体管则代表着晶体管结构的根本性转变:传统”扁平的”2-D平面栅极被超级纤薄的、从硅基体垂直竖起的3-D硅鳍状物所代替。电流控制是通过在鳍状物三面的每一面安装一个栅极而实现的(两侧和顶部各有一个栅极),而不像2-D平面晶体管那样,旨在顶部有一个栅极。更多的控制可以使晶体管在”开”的状态下让尽可能多的电流通过(为了获得更高性能),而在”关”的状态下尽可能让电流接近零(为了获得更低能耗),同时实现在这两种状态之间的迅速切换(也是为了获得更高性能)。 32nm平面与22nm立体对比 22nm 3-D Tri-Gate晶体管结构简图 就象通过盖高楼大厦而获得更多使用空间一样,这种3-D三栅极晶体管结构提供了一种管理晶体管密度的方式。由于这些鳍状物本身是垂直的,晶体管也可以更加紧密地封装起来。而且,未来设计师还可以不断增加鳍状物的高度,从而获得更高的性能和能效。 Intel声称,与32纳米平面晶体管相比,22纳米3-D 三栅极晶体管可带来最多37%的性能提升,而且同等性能下的功耗减少一半,这意味着它们更加适合用于小型掌上设备。 很多人都听说过著名的摩尔定律,即晶体管密度大约每18个月便会增加一倍,同时其功能和性能将提高,成本则会降低。40年来,摩尔定律已经成为半导体行业的基本商业模式。然而,随着处理器制程的不断提高,延续摩尔定律也变得越来越困难。 事实上,英特尔的科学家早在2002年就发布了三栅极晶体管设计,接着是单鳍片晶体管展示(2002年)、多鳍片晶体管展示(2003年)、三栅极SRAM单元展示(2006年)、三栅极后栅极(RMG)工艺开发(2007年),直至今日方才真正成熟。这一突破的关键之处在于,Intel可将其用于大批量的微处理器芯片生产流水线,而不仅仅停留在试验阶段。摩尔定律也有望继续保持活力。 不过,在英特尔高级院士马博(Mark Bohr)看来:”3-D三栅极晶体管实现了前所未有的性能提升和能耗节省,这一里程碑的意义要比单纯跟上摩尔定律的步伐更深远。低电压和低电量的好处,远远超过我们通常从一代制程升级到下一代制程所得到的好处。它将让产品设计师能够更加灵活地将现有设备创新的更智能,并且有可能开发出全新的产品。” ARM王位难保? 在记者看来, 尽管3-D 三栅极晶体管在性能上实现了惊人的37%的提升,但其在能耗上的提升,可能对英特尔的未来的影响更深远,甚至可能改变整个移动互联处理器市场格局。 当前,在手持设备和平板电脑处理器领域,ARM占据了90%的市场,可谓当之无愧的老大,而ARM芯片的主要优势就是低能耗。英特尔一直借凌动处理器来进攻该市场,但效果并不是特别理想。主要的理由也就是能耗逊色于ARM芯片。如今,3-D 三栅极晶体管实现了前所未有的低能耗,势必对ARM芯片的王者地位造成巨大挑战。在发布会现场,记者曾经向英特尔半导体(大连)有限公司柯必杰(kirby Jefferson)求证过基于3-D 三栅极晶体管的22奈米芯片与ARM芯片之间能耗孰优孰劣的问题。柯必杰回答说:”我还不能给你具体数据,但我们英特尔内部有实验比对数据,我只能说我们的处理器无论是性能还是能耗都有极大的优势。” 不过,英特尔表示,会优先生产基于3-D 三栅极晶体管的服务器和台式机芯片。柯必杰表示那毕竟是目前英特尔的主要领域,无疑,3-D 三栅极晶体管将使得英特尔在22纳米甚至14纳米时代保持巨大的领先优势。 可以预见的是,不久的将来,我们将迎来更轻更薄更高性能也更加环保的各种电子设备。总之,这将又是一场可能影响我们整个社会的技术革命。 本文转载自企业级IT信息服务平台-网界网-CNW.com.cn 更多图片见:http://tech.163.com/digi/11/0505/10/739JUKFF00162OUT_2.html | |
谁才是真正的Scale-Out?
作者 冬瓜头 | 2011-03-09 09:40 | 类型 图书推荐, 新兴技术, 研发动态, 行业动感 | 59条用户评论 »
本文摘自即将于2011年4月份出版的《大话存储2》的第15章-集群存储系统,著作权所有,转载请注明出处与作者 IBM自从亮相了XIV之后,EMC接着出了V-Max,接着HDS也推出了VSP。这三者都宣称自己是Scale-Out架构,在业界也引发了一些讨论,有人认为只有XIV才是真正的Scale-Out,而V-Max与VSP则不算Scale-Out。对于这个问题,我是这么看的。 大家知道服务器多CPU架构变迁过程,一开始是单CPU,后来发展到双CPU或者多CPU的SMP架构,也就是多CPU共享相同的内存、总线、操作系统等资源,每个CPU访问全局内存任何地址耗费的时间都是相等的。还有一类AMP架构,即不同CPU做的事情是不同的。但是由于共享访问冲突,SMP架构扩展性-效率曲线已经达到瓶颈。为了消进一步提高CPU数量的同时保证效率,NUMA架构出现了,也就是将多个SMP进行松一点的耦合,多个SMP之间通过CrossBar Switch高速交换矩阵互联,每个SMP都有各自自己的内存,一个SMP内部的CPU访问自己的内存时与之前没什么两样,但是要访问其他SMP处的内存,就需要走交换矩阵,导致延迟增加,所以,NUMA通过牺牲了内存访问的时延来达到更高的扩展性,比如可以将数百个CPU组成NUMA架构。SMP和NUMA架构对于软件程序方面的影响不大,同一台主机内都使用单一操作系统。但是由于NUMA访问远端内存时的时延问题,导致NUMA架构下的效率也不能随着CPU数量的增加而线性增长,只是比SMP要好罢了。此时,MPP架构就出现了。MPP可以说已经与CPU已经关系不大了,MPP说白了就是将多台独立的主机使用外部网络来组成一个集群,显然MPP架构下,每个节点都有各自的CPU、内存、IO总线和操作系统,属于最送的耦合,而且运行在MPP集群中的软件程序的架构也需要相应改变,变为大范围并行化,并尽量避免节点之间的消息传递。由于软件程序发生了变化,那么MPP的效率随节点数量的增长就可以呈线性关系了。其实,如果在NUMA架构下,软件也可以避免尽量少读取远端内存的话,那么NUMA效率也会线性增长,但是NUMA架构下的操作系统仍然是同一个,内存仍然是全局均匀的,而程序架构又尽量保持不变,那么就不可避免的时不时访问远端内存了。MPP相当于把内存强制分开,把操 作系统强制分开,把程序架构也强制改变从而保持海量计算下的效率线性增长。 那么再说回到存储系统。与服务器CPU架构演进相同,可以把存储系统的控制器类比为CPU,而后端磁盘柜类比为一条条的内存。一开始的单控,后来的双控互备份(传统双控存储),一直到双控并行处理(目前只有HDS的AMS2000存储系统为双控并行架构),到这个阶段就类似于AMP(双控互备)和SMP(双控并行)架构,后来则有多控并行对称处理架构,Oracle的RAC集群也可以视作一种多点SMP,各种共享底层存储的集群文件系统及基于这种文件系统所构建的存储系统也属于多点对称SMP。同属多点对称SMP架构的还有华为赛门铁克的VIS以及S8100和N8000存储系统。 同样,由SMP到NUMA的过度也出现在了存储系统中,比如EMC的V-Max,相当于多个SMP(一对控制器组成一个Director等价于一个SMP矩阵)利用高速交换矩阵(RapidIO)来共享访问每个SMP上掌管的内存。 由NUMA到MPP的过度一样也出现在存储系统中,IBM的XIV就属于松耦合MPP架构,多个节点之间彻底松耦合,各自都有各自的CPU/内存/总线/磁盘/IO接口,使用外部以太网交换机,使用TCPIP协议互相通信。而HDS的VSP则更像是一个紧耦合的MPP,MPP对软件架构变化很大,所以传统存储厂商很难将之前的架构演变到MPP上来。另外一种属于MPP架构的存储系统就是各种分布式文件系统(注意,并非共享存储的集群文件系统)。 至于谁才是真正的Scale-Out,这个是个无定论的问题了。SMP/NUMA/MPP其实都算Scale-Out,只不过程度和形态都不同罢了。有人说MPP才是真正的Scale-Out,可能是基于MPP流行的原因。但是不能一概而论。MPP架构的存储,例如XIV,由于特定场景下,由于单路IO就可能导致整个MPP集群中的磁盘资源全部牵动(每磁盘同一时刻只能执行一个IO),在多路大块连续IO并发的情况下,反而效率很差(比如多流大块连续地址IO);而某些特定场景下,多路IO之间牵制很少,则表现出线性增长的性能(比如小块高随机IO)。这也可以类比为将一个程序并行分解成多个执行颗粒(类比为高随机IO),颗粒间的关联性越少,则并行执行的效率越高,一个道理,所以MPP自身为Share-Nothing架构,那么运行在它上面的程序颗粒之间最好也Share-Nothing。SMP、NUMA和MPP各有各的好处,也各有各的应用场景。比如SMP适用于扩展性要求不太高而又不想对程序改变太大的场景,而MPP则使用海量数据下的高扩展性需求场景,需要对程序有较大改变才能获得良好性能。同样对于存储也是这样,比如一旦决定用MPP架构的存储,那么就需要面对多流大块连续IO场景下性能不佳以及效率-扩展曲线的线性不佳这2个事实。或者你去修改上层应用,将大块连续IO改为高随机IO,而这显然荒唐。并且为了适应存储去修改应用,这一般是不可能被接受的。而MPP架构却被广泛用于互联网运营商的底层Key-Value分布式数据库,其高随机小块读访问场景下能获得巨量的性能以及线性的效率-扩展曲线。 本文摘自即将于2011年4月份出版的《大话存储2》的第15章-集群存储系统,著作权所有,转载请注明出处与作者 | |
NOX – 现代网络操作系统
作者 yeasy | 2011-03-01 08:25 | 类型 互联网, 弯曲推荐, 新兴技术 | 18条用户评论 »
系列目录 Future Internet Technology[注]本系列前面的三篇文章中,介绍了软件定义网络(SDN)的基本概念和相关平台。按照SDN的观点,网络的智能/管理实际上是通过控制器来实现的。本篇将介绍一个代表性的控制器实现——NOX。 现代大规模的网络环境十分复杂,给管理带来较大的难度。特别对于企业网络来说,管控需求繁多,应用、资源多样化,安全性、扩展性要求都特别高。因此,网络管理始终是研究的热点问题。 从操作系统到网络操作系统早期的计算机程序开发者直接用机器语言编程。因为没有各种抽象的接口来管理底层的物理资源(内存、磁盘、通信),使得程序的开发、移植、调试等费时费力。而现代的操作系统提供更高的抽象层来管理底层的各种资源,极大的改善了软件程序开发的效率。 同样的情况出现在现代的网络管理中,管理者的各种操作需要跟底层的物理资源直接打交道。例如通过ACL规则来管理用户,需要获取用户的实际IP地址。更复杂的管理操作甚至需要管理者事先获取网络拓扑结构、用户实际位置等。随着网络规模的增加和需求的提高,管理任务实际上变成巨大的挑战。 而NOX则试图从建立网络操作系统的层面来改变这一困境。网络操作系统(Network Operating System)这个术语早已经被不少厂家提出,例如Cisco的IOS、Novell的NetWare等。这些操作系统实际上提供的是用户跟某些部件(例如交换机、路由器)的交互,因此称为交换机/路由器操作系统可能更贴切。而从整个网络的角度来看,网络操作系统应该是抽象网络中的各种资源,为网络管理提供易用的接口。 实现技术探讨模型NOX的模型主要包括两个部分。 一是集中的编程模型。开发者不需要关心网络的实际架构,在开发者看来整个网络就好像一台单独的机器一样,有统一的资源管理和接口。 二是抽象的开发模型。应用程序开发需要面向的是NOX提供的高层接口,而不是底层。例如,应用面向的是用户、机器名,但不面向IP地址、MAC地址等。 通用性标准正如计算机操作系统本身并不实现复杂的各种软件功能,NOX本身并不完成对网络管理任务,而是通过在其上运行的各种“应用”(Application)来实现具体的管理任务。管理者和开发者可以专注到这些应用的开发上,而无需花费时间在对底层细节的分析上。为了实现这一目的,NOX需要提供尽可能通用(General)的接口,来满足各种不同的管理需求。 架构组件下图给出了使用NOX管理网络环境的主要组件。包括交换机和控制(服务)器(其上运行NOX和相应的多个管理应用,以及1个Network View),其中Network View提供了对网络物理资源的不同观测和抽象解析。注意到NOX通过对交换机操作来管理流量,因此,交换机需要支持相应的管理功能。此处采用支持OpenFlow的交换机。
操作流量经过交换机时,如果发现没有对应的匹配表项,则转发到运行NOX的控制器,NOX上的应用通过流量信息来建立Network View和决策流量的行为。同样的,NOX也可以控制哪些流量需要转发给控制器。 多粒度处理NOX对网络中不同粒度的事件提供不同的处理。包括网包、网流、Network View等。 应用实现NOX上的开发支持Python、C++语言,NOX核心架构跟关键部分都是使用C++实现以保证性能。代码可以从http://www.noxrepo.org获取,遵循GPL许可。 系统库提供基本的高效系统库,包括路由、包分类、标准的网络服务(DHCP、DNS)、协议过滤器等。 相关工作NOX项目主页在http://noxrepo.org。 其他类似的项目包括SANE、Ethane、Maestro、onix、difane等,有兴趣的同学可以进一步研究参考。 | |
弯曲评论荣誉推荐–颜开 。《NOSQL数据库笔谈》
作者 陈怀临 | 2011-02-18 21:35 | 类型 专题分析, 弯曲推荐, 新兴技术 | 4条用户评论 »
综观Google,Facebook,Twitter,似乎都抛弃了经典的SQL数据库。为什么?其中的技术原因是什么? 为什么说SQL更适合Transaction Based的Enterprise服务,但不适合Web 3.0, Social Network的服务? 弯曲评论隆重推出颜开同学的《NOSQL数据库笔谈》【点击下载PDF文件】 序 | |
Mininet – “懒惰”网络研究者的福音
作者 yeasy | 2011-01-08 20:36 | 类型 互联网, 新兴技术 | 6条用户评论 »
系列目录 Future Internet Technology
【摘要】在本系列前两篇文章里,我们分别介绍了软件定义网络的两大利器——OpenFlow和Open vSwitch。不少研究者可能很有兴趣尝试一下,却拿不出太多的时间。本文将介绍一套强大的轻量级网络研究平台——mininet,通过它相信大家可以很好地感受到软件定义网络的魅力。
概述篇作为研究者,你是否想过,在自己的个人笔记本上就可以搭建一套媲美真实硬件环境的复杂网络,并轻松进行各项实验?无论是用专业级的硬件实验平台,还是用传统的虚拟机,都显得太过昂贵,且十分不方便进行操作。如果你有类似的需求,不妨试试mininet,绝对是“懒惰”却又追求效率的研究人员的福音。
stanford大学Nick McKeown的研究小组基于Linux Container架构,开发出了这套进程虚拟化的平台。在mininet的帮助下,你可以轻易的在自己的笔记本上测试一个软件定义网络(software-defined Networks),对基于Openflow、Open vSwitch的各种协议等进行开发验证,或者验证自己的想法。最令人振奋的是,所有的代码几乎可以无缝迁移到真实的硬件环境中,学术界跟产业界再也不是那么难以沟通了。想想吧,在实验室里,一行命令就可以创建一个支持SDN的任意拓扑的网络结构,并可以灵活的进行相关测试,验证了设计的正确后,又可以轻松部署到真实的硬件环境中。
mininet作为一个轻量级软定义网络研发和测试平台,其主要特性包括
实战篇获取镜像官方网站已经提供了配置好相关环境的基于Debian Lenny的虚拟机镜像,下载地址为http://openflowswitch.org/downloads/OpenFlowTutorial-081910.vmware.zip,压缩包大小为700M左右,解压后大小为2.1G左右。虚拟机镜像格式为vmware的vmdk,可以直接使用vmware workstation或者virtualbox等软件打开。如果使用QEMU和KVM则需要先进行格式转换。后面我们就以这个虚拟os环境为例,介绍mininet的相关功能。
登录镜像默认用户名密码均为openflow,建议通过本地利用ssh登录到虚拟机上使用(可以设置自动登录并将X重定向到本地),比较方便操作。
简单测试创建网络mininet的操作十分简单,启动一个小型测试网络只需要下面几个步骤。
登录到虚拟机命令行界面,打开wireshark,使其后台运行, 命令为sudo wireshark &
启动mininet,命令为sudo mn,则默认创建如下图所示的网络拓扑。
此时进入以mininet>引导的命令行界面
好了,从现在开始,我们就拥有了一个1台控制节点(controller)、一台交换(switch)、两台主机(host)的网络,并且用wireshark进行观测。下面进行几项简单的测试。
查看信息查看全部节点:
mininet> nodes
available nodes are:
c0 h2 h3 s1
查看链路信息:
mininet> net
s1 <-> h2-eth0 h3-eth0
输出各节点的信息:
mininet> dump
c0: IP=127.0.0.1 intfs= pid=1679
s1: IP=None intfs=s1-eth1,s1-eth2 pid=1682
h2: IP=10.0.0.2 intfs=h2-eth0 pid=1680
h3: IP=10.0.0.3 intfs=h3-eth0 pid=1681
对节点进行单独操作
如果想要对某个节点的虚拟机单独进行命令操作,也十分简单,格式为 node cmd。例如查看交换机s1上的网络信息,我们只需要在执行的ifconfig命令前加上s1主机标志即可,即 s1 ifconfig,同样,如果我们想用ping 3个包的方法来测试h2跟h3之间连通情况,只需要执行 h2 ping -c 3 h3 即可。得到的结果为
mininet> h2 ping -c 3 h3
PING 10.0.0.3 (10.0.0.3) 56(84) bytes of data.
64 bytes from 10.0.0.3: icmp_seq=1 ttl=64 time=7.19 ms
64 bytes from 10.0.0.3: icmp_seq=2 ttl=64 time=0.239 ms
64 bytes from 10.0.0.3: icmp_seq=3 ttl=64 time=0.136 ms
— 10.0.0.3 ping statistics —
3 packets transmitted, 3 received, 0% packet loss, time 2006ms
rtt min/avg/max/mdev = 0.136/2.523/7.194/3.303 ms
在本操作执行后,可以通过wireshark记录查看到创建新的流表项的过程,这也是造成第一个ping得到的结果偏大的原因。更简单的全网络互ping测试命令是pingall,会自动所有节点逐对进行ping连通测试。
常用功能快捷测试除了cli的交互方式之外,mininet还提供了更方便的自动执行的快捷测试方式,其格式为sudo mn –test cmd,即可自动启动并执行cmd操作,完成后自动退出。
例如 sudo mn –test pingpair,可以直接对主机连通性进行测试,sudo mn –test iperf启动后直接进行性能测试。用这种方式很方便直接得到实验结果。
自定义拓扑mininet提供了python api,可以用来方便的自定义拓扑结构,在mininet/custom目录下给出了几个例子。例如在topo-2sw-2host.py文件中定义了一个mytopo,则可以通过–topo选项来指定使用这一拓扑,命令为
sudo mn –custom ~/mininet/custom/topo-2sw-2host.py –topo mytopo –test pingall
使用友好的mac编号默认情况下,主机跟交换机启动后分配的MAC地址是随机的,这在某些情况下不方便查找问题。可以使用–mac选项,这样主机跟交换机分配到的MAC地址跟他们的ID是一致的,容易通过MAC地址较快找到对应的节点。
使用XTerm通过使用-x参数,mn在启动后会在每个节点上自动打开一个XTerm,方便某些情况下的对多个节点分别进行操作。命令为
sudo mn -x
在进入mn cli之后,也可以使用 xterm node 命令指定启动某些节点上的xterm,例如分别启用s1跟h2上的xterm,可以用
xterm s1 h2
链路操作在mn cli中,使用link命令,禁用或启用某条链路,格式为 link node1 node2 up/down,例如临时禁用s1跟h2之间的链路,可以用
link s1 h2 down
名字空间默认情况下,主机节点有用独立的名字空间(namespace),而控制节点跟交换节点都在根名字空间(root namespace)中。如果想要让所有节点拥有各自的名字空间,需要添加 –innamespace 参数,即启动方式为 sudo mn –innamespace
其他操作执行sudo mn -c会进行清理配置操作,适合故障后恢复。
总结篇除了使用mn命令进行交互式操作以外,mininet最为强大之处是提供api可以直接通过python编程进行灵活的网络实验。在mininet/example目录下给出了几个python程序的例子,包括使用gui方式创建拓扑、运行多个测试,在节点上运行sshd,创建多个节点的tree结构网络等等。运行这些程序就可以得到令人信服的结果,而且这些程序大都十分短小,体现了mininet平台的强大易用性。
另外,限于篇幅,本文仅对mininet做了较简略的介绍,更全面的版本可以从这里找到。此外,也建议有兴趣做深入研究的朋友通过阅读参考文献,进一步了解更多有趣内容。
参考
<1> A Network in a Laptop : Rapid Prototyping for Software-Defined Networks, Bob Lantz, Brandon Heller, Nick Mckeown, ACM Hotnets 2010;
| |