XenServer的网络堆栈Open vSwitch模式

在上一篇文章中,我们介绍了XenServer的Bridge网络堆栈模式,现在在本篇文档中,我们将介绍XenServer支持的另一种开源的网络堆栈模式:open vswitch。XenServer现在安装部署的版本中默认采用open vswitch模式,如果我们不需要做LACP或者绑定更多的网卡及使用分布式交换机,那么建议在生产环境中还是使用Linux Bridge模式。

Open vSwitch是一款开源的软件虚拟交换机,适用于基于Linux的虚拟化平台。实质上Citrix也将其集成到自己的XenServer产品当中,并对其进行大力支持。并且基于其开发出自己的虚拟分布式交换机产品提供给XenServer使用。从XenServer6.0开始Citrix将其作为xenServer默认的网络堆栈模式。Open vSwitch提供近似于硬件交换机的多种功能,相比于Bridge网络协议栈来说,Open vSwitch提供了比Bridge更多的功能,比如VLAN功能,端口镜像,QoS等。OpenvSwitch提供的具体功能如下:

  • NetFlow:NetFlow最初是由思科公司开发的一项技术,用于监控网络流量和为管理员提供网络流量的可视化的视图。
  • sFlow:sFlow技术是用于监视网络的开放标准技术协议,为管理员提供了可视化的网络流量视图。
  • Switched Port Analyzer (SPAN):SPAN或端口镜像用于复制或镜像数据包从一个端口到另一个交换机上。这通常是用于监视和扫描目的,比如部署亚信安全的TDA设备进行网络安全威胁扫描等。
  • Remote Switched Port Analyzer (RSPAN):RSPAN顾名思义就是远程的SPAN技术。利用SPAN技术我们可以把交换机上某些想要被监控端口(以下简称受控端口)的数据流COPY或MIRROR一份,发送给连接在监控端口上的流量分析仪,比如CISCO的IDS或是装了SNIFFER工具的PC. 受控端口和监控端口可以在同一台交换机上,也可以在不同的交换机上(远程SPAN)。
  • Quality of Service (QoS):QoS(Quality of Service,服务质量)指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力, 是网络的一种安全机制, 是用来解决网络延迟和阻塞等问题的一种技术。
  • Link Aggregation Control Protocol (LACP):提供LACP协议的能力,聚合多个物理网络接口连接到对端交换机,提供冗余逻辑链路以及带宽的聚合提升。
  • OpenFlow suppor:允许OpenFlow的控制平面的从打开的vSwitch的情况下抽象我们的数据包,其主要作为转发平面。此功能提供了虚拟交换机作为SDN的支持。
  • Generic Routing Encapsulation (GRE):GRE 是通用路由封装协议,可以对某些网络层协议的数据报进行封装,使这些被封装的数据报能够在IPv4 网络中传输。
  • VXLAN:VXLAN(Virtual eXtensible Local AreaNetwork)是一种将二层报文用三层协议进行封装的技术,可以对二层网络在三层范围进行扩展。即所谓的大二层技术。

在这里重点提一下OpenFlow技术,现在比较火热的新型网络架构软件定义网络( SDN)中,现在业界主要分为两大阵营在该领域抢占制高点,其中一派为传统的网络设备制造厂商,譬如CISCO,他们以OpenFlow为核心技术,将网络设备的控制与数据平面分离,从而实现网络流量的灵活控制,为核心网络及应用的创新提供良好的平台。以此实现软件定义网络。另一阵营以新兴的虚拟化厂商为代表,比如VMware,他们以Overlay技术为主,高举开放的旗帜,他们不用关心底层硬件的工作,更关心的是如何通过软件的方式来定义和控制网络。这两大阵营有对抗也有共鸣。

无疑Open vSwitch也是OpenFlow技术阵营的。OpenFlow 是一组协议和API,它起源于斯坦福大学的Ethane 项目,实现可编程网络的思想, 从SDN 整个架构看,OpenFlow 协议又是控制器与交换机中的通信协议。控制器使用OpenFlow 协议对交换机中的流表表项进行添加、更新与删除。2009 年12月,OpenFlow.org 发布了OpenFlow标准的1.0 版本,在2011年2月,OpenFlow.org 继续发布标准1.1版,后由ONF负责。

接下来我们首先介绍Open vSwitch的架构和组件。

在Open vSwitch中,如果从整体上来看的话,Open vSwitch在服务器上主要简化的结构如下图所示:

可以理解为Open vSwitch主要包含Controller和Datapath两个部分。其中Datapath我们译为数据路径,其实质就是一台以太网交换机。

其中,Controller层是一个网络的管理层,统一管理和配置下面的各个Datapath层设备。Controller层还可以和OpenFlow紧密集成。

数据路径Datapath层其实就是一个虚拟的交换机设备,功能和传统的交换机类似。在Open vSwitch中一台虚拟的交换机就被称之为一个Datapath。其主要是在名称上的称呼。其实这个Datapath和bridge差不多,区别就在于,Datapath受Open vswitch的Controller管理,支持更多的功能。其主要的功能:

传递虚拟机之间的流量

实现虚拟机和外部网络的流量通信

本图来源于网络

如上图所示,本图很好的展示了Open vSwitch的具体逻辑实现架构。最上层表达的意思是利用OpenFlow协议连接到OpenFlow控制器,以实现SDN的控制层面存在。

中间的这一层就是OpenvSwitch自己的服务守护进行等,主要运作在Domain 0的用户空间。

  • Ovs-vswitchd:该组件是openvswitch在用户空间的守护进程,主要实现虚拟交换机的交换功能。通过netlink协议直接和内核模块Datapath进行通信。
  • Ovsdb-Server:open vswitch的数据库,主要存储openvswitch的配置信息,ovs-vswitchd主要读取ovsdb-server里面保存的配置信息进行工作。ovs-vswitchd会通过Unix socket和ovsdb-server通信。

最下面的这层运行Open vSwitch内核模块Datapath,Datapath主要运行于内核空间,是主要的应用我们配置数据包规则的程序,就是负责干活的一线工程师。

下面我们说说Open vSwitch是如何工作的。

在系统的内核模块中,Open vSwitch可以创建多个“数据路径(DataPath)”(这类似于以太网交换机,和我们上文中说的网桥类似),在每个Datapath中都可以创建多个“vports”(交换机端口)。

每个Datapath通过关联流表(flow table)来进行相应的动作,而这些流表中的流都是用户空间在报文头和元数据的基础上映射的关键信息,一般的操作都是将数据包转发到另一个vport。当一个数据包到达一个vport,内核模块所做的处理是提取其流的关键信息并在流表中查找这些关键信息。当有一个匹配的流时它执行对应的操作。如果没有匹配,会交给用户态的ovs-vswitchd查询flow,用户态处理后,会把处理完的数据包输出到正确的端口,并且设置新的datapath规则,后续数据包可以通过新的datapath规则实现快速转发。细节如下图所示:

图片来自网络

上面我们花了一定的篇幅来介绍什么是Open vSwitch和Opne vSwitch的架构以及Open vSwitch如何工作。接下来我需要给大家说明,在Xen或着XenServer中,Open vSwitch是如何和Xen虚拟化底层结合的。

在下面的图中展示了Xen环境下的Opne vSwitch设备架构图

图片来自网络

我们可以看到,在Xen的环境下,Open vSwitch会在每台Xen的主机Domain 0中创建数据路径Datapath。然后通过统一的Controller来进行管理。

虚拟机网卡与Open vSwitch的Datapath即网桥端口直接连接。数据包转发到Datapath之后,再有我们上面所说的处理机制进行数据包的处理。这里的tap就是交换机上的一个端口。

在多台Xen或着XenServer主机中的网络连接示意图。

在XenServer中,Citrix基于OpenvSwitch开发了分布式虚拟交换机。

分布式虚拟交换机架构图

在XenServer中,分布式虚拟交换机如下图所示,XenServer有一台专门封装好的虚拟机,导入XenServer中作为分布式交换机的控制器,对各台XenServer上的Open vSwitch网络进行统一管理。

时间: 2024-08-01 22:43:12

XenServer的网络堆栈Open vSwitch模式的相关文章

XenServer的网络堆栈模式Bridge

XenServer本身并没有在网络方面自己开发专门的网络堆栈模式,而是使用现有的网络堆栈模式来进行集成.目前XenServer的网络堆栈主要有两种:Bridge和OpenvSwitch模式.其中,Bridge是属于Linux系统的技术,OpenvSwitch是一款开源的虚拟交换机软件.在本文中我想说说Bridge堆栈模式. Bridge中文称为网桥,Linux网桥就是通过一个虚拟的网桥设备来实现桥接,这个设备可以绑定若干个以太网接口设备,从而将它们桥接起来.一般来讲,Bridge就是Switch

XenServer管理网络做网卡Bond最佳实践

在 XenServer 安装期间,系统会为每个物理网络接口卡 (NIC) 创建一个网络.向资源池添加服务器 时,这些默认网络会进行合并,以便设备名称相同的所有物理 NIC 均连接到同一网络. 通常情况下,如果您想要创建内部网络,使用现有 NIC 设置新 VLAN,或创建 NIC 绑定,只需添加一个新网络即可. 在 XenServer 中您可以配置四种不同类型的网络: 外部网络,与物理网络接口相关联,可在虚拟机与连接到网络的物理网络接口之间提供桥接,从而使虚拟机能够通过服务器的物理网络接口卡连接到

解决Linux-CentOS 7.0 VMware虚拟机没有网卡不识别问题和Vmware提示无法将网络更改为桥接模式

环境 CentOS:版本7 [[email protected] ~]# uname -a Linux net592 3.10.0-123.el7.x86_64 #1 SMP Mon Jun 30 12:09:22 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux 问题1:Vmware无法识别网卡,导致虚拟机无法上网 问题2:Vmware虚拟机无法桥接网卡,提示无法将网络更改为桥接模式没有未桥接的主机网络适配器 问题一解决方法 由于Vmware虚拟网卡和linux兼

从Jetty、Tomcat和Mina中提炼NIO构架网络服务器的经典模式

转自:http://blog.csdn.net/cutesource/article/details/6192016 http://blog.csdn.net/cutesource/article/details/6192145 http://blog.csdn.net/cutesource/article/details/6192163 如何正确使用NIO来构架网络服务器一直是最近思考的一个问题,于是乎分析了一下Jetty.Tomcat和Mina有关NIO的源码,发现大伙都基于类似的方式,我感

网络中有三种通讯模式:单播、广播、组播(多播)

当前的网络中有三种通讯模式:单播(Unicast).组播(多播)(Multicast).广播(Broadcast),其中的组播出现时间最晚但同时具备单播和广播的优点,最具有发展前景. 一.单播: 主机之间"一对一"的通讯模式,网络中的交换机和路由器对数据只进行转发不进行复制.如果10个客户机需要相同的数据,则服务器需要逐一传送,重复10次相同的工作.但由于其能够针对每个客户的及时响应,所以现在的网页浏览全部都是采用IP单播协议.网络中的路由器和交换机根据其目标地址选择传输路径,将IP单

虚拟机网络配置,桥接模式和NAT模式

虚拟机网络设置方式的研究: 主要就是桥接网络,和NAT模式: 桥接网络:桥接网络中,相当于虚拟机的网卡和主机的物理网卡均连接到虚拟机软件提供的VMnet0虚拟交换机上,因此虚拟机和主机是平等的,相当于一个网络中的两台计算机.这样,设置虚拟机的IP和主机在同一IP段时,即可实现主机与虚拟机的通信.区别两个概念,宿主机器,和主机,宿主机器是指虚拟机运行的机器上.比如局域网内有主机A.B,然后在主机A上运行了虚拟机C.使用桥接的方式,相当于虚拟机C就是局域网内的一台主机.相当于局域网中有主机A,B,C

Vmware虚拟机的网络连接的桥接模式

VMware虚拟机安装完以后会提供三种网络模式,对应网络连接名称分别是 Bridged(桥接模式)             VMnet0 NAT(网络地址转换模式)      VMnet8 Host-only(主机模式)           VMnet1 桥接模式是为虚拟机提供的操作系统和宿主系统提供真实的局域环境,可以理解为运行在同一台计算机的两个独立的操作系统,虚拟机主机是局域网的另外一台机器而已. 宿主系统 1 2 3 IPv4 地址 . . . . . . . . . . . . : 1

[Android Traffic] 根据网络类型更改下载模式

转载自: http://blog.csdn.net/kesenhoo/article/details/7396321 Modifying your Download Patterns Based on the Connectivity Type [根据连接的网络类型来更改下载模式] 并不是所有的网络类型(Wi-Fi,3G,2G,etc)对电量的消耗是同等的.不仅仅Wi-Fi电波比无线电波消耗的电量要少很多,而且不同的无线电波(3G,2G,LTE……)也存在使用不同电量的区别. Use Wi-Fi

谈谈对于vmware Workstation 网络连接三种模式的认识.

大家好,我是黄药师,从今天开始坚持写博客. 简介: VM(VMware Workstation简称VM,后面都将用VM代替阐述)是一款功能强大的虚拟化软件.VM支持在 单一的桌面上同时运行多款不同的操作系统,能够模拟完整的网络环境,支持pxe功能.实时快照,等等多种强 大的功能.能够测试软件和部署新的业务测试.同时节约了很多资源.节约了企业成本.所以对于广大的互联 网从业者是不可多得的好工具. 本文中作者使用的软件以及操作系统版本: VM 11.1.2版本 win10 专业版 由于本文只讨论VM