Open vSwitch应用实践

本文详细介绍了Open vSwitch(OVS),包括其重要概念、系统架构、代码结构、安装和使用方法。OVS是一个开源的二层软件交换机,支持多种网络虚拟化场景。文章深入探讨了OVS的内核空间、用户空间、配置管理工具以及OpenFlow协议,展示了OVS如何通过流表进行数据包转发,并提供了安装和配置OVS的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. Open vSwitch简介

1.1 OVS重要概念

1.2 OVS系统架构

1.2.1 OVS内核空间

1.2.2 OVS用户空间

1.2.3 OVS配置管理工具

2. OVS代码结构

2.1 守护进程vswitched

2.1.1 内部模块组成

2.1.2 vswitched的核心流程

2.1.3 OpenFlow协议的数据结构

2.2 OVS数据库(ovsdb)

2.2.1 表(Table)

2.2.2 记录(Record)

2.2.3 属性(Column)

3. OVS的安装

4. OVS的使用

4.1 交换机创建和端口p0的配置

4.2 虚拟网络空间配置

4.3 查看OVS交换机

4.4 使用ovs-ofctl命令创建并测试OF命令

4.4.1 查看交换机中所有Table

4.4.2 查看交换机中所有流表项

4.4.3 查看交换机中所有端口信息

4.4.4 两个端口相互测试


1. Open vSwitch简介

Open vSwitch(OVS)作为一款开源的OF软件交换机,基于与平台无关的C代码实现,容易移植到其他环境,既能够作为虚拟机管理平台的软件交换机,也可以作为交换芯片的控制堆栈。

1.1 OVS重要概念

Bridge代表一个以太网交换机(Switch);

交换机包含端口(Ports):Normal、Internal、Patch、Tunnel

一个端口可以有一个或多个接口,允许每个端口连接不止一个的接口

包是通过流转发的

1.2 OVS系统架构

OVS架构分为内核空间、用户空间、配置管理层三部分。

1.2.1 OVS内核空间

内核空间包含了流表和一个或多个datapath模块,datapath模块类似于网桥,主要负责对数据分组进行操作。另外,内核空间中维护的流表规定了针对数据分组应该进行的操作,datapath通过关联流表与其协同完成分组处理过程。

(1)datapath:主要负责实际的数据分组处理,它同时于vswitched和流表保持关联,使OVS上层可以对数据分组处理进行控制。

(2)流表:流表中存储着分组处理的依据----流表项,它指导datapath做出正确的分组处理判断,同时它还与vswitched上下关联,是OVS上层对底层分组处理过程进行管理的接口。

1.2.2 OVS用户空间

用户空间中运行着OVS的守护进程(vswitched)和数据库(ovsdb),它们是OVS的核心功能模块。vswitched类似于OVS的心脏,用来维持OVS的声明周期,而ovsdb就像OVS的大脑,它存储着OVS的配置信息和数据流信息,vswitched和ovsdb协调工作确保OVS健康的运行状态。

(1)vswitched:OVS的守护进程,属于核心模块。负责检索和更新数据库信息,并根据数据库中的配置信息维护和管理OVS。vswitched可以配置一系列特性:基于MAC地址学习的二层交换、支持IEEE 802.1Q VLAN、端口镜像、sFlow监测、连接OF控制器等。vswitched也可以通过Netlink协议与内核模块datapath直接通信。

(2)ovsdb:一个轻量级的OVS数据库,用于管理OVS的配置信息,主要负责保存OVS配置信息和数据流信息等。轻量级数据库服务器ovsdb-server直接管理ovsdb,与ovsdb通信进行数据库的增删改查操作;同时负责向vswitched提供操作ovsdb的能力。vswitched可以通过UNIX Socket机制与ovsdb-server进行通信,用于查询和更新数据库信息,或者在检索数据库信息后做出首个分组的转发策略。

1.2.3 OVS配置管理工具

配置管理层包括ovs-dpctl、ovs-ofctl、ovs-appctl-ovs-vsctl和ovsdb-tool等,主要用于和vswitched、ovsdb之间进行交互操作以及OVS的安装配置和部署。

(1)ovs-dpctl:管理OVS datapath的实用工具,用来匹配交换机内核模块,控制数据分组的转发规则。用户使用该工具可以创建、删除和修改datapath。

(2)ovs-ofctl:OF交换机的命令行管理工具,用于管理OVS作为OF交换机时的各种参数。用户使用该工具可以查询或修改OF交换机的状态、配置和流表项等信息。

(3)ovs-appctl:用于向运行时的OVS守护进程发送命令的工具。

(4)ovs-vsctl:查询和配置OVS数据库的实用工具,用于查询或者变更vswitched的配置信息,该工具会直接更新ovsdb数据库。

2. OVS代码结构

其中,datapath目录是OVS的内核模块,包括VLAN、Tunnel、datapath等C文件以及vport管理,实现普通以太网交换机,具有处理 VLAN、网络访问控制、基于流的控制等功能;ofproto 目录是 OpenFlow 协议相关文件;ovsdb 目录是数据库相关代码;vswitchd目录保存OVS守护进程的源代码;utilities目录包括一些工具代码,如ofctl、vsctl、appctl等;include目录包含常用的头文件;lib目录则保存所有公共模块的实现,如OpenFlow协议解析、JSON数据解析、ovsdb数据解析以及日志模块等。

2.1 守护进程vswitched

OVS守护进程主要负责检索和更新数据库信息,并根据数据库中的配置信息维护和管理OVS,通过守护进程可以配置一系列特性:基于MAC地址学习的二层交换、支持IEEE 802.1Q

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值