Open vSw itch 安装及配置 一、 Open vSwitch 简介 1.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/XenServer, KVM,和 VirtualBox。 1.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-tcpundump:tcpdump 的补丁,解析 OpenFlow 的消息; 1.3 运行原理 内核模块实现了多个“数据路径”(类似于网桥),每个都可以有多个“vports”(类似于桥内的 N.J.C.H 端口)。每个数据路径也通过关联一下流表(flow table)来设置操作,而这些流表中的流都是用户空间在报文头和元数据的基础上映射的关键信息,一般的操作都是将数据包转发到另一个vport。当一个数据包到达一个vport,内核模块所做的处理是提取其流的关键信息并在流表中查找这些关键信息。当有一个匹配的流时它执行对应的操作。如果没有匹配,它会将数据包送到用户空间的处理队列中(作为处理的一部分,用户空间可能会设置一个流...