在 RHEL/CentOS 7 中配置网络组群(Network Teaming)

链路聚合(Link aggregation)是将两个或者多个网络接口组合为一个单元的过程。
根据用于创建它的链路聚合方法,此组合接口称为 Network Bond 或者 Network Team。

Network Bond 是一种传统方法,现在即将弃用,取而代之的是 Network Team。
Network Teaming 的两个主要优点是冗余和负载平衡。
冗余可提高网络可用性,而负载平衡可提高网络效率。

在本文中,我们将使用 nmcli 配置一个由两个接口组成的Network Team,以实现我们服务器的高可用性。

https://onitroad.com 更多教程

配置 Network Team

我们的服务器上有三个网络接口,其中一个已经配置好并且工作正常。
其他两个接口未使用。
我们将使用这两个设备来创建一个网络团队。

首先检查网络设备和连接的状态。

[root@server1 ~]# nmcli device status
DEVICE       TYPE      STATE         CONNECTION
eno16777728  ethernet  connected     eno16777728
eno33554968  ethernet  disconnected  -
eno50332192  ethernet  disconnected  -
lo           loopback  unmanaged     -
[root@server1 ~]# nmcli connection show
NAME         UUID                                  TYPE            DEVICE
eno16777728  a5c248f9-1118-443e-a2bc-7b2de73afe72  802-3-ethernet  eno16777728

上面的命令显示有两个断开连接的设备,并且服务器上只创建了一个连接。
因此,我们可以为剩余的两个设备创建连接并将其用作Network Team。

一个网络组由一个组主和两个或者多个组从连接组成。
因此,现在创建Network Team主连接。

[root@server1 ~]# nmcli connection add con-name team0 ifname team0 autoconnect yes type team config '{ "runner": { "name": "activebackup" }}'
Connection 'team0' (f74faadb-9441-44f0-9b99-1433f4dd4882) successfully added.

我们创建了一个带有 activebackup runner 的Network Team主链接,因为我们正在创建一个高可用性Network Team。

现在是时候将我们的Network Team 从属连接添加到这个Network Team中了。

[root@server1 ~]# nmcli connection add con-name team0-slave0 ifname eno33554968 autoconnect yes type team-slave master team0
Connection 'team0-slave0' (a4d66f51-f40b-4558-9b3b-2df5fb24eb14) successfully added.
[root@server1 ~]# nmcli connection add con-name team0-slave1 ifname eno50332192 autoconnect yes type team-slave master team0
Connection 'team0-slave1' (7e72d440-b54a-46ea-a973-54d5ec4cb87c) successfully added.

检查网络设备和连接的状态。

[root@server1 ~]# nmcli connection show
NAME          UUID                                  TYPE            DEVICE
team0-slave0  a4d66f51-f40b-4558-9b3b-2df5fb24eb14  802-3-ethernet  eno33554968
team0         f74faadb-9441-44f0-9b99-1433f4dd4882  team            team0
eno16777728   a5c248f9-1118-443e-a2bc-7b2de73afe72  802-3-ethernet  eno16777728
team0-slave1  7e72d440-b54a-46ea-a973-54d5ec4cb87c  802-3-ethernet  eno50332192
[root@server1 ~]# nmcli device status
DEVICE       TYPE      STATE      CONNECTION
eno16777728  ethernet  connected  eno16777728
eno33554968  ethernet  connected  team0-slave0
eno50332192  ethernet  connected  team0-slave1
team0        team      connected  team0
lo           loopback  unmanaged  -

可以看到以前断开连接的两个设备现在都已连接。

检查Network Team的 IP 地址。

[root@server1 ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eno16777728: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:63:0c:9a brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.101/24 brd 192.168.1.255 scope global eno16777728
       valid_lft forever preferred_lft forever
    inet6 fd15:4ba5:5a2b:1008:20c:29ff:fe63:c9a/64 scope global dynamic
       valid_lft 86383sec preferred_lft 14383sec
    inet6 fe80::20c:29ff:fe63:c9a/64 scope link
       valid_lft forever preferred_lft forever
3: eno33554968: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master team0 state UP qlen 1000
    link/ether 00:0c:29:63:0c:a4 brd ff:ff:ff:ff:ff:ff
4: eno50332192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master team0 state UP qlen 1000
    link/ether 00:0c:29:63:0c:a4 brd ff:ff:ff:ff:ff:ff
5: team0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
    link/ether 00:0c:29:63:0c:a4 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.102/24 brd 192.168.1.255 scope global dynamic team0
       valid_lft 1463sec preferred_lft 1463sec
    inet6 fd15:4ba5:5a2b:1008:7496:bff:fed9:159c/64 scope global dynamic
       valid_lft 86383sec preferred_lft 86383sec
    inet6 fe80::7496:bff:fed9:159c/64 scope link
       valid_lft forever preferred_lft forever
[root@server1 ~]#

Network Team已成功配置,并且动态 IP 地址已由 DHCP 服务器分配给Network Team连接。

检查Network Team及其runner的状态。

[root@server1 ~]# teamdctl team0 state view
setup:
  runner: activebackup
ports:
  eno33554968
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
  eno50332192
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
runner:
  active port: eno33554968

配置环境

  • 主机名 - server1.onitroad.com
  • IP 地址 - 192.168.1.101/24(静态)
  • 网口 1 - eno16777728
  • 网口 2 - eno33554968
  • 网口 3 - eno50332192
  • Network Team IP 地址 - 192.168.1.102/24 (dhcp)
  • 操作系统 - RHEL 7.0
日期:2020-09-17 00:12:52 来源:oir作者:oir