Open VSwitch

本文主要介绍Open VSwitch - 虚拟交换机的概述内容,阅读本文可以对OVS(Open VSwitch)有一个大致的了解。那么本文主要回答了这样几个问题:

1. 虚拟交换机是什么,干什么?

2. 虚拟网络和OVS

3. OVS的组件有哪些?

4. 使用OVS创建一个网络拓扑

5. 示例

一、 Open VSwitch是什么

OVS是一个高质量的,多层虚拟交换机(网络分层的层),其目的是让大规模网络自动化可以通过编程扩展,同时仍然支持标准的管理接口和协议:NetFlow. SFlow ... 等,并且它还支持多个物理机的分布式环境。详情请见http://openvswitch.org  /  http://lamoop.com/post/2013-11-18/40060149263

那什么又是虚拟交换呢?就是,利用软件的方式形成交换部件,所以也叫软件交换机,跟传统的物理交换机相比,虚拟交换机同要具备很多有点:1.配置灵活,因为是软件实现的,一台物理服务器上可以配置数十太或者数百台虚拟交换机,而且端口数目可以灵活选择  2. 成本低廉,通过软件的方式可轻易达到10Gbps的交换速度。

所以OVS是一个虚拟交换机,可以用来组成虚拟网络,虚拟机还有其他的类型不同的架构。

二、虚拟网络

浅显的理解就是 使用虚拟交换机组成的网络,就是虚拟网络(和物理网络相比) ,如图所示: 绿色虚线内组成的就是一个虚拟网络了。其虚拟机之间的信息交换都通过虚拟交换机。

三、 OVS组件

有了全局的概念后,我们来详细了解OVS的内部组件。简单来看,OVS由这三大部分构成:

1. ovsdb-sever:  OVS的数据库服务器,用来存储虚拟交换机的配置信息。它于manager和ovs-vswitchd交换信息使用了OVSDB(JSON-RPC)的方式。

2. ovs-vswitchd: OVS的核心部件,它和上层controller通信遵从OPENFLOW协议,它与ovsdb-server通信使用OVSDB协议,它和内核模块通过netlink通信,它支持多个独立的datapath(网桥),它通过更改flow table实现了绑定,和VLAN等功能。

3. ovs kernel module: OVS的内核模块,处理包交换和隧道,缓存flow,如果在内核的缓存中找到转发规则则转发,否则发向用户空间去处理。

四、OVS结构详解

有个OVS大概的了解,我们看看OVS到底由哪些模块组成,以及个模块的作用。如图:

ovs-vswitchd 主要模块,实现switch的daemon,包括一个支持流交换的Linux内核模块;

ovsdb-server 轻量级数据库服务器,提供ovs-vswitchd获取配置信息;

ovs-brcompatd 让ovs-vswitch替换Linuxbridge,包括获取bridge ioctls的Linux内核模块;

ovs-dpctl 用来配置switch内核模块;一些Scripts and specs 辅助OVS安装在Citrix XenServer上,作为默认switch;

ovs-vsctl 查询和更新ovs-vswitchd的配置;

ovs-appctl 发送命令消息,运行相关daemon;

ovsdbmonitor GUI工具,可以远程获取OVS数据库和OpenFlow的流表。

此外,OVS也提供了支持OpenFlow的特性实现,包括

ovs-openflowd:一个简单的OpenFlow交换机;

ovs-controller:一个简单的OpenFlow控制器;

ovs-ofctl 查询和控制OpenFlow交换机和控制器;

ovs-pki :OpenFlow交换机创建和管理公钥框架;

ovs-tcpundump:tcpdump的补丁,解析OpenFlow的消息;

运行原理:

内核模块实现了多个“数据路径”(类似于网桥),每个都可以有多个“vports”(类似于桥内的端口)。每个数据路径也通过关联一下流表

(flow table)来设置操作,而这些流表中的流都是用户空间在报文头和元数据的基础上映射的关键信息,一般的操作都是将数据包转发

到另一个vport。当一个数据包到达一个vport,内核模块所做的处理是提取其流的关键信息并在流表中查找这些关键信息。当有一个匹配

的流时它执行对应的操作。如果没有匹配,它会将数据包送到用户空间的处理队列中(作为处理的一部分,用户空间可能会设置一个流

用于以后碰到相同类型的数据包可以在内核中执行操作)。

五、示例

1. 物理机器之间通过虚拟交换机

可以看到虚拟机的两个网卡是虚拟交换机虚拟出来的两个端口。

2. 一台物理机上的虚拟机之间的虚拟交换机

转载http://blog.csdn.net/sqx2011/article/details/39344869

时间: 2024-10-11 23:27:44

Open VSwitch的相关文章

Configure Open vSwitch Tunnels

转自: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux_OpenStack_Platform/4/html/Installation_and_Configuration_Guide/Configuring_Open_vSwitch_tunnels.html 13.4.4. Configure Open vSwitch Tunnels Tunneling with Open vSwitch allows

基于 Open vSwitch 的 OpenFlow 实践(zz)

https://www.ibm.com/developerworks/cn/cloud/library/1401_zhaoyi_openswitch/index.html Open vSwitch 概述 Open vSwitch(下面简称为 OVS)是由 Nicira Networks 主导的,运行在虚拟化平台(例如 KVM,Xen)上的虚拟交换机.在虚拟化平台上,OVS 可以为动态变化的端点提供 2 层交换功能,很好的控制虚拟网络中的访问策略.网络隔离.流量监控等等. OVS 遵循 Apach

在CentOS7上配置Open vSwitch和VXLAN

在CentOS7上配置Open vSwitch和VXLAN 环境 实验环境 主机环境 [[email protected] ~]$ uname -a Linux node0 3.10.0-123.9.3.el7.x86_64 #1 SMP Thu Nov 6 15:06:03 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux [[email protected] ~]$ cat /etc/redhat-release CentOS Linux release 7.0

Open vSwitch 简介

概述 Open vSwitch 是一个高质量的.多层虚拟交换机,使用开源 Apache 2.0 许可协议,由Nicira Networks 开发,主要实现代码为可移植的 C 代码.它的目的是让大规模网络自动化可以通过编程扩展,同时仍然支持标准的管理接口和协议(例如 NetFlow, sFlow, SPAN, RSPAN, CLI, LACP, 802.1ag).此 外,它被设计位支持跨越多个物理服务器的分布式环境,类似于 VMware 的 vNetwork 分布式 vswitch 或 Cisco

XenServer的网络堆栈Open vSwitch模式

在上一篇文章中,我们介绍了XenServer的Bridge网络堆栈模式,现在在本篇文档中,我们将介绍XenServer支持的另一种开源的网络堆栈模式:open vswitch.XenServer现在安装部署的版本中默认采用open vswitch模式,如果我们不需要做LACP或者绑定更多的网卡及使用分布式交换机,那么建议在生产环境中还是使用Linux Bridge模式. Open vSwitch是一款开源的软件虚拟交换机,适用于基于Linux的虚拟化平台.实质上Citrix也将其集成到自己的Xe

玩转OpenStack网络(2)--使用Open vSwitch实现VLAN类型租房网络

VLAN 介绍 计算节点 Open vSwitch 配置 网络节点 Open vSwitch 配置 配置Neutron使用 Open vSwitch Mechanism Driver 配置Neutron 使用 VLAN type driver 配置 VLAN 编号范围 查看 分配给网络的 VLAN 编号 创建特定编号的 VLAN

CentOS6.5下安装Open vSwitch

准备 # yum install openssl-devel redhat-rpm-config kernel-devel -y #yum install kvm libvirt python-virtinst qemu-kvm virt-viewer 编译 # wget http://openvswitch.org/releases/openvswitch-1.9.3.tar.gz #tar -zxf openvswitch-1.9.3.tar.gz # cd openvswitch-1.9.

[转]Open vSwitch with SSL and Mininet

Open vSwitch with SSL and Mininet By default, Mininet uses the unencrypted port in Open vSwitch for OpenFlow. This makes total sense since the purpose of Mininet is a research tool, so encryption isn't usually needed and using unencrypted control tra

[转]Configuring Open vSwitch

  (image from Anatomy of an open source cloud) A cloud data center consists of large numbers of physical servers, each running a hypervisor with one or more virtual switches connecting the physical network to virtual machines (see Anatomy of an open

[转]Examining Open vSwitch Traffic Patterns

In this post, I want to provide some additional insight on how the use of Open vSwitch (OVS) affects-or doesn't affect, in some cases-how a Linux host directs traffic through physical interfaces, OVS internal interfaces, and OVS bridges. This is some