Open vSwitch(一)

OVS组成

在这里插入图片描述

ovs-vswitchd:ovs守护进程,实现基于流的交换,实现内核datapath upcall 处理以及ofproto 查表,同时是dpdk datapath处理程序。与ovsdb-server通信使用OVSDB协议,与内核模块使用netlink机制通信,与controller通信使用OpenFlow协议。
ovsdb-server:OVS轻量级的数据库服务器的服务程序,用于保存整个OVS的配置信息。数据库服务程序, 使用目前普遍认可的ovsdb 协议。
ovs-vsctl:网桥、接口等的创建、删除、设置、查询等。 
ovs-dpctl:配置vswitch内核模块
ovs-appctl:发送命令消息到ovs-vswithchd, 查看不同模块状态
ovs-ofctl:下发流表信息。该命令可以配置其他openflow 交换机(采用openflow 协议)
datapath: Datapath把流的match和action结果缓存,避免后续同样的流继续upcall到用户空间进行流表匹配。
 ovs-db:开放虚拟交换机数据库是一种轻量级的数据库,它是一个JSON文件,默认路径:/etc/openvswitch/conf.db;

可以通过命令ovsdb-client dump将数据库结构打印出来。OVSDB中包含一系列记录网桥、端口、QoS等网络配置信息的表,这些表均以JSON格式保存。

每一个ovs交换机中,数据库中存在的表如下:
在这里插入图片描述

Open vSwitch 内部分为用户态和内核态。

用户层(态)为守护程序实现了交换机和流表,是 Open vSwitch 的核心,提供了一些组件去管理交换机,实现数据库,对内核进行直接管理。
内核态
openvswitch_mod.ko 是内核态(kernel)的主要模块,完成数据包的查找、转发、修改等操作,一条 flow 的后续数据包到达 OVS 后将直接交由内核态,使用 openvswitch_mod.ko 中的处理函数对数据包进行处理。

数据包处理流程

处理流程:

数据流(flow) 通过 Open vSwitch 转发的流程。
每收到一个包之后,OVS Kernel Module 将检查它是否能能命中内核模块的缓存(flow cache) 
如果命中缓存则交由 kernel 处理;
如果不能命中缓存则先发送到用户空间(ovs-vswitchd process )进行转发决策 ——— 基于一系列已经安装配置的规则库(OpenFlow rules);如果没有命中任何一条规则,则将包发送给 OpenFlow 控制器处理。
一旦做出转发决策,这个包和转发动作将传回 OVS Kernel Module 缓存起来。
这条 flow 接下来的包就将命中缓存并直接由 kernel 转发处理。

在这里插入图片描述

核心概念

  • Bridge :网桥,对应一个以太网交换机(Switch),一个主机中可以创建一个或者多个 Bridge 设备。
  • Port :Port 与物理交换机的端口概念类似, 每个 Port 都属于一个特定的 Bridge - 端口类型:Normal、Internal、Patch、Tunnel。
  • Interface:接口,对应网卡,即可以是 ovs 生成的虚拟网卡,也可能是挂载在 ovs 的物理网卡。在通常情况下,Port 和 Interface 是一对一的关系, 只有在配置 Port 为 bond 模式后,Port 和 Interface 是一对多的关系。
  • datapath: 在 OVS 中,datapath 负责执行数据交换,也就是把从接收端口收到的数据包在流表中进行匹配,并执行匹配到的动作。
  • Flow table: 每个 datapath 都和一个“flow table”关联,当 datapath 接收到数据之后, OVS 会在 flow table 中查找可以匹配的 flow,执行对应的操作, 例如转发数据到另外的端口。

在网络中,交换机和桥都是同一个概念,OVS实现了一个虚拟机的以太交换机,换句话说,OVS也就是实现了一个以太桥。那么,在OVS中,给一个交换机,或者说一个桥,用了一个专业的名词,叫做DataPath!

命令行

两种运行模式:

  • standalone: 有控制器切换为openflow switch,没有控制器为破铜switch
  • secure: 一直为openflow switch

OpenvSwitch的操作命令有若干个,其中比较重要的有

ovsdb-tool 对ovsdb数据库操作,不经过ovsdb-server模块
ovs-vsctl 用来查询和配置ovs-vswitchd
ovs-ofctl 管理配置openflow switch,操作交换机流表
在这里插入图片描述

ovs-vsctl


# 1. 查看网桥,查看所有的网桥的信息
ovs
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值