转:Linux篇 | 将Linux拥有交换机的网桥功能
转载:
Linux篇 | 将Linux拥有交换机的网桥功能
网桥
概念
- 将Linux配置网桥后,会变成交换机的网桥一样的设备
- 桥接:把一台机器上的若干个网络接口“连接”起来。其结果是,其中一个网口收到的报文会被复制给其他网口并发送出去。以使得网口之间的报文能够互相转发。网桥就是这样一个设备,它有若干个网口,并且这些网口是桥接起来的。与网桥相连的主机就能通过交换机的报文转发而互相通信。
- 示例:主机A发送的报文被送到交换机S1的eth0口,由于eth0与eth1、eth2桥接在一起,故而报文被复制到eth1和eth2,并且发送出去,然后被主机B和交换机S2接收到。而S2又会将报文转发给主机C、D

创建网桥
临时生效,重启网络服务或电脑将失效
实验
- 电脑A能ping通电脑B。中间有一台Linux配置网桥,Linux上有两个网卡,分别处于不同网络,模拟两张网卡物理上连接不通交换机。
- 电脑A:192.168.100.111/24--》VMware6
- 电脑B:192.168.100.222/24--》VMware10
- Linux网桥:(因为网桥是二层设备,没有IP地址,所以此电脑没有自己的IP地址)

1.设置电脑AIP地址是192.168.100.111/24,虚拟机网络是VMware6 2.设置电脑AIP地址是192.168.100.222/24,虚拟机网络是VMware10 3.设置“Linux网桥”主机网卡1处于虚拟机VMware6;网卡2处于虚拟机VMware10 4.查看“Linux网桥”主机的IP地址“ip a” 5.因为二层设备没有IP地址,所以删除“Linux网桥”主机两张网卡的IP地址 ifconfig eth0 0.0.0.0 ifconfig eth1 0.0.0.0 6.在此查看发现没有IP地址“ip a” 7.启动桥接功能,查看有没有安装“bridge-utils”工具包 安装方式:yum install bridge-utils 8. 查看网桥(桥接设备) “brctl show” 9.添加网桥 brctl addbr br0 br0是逻辑上的设备名,例如bonding的bond或者网络组的team0 10.查看网桥“brctl show” 11.查看网桥是否有IP地址“ifconfig -a”或者“ip a” 可以把br0想象成一个交换机,现在有了交换机,就差把电脑A、B的网线插入交换机,即把电脑A、B的IP地址加入网桥接口中。 12.添加网桥中的网卡 brctl addif br0 eth0 brctl addif br0 eth1 13.查看网桥(桥接设备) “brctl show” 14.启动网桥br0"ip link set br0 up" 15.测试:电脑Aping电脑B 16.查看Mac地址和接口的对应关系,即MAC表,思科交换机设备叫CAM表 查看CAM表 brctl showmacs br0 17.给网桥br0添加一个IP地址,将来可以远程连接 ip a a 192.168.100.XX/24 dev br0
删除网桥
接着上面的实验:删除网桥br0 1.禁用网桥br0 ip link set br0 down 2.删除网桥中的网卡 brctl show \\先查看 brctl delif br0 eth0 brctl delif br0 eth1 brctl show \\查看是否删除 3.删除网桥br0 brctl delbr br0 4.查看网桥是否删除 brctl show ifconfig -a ip a
永久生效
永久生效需要写到配置文件,具体步骤可参考上面的临时命令 1.创建软件网桥 创建网桥mybr0(逻辑设备),网桥名是br0 nmcli con add con-name mybr0 type bridge con-name br0 ifname br0 手工指定网桥mybr0的IP地址 nmcli con modify mybr0 ipv4.addresses 192.168.0.100/24 ipv4.method manual 给网桥mybr0添加网卡eth0 nmcli con add con-name br0-port0 type bridge-slave ifname eth0 master br0 2.查看配置文件 cat /etc/sysconfig/network-scripts/ifcfg-br0 cat /etc/sysconfig/network-scripts/ifcfg-br0-port0
注1:也可通过添加/修改 /etc/sysconfig/network-scripts/ifcfg-XXX 配置文件达到永久生效。
参考:
《Linux 上的基础网络设备详解》 https://www.ibm.com/developerworks/cn/linux/1310_xiawc_networkdevice/index.html
《Linux brctl Command Examples for Ethernet Network Bridge》 https://www.thegeekstuff.com/2017/06/brctl-bridge/
浙公网安备 33010602011771号