OpenvSwitch ovs-vsctl命令
OVS三大部分
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服务
启动服务
#查看安装的版本
[root@controller ~]# ovs-ofctl --version
2.ovs-vsctl命令
add-br 创建网桥
#创建网桥br0
[root@controller ~]# ovs-vsctl add-br br0
list-br 列出网桥
#列出所有网桥
[root@controller ~]# ovs-vsctl list-br
br0
add-port 网桥添加端口
#将网卡eno33554960添加到网桥br0
[root@controller ~]# ovs-vsctl add-port br0 eno33554960
list-ports 列出网桥的所有端口
#列出网桥br0上的所有端口
[root@controller ~]# ovs-vsctl list-ports br0
eno33554960
port-to-br查看端口连接网桥
#列出ens33端口连接着哪个网桥
[root@controller ~]# ovs-vsctl port-to-br eno33554960
br0
show 查看openvswitch状态
[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 删除端口
可带参数<网桥名>,则删除指定网桥的端口
若无参数<网桥名>,则默认删除所有连接着该端口的网桥端口
del-br 删除网桥
#删除网桥br1
[root@controller ~]# ovs-vsctl del-br br1
[1]: