据说网桥是早期工作在数据链路层的二端口交换设备,是现代交换机的前身,根据功能描述应该可以将其想象成只有两个端口的交换机,不支持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

配置完成后系统中出现网桥接口br0eth0eth1即可实现层2数据交换。通过命令配置的网桥只是临时生效,如果需要长久生效可以使用配置文件实现。

linuxcentos实现简单的交换机 linux 交换机_IP

linuxcentos实现简单的交换机 linux 交换机_开源系统_02

在开启了DHCP的网络中主机可能会自动发送IP请求,可以通过禁用networkmanager服务来达到手动配置IP的目的,当今一切事物都在变化,连系统上服务管理命令也在演化,以前常用的chkconfig/service也在慢慢的被systemctl所替代,如下所示:

chkconfig --list | service --status-all <->	systemctl list-unit-files --type=service | systemctl list-units --type=service
service xxx status <-> systemctl status xxx
service xxx start/stop/restart <-> systemctl start/stop/restart xxx
chkconfig --level 3 xxx on/off <-> systemctl enable/disable xxx.service

网桥所涉及的中间人攻击主要应用在无线网络领域,在此就不在赘述。