网桥

概念

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

Linux篇 | 将Linux拥有交换机的网桥功能_第1张图片

创建网桥

临时生效,重启网络服务或电脑将失效

实验

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

Linux篇 | 将Linux拥有交换机的网桥功能_第2张图片

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