共计 3738 个字符,预计需要花费 10 分钟才能阅读完成。
自动写代码机器人,免费开通
这篇文章将为大家详细讲解有关 Linux 链路聚合的示例分析,丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
链路聚合是一个计算机网络术语,指将多个物理端口汇聚在一起,形成一个逻辑端口,以实现出 / 入流量吞吐量在各成员端口的负荷分担,
交换机根据用户配置的端口负荷分担策略决定网络封包从那个成员端口发送到对端的交换机。当交换机检测到其中一个成员端口的链路发
生故障时,就停止在此端口上发送封包,并根据负荷分担策略在剩下的链路中重新计算报文的发送端口,故障端口恢复后再次担任发送端
口。链路聚合在增加链路带宽,实现链路传输弹性和工程冗余等方面是一项很重要的技术。
网卡的链路聚合一般常用的有 bond (网络绑定)和 team (网络成组)俩种模式:
bond 模式主要在 RHEL6 上使用
Team 模式是 RHEL7 上实现链路聚合的技术
bond 模式最多可以添加俩快网卡。
bond 模式不支持负债均衡。
bond 模式不支持 ipv6。
bond 模式不支持 hash 加密。
team 模式最多可以添加八块网卡。
team 模式支持负载均衡。
team 模式支持 ipv6。
team 模式支持 hash 加密。
bond2team 命令: 将绑定配置文件转换为网络成组配置文件。
team (网络成组守护进程)
team 的安装:
yum install reamd
team 模式支持的工作模式:
active-backup: 主备
loadbalance: 负载均衡
broadcast: 广播容错
roundrobin: 平衡伦叫
使用 NetworkManager 守护进程控制成组的端口接口时,特别是发现错误时,请记住以下要点;
1、启动主接口不会自动启动端口接口
2、启动端口接口总是会启动主接口
3、停止主接口总是会停止端口接口
4、没有端口的主机可启动静态 IP 连接
5、没有端口的主机在启动 DHCP 连接时会等待端口
6、添加附带载波的端口后,使用 DHCP 连接的主机会等待端口完成连接
7、添加不附带载波的端口后,使用 DHCP 连接的主机会让端口继续等待
使用命令行配置 team 范例:
1.nmcli connection show (查看系统中可用的连接)
[root@localhost ~]# nmcli connection show
NAME UUID TYPE DEVICE
enp4s0f3 22c02942-97bc-4e91-9fbd-ba81ade73091 ethernet enp4s0f3
virbr0 84d56169-90a1-40d6-8ed8-c48ea30e3349 bridge virbr0
enp4s0f0 65bde539-1c28-45cc-abb1-0ea9ddbe28f4 ethernet --
enp4s0f1 bdf86b0b-9c32-443f-a40e-5bad91ffb632 ethernet --
enp4s0f2 1be55c68-9659-4041-a20e-d08dbc64cac8 ethernet --
[root@localhost ~]#
2. 创建 team 接口:
nmcli connection add type team ifname team 接口名称
[root@localhost ~]# nmcli connection add type team ifname team-ServerA
连接“team-team-ServerA”(dc7d9c0f-dd25-4444-a5d6-c963ade56b78) 已成功添加。 [root@localhost ~]#
NetworkManager 会将配置写入 /etc/sysconfig/network-scripts/ifcfg-team-team-ServerA 文件中,并将 onboot 设定为 yes
,bootproto 设定为 dhcp。可使用 nmcli connnection show team 接口名称 命令查看接口信息
[root@localhost ~]# nmcli connection show team-team-ServerA
connection.id: team-team-ServerA
connection.uuid: dc7d9c0f-dd25-4444-a5d6-c963ade56b78
connection.stable-id: --
connection.type: team
connection.interface-name: team-ServerA
connection.autoconnect: 是
connection.autoconnect-priority: 0
connection.autoconnect-retries: -1 (default)
connection.auth-retries: -1
connection.timestamp: 0
connection.read-only: 否
.....
更改 team 接口名称:
nmcli con mod old-team-name connection.id new-team-name
为 team 接口导入配置文件:
nmcli connection modify team-name team.config JSON-config
cd
3. 将 enp4s0f0,enp4s0f1 添加到 team 接口 team-team-ServerA 中:
nmcli con add type team-slave con-name 从 team 接口名称 ifname 网卡设备名称 master 主 team 接口名称
[root@localhost ~]# nmcli con add type team-slave con-name team-slave1 ifname enp4s0f0 master team-team-ServerA
连接“team-slave1”(31848a23-7071-4fc3-abc2-7e423ba3e181) 已成功添加。[root@localhost ~]# nmcli con add type team-slave con-name team-slave2 ifname enp4s0f1 master team-team-ServerA
连接“team-slave2”(ab23f7fe-916d-4597-9d54-b68d532a3413) 已成功添加。[root@localhost ~]#
4. 要启用网络成组,必须先激活这些端口
[root@localhost ~]# nmcli connection up team-slave1
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/11)[root@localhost ~]# nmcli connection up team-slave2
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/12)[root@localhost ~]#
[root@localhost ~]# nmcli connection up team-team-ServerA
Connection successfully activated (master waiting for slaves) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/13)
cd[root@localhost ~]#
使用配置文件创建 team 接口:
在 /etc/sysconfig/network-scripts/ 目录下创建一个配置文件,内容如下:
DEVICE=team0
DEVICETYPE=Team
ONBOOT=yes
BOOTPROTO=none
IPADDR=192.168.1.1
PREFIX=24
TEAM_CONFIG= {runner :{ name : activebackup}, link_watch :{name : ethtool}}
这样就创建了 team 主接口
要创建属于 team 成员的端口,请在 /etc/sysconfig/network-scripts/ 目录下创建一个或多个配置文件, 内容如下:
DEVICE=xxx
HWADDR=xxxx
DEVICETYPE=TeamPort
ONBOOT=yes
TEAM_MASTER=team0
TEAM_PORT_CONFIG= {prio : 100}
prio 用于指定优先权, 该数值取值范围在 -32767 到 +32767 之间,如不指定则默认为 0。
关于“Linux 链路聚合的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
向 AI 问一下细节
丸趣 TV 网 – 提供最优质的资源集合!