Linux网络基本功能之链路聚合(bond、team)

以太网链路聚合简称链路聚合,它通过将多条以太网物理链路捆绑在一起成为一条逻辑链路,从而实现增加链路带宽的目的。同时,这些捆绑在一起的链路通过相互间的动态备份,可以有效的提高链路的可靠性。链路聚合,在网络工作中,扮演着重要角色,线路故障,网卡损坏等故障,可以导致网络瘫痪,使用链路聚合功能,则能在一个网卡损坏的情况下继续工作。
本文主要针对主备工作方式,主备也就是说同一时刻只有一个网卡处于工作状态,其他的slave都处于备份状态,只有在当前**的slave故障后才有可能变为**状态。

一、bond链路聚合

1.实验准备
我们需要将我们虚拟机上网卡设为开机不启动,使原有的ip地址不能使用。
Linux网络基本功能之链路聚合(bond、team)
链路聚合最少需要两个网卡,我们需要通过【virt-manager】命令,进入虚拟机管理器,再添加一个硬件设备——网卡,使该虚拟机为双网卡设备。
Linux网络基本功能之链路聚合(bond、team)
2.建立监控,清除原有网卡信息

watch -n 1 cat /proc/net/bonding/bond0
nmcli connection delete br0       ##删除网桥设置
nmcli connection delete "System eth0"   ##删除网卡
nmcli connection show             ##查看网络信息
systemctl start NetworkManager    ##打开网络管理器

为保证实验的纯净,我们需要将之前网络信息和网卡设备信息删除,避免与bond冲突。
Linux网络基本功能之链路聚合(bond、team)
3.添加bond0

nmcli connection add con-name bond0 ifname bond0 type bond mode active-backup ip4 172.25.254.131/24    ##添加bond并指定ip地址
                      配置文件链接名     指定接口     bond类型    bond工作模式         设定ip
nmcli connection show     ##可以查看到我们配置的bond

我们创建好了bond0和ip地址,但是我们还是不能ping通网络,那是由于没有物理网卡的支持,因此,下一步我们需要添加网卡设备。
Linux网络基本功能之链路聚合(bond、team)
4.添加网卡设备

nmcli connection add con-name eth0 ifname eth0 type bond-slave master bond0    ##对bond添加备用网卡
nmcli connection add con-name eth1 ifname eth1 type bond-slave master bond0

添加好网卡后,我们可以看到设备工作状态为up,这时我们可以开始使用【ping】命令,测试网络是否连通。
Linux网络基本功能之链路聚合(bond、team)
5.测试
(1)关闭网卡eth0,观察网络是否能够继续工作

ping 172.25.254.31
ifconfig eth0 down    ##关闭eth0
ifconfig eth0 up      ##开启eth0

Linux网络基本功能之链路聚合(bond、team)
我们通过【ifconfig】命令,将eth0网卡设备关闭,可以发现eth1接替eth0继续工作,网络处于连通状态。做完实验,我们需要及时将eth0设备开启。
(2)同时关闭两个网卡,观察网络是否连通
Linux网络基本功能之链路聚合(bond、team)
同时关闭网卡,网络ping不通,当然,这种情况是非常少见的。

二、team链路聚合

team也是链路聚合的一种方式,它最多支持8块网卡,可以支持广播、轮询、主备和负载均衡等模式。
1.建立监控,清除原有网卡信息

watch -n 1 teamdctl team0 stat
nmcli connection delete bond0    ##删除bond0
nmcli connection delete eth0     ##删除网卡
nmcli connection delete eth1

为保证实验的纯净,我们需要将原有的网卡设备清除,避免冲突。
Linux网络基本功能之链路聚合(bond、team)
2.创建team0

nmcli connection add con-name team0 type team ifname team0 config '{"runner":{"name":"activebackup"}}' ip4 172.25.254.131/24    ##创建team0

Linux网络基本功能之链路聚合(bond、team)
3.在team0中添加网卡设备

nmcli connection add con-name eth0 ifname eth0 type team-slave master team0
nmcli connection add con-name eth1 ifname eth1 type team-slave master team0

添加网卡设备,使网络可以工作。
Linux网络基本功能之链路聚合(bond、team)
4.测试
(1)关闭eth0,观察网络是否继续工作
Linux网络基本功能之链路聚合(bond、team)
关闭eth0后,eth1设备会接替eth0继续工作,网络继续连通,无中断。同理,开启eth0,在将eth1关闭,eth0会接替工作,使网络继续连通。
Linux网络基本功能之链路聚合(bond、team)
(2)同时关闭两个网卡,观察网络状态
Linux网络基本功能之链路聚合(bond、team)
同时关闭两个网卡,网络中断,没有活跃接口。