1 网桥的概念
摘自百度百科:
网桥(Bridge)是早期的两端口二层网络设备,用来连接不同网段。
网桥是一种对帧进行转发的技术,根据 MAC 分区块,可隔离碰撞。网桥将网络的多个网段在数据链路层连接起来。
网桥也叫桥接器,是连接两个局域网的一种存储/转发设备,它能将一个大的 LAN 分割为多个网段,或将两个以上的 LAN 互联为一个逻辑 LAN,使 LAN 上的所有用户都可访问服务器。
扩展局域网最常见的方法是使用网桥。最简单的网桥有两个端口,复杂些的网桥可以有更多的端口,实现各个端口之间的互通。网桥的每个端口与一个网段相连。
这边先理解一下这几个名词,摘自:《子网、局域网、网段的关系》,更详细的说明可以访问该链接:
-
局域网
数据链路层的概念,指二层可达的网络(也就是不需要三层设备,如路由器,也能到达的网络),通俗得讲就是小范围的网络。
-
子网
子网是网络层的概念,和局域网没有直接的关系,是把一个 IP 网络划分为几个小范围的网络,但是在平时不要求精确性的时候,局域网可以对应子网,也就是说,子网也是二层可达,子网之间需要三层设备。
-
网段
是物理层的定义,使用同一物理层设备(传输介质,中继器,集线器等)能够直接通讯。
同一网段和不同网段:
- 使用同一物理层的设备之间必然通过相同的传输介质直接相互连接,如交叉双绞线直接连接的两台主机,是一个网段。
- 两组其传输介质并非直接相连的网络设备,如果它们的传输介质通过工作在物理层的扩展设备如中继器和集线器等转接连接,则仍然被视为同一物理层中的设备,是一个网段。
- 工作在数据链路层或更高层的设备如网桥、交换机、路由器等等,由它们连接起来的两组设备仍然分别处于各自独立的物理层,是两个网段。
2 管理网桥的命令
Linux中通过 brctl
命令管理以太网网桥。
通过 brctl --help
获取到 brctl
命令的使用方法:
Usage: brctl COMMAND [BRIDGE [INTERFACE]]
Manage ethernet bridges
Commands:
show Show a list of bridges
addbr BRIDGE Create BRIDGE
delbr BRIDGE Delete BRIDGE
addif BRIDGE IFACE Add IFACE to BRIDGE
delif BRIDGE IFACE Delete IFACE from BRIDGE
setageing BRIDGE TIME Set ageing time
setfd BRIDGE TIME Set bridge forward delay
sethello BRIDGE TIME Set hello time
setmaxage BRIDGE TIME Set max message age
setpathcost BRIDGE COST Set path cost
setportprio BRIDGE PRIO Set port priority
setbridgeprio BRIDGE PRIO Set bridge priority
stp BRIDGE [1/yes/on|0/no/off] STP on/off
1、显示已有的网桥列表
# brctl show
2、创建网桥
# brctl addbr bridge_name
3、删除网桥
# brctl delbr briage_name
4、增加网桥中的接口
# brctl addif bridge_name interface_name
5、删除网桥中的接口
# brctl delif bridge_name interface_name
3 举例
该例子中将 eth0,eth1 桥接,并从两端接入设备,进行 ping 测试,看是否能够正常通信。
1、创建网桥
# brctl addbr br0
2、添加接口
# brctl addif br0 eth0
# brctl addif br0 eth1
3、网桥的每个接口都以混杂模式运行,所以不需要 IP
# ifconfig eth0 0.0.0.0
# ifconfig eth1 0.0.0.0
4、开启网桥
# ifconfig br0 up
也可以给网桥设置 IP,用于 SSH 或者 Telnet 进行远程管理网桥:
# ifconfig br0 192.168.1.1 netmask 255.255.255.0 up
5、在网桥的两端接入设备,一端IP地址为 192.168.1.2,另一端为 192.168.1.3,注意:两端的设备需要在同一个子网下才可正常通信。
6、分别在网桥两端的设备中 ping 对方的IP地址,测试能够正常通信。