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的指数。

Linux系统之Team链路聚合配置

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 
Linux系统之Team链路聚合配置

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  
Linux系统之Team链路聚合配置

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. 测试网络情况

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

Linux系统之Team链路聚合配置

六、删除子接口操作

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-


原文始发于微信公众号(运维江湖客):Linux系统之Team链路聚合配置

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/218195.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!