Open vSwitch(OVS)是一款基于软件实现的开源交换机。它能够支持多种标准的管理接口和协议以及跨多个物理服务器的分布式环境。特别地,OVS提供了对OpenFlow协议的支持,并且能够与众多开源的虚拟化平台相整合。
(参考Open vSwitch官网:http://openvswitch.org/)
如上图所示。OVS两端连接着一块物理网卡和多块虚拟网卡(虚拟机中的网卡),在OVS的维护一个映射表,根据MAC地址来映射到对应的VM链路从而完成数据的转发,从某个角度上看,这可能有点像NAT的功能。值得注意的是,提供OpenFlow支持的OVS是根据自身保存的流表来对数据包进行匹配,这与一般的OVS不同。
支持OpenFlow的OVS核心架构由OpenFlow协议支持和数据转发通路两部分组成。这些都和实际的硬件OpenFlow交换机并没太大区别。不同的是,OVS提供两种数据转发通路:基于用户态的慢速通道以及基于Linux内核模块的快速通路。
在OVS的实现中分为用户空间和内核控件两部分。OVS在用户空间程序拥有多个组件,基本上实现了OVS的大部分功能,是OVS的核心。内核组件更多是承担快速转发的功能。另外,OVS还提供了一些工具用于交换机管理以及与内核组件的交互。
(参考http://book.51cto.com/art/201310/412725.htm)