0x00 导读


Openvswitch是一款开源的openflow switch实现,该项目由Linux Foundation管理。ovs是目前比较主流的的一种实现,除了可以通过Openflow管理,ovs也支持通过ovsdb协议管理。
image.png

0x01 why Open Vswitch


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。