概述

openvswitch,一种支持open flow协议的虚拟交换机,简称为ovs。类似于我们常说的交换机,只不过它通过远端的controller来进行管理(可以预先下发一些流表到ovs,或者根据首包被送到controller来下发新的流表),根据流表的匹配结果,来执行相应的action(丢弃、转发等)。


网络架构

openvswitch之架构解析_第1张图片


各个组件间关系


datapath:内核模块,根据流表信息,对收到的数据包进行处理(根据流表的action进行操作)

vswitched:是ovs的核心模块,在用户态。用于和远端管理界面通信(openflow等),同时与datapath利用netlink进行通信(下发流表等)。所有的配置存储在ovsdb,与ovsdb-server利用socket进行通信。

ovsdb-server:用于对外提供配置修改和存储的server

ovsdb:配置保存在这里

ovsdb-tool:命令行的配置的增删改查

ovsdb-client:通过远端,对配置进行增删改查

ovs-vsctl:ovs配置的增删改查

ovs-appctl:与vswitched进行命令交互

ovs-fpctl:查看和控制openflow交换机的flow表

ovs-dpctl:可以直接配置datapath的工具