OpenvSwitch ovs-vsctl命令

OpenvSwitch ovs-vsctl命令

嚯嚯嚯www 34 2022-08-26

OpenvSwitch ovs-vsctl命令

03226-sdq2xj03u7.png

OVS三大部分
60573-0bb13jr2r4sm.png

ovsdb-sever: OVS的数据库服务器,用来存储虚拟交换机的配置信息。它与manager和ovs-vswitchd交换信息使用了OVSDB(JSON-RPC)的方式。
ovs-vswitchd: OVS的核心部件,它和上层controller通信遵从openflow协议,它与ovsdb-server通信使用OVSDB协议,它和内核模块通过netlink通信,它支持多个独立的datapath(网桥),它通过更改flow table实现了绑定,和VLAN等功能。
ovs kernel module: OVS的内核模块,处理包交换和隧道,缓存flow,如果在内核的缓存中找到转发规则则转发,否则发向用户空间去处理。

当前最新代码包主要包括以下模块和特性:
ovs-vswitchd: 主要模块,实现switch的daemon,包括一个支持流交换的Linux内核模块;
ovsdb-server: 轻量级数据库服务器,提供ovs-vswitchd获取配置信息,例如vlan、port等信息;
ovs-brcompatd: 让ovs-vswitch替换linux bridge,包括获取bridge ioctls的Linux内核模块;
ovs-dpctl:用来配置switch内核模块;
ovs-vsctl: 查询和更新ovs-vswitchd的配置;
ovs-appctl: 发送命令消息,运行相关daemon;
ovs-ofctl: 查询和控制OpenFlow交换机和控制器;
ovs-openflowd:一个简单的OpenFlow交换机;
ovs-controller:一个简单的OpenFlow控制器;
ovs-pki:OpenFlow交换机创建和管理公钥框架;
ovs-tcpundump:tcpdump的补丁,解析OpenFlow的消息;
ovs-bugtool:管理openvswitch的bug信息。

1.安装openvswitch

使用yum安装openvswitch服务
28215-r41lxlu7hg.png
启动服务
47543-2trllypsv49.png

#查看安装的版本
[root@controller ~]# ovs-ofctl --version

06248-tdqd24yi60j.png

2.ovs-vsctl命令

add-br 创建网桥
03283-7hij1v51b6k.png

#创建网桥br0
[root@controller ~]# ovs-vsctl add-br br0

83531-h71vih11pcp.png

list-br 列出网桥
11010-ubifelezvge.png

#列出所有网桥
[root@controller ~]# ovs-vsctl list-br
br0

11583-3n1ivuqdb6y.png

add-port 网桥添加端口

#将网卡eno33554960添加到网桥br0
[root@controller ~]# ovs-vsctl add-port br0 eno33554960

list-ports 列出网桥的所有端口
50409-kytk7wp736a.png

#列出网桥br0上的所有端口
[root@controller ~]# ovs-vsctl list-ports br0
eno33554960

72379-njtqywymgn.png

port-to-br查看端口连接网桥
73997-jys4xlostz.png

#列出ens33端口连接着哪个网桥
[root@controller ~]# ovs-vsctl port-to-br eno33554960
br0

83043-h6e5q2aq5nd.png

show 查看openvswitch状态
29793-axganrwsj7l.png

[root@controller ~]# ovs-vsctl show
36e452be-7323-4c2f-9caa-4eb9a58c608e
    Bridge "br0"
        Port "eno33554960"
            Interface "eno33554960"
        Port "br0"
            Interface "br0"
                type: internal
    ovs_version: "2.5.0"

del-port 删除端口
可带参数<网桥名>,则删除指定网桥的端口
49165-22dw5ieddzp.png
若无参数<网桥名>,则默认删除所有连接着该端口的网桥端口
46821-z95bjuq8jk.png

del-br 删除网桥
48957-5e0eyqkv6s7.png

#删除网桥br1
[root@controller ~]# ovs-vsctl del-br br1

40764-zgq3ynzhvkg.png

30329-8bv4pfosqxe.png

[1]: