Linux bridge 命令是管理 Linux 网桥设备和其端口配置的核心工具。下面总结了它的一些最常见和实用的使用示例。
说明
apt install iproute2
brctl 是一种相对老旧但仍可用的工具,专门用于配置和管理 Linux 内核中的以太网桥
1. 基础网桥管理
| 命令 |
目的 |
ip link add name br0 type bridge |
创建 一个名为 br0 的新网桥设备。 |
ip link set dev br0 up |
启用 网桥设备 br0。 |
ip link set dev br0 down |
禁用/关闭 网桥设备 br0。 |
ip link delete br0 |
删除 网桥设备 br0。 |
2. 端口(接口)管理
| 命令 |
目的 |
ip link set dev eth0 master br0 |
将网络接口 eth0 添加 到网桥 br0 中作为端口。 |
ip link set dev eth0 nomaster |
将网络接口 eth0 从其所属的网桥中 移除。 |
ip link set dev eth0 up |
启用/激活 网桥端口 eth0(必须先激活端口才能工作)。 |
3. 查看配置信息
| 命令 |
目的 |
bridge link show |
显示 所有连接到网桥的端口的详细信息(包括 STP 状态)。 |
bridge fdb show |
显示 网桥的 转发表 (Forwarding Database - FDB),即 MAC 地址学习表。 |
bridge vlan show |
显示 所有网桥设备的 VLAN 过滤配置 状态。 |
bridge mdb show |
显示 网桥的 多播数据库 (Multicast Database - MDB)(用于 IGMP Snooping)。 |
4. VLAN 过滤配置 (VLAN Filtering)
注意: 在执行这些命令之前,通常需要先启用网桥上的 VLAN 过滤:echo 1 > /sys/class/net/br0/bridge/vlan_filtering。
| 命令 |
目的 |
bridge vlan add dev eth0 vid 10 pvid untagged |
将端口 eth0 配置为 VLAN ID 10 的 Access Port (接入端口)。接收 untagged 流量时打上 VID 10 标签,发送 VID 10 流量时去标签。 |
bridge vlan add dev eth0 vid 20 tagged |
将端口 eth0 配置为 Trunk Port (干线端口),允许 VID 20 的带标签流量通过。 |
bridge vlan add dev eth0 vid 30 |
这是一个简单的 Tagged 示例,通常与 tagged 相同,允许 VID 30 流量通过。 |
bridge vlan del dev eth0 vid 10 |
删除 端口 eth0 上对 VLAN ID 10 的配置。 |
# 或
ip link set eth0 type bridge vlan_filtering 1
5. FDB(MAC 地址表)管理
| 命令 |
目的 |
bridge fdb add 01:23:45:67:89:ab dev eth0 master |
添加 一个静态 FDB 条目,将 MAC 地址绑定到端口 eth0。 |
bridge fdb del 01:23:45:67:89:ab dev eth0 |
删除 该静态 FDB 条目。 |
6. STP(生成树协议)管理
| 命令 |
目的 |
bridge link set dev eth0 stp_state forwarding |
手动设置端口 eth0 的 STP 状态为 转发 (Forwarding)。 |
bridge link set dev eth0 priority 8 |
设置端口 eth0 的 STP 端口 优先级。 |
bridge link set dev eth0 cost 10 |
设置端口 eth0 的 STP 路径开销。 |