据说网桥是早期工作在数据链路层的二端口交换设备,是现代交换机的前身,根据功能描述应该可以将其想象成只有两个端口的交换机,不支持VLAN
只是用来数据包的2
层交换,如今这种设备已经和集线器一样被现代的交换机所取代,并且这种层2
交换功能也早已经在以Linux
为代表的开源系统上软件化,也就是我们常说的“桥接”或“网桥”技术,简单的来说,系统配置网桥后就可以提供交换机的数据转发功能,但这种软件实现的交换功能在生产环境中并不常见,因为交换设备作为网络通信的骨干节点对数据传输的稳定性要求较高,通常不会使用非专业设备来提供服务,但对于黑客来说建立网桥提供接入点可以实现隐式的抓包是种非常实用的渗透窃听手段。
开源系统中网桥工具是bridge-utils
,该工具广泛部署在各开源系统中的Repo
中,可以很方便的使用系统自带的包管理命令进行安装部署,工具的主程序是brctl
,网桥实现的机制是虚拟一个网桥接口然后以此囊括系统上所要添加进网桥的流量接口,添加进网桥的接口仅工作在数据链路层只关注数据包的MAC
地址,因此接口无需配置IP
地址,和现代交换机一样网桥接口可以配置IP
地址来实现网络通信,配置命令如下:
ifconfig eth0 0.0.0.0
ifconfig eth1 0.0.0.0
brctl addbr br0
brctl addif br0 eth0 eth1
brctl show
ifconfig br0 192.168.19.10 netmask 255.255.255.0 up
route add default gw 192.168.19.2
配置完成后系统中出现网桥接口br0
,eth0
和eth1
即可实现层2
数据交换。通过命令配置的网桥只是临时生效,如果需要长久生效可以使用配置文件实现。