什么是网桥
网桥是一种在链路层实现中继,对帧进行转发的技术,根据MAC分区块,可隔离碰撞,将网络的多个网段在数据链路层连接起来的网络设备。
简单的理解就是交换机。
Linux下配置网桥主要用 brctl 命令。
brctl配置命令
[inbi@debian~]#brctl
Usage: brctl [commands]
commands:
addbr | <bridge> | add bridge |
delbr | <bridge> | delete bridge |
addif | <bridge> <device> | add interface to bridge |
delif | <bridge> <device> | delete interface from bridge |
setageing | <bridge> <time> | set ageing time |
setbridgeprio | <bridge> <prio> | set bridge priority |
setfd | <bridge> <time> | set bridge forward delay |
sethello | <bridge> <time> | set hello time |
setmaxage | <bridge> <time> | set max message age |
setpathcost | <bridge> <port> <cost> | set path cost |
setportprio | <bridge> <port> <prio> | set port priority |
show | show a list of bridges | |
showmacs | <bridge> | show a list of mac addrs |
showstp | <bridge> | show bridge stp info |
stp | <bridge> {on|off} | turn stp on/off |
brctl配置实例
有五台主机。其中一台主机装有linux ,安装了网桥模块,而且有四块物理网卡,分别连接同一网段的其他主机。我们希望其成为一个网桥,
为其他四台主机(IP分别为192.168.1.2 ,192.168.1.3,192.168.1.4,192.168.1.5) 之间转发数据包。同时,为了方便管理,希望网桥能够有一个
IP(192.168.1.1),那样管理员就可以在192.168.1.0/24网段内的主机上telnet到网桥,对其进行配置,实现远程管理。
前一节中提到,网桥在同一个逻辑网段转发数据包。针对上面的拓扑,这个逻辑网段就是192.168.1.0/24网段。我们为这个逻辑网段一个名称 br0。
首先需要配置这样一个逻辑网段。
# brctl addbr br0 (建立一个逻辑网段,名称为br0)
实际上,我们可以把逻辑网段192.168.1.0/24看作使一个VLAN ,而br0则是这个VLAN的名称。
建立一个逻辑网段之后,我们还需要为这个网段分配特定的端口。在Linux中,一个端口实际上就是一个物理网卡。而每个物理网卡的名称则分别
为eth0,eth1,eth2,eth3。我们需要把每个网卡一一和br0这个网段联系起来,作为br0中的一个端口。
# brctl addif br0 eth0 (让eth0成为br0的一个端口)
# brctl addif br0 eth1 (让eth1成为br0的一个端口)
# brctl addif br0 eth0 (让eth2成为br0的一个端口)
# brctl addif br0 eth3 (让eth3成为br0的一个端口)
网桥的每个物理网卡作为一个端口,运行于混杂模式,而且是在链路层工作,所以就不需要IP了。
# ifconfig eth0 0.0.0.0
# ifconfig eth1 0.0.0.0
# ifconfig eth2 0.0.0.0
# ifconfig eth3 0.0.0.0
然后给br0的虚拟网卡配置IP:192.168.1.1(就相当于虚接口的ip地址)。那样就能远程管理网桥。
# ifconfig br0 192.168.1.1
给br0配置了IP之后,网桥就能够工作了。192.168.1.0/24网段内的主机都可以telnet到网桥上对其进行配置。
以上配置的是一个逻辑网段,实际上Linux网桥也能配置成多个逻辑网段(相当于交换机中划分多个VLAN)。