Tony Ding's Blog

Keep Learning

Open vSwitch技术介绍

云计算 技术介绍

什么是Open vSwitch 官方对Open vSwitch(OVS)的含义是这样说的: 顾名思义,Open vSwitch即开放虚拟交换标准!具体点说,Open vSwitch是在开源的Apache2.0许可下的产品级质量的多层虚拟交换标准!它旨在通过编程扩展,使庞大的网络自动化(配置、管理、维护),同时还支持标准的管理接口和协议(如NetFlow, sFlow, SPAN, RSPAN, CLI, LACP, 802.1ag)。总的来说,它被设计为支持分布在多个物理服务器,例如VMware的vNetwork分布式vSwitch或思科的Nexus1000V.   在虚拟环境下的虚拟机之间进行的网络行为,包括内网通信、外网通信、QoS服务、安全监控和管理部署等,都给网络设计和运维带来了困难,因为VM之间的流量在服务器内部,并不是所有的流量都到服务器之间的物理交换机上;此时Open vSwitch的出现给这些问题的解决带来了希望,因为Open vSwitch不仅支持LAN/VXLAN/NVGGE等隔离方式,并且支持QoS服务和SFLOW等监控功能,并且还支持OpenFlow协议。 Open vSwitch的产生与发展   要追溯Open vSwitch的产生就不得不提Openflow和SDN,即Software Defined Networking,软件定义网络。随着互联网的发展,今天的互联网业务对互联网提出了越来越高的传输质量要求,针对如何修改网络来满足新业务的需求,出现了改良派和革命派两种不同的做法。改良派提议在原有基础设施的基础上增添新的协议,而改革派认为需要推到一切重来。OpenFlow就是改革派提出的一种新型网络交换模型,通过将网络设备控制面与数据面分离开来,从而实现了网络流量的灵活控制,是网络作为管道变得更加智能,OpenFlow协议给网络带来可编程的特性,大大增加了网络的灵活性。后续会专门开一篇帖子来学习讨论openflow协议。   2006年,SDN诞生于美国斯坦福大学Clean State项目,该项目的最终目的是要重新发明英特网,当年,斯坦福大学的学生Martin Casado领导了一个关于网络安全和管理的项目Ethane,该项目试图通过一个集中式的控制器,让网络管理员可以方便地定义基于网络流的安全控制策略,并将这些安全策略应用到各种网络设备中,从而实现对整个网络通讯的安全控制。受此项目启发,Martin和他的导师Nick McKeown教授(时任Clean Slate项目的Faculty Director)发现,如果将Ethane的设计更一般化,将传统网络设备的数据转发(data plane)和路由控制(control plane)两个功能模块相分离,通过集中式的控制器(Controller)以标准化的接口对各种网络设备进行管理和配置,那么这将为网络资源的设计、管理和使用提供更多的可能性,从而更容易推动网络的革新与发展。于是,他们便提出了OpenFlow的概念,并且Nick McKeown等人于2008年在ACM SIGCOMM发表了题为OpenFlow: Enabling Innovation in Campus Networks的论文,首次详细地介绍了OpenFlow的概念。该篇论文除了阐述OpenFlow的工作原理外,还列举了OpenFlow几大应用场景,包括:1)校园网络中对实验性通讯协议的支持(如其标题所示);2) 网络管理和访问控制;3)网络隔离和VLAN;4)基于WiFi的移动网络;5)非IP网络;6)基于网络包的处理。当然,目前关于OpenFlow的研究已经远远超出了这些领域。 Martin Casado   Open vSwitch是一个有Nicira Networks(已被VMWare收购)主导的开源项目,Martin Casado正是Nicira创始人之一及CTO,并且Open vSwitch源码的第一个Commit正是Martin Casado作为程序员提交的,这个Commit也奠定了多年以后开源云计算平台中最受欢迎而且也是部署最为广泛的开源虚拟交换机。需求决定产品,正是由于在企业级云中,需要各种丰富的网络功能,VMware才于n年前就推出了vSwitch、vDS等虚拟交换机。正是看到了云中的网络是一块大市场,Cisco才与VMware紧密合作,以partner的形式基于VMware kernel API开发出了自己的分布式虚拟交换机Nexus 1000V(功能对应于VMware的vDS)。可惜的是,这两款产品都是收费的。Citrix倒是基于Open vSwitch快速追赶,推出了自己的Distributed Virtual Switch解决方案,但是不好意思,也是收费的。开源云的标杆OpenStack在2011年下半年推出了一项宏大的计划,启动了Quantum项目,志在通过引入Open vSwitch,为Open Stack Network模块勾勒出“Connectivity as a service”的动人前景。也正是基于Openstack社区的快速壮大,open vswitch成为了虚拟交换的真正标准。 Open vSwitch架构   该图简单但很好的展示了Open vSwitch的结构框架,Open vSwitch支持OpenFlow协议,上层可统一接收SDN控制平面及OpenFlow控制器的指令。Open Switch定义了一系列Flow Table,通过它来控制包的流向和结构,open vswitch对外提供统一的南向接口,可以接受外部控制器下发的流表,也就是说Open vSwitch是可以被远程控制。Open vSwitch内部分为用户和内核两层,即所谓的用户态和内核态。 用户层(态)

10 Aug 2016 #Open vSwitch