OpenvSwitch安装及配置
时间:2025-04-21
时间:2025-04-21
SDN/Openflow 入门资料
Open vSwitch安装及配置
N.J.C.H
一、 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”(类似于桥内的
SDN/Openflow 入门资料
端口)。每个数据路径也通过关联一下流表(flow table)来设置操作,而这些流表中的流都是用户空间在报文头和元数据的基础上映射的关键信息,一般的操作都是将数据包转发到另一个vport。当一个数据包到达一个vport,内核模块所做的处理是提取其流的关键信息并在流表中查找这些关键信息。当有一个匹配的流时它执行对应的操作。如果没有匹配,它会将数据包送到用户空间的处理队列中(作为处理的一部分,用户空间可能会设置一个流用于以后碰到相同类型的数据包可以在内核中执行操作)。
二、准备工作
2.1说明
在linux编译内核模块,还需要安装下面的软件。如果你不能建造或安装内核模块,你可以使用userspace-only实现。