Open vSwitch即开放虚拟交换标准,是在开源的Apache2.0许可下的产品级质量的多层虚拟交换标准,旨在通过编程扩展,使庞大的网络自动化(配置、管理、维护),同时还支持标准的管理接口和协议(如NetFlow, sFlow, SPAN, RSPAN, CLI, LACP, 802.1ag)。
Open vSwitch的优点
Open vSwitch可以作为一个在管理程序上运行的软开关,也可以作为开关控制堆栈。它已经被移植到多种虚拟化平台和交换芯片。
Open vSwitch的特性
Open vSwitch是一种开源软件,专门管理多租赁公共云计算环境,为网络管理员提供虚拟VM之间和之内的流量可见性和控制。
Open vSwitch项目由网络控制软件创业公司Nicira Networks支持,旨在用虚拟化解决网络问题,与控制器软件一起实现分布式虚拟交换技术。这意味着,交换机和控制器软件能够在多个服务器之间创建集群网络配置,从而不需要在每一个VM和物理主机上单独配置网络。这个交换机还支持VLAN中继,通过NetFlow、sFlow和RSPAN实现可见性,通过OpenFlow协议进行管理。它还有其他一些特性:严格流量控制,它由OpenFlow交换协议实现;远程管理功能,它能通过网络策略实现更多控制。
1 支持通过NetFlow sFlow IPFIX, SPAN, RSPAN, 和 GRE-tunneled镜像使虚拟机内部通讯可以被监控;
2 支持LACP (IEEE 802.1AX-2008)(多端口绑定)协议;
3 支持标准的 802.1Q VLAN模型以及 trunk模式;
4 支持 BFD 和 802.1ag 链路状态监测;
5 支持STP (IEEE 802.1D-1998);
6 支持细粒度的Qos;
7 支持HFSC系统级别的流量控制队列;
8 支持每虚拟机网卡的流量的流量控制策略;
9 支持基于源MAC负载均衡模式、主备模式、L4哈希模式的多端口绑定;
10 支持OpenFlow协议(包括许多虚拟化的增强特性);
11 支持IPV6;
12 支持多种隧道协议((GRE, VXLAN, IPsec, GRE and VXLAN over IPsec);
13 支持通过C或者Python接口远程配置;
14 支持内核态和用户态的转发引擎设置;
15 支持多列表转发的发送缓存引擎;
16 支持转发层抽象以容易的定向到新的软件或者硬件平台;
Open vSwitch运行原理
内核模块实现了多个“数据路径”(类似于网桥),每个都可以有多个“vports”(类似于桥内的端口)。每个数据路径也通过关联一下流表(flow table)来设置操作,而这些流表中的流都是用户空间在报文头和元数据的基础上映射的关键信息!一般的操作都是将数据包转发到另一个vport!
当一个数据包到达一个vport,内核模块所做的处理是提取其流的关键信息并在流表中查找这些关键信息。当有一个匹配的流时它执行对应的操作。如果没有匹配,它会将数据包送到用户空间的处理队列中(作为处理的一部分,用户空间可能会设置一个流用于以后碰到相同类型的数据包可以在内核中执行操作)。
Open vSwitch实现的严密流量控制很大部分上是通过OpenFlow交换协议实现的。OpenFlow使网络控制器软件能够通过网络访问一个交换机或路由器的数据路径。网络管理员可以使用这个技术在一台PC上远程控制数据管理,这样他们就能够进行精细的路由和交换控制,并实现复杂的网络策略。
有了Open vSwitch中的这些远程管理功能,多租赁云计算的集成商和供应商就能够向客户提供在一台PC上持续管理各自虚拟网络、应用和策略的功能。
Open vSwitch安装
http://openvswitch.org/releases/下载最新版本
mkdir -p ~/rpmbuild/SOURCES
cp openvswitch-2.7.0.tar.gz ~/rpmbuild/SOURCES/
cd ~/rpmbuild/SOURCES
tar -xvf openvswitch-2.7.0.tar.gz
cd openvswitch-2.7.0/
rpmbuild -bb --without check rhel/openvswitch.spec
yum localinstall ~/rpmbuild/RPMS/x86_64/openvswitch-2.7.0-1.x86_64.rpm
systemctl enable openvswitch.service
systemctl start openvswitch.service