3、OVS基本操作:ovs-vsctl命令详解、创建和删除网桥、查看网桥信息

好,咱们正式开始动手操作 OVS。这一节我带你熟悉最核心的命令行工具——ovs-vsctl。说白了,它就是 OVS 的“遥控器”,几乎所有网桥、端口、VLAN 的配置都离不开它。

我个人习惯,刚装好 OVS 后第一件事就是敲 ovs-vsctl show,看看当前环境是不是干净的。嗯,这一步很重要,能避免后面操作时被旧配置干扰。

3.1 ovs-vsctl 命令概览

ovs-vsctl 是 OVS 的管理工具,专门用来操作 ovsdb(Open vSwitch 数据库)。你想想看,OVS 的所有配置——网桥、端口、流表、VLAN——都存在这个数据库里。所以 ovs-vsctl 本质上就是个数据库客户端。

它的语法结构很清晰:

ovs-vsctl [选项] 命令 [参数]

常用的命令我列在下面这张表里,建议你收藏一下:

命令 作用 示例
add-br 创建网桥 ovs-vsctl add-br br0
del-br 删除网桥 ovs-vsctl del-br br0
list-br 列出所有网桥 ovs-vsctl list-br
show 查看详细状态 ovs-vsctl show
add-port 添加端口 ovs-vsctl add-port br0 eth0
del-port 删除端口 ovs-vsctl del-port br0 eth0
set 修改配置项 ovs-vsctl set bridge br0 stp_enable=true
get 查看配置项 ovs-vsctl get bridge br0 name
小技巧: 如果你记不住这么多命令,可以只记住 ovs-vsctl --help。它会列出所有可用命令,我经常这么干。

3.2 创建网桥

创建网桥是 OVS 操作的第一步。命令很简单:

ovs-vsctl add-br br0

这条命令会创建一个名为 br0 的虚拟网桥。你可以把它理解成一个虚拟交换机。创建完成后,系统里会多出一个叫 br0 的网络接口。

验证一下:

ip link show br0

你会看到类似这样的输出:

5: br0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 2a:3b:4c:5d:6e:7f brd ff:ff:ff:ff:ff:ff

注意,刚创建的网桥默认是 DOWN 状态。你需要手动启用它:

ip link set br0 up
注意: 创建网桥时,如果名字跟已有的网桥或系统接口冲突,命令会报错。我曾经在项目中遇到过,不小心把网桥名字起成了 eth0,结果系统网络直接挂了……嗯,从那以后我每次创建前都会先 ip link show 看一眼。

3.3 删除网桥

删除网桥同样简单:

ovs-vsctl del-br br0

这条命令会删除 br0 网桥,以及它上面所有端口和配置。操作不可逆,所以删除前一定要确认。

我建议你养成一个习惯:删除前先 ovs-vsctl show 看一眼,确认这个网桥上没有正在跑的业务流量。我曾经手快删错了,结果整个虚拟化平台的网络全断了……那次教训挺深刻的。

3.4 查看网桥信息

查看网桥信息是日常运维最频繁的操作。我常用的命令有这几个:

3.4.1 ovs-vsctl show

这是最全面的查看命令,会输出所有网桥、端口、接口的详细信息:

ovs-vsctl show

输出示例:

a1b2c3d4-e5f6-7890-abcd-ef1234567890
    Bridge "br0"
        Port "br0"
            Interface "br0"
                type: internal
        Port "eth0"
            Interface "eth0"
    ovs_version: "2.17.0"

你看,它清晰地展示了网桥 br0 上有两个端口:一个是网桥自身(internal 类型),另一个是物理网卡 eth0

3.4.2 ovs-vsctl list-br

如果你只想看网桥名字列表,用这个:

ovs-vsctl list-br

输出:

br0
br1

简洁明了,适合脚本里用。

3.4.3 ovs-vsctl list-ports

查看某个网桥上的端口列表:

ovs-vsctl list-ports br0

输出:

eth0
vnet0

3.4.4 ovs-ofctl 查看流表

如果你想看网桥的流表(转发规则),需要用另一个工具:

ovs-ofctl dump-flows br0

新创建的网桥默认没有流表,输出是空的。别慌,这是正常的。

核心要点:
  • ovs-vsctl show 是日常巡检首选,信息最全
  • ovs-vsctl list-br 适合快速查看网桥数量
  • ovs-ofctl dump-flows 查看流表,排错时必用

3.5 实战小练习

光看不练假把式。我建议你现在就动手试试:

  1. 创建一个网桥 br-test
  2. ovs-vsctl show 确认它创建成功
  3. ip link show br-test 查看它的状态
  4. 启用它:ip link set br-test up
  5. 再删除它:ovs-vsctl del-br br-test
  6. 最后用 ovs-vsctl show 确认它已经被删除了

这一套流程走下来,你对 OVS 的基本操作就有手感了。下一节我们会在这个基础上,给网桥添加端口,开始配置 VLAN 隔离。

我的经验: 刚开始学 OVS 时,我每天都会反复创建、删除网桥几十次。别嫌枯燥,肌肉记忆就是这么练出来的。等你闭着眼睛都能敲出 ovs-vsctl add-br 的时候,才算真正入门了。