openvSwitch

1、什么是OpenvSwitch
OpenvSwitch,简称OVS是一个虚拟交换软件,主要用于虚拟机VM环境,作为一个虚拟交换机,支持Xen/XenServer, KVM, and VirtualBox多种虚拟化技术。

在这种某一台机器的虚拟化的环境中,一个虚拟交换机(vswitch)主要有两个作用:传递虚拟机VM之间的流量,以及实现VM和外界网络的通信。

2 OpenvSwitch的组成
ovs-vswitchd:守护程序,实现交换功能,和Linux内核兼容模块一起,实现基于流的交换flow-based switching。
ovsdb-server:轻量级的数据库服务,主要保存了整个OVS的配置信息,包括接口啊,交换内容,VLAN啊等等。ovs-vswitchd会根据数据库中的配置信息工作。
ovs-dpctl:一个工具,用来配置交换机内核模块,可以控制转发规则。
ovs-vsctl:主要是获取或者更改ovs-vswitchd的配置信息,此工具操作的时候会更新ovsdb-server中的数据库。
ovs-appctl:主要是向OVS守护进程发送命令的,一般用不上。
ovsdbmonitor:GUI工具来显示ovsdb-server中数据信息。
ovs-controller:一个简单的OpenFlow控制器
ovs-ofctl:用来控制OVS作为OpenFlow交换机工作时候的流表内容。

3、vswitch、Bridge、Datapath
在网络中,交换机和桥都是同一个概念,OVS实现了一个虚拟机的以太交换机,换句话说,OVS也就是实现了一个以太桥。那么,在OVS中,给一个交换机,或者说一个桥,用了一个专业的名词,叫做DataPath!

要了解,OVS如何工作,首先需要知道桥的概念。
网桥也叫做桥接器,连接两个局域网的设备,网桥工作在数据链路层,将两个LAN连接,根据MAC地址来转发帧,可以看成一个“低层的路由器”(路由器工作在网络层,根据IP地质进行转发)

4、OVS中的bridge

当我们创建了一个交换机(网桥)以后,此时网络功能不受影响,但是会产生一个虚拟网卡,名字就是brname,之所以会产生一个虚拟网卡,是为了实现接下 来的网桥(交换机)功能。

有了这个交换机以后,我还需要为这个交换机增加端口(port),一个端口,就是一个物理网卡,当网卡加入到这个交换机之后,其工作方式就和普通交换机的一个端口的工作方式类似了。

我们来看看一个br的具体信息:

    [email protected]:~# ovs-vsctl show
    bc12c8d2-6900-42dd-9c1c-30e8ecb99a1b
    Bridge "br0"
        Port "eth0"
            Interface "eth0"
        Port "br0"
            Interface "br0"
                type: internal
    ovs_version: "1.4.0+build0"

首先,这里显示了一个名为br0的桥(交换机),这个交换机有两个接口,一个是eth0,一个是br0,

上面说到,创建桥的时候会创建一个和桥名字一样的 接口,并自动作为该桥的一个端口,

那么这个虚拟接口的作用,一方面是可以作为交换机的管理端口,另一方面也是基于这个虚拟接口,实现了桥的功能。

5、工作流程

  • 1 VM实例instance产生一个数据包并发送至实例内的虚拟网络接口VNIC,图中就是instance中的eth0.
  • 2 这个数据包会传送到物理节点上的VNIC接口,如图就是vnet接口。
  • 3 数据包从vnet NIC出来,到达桥(虚拟交换机)br100上.
  • 4 数据包经过交换机的处理,从物理节点上的物理接口发出,如图中物理节点上的eth0.
  • 5 数据包从eth0出去的时候,是按照物理节点上的路由以及默认网关操作的,这个时候该数据包其实已经不受你的控制了。

http://www.aboutyun.com/thread-11304-1-1.html

时间: 2024-10-25 03:33:51

openvSwitch的相关文章

openstack使用openvswitch实现vxlan组网

 openstack使用openvswitch实现vxlan openstack环境: 1 版本:ocata 2 系统:ubuntu16.04.2 3 控制节点 1个 + 计算节点 1个 4 控制节点网卡为ens33,ip = 172.171.5.200 ens34 manual模式 无IP 一 下载openswitch controller : apt-get install  neutron-openvswitch-agent compute : apt-get install neutro

OpenvSwitch实现Docker容器跨宿主机互联

1. OpenvSwitch简介 Open vSwitch(下面简称为 OVS)是由 Nicira Networks 主导的,运行在虚拟化平台(例如 KVM,Xen)上的虚拟交换机.在虚拟化平台上,OVS可以为动态变化的端点提供 2 层交换功能,很好的控制虚拟网络中的访问策略.网络隔离.流量监控等等.主要实现代码为可移植的C代码. 它的目的是让大规模网络自动化可以通过编程扩展,同时仍然支持标准的管理接口和协议(例如NetFlow,sFlow,SPAN,RSPAN,CLI,LACP,802.1ag

openvswitch centos6.X 安装及使用

一.搭建编译环境 安装编译环境 #yum install gcc make python-devel openssl-devel kernel-devel graphviz        kernel-debug-devel autoconf automake rpm-build redhat-rpm-config        libtool 编译rpm建议使用普通用户 下载创建编译目录脚本 $wget ftp://ftp.owlriver.com/pub/local/COLUG//RPM-b

干货分享: 长达150页的openvswitch的ppt,不实验无真相

<iframe height=570 width=100% scrolling="no" src="http://share.csdn.net/frame/7766" frameborder=0 allowfullscreen></iframe> 一.概论 Software Defined Network简介 OpenFlow简介 Openvswitch简介 二.架构 Openvswitch架构 实验一:查看Openvswitch的架构 Op

[转]在openvswitch上配置GRE tunnel

Posted in Linux Application at November 13th, 2012 如果你是用 openvswitch 内置的 GRE tunnel,那么配置很简单,基本上就一条命令: ovs-vsctl add-port br0 gre0 -- set interface gre0 type=gre options:remote_ip=192.168.1.10 本文想谈的显然不是这个.因为 upstream 内核(指 Linus tree)中的 openvswitch 是不支

openVswitch(OVS)源码分析之工作流程(哈希桶结构体的解释)

这篇blog是专门解决前篇openVswitch(OVS)源码分析之工作流程(哈希桶结构体的疑惑)中提到的哈希桶结构flex_array结构体成员变量含义的问题. 引用下前篇blog中分析讨论得到的flex_array结构体成员变量的含义结论: struct { int element_size; // 这是flex_array_part结构体存放的哈希头指针的大小 int total_nr_elements; // 这是全部flex_array_part结构体中的哈希头指针的总个数 int e

Openvswitch在CentOS 6.6下的安装

懒人的装法: wget http://mirror.beyondhosting.net/OpenVSwitch/openvswitch-2.3.1-1.el6.x86_64.rpm   wget http://mirror.beyondhosting.net/OpenVSwitch/openvswitch-kmod-2.3.1-1.el6.x86_64.rpm   wget http://mirror.beyondhosting.net/OpenVSwitch/kmod-openvswitch-

Docker+OpenvSwitch搭建VxLAN实验环境

一.概述                                                    1.环境:我这里是2台linux机器(host1和host2),发行版是kali2.0,内核版本是4.3.每台机器都安装Docker.OpenvSwitch(ovs). 2.host1和host2分别启动1个ubuntu的docker容器. 3.网络结构: 2.1:host1的eth0:192.168.2.1,host1里面的docker容器ip地址是10.1.2.3 2.2:host

OpenVswitch(OVS)源代码分析之简介

云计算是现在IT行业比较流行的,但真正什么是云计算业界也没有个什么统一的定义(很多公司都是根据自己的利益狭隘的定义云计算),更别说什么标准规范了.所以现在就有很多人说云计算只不过是个幌子,是个嘘头,没点实用的,嘴上说说而已,虽然我也不太清楚什么叫做云计算,云计算的定义究竟是什么,但我根据我公司现在做的云计算产品来说,对于云计算服务还是懂些的.我觉得那并不是什么幌子.嘘头,但如果说这云计算技术还不太成熟,我倒还勉强认可的.若把云计算比作一个人的话,我个人觉得现在它正是二十岁的样子,到三十多岁就算是

openvswitch安装

安装前准备软件包及版本 Gcc pkg-config autoconf automake m4 python2.X 下载OVS软件包 http://openvswitch.org/releases/openvswitch-1.9.0.tar.gz 解压后进入ovs文件夹中 在依次进行下列步骤: ./boot.sh ./configure --prefix=/usr --localstatedir=/var ./configure CC=gcc ./configure --with-linux=/