Open vSwitch 概述
Open vSwitch是由Nicira Networks主导的,运行在虚拟化平台上的虚拟交换机。OVS可以动态变化的端点提供2层交换功能,很好的控制虚拟网络中访问策略、网络隔离、流量监控等等。OVS遵循Apache2.0许可证,能同时支持多种标准的管理接口和协议。OVS也提供对OpenFlow协议的支持,用户可以使用任何OpenFlow协议的控制器对OVS进行远程管理控制。
Bridge:Bridge代表一个以太网交换机(Switch),一个机中可以创建一个或者多个Bridge设备。
Port:端口与物理交换机的端口概念类似,每个Port都隶属于一个Bridge。
Interface:连接到Port的网络接口设备。Port和Interface是一对一关系,只有在配置Port为bond模式,Port和Interface才是一对多关系。
Controller:OpenFlow控制器。OVS可以同时接受一个或多个OpenFlow控制器的管理。
datapath:在OVS中,datapath负责执行数据交换,从接受端口收到的数据包在流标中进行匹配,并执行匹配到的动作。
Flow table:每个datapath都和一个‘flow table’关联,当datapath接收到数据后,OVS会在flow table中查找可以匹配的的flow,并执行对应的操作,例如转发数据到另外的端口。
VMware vNetwork distributed switch 以及思科的Cisco Nexus 1000V这种虚拟交换机提供的是一个集中式的控制方式。而OVS则是一个独立的vswitch,运行在每个实现虚拟化的物理机器上,并提供远程管理。OVS提供两种在虚拟化环境中远程管理的协议,一个是OpenFlow,通过流表来管理交换机行为,一个是OVSDB management protocol,用来暴露sietch的port状态
OpenvSwitch,简称OVS是一个虚拟交换软件,主要用于虚拟机VM环境,作为一个虚拟交换机,支持Xen/XenServer, KVM, and VirtualBox多种虚拟化技术。在虚拟化平台上,OVS可以动态变化的端口提供2层交换功能,很好控制虚拟网络中的访问策略、网络隔离、流量监控等等。
OpenvSwitch功能
Standard 802.1Q VLAN model with trunk and access ports
NIC bonding with or without LACP on upstream switch
NetFlow, sFlow(R), and mirroring for increased visibility
QoS (Quality of Service) configuration, plus policing
GRE, GRE over IPSEC, VXLAN, and LISP tunneling
802.1ag connectivity fault management
OpenFlow 1.0 plus numerous extensions
Transactional configuration database with C and Python bindings
High-performance forwarding using a Linux kernel module
Open vSwitch组成
ovs-vswitchd:守护进程,实现交换功能,和linux内核兼容模块一起,实现基于流的交换flow-based switching
ovs-server:轻量级的数据库服务,主要保存了整个OVS的配置信息,包括接口,交换内容,VLAN等。ovs-vswitchd会根据数据库中的配置信息工作
ovs-dpctl:一个工具,用来配置交换机内核模块,可以控制转发规则
ovs-vsctl:主要是获取或更改ovs-vswitchd的配置信息,此工具操作时候会更新ovsdb-server中的数据库
ovs-appctl:GUI工具用来显示ovsdb-server中数据信息
ovs-controller:一个简单的OpenFlow控制器
ovs-ofctl:用来控制OVS作为OpenFlow交换机工作时候的流表内容