网桥将两个类似的网络链接起来,并对网络数据的流通进行管理。它工做于数据链路层python
不但能扩展网络的距离或范围,并且可提升网络的性能、可靠性和安全性。linux
与中继器相比多了存储转发功能且具有隔离链路层的冲突域的能力。shell
与路由器相比他是工做在数据链路层的,能够看做更底层的路由器安全
与交换机相比,交换机能够看做是多端网桥网络
有五台主机。其中一台主机装有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。首先须要配置这样一个逻辑网段。spa
# brctl addbr br0 (创建一个逻辑网段,名称为br0)
实际上,咱们能够把逻辑网段192.168.1.0/24看做使一个VLAN ,而br0则是这个VLAN的名称。code
创建一个逻辑网段以后,咱们还须要为这个网段分配特定的端口。在Linux中,一个端口实际上就是一个物理网卡。而每一个物理网卡的名称则分别为eth0,eth1,eth2,eth3。咱们须要把每一个网卡一一和br0这个网段联系起来,做为br0中的一个端口。orm
# 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了。ci
# 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。那样就能远程管理网
# ifconfig br0 192.168.1.0
给br0配置了IP以后,网桥就可以工做了。192.168.1.0/24网段内的主机均可以telnet到网桥上对其进行配置。
以上配置的是一个逻辑网段,实际上Linux网桥也能配置成多个逻辑网段(至关于交换机中划分多个VLAN)。