网桥是什么?
你可以把网桥想象成一个简单的二层交换机,把网卡加入网桥后,会像交换机一样在多张网卡之间传输数据;当然,加入网桥的也不一定是物理网卡,也可以是Vlan,vETH,TAP等等设备
如果需要持久化的管理网桥,请使用NetworkManager,systemd-network之类的工具来管理网桥
使用ip link管理网桥(基础使用)
注意:该命令管理的网桥不会保存,会在系统重启后丢失更改;如果需要持久化配置,请使用NetworkManager或者systemd-network
安装
ip命令在各个发行版的包名为iproute或iproute2
创建网桥
创建了一个名为br0的网桥
$ ip link add br0 type bridge
将网卡加入网桥
将网卡eth1加入网桥br0
$ ip link set eth1 master br0
查看网桥
$ ip link show br0
3: br0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether 0a:1f:25:bc:ca:0a brd ff:ff:ff:ff:ff:ff
查看网桥的成员
$ ip link show|grep br0
3: br0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
4: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master br0 state DOWN mode DEFAULT group default qlen 1000
5: eth2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master br0 state DOWN mode DEFAULT group default qlen 1000
将网卡移出网桥
将网卡eth1移出网桥br0
$ ip link set eth1 nomaster
删除网桥
删除br0
$ ip link delete br0
启用、关闭STP
在br0启用stp
$ ip link set br0 stp_state 1
在br0关闭stp
$ ip link set br0 stp_state 0
使用brctl管理网桥(基础使用)
注意:建议使用ip link来管理网桥,brctl已经过时
注意:该命令管理的网桥不会保存,会在系统重启后丢失更改;如果需要持久化配置,请使用NetworkManager或者systemd-network
安装
brctl命令在各个发行版的包名为bridge-utils
创建网桥
创建了一个名为br0的网桥
$ brctl addbr br0
将网卡加入网桥
将网卡eth1加入网桥br0
$ brctl addif br0 eth1
查看网桥
$ brctl show
bridge name bridge id STP enabled interfaces
br0 8000.0a1f25bcca0a no eth1
eth2
将网卡移出网桥
将网卡eth1移出网桥br0
$ brctl delif br0 eth1
删除网桥
删除br0
$ brctl delbr br0
启用、关闭STP
在br0启用stp
$ brctl br0 on
在br0关闭stp
$ brctl br0 off