首页 > 系统相关 >Linux系统之Team链路聚合配置

Linux系统之Team链路聚合配置

时间:2023-08-12 18:02:20浏览次数:44  
标签:Linux 链路 team0 up 网卡 link Team jeven root

(Linux系统之Team链路聚合配置)

一、Team链路聚合介绍

1. Teaming技术简介

1.Teaming技术就是把同一台服务器上的多个物理网卡通过软件绑定成一个虚拟网卡; 2.我们可以通过Teaming技术做链路聚合,实现不同网卡的网卡的负载均衡和冗余;

2. 网卡的bonding和Teaming技术

1.一般在在RHEL5/RHEL6中使用的是Bonding,而RHEL7提供了一项新的实现技术Teaming,用来实现链路聚合的功能。 2.网卡的链路聚合一般常用的有"bond"和"team"两种模式,"bond"模式最多可以添加两块网卡,"team"模式最多可以添加八块网卡。

3. Team常用工作模式

Team常用工作模式如下:

  • roundrobin: 以轮循的模式传输所有端口的包
  • activebakup:主备模式这是一个故障迁移程序,监控链接更改并选择活动的端口进行传输
  • loadbalance: 监控流量并使用哈希函数以尝试在选择传输端口的时候达到完美均衡
  • broadcast: 广播容错,设备通过所有端口传输数据包

二、实践环境规划

本次实践规划:

hostname team接口IP地址 物理网卡 操作系统版本
jeven 192.168.200.126 ens37/38/39/40 centos 7.6

三、添加物理网卡

1. 新增物理网卡

给虚拟机新增四张物理网卡 需要注意的是添加的网络适配器需网络模式一致,添加的个数为2的指数。

在这里插入图片描述

2. 查看网卡信息

查看新增的4张网卡ens37/38/39/40,已正常添加。

[root@jeven ~]# ip add  |grep ens
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    inet 192.168.3.166/24 brd 192.168.3.255 scope global noprefixroute dynamic ens33
120: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    inet 192.168.200.215/24 brd 192.168.200.255 scope global noprefixroute dynamic ens37
121: ens38: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    inet 192.168.200.216/24 brd 192.168.200.255 scope global noprefixroute dynamic ens38
122: ens39: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    inet 192.168.200.212/24 brd 192.168.200.255 scope global noprefixroute dynamic ens39
126: ens40: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    inet 192.168.200.217/24 brd 192.168.200.255 scope global noprefixroute dynamic ens40

四、Team链路聚合配置

1. 查看team的工作模式

通过teamd.conf查看team的工作模式

man teamd.conf

在这里插入图片描述

2. 创建team0的网络接口

使用 nmcli 命令,添加一个 team 网络接口 team0,我们选择的team模式是activebakup主备模式。

[root@jeven ~]# nmcli connection add type team con-name team0 ifname team0 config '{"runner": {"name": "activebackup"}}'
Connection 'team0' (7d4367b3-4f6b-4fbf-968f-daf110d7292b) successfully added.


3. 配置team0接口的IP地址

配置team0接口的IP地址为192.168.200.126/24

mcli connection modify team0 ipv4.addresses 192.168.200.126/24 ipv4.method manual 

4. 添加team0的子接口

将物理网卡ens37、ens38、ens39、ens40作为team0的子接口。

[root@jeven ~]# nmcli connection add type team-slave con-name team0-port1 ifname ens37 master team0 
Connection 'team0-port1' (66450b15-fdec-48d8-9df4-ba8ab29c8633) successfully added.
[root@jeven ~]#  nmcli connection add type team-slave con-name team0-port2 ifname ens38 master team0
Connection 'team0-port2' (dc869a3b-d9bd-49a7-a1b8-1368e5f2e0db) successfully added.
[root@jeven ~]# nmcli connection add type team-slave con-name team0-port3 ifname ens39 master team0
Connection 'team0-port3' (df21f75f-0343-45e7-9051-f3063cedfee0) successfully added.
[root@jeven ~]# nmcli connection add type team-slave con-name team0-port4 ifname ens40 master team0
Connection 'team0-port4' (58838a61-fb21-443f-a932-959ebd40c21e) successfully added.


5. 激活网卡

重启网络服务

[root@jeven network-scripts]# nmcli con reload 
[root@jeven network-scripts]# nmcli con up team0-port1
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/38)
[root@jeven network-scripts]# nmcli con up team0-port2
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/39)
[root@jeven network-scripts]# nmcli con up team0-port3
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/40)
[root@jeven network-scripts]# nmcli con up team0-port4
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/41)


6. 检查team0接口的状态

检查team0接口的状态,当前活动的网卡为ens37。

[root@jeven network-scripts]# teamdctl team0 state
setup:
  runner: activebackup
ports:
  ens37
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
        down count: 0
  ens38
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
        down count: 0
  ens39
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
        down count: 0
  ens40
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
        down count: 0
runner:
  active port: ens37

五、测试Team链路聚合

1. 测试team0接口的网络连通情况

在宿主机,ping其team0的IP地址,网络正常。

ping 192.168.200.126 -t 

在这里插入图片描述

1. 停用ens37网卡

在本机停用ens37网卡,在局域网其他主机测试其连通性。

  • 本机停用ens37网卡
[root@jeven ~]# ifdown ens37
Device 'ens37' successfully disconnected.

  • 查看当前team接口状态,可以看到现在ens40网卡接管服务。
[root@jeven ~]# teamdctl team0 state
setup:
  runner: activebackup
ports:
  ens38
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
        down count: 0
  ens39
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
        down count: 0
  ens40
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
        down count: 0
runner:
  active port: ens40

3. 测试网络情况

继续查看网络连通性,网络正常,网络没有中断。

在这里插入图片描述

六、删除子接口操作

1. 删除子接口

查看网卡连接信息

[root@jeven ~]# nmcli con show
NAME                UUID                                  TYPE      DEVICE  
docker0             85baca8e-d2b0-4fdc-bf5d-2d202ae7d2a3  bridge    docker0 
ens33               ba415981-963e-4130-984a-8dd764f4bb70  ethernet  ens33   
team0               7d4367b3-4f6b-4fbf-968f-daf110d7292b  team      team0   
team0-port1         66450b15-fdec-48d8-9df4-ba8ab29c8633  ethernet  ens37   
team0-port2         dc869a3b-d9bd-49a7-a1b8-1368e5f2e0db  ethernet  ens38   
team0-port3         df21f75f-0343-45e7-9051-f3063cedfee0  ethernet  ens39   
team0-port4         58838a61-fb21-443f-a932-959ebd40c21e  ethernet  ens40   
virbr0              d83517b6-f9f1-434b-bf41-dcedb7cb1bde  bridge    virbr0  

删除子接口

[root@jeven ~]# nmcli con delete team0-port4 
Connection 'team0-port4' (58838a61-fb21-443f-a932-959ebd40c21e) successfully deleted.
[root@jeven ~]# nmcli con delete team0-port3
Connection 'team0-port3' (df21f75f-0343-45e7-9051-f3063cedfee0) successfully deleted.

2. 查看网卡信息

查看网卡连接信息

[root@jeven ~]# nmcli con show
NAME                UUID                                  TYPE      DEVICE  
docker0             85baca8e-d2b0-4fdc-bf5d-2d202ae7d2a3  bridge    docker0 
ens33               ba415981-963e-4130-984a-8dd764f4bb70  ethernet  ens33   
team0               7d4367b3-4f6b-4fbf-968f-daf110d7292b  team      team0   
team0-port1         66450b15-fdec-48d8-9df4-ba8ab29c8633  ethernet  ens37   
team0-port2         dc869a3b-d9bd-49a7-a1b8-1368e5f2e0db  ethernet  ens38   
virbr0              d83517b6-f9f1-434b-bf41-dcedb7cb1bde  bridge    virbr0  
Wired connection 4  02e53166-ccb4-38cf-b922-a5ffd8c549e5  ethernet  ens40   
Wired connection 1  2650ffb4-2ebf-361f-b30f-489f12a7b889  ethernet  --      
Wired connection 2  412789b9-ffeb-3280-8129-8c4465f0a779  ethernet  --      
Wired connection 3  80a0f41d-942f-3e88-8d22-c63604519d15  ethernet  -- 

查看team接口状态

[root@jeven ~]# teamdctl team0 state 
setup:
  runner: activebackup
ports:
  ens37
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
        down count: 0
  ens38
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
        down count: 0
runner:
  active port: ens38

3. 重启team0

重启team0,查看当前网络连接状态,ens39/40两张网卡已停止使用。

[root@jeven network-scripts]# nmcli con reload 
[root@jeven network-scripts]# nmcli con up team0
Connection successfully activated (master waiting for slaves) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/52)
[root@jeven network-scripts]# nmcli con show
NAME                UUID                                  TYPE      DEVICE  
docker0             85baca8e-d2b0-4fdc-bf5d-2d202ae7d2a3  bridge    docker0 
ens33               ba415981-963e-4130-984a-8dd764f4bb70  ethernet  ens33   
team0               7d4367b3-4f6b-4fbf-968f-daf110d7292b  team      team0   
team0-port1         66450b15-fdec-48d8-9df4-ba8ab29c8633  ethernet  ens37   
team0-port2         dc869a3b-d9bd-49a7-a1b8-1368e5f2e0db  ethernet  ens38   
virbr0              d83517b6-f9f1-434b-bf41-dcedb7cb1bde  bridge    virbr0  
Wired connection 1  2650ffb4-2ebf-361f-b30f-489f12a7b889  ethernet  --      
Wired connection 2  412789b9-ffeb-3280-8129-8c4465f0a779  ethernet  --      
Wired connection 3  80a0f41d-942f-3e88-8d22-c63604519d15  ethernet  --      
Wired connection 4  02e53166-ccb4-38cf-b922-a5ffd8c549e5  ethernet  --  

标签:Linux,链路,team0,up,网卡,link,Team,jeven,root
From: https://blog.51cto.com/u_14664141/7060447

相关文章

  • linux查看内存
    linux查看内存多大的方法:1、执行“free-m”命令,输出列表的“total”项值就是查询的总内存数;2、执行“cat/proc/meminfo”命令,可显示内存的详细信息,输出列表的“MemTotal”项值就是查询的总内存大小。本教程操作环境:linux5.9.8系统、DellG3电脑。linux查看内存多大的方法1......
  • linux中常用端口查询命令
    1、lsof-i:80 用于查看某一端口的占用情况2、netstat-tunlp|grep80 用于查看指定的端口号的进程情况......
  • Linux下使用GDB调试代码
    目录Linux下使用GDB调试代码GDB例程启动查看断点运行退出Linux下使用GDB调试代码GDBGDB是GNU开源组织发布的一个强大的Unix/Linux下的程序调试工具。作用:1、启动用户程序后,可以按照用户的要求随意运行程序2、可让被调试的程序在用户所设定的断点处停住3、当程序被停住时,可......
  • Linux visudo权限管理
    root用户给普通用户授权visudo(推荐使用,因为他会检查语法)vim/etc/suoders(不检查语法)普通用户切换root用户的两种方法1)su-root(需要root密码)2)sudosu-root(不需要root密码但是需要在visudo或/etcsuoders里面配置guoguo ALL =(ALL) ALL 用户    主机 切换的角色 ......
  • Linux ROOT密码忘记解决方法 root口令忘记解决方法
    忘记root密码解决思路:用光盘启动重新设置密码将光盘设置为第一启动保存退出进入救援模式  用光盘启动 设置root密码主板上有个bios芯片,不但可以自检程序用于引导之外,还可以设置(一般电脑的话开机按F2、F1或者其他键)虚拟机上就是打开电源时进入固件然后开机 找到Boot(启动)里面......
  • Linux磁盘故障,模拟故障及解决思路方法
    每个分区起始位置都有一个inod表索引节点表(类似于目录表)每一个文件都对应一个编号称为索引节点,如果这个空间文件数太多了,记满了,就说明索引节点表耗尽。故障1 该分区不能正常读写或者说只能读不能写了但是又没有满,就代表文件系统有问题,文件系统有问题需要进行修复命令:故障2:索引......
  • 解决linux mysql命令 bash mysql command not found 的方法
    错误:root@DB-02~]#mysql-uroot-bash:mysql:commandnotfound原因:这是由于系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,当然会找不到命令,我们需要做的就是映射一个链接到/usr/bin目录下,相当于建立一个链接文件。首先得知道mysql命令或mysqladmin命令的完整路......
  • linux系统安装bison,解决 These critical programs are missing or too old bison comp
    1、编译 glibc过程中报错../configure--prefix=/opt/glibc-2.272、首先查看bison版本  bison--versionbison-V貌似就没有安装bison。3、使用yum安装bison yuminstallbison 安装成功。 4、查看版本:bison--version 居然这么简单就完成了。5、继续编译 glibc......
  • 什么是Shell,初识Shell脚本Shell编程,shell介绍,Linux
    脚本脚本就是批处理平常一个命令不能完成的任务,写到一个文件当中,有多个命令按照一定的逻辑来进行编写编写完后去执行这个文件,随后他就会按照流程多个命令,多个语句,达到批处理的一个任务shell 系统分成了三层第一层是kernel(内核)内核是操作系统的核心,主要负责1管理硬件,电脑cpu是什么......
  • Linux下C语言调用libcurl库下载文件到本地
    一、项目介绍当前文章介绍如何使用C语言调用libcurl库在Linux(Ubuntu)操作系统下实现网络文件下载功能。libcurl是一个开源的跨平台网络传输库,用于在C和C++等编程语言中实现各种网络通信协议的客户端功能。它支持多种协议,包括HTTP、HTTPS、FTP、SMTP、POP3等,可以方便地进行数据的上传......