Open vSwitch 简介

  1. 概述

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

  2. 模块介绍

    当前最新代码包主要包括以下模块和特性:
    ovs-vswitchd 主要模块,实现 switch daemon,包括一个支持流交换的 Linux 内核模块;
    ovsdb-server 轻量级数据库服务器,提供 ovs-vswitchd 获取配置信息;
    ovs-brcompatd ovs-vswitch 替换 Linux bridge,包括获取 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-tcpundumptcpdump 的补丁,解析 OpenFlow

  3. 运行原理

    内核模块实现了多个数据路径(类似于网桥),每个都可以有多个“vports”(类似于桥内的
    端口)。每个数据路径也通过关联一下流表( flow table)来设置操作,而这些流表中的流都
    是用户空间在报文头和元数据的基础上映射的关键信息,一般的操作都是将数据包转发到另
    一个 vport。 当一个数据包到达一个 vport,内核模块所做的处理是提取其流的关键信息并在
    流表中查找这些关键信息。当有一个匹配的流时它执行对应的操作。如果没有匹配,它会将
    数据包送到用户空间的处理队列中(作为处理的一部分,用户空间可能会设置一个流用于以

你可能感兴趣的:(brctl,ovs-vsctl,ovs-ofctl,open-vswitch)