zoukankan      html  css  js  c++  java
  • 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的具体信息:

        root@Compute2:~# 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

  • 相关阅读:
    Docker网络管理
    Docker数据管理
    Docker仓库管理
    Docker容器管理
    Docker安装及基本使用方法
    Docker简介
    Ansible安装配置Nginx
    Ansible安装配置及使用
    puppet安装配置及使用
    TCP三次握手、四次挥手与TcpDump抓包分析
  • 原文地址:https://www.cnblogs.com/stellar/p/5945118.html
Copyright © 2011-2022 走看看