openvswitch

编译安装:

  1. ./configure --prefix=/usr/local/ovs
  2. make -j 4
  3. make install
  4. modprobe openvswitch
  5. echo 'export PATH=$PATH:/usr/local/ovs/share/openvswitch/scripts:/usr/local/ovs/bin:/usr/local/ovs/sbin' >> /etc/profile
    source /etc/profile  
  6. 编译的没有unit,需依靠/usr/local/ovs/share/openvswitch/scripts下的脚本ovs-ctl启动
    ovs-ctl start

     

     

     

     

     ovs-ctl stop

     

     

  7.  

    ovs-vsctl add-br br0
    ovs-vsctl add-port br0 ens11f1
    ip addr add 11.1.1.1/8 dev br0
    ovs-vsctl show

     

    创建桥的时候会创建一个和桥名字一样的接口,并自动作为该桥的一个端口,那么这个虚拟接口的作用,一方面是可以作为交换机的管理端口,另一方面也是基于这个虚拟接口,实现了桥的功能。

     

 

常用操作:

 

  1. 查看openflow版本
  2. 列出所有网桥
  3. 查看br0上端口
  4. 列出br0的具体信息
  5. ovs-vsctl list bridge|port|interface
  6. ovs-vsctl add-port br0 ens11f0 tag=3

     

     

  7. 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地址转发帧.当我们创建了一个交换机(网桥)后,会生成一个虚拟网卡,名字是网桥名称,有个网桥后,还要为这个交换机增加端口,一个端口就是一个物理网卡,当网卡加入网桥后,工作方式跟普通交换机端口工作方式类似了.

posted @   ascertain  阅读(374)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示