0x00 导读
Openvswitch是一款开源的openflow switch
实现,该项目由Linux Foundation
管理。ovs是目前比较主流的的一种实现,除了可以通过Openflow管理,ovs也支持通过ovsdb协议
管理。
0x01 why Open Vswitch
- 灵活的状态迁移:虚拟机在不同的主机上面迁移,需要保存原先的状态
- 配置信息,比如vlan,qos等
- 实时状态信息?
- 网络拓扑变幻莫测:虚拟机时刻变化速度快,从而导致网络拓扑一直变化
- ovsdb
- openflow
- 逻辑标识的维护:标识虚拟机或者虚拟机域。比如mpls,vlan等
- 软硬件一体化:Open Vswitch 容易适配到不同的软硬件平台。
0x01 特性
- Visibility into inter-VM communication via NetFlow, sFlow(R), IPFIX, SPAN, RSPAN, and GRE-tunneled mirrors
- LACP (IEEE 802.1AX-2008)
- Standard 802.1Q VLAN model with trunking
- Multicast snooping
- IETF Auto-Attach SPBM and rudimentary required LLDP support
- BFD and 802.1ag link monitoring
- STP (IEEE 802.1D-1998) and RSTP (IEEE 802.1D-2004)
- Fine-grained QoS control
- Support for HFSC qdisc
- Per VM interface traffic policing
- NIC bonding with source-MAC load balancing, active backup, and L4 hashing
- OpenFlow protocol support (including many extensions for virtualization)
- IPv6 support
- Multiple tunneling protocols (GRE, VXLAN, STT, and Geneve, with IPsec support)
- Remote configuration protocol with C and Python bindings
- Kernel and user-space forwarding engine options
- Multi-table forwarding pipeline with flow-caching engine
- Forwarding layer abstraction to ease porting to new software and hardware platforms
0x02 生态
openvswitch社区除了ovs外还有ovn,ovn作为ovs的补充,用于实现更高层的网络抽象,比如L2 overlay。