天天看点

Linux ❀ 配置不同网卡的链路聚合

如何在Linux中配置不同网卡的链路聚合

Red Hat Enterprise Linux 7 与 CentOS 7 中默认的网络服务由 NetworkManager 提供,这是动态控制及配置网络的守护进程,它用于保持当前网络设备及连接处于工作状态,同时也支持传统的 ifcfg 类型的配置文件。

1、选择链路聚合配置模型

复制以下内容

[root@localhost ~]# vim /usr/share/doc/teamd-1.17/example_configs/activebackup_arp_ping_1.conf 
          "runner":       {"name": "activebackup"}      

2、创建链路聚合

2.1、创建team0设备和team0会话

[root@localhost ~]# nmcli connection add type team con-name team0 ifname team0 config '{"runner": {"name": "activebackup"} }'      

查看创建好的team0会话

[root@localhost ~]# nmcli connection show      

2.2、修改team0会话的IP地址和网关.

[root@localhost ~]# nmcli connection modify team0 ipv4.addresses 192.168.171.150/24
[root@localhost ~]# nmcli connection modify team0 ipv4.gateway 192.168.171.1      

2.3、更改IP地址获取方式为手动

[root@localhost ~]# nmcli connection modify team0 ipv4.method manual      

查看修改后的team0会话

[root@localhost ~]# nmcli connection show team0 | grep method      

2.4、添加设备到team0

[root@localhost ~]# nmcli connection add type team-slave con-name team0-slave1 ifname eth1 master team0
[root@localhost ~]# nmcli connection add type team-slave con-name team0-slave2 ifname eth2 master team0      

2.5、激活从设备

[root@localhost ~]# nmcli connection up team0-slave1
[root@localhost ~]# nmcli connection up team0-slave2      

激活主设备

[root@localhost ~]# nmcli connection up team0      

2.6、查看启动后的team0状态

[root@localhost ~]# teamdctl team0 state
[root@localhost ~]# ip add
...
20: team0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP 
        link/ether 00:0c:29:1e:51:6f brd ff:ff:ff:ff:ff:ff
        inet 172.16.3.40/24 brd 172.16.3.255 scope global team0
           valid_lft forever preferred_lft forever
        inet6 fe80::20c:29ff:fe1e:516f/64 scope link 
           valid_lft forever preferred_lft forever      

3、检测聚合:

停用一个从设备会话来检验效果,命令如下:

[root@localhost ~]# nmcli connection down team0-port1      

测试分别停一个端口的变化/ 两个端口都停掉的变化/在停掉一个真实物理网卡的变化

两个端口都开着:

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

关闭一个接口,检测聚合是否成功:

[root@system1 ~]# nmcli connection down team0-slave1
  Connection 'team0-slave1' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/32)
  [root@system1 ~]# 
  [root@system1 ~]# teamdctl team0 state
  setup:
    runner: activebackup
  ports:
    eth2
      link watches:
        link summary: up
        instance[link_watch_0]:
          name: ethtool
          link: up
          down count: 0
  runner:
    active port: eth2      

关闭两个接口,检测聚合是否成功:

[root@system1 ~]# nmcli connection down team0-slave2 
  Connection 'team0-slave2' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/33)
  [root@system1 ~]# teamdctl team0 state
  setup:
    runner: activebackup
  runner:
    active port:      

4、检测聚合链路的连通性

[root@system1 ~]# ping 172.16.3.40
  PING 172.16.3.40 (172.16.3.40) 56(84) bytes of data.
  64 bytes from 172.16.3.40: icmp_seq=1 ttl=64 time=0.044 ms
  64 bytes from 172.16.3.40: icmp_seq=2 ttl=64 time=0.054 ms
  64 bytes from 172.16.3.40: icmp_seq=3 ttl=64 time=0.054 ms
  ^C
  --- 172.16.3.40 ping statistics ---
  3 packets transmitted, 3 received, 0% packet loss, time 1999ms
  rtt min/avg/max/mdev = 0.044/0.050/0.054/0.009 ms      
[root@localhost ~]# nmcli device disconnect eth0      

继续阅读