㈠ 软件定义网络的现状
我们开发了一个基于流的底层OpenFlow草案。我们的第一步是定义底层,即一个针对流表的开放外部API。它的1.0版本要求易于添加到现有的硬件交换机、路由器、API上,已经完成。它的2.0版本需要开发针对OpenFlow优化的硬件,以及通用的“流空间”,期限是2011年。我们的第二步是部署,首先在校园里部署,再在全美国的科研骨干网络上部署,允许研究人员自由地在其顶部创新。
使用OpenFlow,我们可以静态地划分VLAN,比如将生产用和研究用的VLAN划分开来;我们可以设计自己的路由协议,比如单播、组播、多径、负载均衡;可以做接入控制、家庭网络管理、移动性管理、能量管理;包处理器(在控制器上);设计自己的IP协议;网络测量和虚拟化,比如在交换机上实现虚拟化OpenFlow。
这样我们就拥有了一个简单、可用、稳定的硬件底层,它具有可编程性,强隔离模型,支持其上的自由竞争,从而加速创新。
OpenFlow已经在美国斯坦福大学、Internet2、日本的JGN2plus以及其他的10-15个科研机构中部署,计划将在2009年10月前进行规模的机构部署,应用于“GENI Enterprise”项目,并在国家科研骨干网以及其他科研和生产中应用。
软件定义网络(SDN)由多种网络技术组成,具有灵活敏捷的特点,它是一种可编程网络,主要通过OpenFlow技术来根据部署需求或后续需求更改网络的设置。与传统网络不同,软件定义网络(SDN)将网络设备的控制面与数据面分离开来,因此企业可以像升级、安装软件一样对网络架构进行修改,满足企业对整个网络结构进行调整、扩容或升级的需求,而底层的交换机、路由器等硬件则无需替换,节省大量的成本的同时,网络架构迭代周期也会大大缩短。
㈢ 软件定义网络的设计
从路由器的设计上看,它由软件控制和硬件数据通道组成。软件控制包括管理(CLI,SNMP)以及路由协议(OSPF,ISIS,BGP)等。数据通道包括针对每个包的查询、交换和缓存。这方面有大量论文在研究,引出三个开放性的话题,即“提速2倍”,确定性的(而不是概率性的)交换机设计,以及让路由器简单。
事实上在路由器设计方面我们已经迷失了方向,因为有太多的复杂功能加入到了体系结构当中,比如OSPF,BGP,组播,区分服务,流量工程,NAT,防火墙,MPLS,冗余层等等。个人认为,我们在20世纪60年代定义的“哑的,最小的”数据通路已经臃肿不堪。
㈣ 万物互联之软件定义网络的核心功能是什么
传统网络中部署 4-7 层服务存在哪些问题呢?用一句话总结,就是 4-7 层服务节点不能和位置解耦,这些节点成为网络拓扑的一个网元,和基本网络部分紧耦合,服务节点的增删改都会导致网络拓扑发生较大的变化,需要不停地调整网络的配置以适应,导致维护非常困难。其中任何一个节点都容易成为性能瓶颈,而且对于不想过服务节点的流量无法绕开,造成带宽的浪费,让本就捉襟见肘的性能更雪上加霜;旁挂方式的问题在于要逐跳配置复杂的策略路由,一旦网络节点增删改,或者进行服务节点的替换,就需要调整很多策略路由的配置,而且理解困难,又复杂又容易出错。所以 SDN 服务链功能在这里就特别重要了,把园区传统的通过策略路由方式的复杂引流策略转换为一种简单的按需使用,自由编排的引流方式来快速实现。这种通过软件实现方式可以为用户提供灵活的、可编程的、弹性的软硬件一体化解决方案。
万物互联的软件定义网络还有个核心功能是自动部署, SDN 控制器将整网的接入设备配置完全整合变成一份完全相同的配置文件,同时汇聚层设备也进行整合,变成一份相同的配置。这大大简化预配置文件编写的复杂度, 使得各层次设备配置模板化,自动部署的成本很难度大大降低,同时也避免了人为误操作的风险,使得万物自动部署从理论变成现实。
㈤ 什么是软件定义
软件定义的本质就是控制面和基础能力面的分离。这个理念对于一个搞通信的“老人”其实就不是什么新东西,程控交换很早就将信令和语音分离,信令控制语音电路接续等,信令和语音是二个通道。计算、网络和存储的基础能力分别是计算、转发和数据存取能力,这些能力是分布部署的,部署在物理或虚拟机上。配置、管理、控制都是由集中的控制单元完成。原来我们需要对每个设备进行配置和管理,现在只要在集中的能力管理控制平台上完成,再通过分权分域让租户自己完成。相关控制信息由管理平台推送到相应的能力平台上。在这种新的模式下,只要基础能力绑定配置信息就是一台虚拟设备,比如虚拟机、虚拟路由器、虚拟存储。而且基础能力都是透明的,配置信息可能绑定任何的物理设备(载体),并在载体中按需移动,这就是迁移。其实我们一直在谈虚拟机有迁移能力,实际上软件定义后的网络、存储也有一样的迁移能力,也具备热迁移和冷迁移的能力。这也是软件定义带来的又一个优点。但是现在的控制面往往独立存在的,比如虚拟机有独立的控制面,虚拟交换机有独立的控制面、虚拟防火墙有独立的控制面板、虚拟负载均衡有独立控制面、存储更是。这些控制面相互之间缺乏融合,他们之间的关系就是设备和设备之间的关系,这种关系和普通物理设备之间的关系完全一样,需要靠复杂的配置来确定。
㈥ 软件定义网络的介绍
软件定义网络(Software Defined Network, SDN ),是由Emulex提出的一种新型网络创新架构,其核心技术OpenFlow通过将网络设备控制面与数据面分离开来,从而实现了网络流量的灵活控制,为核心网络及应用的创新提供了良好的平台。
㈦ SDN指的是什么
首要的当然是“控制与转发的分离”,这里的分离一方面是指decouple,所谓解耦合,在控制与转发之间定义了清晰的开放接口,让控制和转发都可以独立演进,在不断改进的同时还能向后兼容;另一方面这里的decouple又特指物理位置上的远离,这一点与PC的控制/处理分离是不同的,与分布式系统的通信类似,依赖于消息。
其次是“控制面的抽象,转发面的抽象”,前者是指摆脱之前控制面的功能堆砌,解决一个问题多一个协议,多一个协议多一个控制面功能的尴尬,为了使得网络易用,控制面需要抽象,一旦抽象也能持续演进。与PC的类比来看,控制面的抽象就是控制面的软件层次化,一方面NOS负责对转发面的机器级控制,同时给上层应用提供良好的开放接口,另一方面应用在更高抽象级别上建立模型,这样一来,控制面本身也是NOS与Apps的分离,也能独立演进,并且可以借鉴计算机发展以来软件工程积累的经验;后者是指对网络数据包处理行为进行通用化,建立通用转发抽象模型,一个关键是通用转发模型的体系结构,一旦这个定下来,之后就是修修补补和具体实现了。
再次才是“逻辑上的集中控制”,个人认为这一点已经不那么清晰明确了(也可能是自己的局限性,没理解透),尤其再加上Logically这个修饰词,还有Kadoo的local controller的概念,到底(Logically) Centralized Controller在实现层面是怎么操作的?当网络的规模足够庞大时,就需要分布式的控制器集群来作为整个网络的控制面,这是一种层次型的分布式协作系统,还是将巨量的任务分成块来处理?我更愿意把最终的控制面理解成一个逻辑上的a big controller,一边是network global view,另一边是传统软件工程师。
为什么要弄清楚SDN的本质属性?其实之前挺不愿意去讨论“本质属性”的,因为以我的理解深度可能还没到这个程度,更多愿意分析别人目前在各个方向上的成果,开源项目和产业界的产品策略,但后来发现如果要“保持SDN学习/研究的专注性,保持对各个技术方向的敏锐性”,就必须先弄清楚这个。假如什么都是SDN,那么SDN就什么都不是了。
㈧ 软件定义网络的思想
因此我们需要做以下几件事:
1. 在底层和开放编程环境之间要有一个清晰的分割;
2. 设计一个简单的硬件底层,能够包括和简化当前的底层;
3. 极少的使用事先形成的有关底层如何被编程的想法;
4. 强隔离。
在设计硬件底层方面,我们要用最少的基于流的数据通路来缓存决策,也即实现一个基于流的底层。我们需要对流进行灵活的定义,如单播、组播、导航点、负载均衡,并且支持不同类型的流的聚类;我们需要控制流,把流作为编程的实体:能对它路由、私有化、移动……我们还要吸取包交换的益处,因为它切实可行,能全局部署,而且很有效率——当然是在它很简单的时候。
综合上述考虑,我们定义了一个名为“流空间”的底层,它有以下属性:
1. 后向兼容。当前的分层结构是它的一个特例,而且端点不需要修改;
2. 容易在硬件上部署,比如在每个交换机上部署TCAM流表;
3. 流之间能清晰分离,具有简单的几何结构,能证明哪个流能或者不能通讯。
作为底层,它有以下属性:
第一,基于流;第二,对每个流只有少量的动作,如转发给端口;转发给控制器; 重写头,在流空间之间路由;根据最小/最大速率分隔带宽等;第三,外部的针对流表的开放API。
㈨ 软件定义网络,网络虚拟化和网络功能虚拟化的区别
网络团队经常要处理铺天盖地的配置请求,这些配置请求可能需要数天或数周来处理,所幸的是,现在有几种方法可以帮助企业提高网络灵活性,主要包括网络虚拟化[注](NV)、网络功能虚拟化[注](NFV[注])和软件定义网络[注](SDN[注])。
这三种方法可能听起来有些混淆,但其实每种方法都是在试图解决网络移动性这个宏观问题的不同子集问题。在这篇文章中,我们将探讨NV、NFV和SDN的区别以及每种方法如何帮助我们实现可编程网络。
网络虚拟化
企业网络管理员很难满足不断变化的网络需求。企业需要一种方法来自动化网络,以提高IT对变化的响应率。在这个用例中,我们通常试图解决一个问题:如何跨不同逻辑域移动虚拟机?网络虚拟化其实是通过在流量层面逻辑地划分网络,以在现有网络中创建逻辑网段,这类似于硬盘驱动器的分区。
网络虚拟化是一种覆盖;也是一个隧道。NV并不是物理地连接网络中的两个域,NV是通过现有网络创建一个隧道来连接两个域。NV很有价值,因为管理员不再需要物理地连接每个新的域连接,特别是对于创建的虚拟机。这一点很有用,因为管理员不需要改变他们已经实现的工作。他们得到了一种新方式来虚拟化其基础设施,以及对现有基础设施进行更改。
NV在高性能x86平台上运行。这里的目标是让企业能够独立于现有基础设施来移动虚拟机,而不需要重新配置网络。Nicira(现在属于VMware)是销售NV设备的供应商。NV适合于所有使用虚拟机技术的企业。
网络功能虚拟化
NV提供了创建网络隧道的功能,并采用每个流服务的思维,下一个步骤是将服务放在隧道中。NFV主要虚拟化4-7层网络功能,例如防火墙或IDPS,甚至还包括负载均衡(应用交付控制器)。
如果管理员可以通过简单的点击来设置虚拟机,为什么他们不能以相同的方式打开防火墙或IDS/IPS呢?这正是NFV可以实现的功能。NFV使用针对不同网络组件的最佳做法作为基础措施和配置。如果你有一个特定的隧道,你可以添加防火墙或IDS/IPS到这个隧道。这方面很受欢迎的是来自PLUMgrid或Embrane等公司的防火墙或IDS/IPS。
NFV在高性能x86平台上运行,它允许用户在网络中选定的隧道上开启功能。这里的目标是,让人们为虚拟机或流量创建服务配置文件,并利用x86来在网络上构建抽象层,然后在这个特定逻辑环境中构建虚拟服务。在部署后,NFV能够在配置和培训方面节省大量数据。
NFV还减少了过度配置的需要:客户不需要购买大型防火墙或IDSIPS产品来处理整个网络,客户可以为有需要的特定隧道购买功能。这样可以减少初始资本支出,但其实运营收益才是真正的优势。NFV可以被看作是相当于Vmware,几台服务器运行很多虚拟服务器,通过点击配置系统。
客户了解NV和NFV之间的区别,但他们可能不希望从两家不同的供应商来获得它们。这也是为什么Vmware现在在VmwareNSX提供NV和NFV安全功能的原因。
软件定义网络
SDN利用“罐装”流程来配置网络。例如,当用户想要创建tap时,他们能够对网络进行编程,而不是使用设备来构建网络tap。
SDN通过从数据平面(发送数据包到特定目的地)分离控制平面(告诉网络什么去到哪里)使网络具有可编程性。它依赖于交换机来完成这一工作,该交换机可以利用行业标准控制协议(例如OpenFlow)通过SDN控制器来编程。
NV和NFV添加虚拟通道和功能到物理网络,而SDN则改变物理网络,这确实是配置和管理网络的新的外部驱动手段。SDN的用例可能涉及将大流量从1G端口转移到10G端口,或者聚合大量小流量到一个1G端口。SDN被部署在网络交换机上,而不是x86服务器。BigSwitch和Pica8都有SDN相关的产品。
所有这三种类型的技术都旨在解决移动性和灵活性。我们需要找到一种方式来编程网络,而现在有不同的方法可以实现:NV、NFV和SDN。
NV和NFV可以在现有的网络中运作,因为它们在服务器运行,并与发送到它们的流量进行交互;而SDN则需要一种新的网络架构,从而分离数据平面和控制平面。
㈩ 什么是软件定义网络
话说最近网络虚拟化(Networking Virtualization,NV)和SDN真实热得发烫,先谈一下我个人的理解和看法。由于没有实际玩过相应的产品,所以也只是停留在理论阶段,而且尚在学习中,有些地方难以理解甚至理解错误,因此,特地来和大家交流一下。
早在2009年就出现了SDN(Software Defined Networking)的概念,但最近才开始被众人所关注,主要还是因为Google跳出来表态其内部数据中心所有网络都开始采用OpenFlow进行控制,将OpenFlow从原本仅是学术性的东西瞬间推到了商用领域。第二个劲爆的消息就是VMWare大手笔12.6个亿$收掉了网络虚拟化公司Nicira。
SDN只是一个理念,归根结底,她是要实现可编程网络,将原本封闭的网络设备控制面(Control Plane)完全拿到“盒子”外边,由集中的控制器来管理,而该控制器是完全开放的,因此你可以定义任何想实现的机制和协议。比如你不喜欢交换机/路由器自身所内置的TCP协议,希望通过编程的方式对其进行修改,甚至去掉它,完全由另一个控制协议取代也是可以的。正是因为这种开放性,使得网络的发展空间变为无限可能,换句话说,只有你想不到,没有你做不到。
那SDN为什么会和NV扯上关系呢?其实他们之间并没有因果关系,SDN不是为实现网络虚拟化而设计的,但正式因为SDN架构的先进性,使得网络虚拟化的任务也得以实现。很多人(包括我自己)在最初接触SDN的时候,甚至认为她就是NV,但实际上SDN的目光要远大得多,用句数学术语来说就是“NV包含于SDN,SDN包含NV”。
再来看看NV,为什么NV会如此火爆,归根结底还是因为云计算的崛起。服务器/存储虚拟化为云计算提供了基础架构支撑,也已经有成熟的产品和解决方案,但你会发现一个问题,即便如此,虚拟机的迁移依然不够灵活,例如VMWare vMotion可以做到VM在线迁移,EMC VPLEX可以做到双活站点,但虚拟机的网络(地址、策略、安全、VLAN、ACL等等)依然死死地与物理设备耦合在一起,即便虚拟机从一个子网成功地迁移到另一个子网,但你依然需要改变其IP地址,而这一过程,必然会有停机。另外,很多策略通常也是基于地址的,地址改了,策略有得改,所以依然是手动活,繁杂且易出错。所以说,要实现Full VM Migration,即不需要更改任何现有配置,把逻辑对象(比如IP地址)与物理网络设备去耦(decouple)才行。这是一个举例,总而言之,目的就是实现VM Migration Anywhere within the DataCenter non-disruptively,尤其是在云这样的多租户(Multi-tanency)环境里,为每一个租户提供完整的网络视图,实现真正的敏捷商务模型,才能吸引更多人投身于云计算。
SDN不是网络虚拟化的唯一做法,Network overly(mac in mac, ip in ip)的方式也是现在很多公司实际在使用的,比如Microsoft NVGRE、Cisco/VMWare VXLAN、Cisco OTV、Nicira STT等。事实上overly network似乎已经成为NV实现的标准做法,SDN模型下的NV实现目前更多的是在学术、研究领域。新技术总是伴随大量的竞争者,都想在此分一杯羹,甚至最后成为标准。好戏才刚刚上演,相信会越发精彩。
个人觉得这是一个非常有意思的话题,希望和大家交流心得,互相学习.
NV的目标就是如何呈现一个完全的网络给云环境中的每一个租户,租户可能会要求使用任何其希望使用的IP地址段,任何拓扑,当然更不希望在迁移至公共云的情况下需要更改其原本的IP地址,因为这意味着停机。所以,客户希望有一个安全且完全隔离的网络环境,保证不会与其他租户产生冲突。既然vMotion之类的功能能够让虚拟机在云中自由在线漂移,那网络是否也能随之漂移呢?这里简单介绍下微软的Hyper-v networking virtualization,到不是因为技术有多先进,只不过他的实现细节比较公开,而其它公司的具体做法相对封闭,难以举例。
其实微软的思路很简单,就是将原本虚拟机的二层Frame通过NVGRE再次封装到 IP packet中进行传输,使得交换机能够通过识别NVGRE的Key字段来判断数据包的最终目的地。这其实就是一个Network Overlay的做法,它将虚拟网络与物理网络进行了分离。试想,公司A和公司B都迁移到公有云且就那么巧,他们的一些虚拟机连接到了同一个物理交换机上,现在的问题是,他们各自的虚拟机原本使用的私有IP段是一样的,如果没有VLAN就会导致IP冲突。但现在看来,这已经不是问题,因为虚拟机之间的通信都要通过NVGRE的封装,而新的IP包在物理网络上传输时是走物理地址空间的,而物理地址空间是由云服务提供者所独占的,因此不存在IP冲突的情况。
总结一下就是,这里的网络虚拟化可以认为是IP地址虚拟化,将虚拟网络的IP与物理网络完全分离,这样做就可以避免IP冲突,跨子网在线迁移虚拟机的问题,微软的要求是:虚拟机可以在数据中心中任意移动,而客户不会有任何感觉,这种移动能力带来了极大的灵活性。
Software-defined networking (SDN) is an approach to computer networking which evolved from work done at UC Berkeley and Stanford University around 2008.[1] SDN allows network administrators to manage network services throughabstraction of lower level functionality. This is done by decoupling the system that makes decisions about where traffic is sent (the control plane) from the underlying systems that forwards traffic to the selected destination (the data plane). The inventors and vendors of these systems claim that this simplifies networking.[2]
SDN requires some method for the control plane to communicate with the data plane. One such mechanism, OpenFlow, is often misunderstood to be equivalent to SDN, but other mechanisms could also fit into the concept. The Open Networking Foundation was founded to promote SDN and OpenFlow, marketing the use of the term cloud computing before it became popular.
This section does not cite any references or sources. Please help improve this section by adding citations to reliable sources. Unsourced material may be challenged andremoved. (February 2013)
One application of SDN is the infrastructure as a service (IaaS).
This extension means that SDN virtual networking combined with virtual compute (VMs) and virtual storage can emulate elastic resource allocation as if each such enterprise application was written like a Google or Facebook application. In the vast majority of these applications resource allocation is statically mapped in inter process communication (IPC). However if such mapping can be expanded or reced to large (many cores) or small VMs the behavior would be much like one of the purpose built large Internet applications.
Other uses in the consolidated data-center include consolidation of spare capacity stranded in static partition of racks to pods. Pooling these spare capacities results in significant rection of computing resources. Pooling the active resources increases average utilization.
The use of SDN distributed and global edge control also includes the ability to balance load on lots of links leading from the racks to the switching spine of the data-center. Without SDN this task is done using traditional link-state updates that update all locations upon change in any location. Distributed global SDN measurements may extend the cap on the scale of physical clusters. Other data-center uses being listed are distributed application load balancing, distributed fire-walls, and similar adaptations to original networking functions that arise from dynamic, any location or rack allocation of compute resources.
Other uses of SDN in enterprise or carrier managed network services (MNS) address the traditional and geo-distributed campus network. These environments were always challenged by the complexities of moves-adds-changes, mergers & acquisitions, and movement of users. Based on SDN principles, it expected that these identity and policy management challenges could be addressed using global definitions and decoupled from the physical interfaces of the network infrastructure. In place infrastructure on the other hand of potentially thousands of switches and routers can remain intact.
It has been noted that this "overlay" approach raises a high likelihood of inefficiency and low performance by ignoring the characteristics of the underlying infrastructure. Hence, carriers have identified the gaps in overlays and asked for them to be filled by SDN solutions that take traffic, topology, and equipment into account.[7]
SDN deployment models[edit]
This section does not cite any references or sources. Please help improve this section by adding citations to reliable sources. Unsourced material may be challenged andremoved. (February 2013)
Symmetric vs asymmetric
In an asymmetric model, SDN global information is centralized as much as possible, and edge driving is distributed as much as possible. The considerations behind such an approach are clear, centralization makes global consolidation a lot easier, and distribution lowers SDN traffic aggregation-encapsulation pressures. This model however raises questions regarding the exact relationships between these very different types of SDN elements as far as coherency, scale-out simplicity, and multi-location high-availability, questions which do not come up when using traditional AS based networking models. In a Symmetrically distributed SDN model an effort is applied to increase global information distribution ability, and SDN aggregation performance ability so that the SDN elements are basically one type of component. A group of such elements can form an SDN overlay as long as there is network reachability among any subset.
Floodless vs flood-based
In a flood-based model, a significant amount of the global information sharing is achieved using well known broadcast and multicast mechanisms. This can help make SDN models more Symmetric and it leverages existing transparent bridging principles encapsulated dynamically in order to achieve global awareness and identity learning. One of the downsides of this approach is that as more locations are added, the load per location increases, which degrades scalability. In a FloodLess model, all forwarding is based on global exact match, which is typically achieved using Distributed Hashing and Distributed Caching of SDN lookup tables.
Host-based vs Network-centric
In a host-based model an assumption is made regarding use of SDN in data-centers with lots of virtual machines moving to enable elasticity. Under this assumption the SDN encapsulation processing is already done at the host HyperVisor on behalf of the local virtual machines. This design reces SDN edge traffic pressures and uses "free" processing based on each host spare core capacity. In a NetworkCentric design a clearer demarcation is made between network edge and end points. Such an SDN edge is associated with the access of Top of Rack device and outside the host endpoints. This is a more traditional approach to networking that does not count on end-points to perform any routing function.
Some of the lines between these design models may not be completely sharp. For example in data-centers using compute fabrics "Big" hosts with lots of CPU cards perform also some of the TopOfRack access functions and can concentrate SDN Edge functions on behalf of all the CPU cards in a chassis. This would be both HostBased and NetworkCentric design. There may also be dependency between these design variants, for example a HostBased implementation will typically mandate an Asymmetric centralized Lookup or Orchestration service to help organize a large distribution. Symmetric and FloodLess implementation model would typically mandate in-network SDN aggregation to enable lookup distribution to a reasonable amount of Edge points. Such concentration relies on local OpenFlow interfaces in order to sustain traffic encapsulation pressures.[5] [6]