网卡聚合链路

发布时间 2023-07-21 16:52:35作者: ArMinLi

技术作用:将主机的多块网卡通过逻辑的方式聚合在一起,目的是加大带宽、冗余备份;

1. 实验环境

准备一台虚拟机,添加两块网卡(在同一通道)

#查看网卡名称及MAC地址
ifconfig

2. 保证 NetworkManager 服务正常运行

[root@lemon ~]# systemctl status NetworkManager | grep running

3. 移走原有的网卡配置文件并重启网卡服务

[root@lemon ~]# mkdir /opt/network_bak
[root@lemon ~]# cd /etc/sysconfig/network-scripts/
[root@lemon network-scripts]# mv ifcfg-ens* /opt/network_bak/
[root@lemon network-scripts]# systemctl restart network

注:此时 xhell 应该已经断开了,所以后面的操作就得在虚拟机 或 服务器上面操作

4. 创建 team 公共逻辑网卡设备,并且将物理网卡添加到网卡中

提示:这里的 c 选项可以用 connection 来代替

  • 创建公共网卡设备 team0
[root@lemon ~]# nmcli c add con-name team0 type team ifname team0 config '{"runner":{"name":"activebackup"}}'
连接“team0”(4980fa49-c5e6-4070-9553-686a8df23fb8) 已成功添加。
[root@lemon ~]# nmcli d       #查看网卡列表

  • 将物理网卡 ens32 添加到 team0
[root@lemon ~]# nmcli c add con-name team0-1 type team-slave ifname ens32 master team0
连接“team0-1”(f52c2b7a-1322-4cf1-a361-82dee280c68a) 已成功添加。
  • 将物理网卡 ens34 添加到 team0
[root@lemon ~]# nmcli c add con-name team0-2 type team-slave ifname ens34 master team0
连接“team0-2”(032b8040-5906-4c57-adef-d620b8d3b3e1) 已成功添加。

5. 模式介绍

# 其实除了activebackup模式,其余三种模式都属于负载均衡模式

# activebackup 高可用模式的特点:一个端口处于主状态 ,一个处于从状态,所有流量都在主链路上处理,从不会有任何流量。当主端口down掉时,从端口接手主状态。【主down掉,从就会顶上来】

# loadbalance  模式其中又分为:主动和被动模式。主动模式,是team会智能判断进行负载均衡。被动模式是进行随机的负载均衡。

# roundrobin   模式以轮循的方式传输所有端口的包。

# random模式  随机分配

# 一般在现实环境中都是用负载均衡模式

6. 开启添加到 team0 逻辑网卡里的两个物理网卡

[root@lemon ~]# nmcli connection up team0-1
[root@lemon ~]# nmcli connection up team0-2
[root@lemon ~]# nmcli d       #查看网卡列表

7. 查看链路聚合状态是冗余备份的状态,并且当前活跃网卡为 ens32

[root@lemon ~]# teamdctl team0 state

8. 检查物理网卡的MAC地址是否统一

9. 设置 team0 网卡的临时 ip 地址并且启动该网卡

注:会自动生成 team0 网卡的配置文件

[root@lemon ~]# nmcli c modify team0 ipv4.addresses 192.168.1.1/24 ipv4.method manual
[root@lemon ~]# nmcli c up team0 && echo $?
  • ifconfig 查看一下 team0 网卡的 IP地址,mac地址是否一样

10. 使用 xshell 连接测试

11. 查看并修改自动生成的 team0 网卡的配置文件

cat /etc/sysconfig/network-scripts/ifcfg-team0

cat /etc/sysconfig/network-scripts/ifcfg-team0-1

cat /etc/sysconfig/network-scripts/ifcfg-team0-2

修改并重启网络

[root@lemon ~]# vim /etc/sysconfig/network-scripts/ifcfg-team0

[root@lemon ~]# systemctl restart network

查看网络状态

[root@lemon ~]# nmcli c show
[root@lemon ~]# ifconfig

12. 测试网卡高可用

注:断开连接后,记得到虚拟机中重启一下网络,不然 xsell 是远程不上这台服务器的;至于这个步骤在真实环境中,你可以写个监控触发脚本来完成这步操作。

systemctl restart network

查看 team0 公共网卡的状态信息,发现活跃网卡从 ens32 切换到 ens34

[root@lemon ~]# teamdctl team0 state

使用 ping 命令测试一下网络是否是到影响

13. 扩展1

如若出现重启主机后,发现 ens32 ens34 team0 网卡的MAC地址不一致,处理方法如下

重新启动一下 team0 team0-1 team0-2 网卡

[root@lemon ~]# nmcli connection down team0 && nmcli connection up team0
[root@lemon ~]# nmcli connection up team0-1 && nmcli connection up team0-2

14. 扩展2

更改为负载均衡的方式

  • 修改 team0 配置文件
[root@lemon ~]# vim /etc/sysconfig/network-scripts/ifcfg-team0

  • 然后再重启一下team0 team0-1 team0-2
[root@lemon ~]# nmcli connection down team0 && nmcli connection up team0
[root@lemon ~]# nmcli connection up team0-1 && nmcli connection up team0-2
[root@lemon ~]# systemctl restart network
  • 查看是否更改成功
[root@lemon ~]# teamdctl team0 state

15. 扩展3

将上面关掉的网络设备打开,验证链路聚合的网卡状态是否会自动恢复