10个用于以太网桥接的Linux brctl命令示例

brctl代表网桥控制。

在Linux上,此命令用于创建和管理以太网桥。

当您的服务器上有多个以太网网络,并且想要将它们组合起来并作为一个逻辑网络显示时,通常使用此方法。

例如,如果您有eth0和eth1,则可以将它们组合在一起并将它们表示为br0,它将使用eth0和eth1进行网络通信。

在本文中,我们将介绍以下内容:

  1. 用addbr创建一个新的以太网桥
  2. 使用show显示可用的以太网桥
  3. 使用delbr删除现有的以太网桥
  4. 将接口添加到现有网桥
  5. 将多个接口添加到现有网桥
  6. 桥接MAC地址跟踪
  7. 设置网桥上Mac地址的老化时间
  8. 在以太网桥上配置生成树
  9. 显示网桥的STP参数值
  10. 更改网桥参数值

1.使用addbr创建一个新的以太网桥

使用brctl addbr,我们可以创建一个新的以太网桥。

在以下示例中,我们在此服务器上创建了三个网桥:dev,stage和prod。

brctl addbr dev

brctl addbr stage

brctl addbr prod

请注意,在此阶段,它只是一个空的以太网桥,没有其他以太网。

2.使用show显示可用的以太网桥

使用brctl show,我们可以查看服务器上所有可用的网桥。

以下示例将显示我们刚刚创建的三个桥的所有当前实例。

# brctl show
bridge name     bridge id               STP enabled     interfaces
dev             8000.000000000000       no
prod            8000.000000000000       no
stage           8000.000000000000       no

如果您注意到最后一栏“接口”没有意义。 这意味着这些网桥当前都没有与之关联的以太网设备。

3.使用delbr删除现有的以太网桥

使用brctl delbr,我们可以删除现有的以太网桥。

下面的示例删除以太网桥的“ stage”实例。

brctl delbr stage

从show命令可以看到,我们不再看到以太网桥的“阶段”。

# brctl show
bridge name     bridge id               STP enabled     interfaces
dev             8000.000000000000       no
prod            8000.000000000000       no

请注意,当桥处于活动状态(即升高)时,可以将其卸下。 首先,您需要拆除桥,然后将其卸下。

还要注意,brctl命令以前称为brcfg。

4.将接口添加到现有网桥

使用brctl addif,我们可以将接口添加到现有的以太网桥。

以下示例将以太网eth0添加到我们刚刚创建的“ dev”网桥中。

警告。 不要尝试在任何关键计算机上使用此功能,因为出问题时可能会失去与该计算机的网络连接。 仅在具有控制台访问权限的测试实例上尝试此操作。

brctl addif dev eth0

在上面:

  • 实际上,这将使eth0成为“ dev”桥接端口。
  • 这样,所有到达eth0的数据包都将被视为实际上已到达网桥。
  • 同样,将数据包发送到“ dev”网桥时,它将使用eth0。 当多个接口属于“开发”网桥的一部分时,eth0将是从网桥发送传出帧的潜在候选者。

将eth0网桥添加到“ dev”后,brctl show命令将显示以下内容。

# brctl show
bridge name     bridge id               STP enabled     interfaces
dev             8000.0050568954bc       no              eth0
prod            8000.000000000000       no

从上面的输出中可以看到,最后一个列“ interfaces”是网桥“ dev”的eth0。

笔记。 如果通过将eth0添加到“ dev”桥而出了问题,请从控制台运行以下命令以删除dev桥。

# brctl delbr dev

请注意,如果您尝试将Loopback接口添加到网桥,则会收到以下带有无效参数的命令。

# brctl addif dev lo
can’t add lo to bridge dev: Invalid argument

可以想象,您无法为网桥添加系统上不存在的接口。

# brctl addif dev eth2
interface eth2 does not exist!

5.将多个接口添加到现有网桥。

在上面的示例中,我们仅将一个以太网设备(eth0)添加到了网桥。

但是使用网桥的整个想法是向网桥添加其他接口。

在下面的示例中,我们将eth0和eth1都添加到“ dev”桥中。

# brctl addif dev eth0 eth1

从下面的输出中可以看到,我们看到了dev桥的两行。 在最后一列“接口”中,我们看到“ dev”以太网桥的eth0和eth1。

# brctl show
bridge name     bridge id               STP enabled     interfaces
dev             8000.0050568954bc       no              eth0
                                                        eth1
prod            8000.000000000000       no

注意如果特定的以太网接口已经是网桥的一部分,则不能将其添加到另一个网桥。

原则上,一个网络只能是一个网桥的一部分。 如果没有,当我们尝试将其添加到另一个网桥时,我们将收到以下错误。

# brctl addif prod eth1
device eth1 is already a member of a bridge; can't enslave it to bridge prod

6.跟踪网桥的MAC地址

使用brctl showmacs,我们可以看到网桥的所有MAC地址。

在下面的示例中,现在,以下是连接到“产品”以太网桥的两个mac地址。 该数据将根据与网桥关联的当前状态而变化。

# brctl showmacs prod
port no mac addr                is local?       ageing timer
1       00:50:56:89:54:bc       yes                0.00
2       00:60:50:46:bc:40       no                 0.00

7.设置网桥上Mac地址的老化时间

在以下示例中,我们在“ dev”调制解调器上将mac地址的老化时间设置为120秒。

brctl setaging dev 120

在上面:

  • dev是我们在其中设置此值的桥的名称
  • 120秒
  • 因此,如果在120​​秒内没有出现“ dev”网桥的数据包​​,则“ dev”网桥将从转发数据库中删除mac地址。

8.在以太网桥上安装生成树

使用brctl stp,我们可以在以太网桥上设置生成树。

但是默认情况下,当我们创建网桥时,不会启用生成树。

当您的网络上有多个网桥并且它们都可以一起工作以找到两个以太网之间的最短路径时,生成树很有用。

在以下示例中,我们在“ dev”以太网桥上启用生成树。

我们可以使用on或yes来启用生成树。 因此,以下两个命令将执行相同的操作。

brctl stp dev on

brctl stp dev yes

从下面的屏幕输出中可以看到,“dev”网桥的“启用STP”列中的值现在为“是”。

# brctl show
bridge name     bridge id               STP enabled     interfaces
dev             8000.000000000000       yes
prod            8000.000000000000       no

要在以太网桥上禁用生成树,请按照下列步骤操作:

# brctl stp dev off

# brctl show
bridge name     bridge id               STP enabled     interfaces
dev             8000.000000000000       no
prod            8000.000000000000       no

9.显示网桥的STP参数值

STP代表生成树协议。

在网桥上启用stp之后,可以如下所示使用showstp来查看网桥的所有stp参数值。

stp参数及其“ dev”网桥的当前值如下所示。

# brctl showstp dev
dev
 bridge id              000a.000000000000
 designated root        000a.000000000000
 root port                 0       path cost                  0
 max age                  19.99    bridge max age            19.99
 hello time                1.99    bridge hello time          1.99
 forward delay            14.99    bridge forward delay      14.99
 ageing time             299.95
 hello timer               0.00    tcn timer                  0.00
 topology change timer     0.00    gc timer                   0.00
 hash elasticity           4       hash max                 512
 mc last member count      2       mc init query count        2
 mc router                 1       mc snooping                1
 mc last member timer      0.99    mc membership timer      259.96
 mc querier timer        254.96    mc query interval        124.98
 mc response interval      9.99    mc init query interval    31.24
 flags

10.更改网桥参数的值

特定于网桥的生成树默认值可以更改。 您还可以更改所创建桥的参数的其他值。

下表中提到的所有以下所有拨号命令均以brctl开头。 例如:

brctl setageing dev 100

下表显示了brctl可用的拨号命令。 时间值以秒为单位。

brctl命令说明
架桥时间设置老化时间
塞布里奇普里奥桥设置网桥优先级(0到65535)
setfd桥接时间设置桥接跳线延迟
塞塞罗桥时间设定问候时间
设定最大桥接时间设置最大邮件年龄
塞特金特桥时间设置垃圾收集间隔(以秒为单位)
塞塔谢尔布里奇国际机场设置弹性哈希
sethashmax桥int设置最大哈希
setmclmc桥int设置多播的最后一个成员的计数器
setmcrouter桥int安装多播路由器
setmcsnoop桥int配置多播跟踪
setmcsqc桥int设置启动多播的请求数
setmclmi桥接时间设置最后一个组播成员的时间间隔
setmcmi桥接时间设置组播成员资格间隔
setmcqpi桥接时间设置组播请求间隔
塞奇奇桥时间设置互联网请求间隔
setmcqri桥接时间设置组播请求响应间隔
setmcqri桥接时间设置组播下载请求间隔
setpathcost桥端口成本设定路径成本
setportprio桥Port prio设置端口优先级(0到255)
setportmcrouter桥端口int安装多播端口路由器
塞塔谢尔布里奇国际机场设置哈希弹性值

请禁用您的广告拦截器或将此网站列入白名单!

Sidebar