Architecture Analysis of openvswitch
Overview
Openvswitch, a virtual switch that supports open flow protocol, is called ovs for short. It is similar to the switch we often say, except that it is managed by the remote controller (you can send some flow tables to ovs in advance, or send new flow tables according to the first packet sent to controller), and execute the corresponding action (discarding, forwarding, etc.) according to the matching results of the flow tables.
Network architecture
Relationship between components
Datapath: kernel module that processes received packets according to the flow table information (operates according to the action of the flow table)
Vswitched: is the core module of ovs, in user mode. It is used to communicate with the remote management interface (openflow, etc.), while communicating with datapath using netlink (sending flow table, etc.). All configurations are stored in ovsdb and communicate with ovsdb-server using socket.
Ovsdb-server: server for external configuration modification and storage
Ovsdb: the configuration is saved here
Ovsdb-tool: add, delete, modify and check the configuration of the command line
Ovsdb-client: add, delete, modify and check the configuration through the remote end
Additions, deletions, modifications and queries of ovs-vsctl:ovs configuration
Ovs-appctl: command interaction with vswitched
Ovs-fpctl: view and control the flow table of openflow switch
Ovs-dpctl: a tool that allows you to configure datapath directly