ArchGuide

Linux创建和管理网桥

网桥是什么?

你可以把网桥想象成一个简单的二层交换机,把网卡加入网桥后,会像交换机一样在多张网卡之间传输数据;当然,加入网桥的也不一定是物理网卡,也可以是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

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注