brctl
brctl 用来管理以太网桥,在内核中建立,维护,检查网桥配置。
网桥一般用来连接多个不同的网络设备(服务器)的网络设备(网桥),也可以连接多个以太网络,这样这些不同的网络中设备就可以像一个网络那样进行通讯。
网桥是一种在链路层实现中继,对帧进行转发的技术,根据 MAC 分区块,可隔离碰撞,将网络的多个网段在数据链路层连接起来的网络设备。网桥工作在数据链路层,将两个 LAN 连起来,根据 MAC 地址来转发帧,可以看作一个“底层的交换机”
在网桥上每个以太网连接可以对应到一个物理接口,这些以太网接口组合成一个大的逻辑的接口,这个逻辑接口对应于桥接网络。
安装网桥管理工具包:bridge-utile
# yum install bridge-utils -y每个网桥都有许多连接端口。这些端口中的任何一个进来都会转发给另一个。端口透明,因此其余部分看不见桥的网络(即,它不会显示在traceroute(8)中)。
端口存活检查
网桥跟踪在每个端口上的以太网地址。通过以太网数据帧的头部信息知道将帧转发到哪个端口,并且 it can 'cheat' by forwarding the frame to that port only,从而减少冗余副本和减轻传输流量的损耗。
但是,以太网地址位置数据不是静态数据。机器可以移动到其他端口,可以更换网卡(更改机器的以太网地址)等。
brctl showmacs <brname>显示该网桥上已知的 MAC 地址列表。
brctl setageing <brname> <time>设置以太网(MAC)地址老化时间,以秒为单位。在
brctl setgcint <brname> <time>设置垃圾收集时间。这表示网桥将检查转发数据库是否超时每
STP 生成树协议
多个以太网桥可以工作在一起组成一个更大的网络,利用 802.1d 协议在两个网络之间寻找最短路径,STP 的作用是防止以太网桥之间形成回路,如果确定只有一个网桥,则可以关闭STP。
brctl stp <bridge> <state>  控制网桥是否加入 STP 树中,
brctl setbridgeprio <bridge> <priority>设置网桥的优先级,
brctl setfd <bridge> <time> 设置网桥的'bridge forward delay'转发延迟时间,时间以秒为单位
brctl sethello <bridge> <time> 设置网桥的'bridge hello time'存活检测时间
brctl setmaxage <bridge> <time>设置网桥的'maximum message age'时间
brctl setpathcost <bridge> <port> <cost>设置网桥中某个端口的链路花费值
brctl  setportprio  <bridge>  <port> <priority>设置网桥中某个端口的优先级
多个以太网桥可以协同工作,使用 IEEE 802.1d 生成树协议可以创建更大的以太网。
该协议用于查找在两个以太网之间最短路径,并消除来自拓扑的广播封板。由于此协议是标准协议,因此Linux桥接器将 与其他第三方网桥产品正常互通。 网桥通过发送和接收相互通信 BPDU(网桥协议数据单元)。这些BPDU可以被识别 通过以太网目标地址 01:80:c2:00:00:00。
   生成树协议也可以关闭(对于那些
   只是没有意义的情况,例如何时
   这个Linux盒子是LAN上的唯一桥梁,或者您知道
   拓扑中没有回路。)
   brctl(8)可用于配置某些生成树
   协议参数。有关这些参数的说明,请参见
   IEEE 802.1d规范(或给我发送电子邮件)。默认值
   值应该很好。如果你不知道这些是什么
   参数意味着,您可能不会感到需要调整
   他们。
   brctl stp <bridge> <state>控制此桥实例的
   参与生成树协议。如果<state>为“ on”
   或“是” STP将被打开,否则它将被打开
   离开。关闭后,网桥将不会发送或接收BPDU,
   因此不会参与生成树协议。如果
   您的网桥不是局域网上的唯一网桥,或者
   在局域网拓扑中循环时,请勿关闭此选项。如果你
   关闭此选项,请知道您在做什么。
   brctl setbridgeprio <bridge> <priority>设置桥的
   <priority>的优先级。优先级值为无符号的16位
   数量(0到65535之间的数字),并且没有尺寸。
   较低的优先级值“更好”。最低的桥
   优先级将被选为“根桥”。
   brctl setfd <bridge> <time>设置桥梁的“前进桥梁”
   延迟”到<时间>秒。
   brctl sethello <bridge> <time>设置桥梁的'bridge hello
   时间”到<时间>秒。
   brctl setmaxage <bridge> <time>设置桥的'maximum
   邮件期限”到<时间>秒。
   brctl setpathcost <bridge> <port> <cost>设置端口成本
   端口<port>到<cost>。这是一个无量纲的指标。
   brctl setportprio <bridge> <port> <priority>设置端口
   <端口>的优先级高于<优先级>。优先级值是
   无符号的8位数字(0到255之间的数字),并且没有
   尺寸。此度量标准用于指定的端口和根目录
   端口选择算法。注意
brctl(8)已过时。一些功能,例如 STP guard,harpin mode, fastleave 和 root block 不打算在这个命令中支持。而是推荐使用 iproute2 的 bridge 命令来进行操作。
示例
新建和删除虚拟网桥:
brctl addbr <brname>
brctl delbr <brname>使用 brctl 命令创建和删除网桥 
对应的网络接口桥必须先关闭,然后才能删除网桥
网桥中添加和移除网络端口:
brctl addif <brname> <ifname>
brctl delif <brname> <ifname>将 
这里需要注意,一个网卡 
查询网桥信息:
brctl show
brctl show  <brname>例如:
[root@localhost ~]# brctl show
bridge name     bridge id               STP enabled     interfaces
cni0            8000.6e4cd2014939       no              veth05a33997
                                                        veth5c8a14d5
                                                        veth6925d34b
                                                        vethafab477d
docker0         8000.0242dee8482b       no              veth9ef9e7a
                                                        vethb56414c
br666             8000.000000000000       no