openvswitch
编译安装:
- ./configure --prefix=/usr/local/ovs
- make -j 4
- make install
- modprobe openvswitch
- echo 'export PATH=$PATH:/usr/local/ovs/share/openvswitch/scripts:/usr/local/ovs/bin:/usr/local/ovs/sbin' >> /etc/profile
source /etc/profile - 编译的没有unit,需依靠/usr/local/ovs/share/openvswitch/scripts下的脚本ovs-ctl启动
ovs-ctl startovs-ctl stop
-
ovs-vsctl add-port br0 ens11f1
ip addr add 11.1.1.1/8 dev br0
ovs-vsctl show创建桥的时候会创建一个和桥名字一样的接口,并自动作为该桥的一个端口,那么这个虚拟接口的作用,一方面是可以作为交换机的管理端口,另一方面也是基于这个虚拟接口,实现了桥的功能。
常用操作:
- 查看openflow版本
- 列出所有网桥
- 查看br0上端口
- 列出br0的具体信息
- ovs-vsctl list bridge|port|interface
- ovs-vsctl add-port br0 ens11f0 tag=3
- ovsdb-tool show-log
OpenVswitch架构
OVS主要由三大部分组成:ovsdb-server ovs-vswitched ovs kernel module
1. ovs-vswitchd:OVS守护进程,OVS的核心部件,实现交换功能,和Linux内核兼容模块一起,实现基于流的交换(flow-based switching)。它和上层 controller 通信遵从 OPENFLOW 协议,它与 ovsdb-server 通信使用 OVSDB 协议,它和内核模块通过netlink通信,它支持多个独立的 datapath(网桥),它通过更改flow table 实现了绑定和VLAN等功能。
2. ovsdb-server:轻量级的数据库服务,主要保存了整个OVS 的配置信息,包括接口,交换内容,VLAN。ovs-vswitchd 会根据数据库中的配置信息工作。它于 manager 和 ovs-vswitchd 交换信息使用了OVSDB(JSON-RPC)的方式。
3. ovs-dpctl:一个工具,用来配置交换机内核模块,可以控制转发规则。
4. ovs-vsctl:主要是获取或者更改ovs-vswitchd 的配置信息,此工具操作的时候会更新ovsdb-server 中的数据库。
5. ovs-appctl:主要是向OVS 守护进程发送命令的,一般用不上。
6. ovsdbmonitor:GUI 工具来显示ovsdb-server 中数据信息。
7. ovs-controller:一个简单的OpenFlow 控制器
8. ovs-ofctl:用来控制OVS 作为OpenFlow 交换机工作时候的流表内容。

OVS各程序功能
1 ovs-vswitchd: 主要模块,实现switch的daemon,包括一个支持流交换的Linux内核模块;
2 ovsdb-server: 轻量级数据库服务器,提供ovs-vswitchd获取配置信息,例如vlan、port等信息;
3 ovs-brcompatd: 让ovs-vswitch替换linux bridge,包括获取bridge ioctls的Linux内核模块;
4 ovs-dpctl:用来配置switch内核模块;
5 ovs-vsctl: 查询和更新ovs-vswitchd的配置;
6 ovs-appctl: 发送命令消息,运行相关daemon;
7 ovs-ofctl: 查询和控制OpenFlow交换机和控制器;
8 ovs-openflowd:一个简单的OpenFlow交换机;
9 ovs-controller:一个简单的OpenFlow控制器;
10 ovs-pki:OpenFlow交换机创建和管理公钥框架;
11 ovs-tcpundump:tcpdump的补丁,解析OpenFlow的消息;
12 ovs-bugtool:管理openvswitch的bug信息。
在网络中,交换机和桥是同一概念,OVS实现了一个虚拟的以太网交换机,其实就是实现了一个以太网桥,
网桥也叫桥接器,连接两个局域网设备,网桥工作数据链路层,根据MAC地址转发帧.当我们创建了一个交换机(网桥)后,会生成一个虚拟网卡,名字是网桥名称,有个网桥后,还要为这个交换机增加端口,一个端口就是一个物理网卡,当网卡加入网桥后,工作方式跟普通交换机端口工作方式类似了.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律