Loading... ## CentOS 7 双网卡动态链路聚合配置 在 CentOS 7 系统中,通过**链路聚合(Link Aggregation)**可以实现网络接口的冗余和负载均衡。链路聚合可以将多块网卡绑定为一个逻辑接口,提升带宽利用率并提供更高的可靠性。在本文中,我们将详细介绍如何在 CentOS 7 上配置双网卡动态链路聚合,使用**LACP(Link Aggregation Control Protocol)**协议,实现动态负载均衡和故障转移。 ### 1. 环境准备 在配置链路聚合之前,确保以下环境准备工作已完成: - **双网卡**:系统需要至少有两块网卡(例如 `eth0` 和 `eth1`),用于进行聚合。 - **LACP 支持的交换机**:LACP 是动态链路聚合协议,需要支持该协议的交换机协同工作。 - **root 权限**:需要有超级用户权限来修改网络配置。 ### 2. 验证网卡信息 在配置之前,可以使用 `ip addr` 或 `nmcli` 命令查看当前系统中的网络接口信息,确认双网卡的状态。 ```bash ip addr ``` 或者使用 `nmcli` 工具: ```bash nmcli device status ``` 这将列出系统中所有的网络接口,确保要聚合的两块网卡状态正常。 ### 3. 安装 `teamd` 工具 CentOS 7 引入了新的网络管理工具 `teamd`,它是实现链路聚合的核心工具之一。首先,检查 `teamd` 是否已安装。如果未安装,可以使用 `yum` 进行安装: ```bash sudo yum install teamd ``` ### 4. 创建链路聚合配置文件 在 CentOS 7 中,可以通过 `nmcli` 工具创建聚合接口。以下是创建 LACP 链路聚合的步骤: #### 4.1 创建聚合设备 `team0` 使用 `nmcli` 创建一个名为 `team0` 的聚合接口: ```bash nmcli connection add type team con-name team0 ifname team0 config '{"runner": {"name": "lacp"}}' ``` - `team0` 是我们新创建的逻辑聚合接口名称。 - `runner` 参数中指定 `lacp`,表示使用 LACP 协议进行链路聚合。 #### 4.2 将物理接口添加到聚合组 接下来,将物理网卡(如 `eth0` 和 `eth1`)添加到 `team0` 聚合接口中: ```bash nmcli connection add type team-slave con-name team0-slave0 ifname eth0 master team0 nmcli connection add type team-slave con-name team0-slave1 ifname eth1 master team0 ``` - `team0-slave0` 和 `team0-slave1` 是分别用于 `eth0` 和 `eth1` 的从接口。 - `master team0` 表示这两个接口都被绑定到 `team0` 逻辑接口中。 #### 4.3 配置 IP 地址 接下来,给聚合接口 `team0` 配置 IP 地址。你可以通过 DHCP 自动获取 IP 地址,也可以手动配置静态 IP 地址。 - 使用 DHCP 获取 IP 地址: ```bash nmcli connection modify team0 ipv4.method auto nmcli connection up team0 ``` - 手动设置静态 IP 地址: ```bash nmcli connection modify team0 ipv4.method manual ipv4.addresses 192.168.1.100/24 nmcli connection modify team0 ipv4.gateway 192.168.1.1 nmcli connection modify team0 ipv4.dns 8.8.8.8 nmcli connection up team0 ``` ### 5. 配置 `teamd` 运行时参数 链路聚合的配置文件默认存储在 `/etc/sysconfig/network-scripts/` 目录下。你可以通过修改 `team0` 接口的 `teamd` 配置文件来调整更详细的运行参数。 1. 编辑 `team0` 的运行配置文件: ```bash sudo vi /etc/sysconfig/network-scripts/ifcfg-team0 ``` 2. 确保文件内容包含基本配置信息: ```bash DEVICE=team0 DEVICETYPE=Team ONBOOT=yes BOOTPROTO=static IPADDR=192.168.1.100 PREFIX=24 GATEWAY=192.168.1.1 DNS1=8.8.8.8 TEAM_CONFIG='{"runner": {"name": "lacp", "active": true}, "link_watch": {"name": "ethtool"}}' ``` - `TEAM_CONFIG`:指定 `lacp` 作为链路聚合协议,同时使用 `ethtool` 监测链路状态。 ### 6. 启动并验证链路聚合 在配置完成后,使用以下命令启动并检查链路聚合的运行状态: ```bash nmcli connection up team0 ``` 验证聚合是否成功: ```bash teamdctl team0 state ``` 这将显示聚合接口的当前状态,包括 LACP 协商情况以及物理网卡的链路状态。 ### 7. 验证网络连接 通过 `ip addr` 命令确认 `team0` 接口已经获取到正确的 IP 地址,并且已经绑定了 `eth0` 和 `eth1` 两个物理接口: ```bash ip addr show team0 ``` 同时,可以使用 `ping` 或 `curl` 测试网络连接是否正常: ```bash ping 8.8.8.8 ``` ### 8. 关闭和删除链路聚合 如果不再需要链路聚合,可以通过以下命令删除相关配置: ```bash nmcli connection down team0 nmcli connection delete team0 nmcli connection delete team0-slave0 nmcli connection delete team0-slave1 ``` ### 9. 总结 通过上述步骤,您可以在 CentOS 7 上配置双网卡的动态链路聚合,并使用 LACP 协议实现网络负载均衡和冗余保护。LACP 具有较好的容错能力和动态适应性,特别适用于高可用性场景。掌握 `nmcli` 和 `teamd` 工具,可以帮助管理员轻松实现链路聚合配置,确保系统具备更高的网络性能和稳定性。 最后修改:2024 年 09 月 17 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏