链路聚合(Link aggregation)是将两个或者多个网络接口组合为一个单元的过程。
根据用于创建它的链路聚合方法,此组合接口称为 Network Bond 或者 Network Team。
Network Bond 是一种传统方法,现在即将弃用,取而代之的是 Network Team。
Network Teaming 的两个主要优点是冗余和负载平衡。
冗余可提高网络可用性,而负载平衡可提高网络效率。
在本文中,我们将使用 nmcli 配置一个由两个接口组成的Network Team,以实现我们服务器的高可用性。
配置 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