CentOS系统下如何正确配置两网卡汇聚?

在现代服务器运维中,网络的稳定性和吞吐量是保障业务连续性的关键因素,单张网卡工作模式虽然简单,但存在单点故障的风险,一旦网卡或链路出现问题,整个服务器的网络连接便会中断,为了解决这一问题,网络汇聚技术应运而生,它通过将多块物理网卡虚拟成一块逻辑网卡,不仅实现了网络冗余,提高了可靠性,还能通过负载均衡策略增加网络带宽,显著提升网络性能,在CentOS系统中,实现双网卡汇聚是一项常见且重要的操作,本文将详细介绍其原理、配置方法与验证步骤。

CentOS系统下如何正确配置两网卡汇聚?

什么是网络汇聚?

网络汇聚,也常被称为网卡绑定,是将两个或多个物理网络接口组合起来,作为一个逻辑网络接口来使用的技术,对于操作系统和上层应用而言,它们只看到一个网络接口,但底层数据流却是由多块物理网卡共同处理,这种架构带来了两大核心优势:

  1. 高可用性(冗余):当汇聚组中的某一块物理网卡或其所连接的网线发生故障时,网络流量会自动切换到其他正常的网卡上,整个过程对应用透明,从而避免了单点故障导致的服务中断。
  2. 负载均衡(增加带宽):根据所选择的汇聚模式,网络流量可以被分发到不同的物理网卡上,实现了负载均衡,理论上可以接近所有物理网卡带宽的总和,提高了数据传输效率。

主流的绑定模式

Linux内核支持多种网卡绑定模式,每种模式都有其特定的应用场景和优缺点,选择合适的模式是实现预期效果的前提,下表列出了几种最常用的绑定模式:

模式名称 模式ID 描述 优点 缺点 适用场景
balance-rr 0 轮询模式,数据包按顺序依次从每个网卡发出。 充分利用所有带宽,负载均衡效果最好。 需要交换机支持端口聚合,且数据包可能乱序到达。 需要极高吞吐量且能容忍数据包乱序的环境。
active-backup 1 主备模式,只有一个网卡处于活动状态,其他作为备份。 配置简单,无需交换机特殊配置,兼容性最好。 无法增加带宽,只有一块网卡在工作。 对冗余性要求高,但对带宽无额外需求的场景。
3ad 4 动态链接聚合模式,遵循IEEE 802.3ad (LACP)标准。 动态创建聚合链路,能实现负载均衡和冗余。 需要交换机明确支持LACP协议。 与支持LACP的交换机对接,实现智能化的链路聚合。
balance-alb 6 自适应负载均衡模式,结合了ARP协商和接收负载均衡。 无需交换机特殊配置,能实现流量的接收和发送负载均衡。 负载均衡算法相对复杂,对CPU有轻微额外开销。 无法更改交换机配置,但又希望实现负载均衡的环境。

使用nmcli配置双网卡汇聚

在CentOS 7及以后的版本中,推荐使用nmcli(NetworkManager Command-Line Interface)工具进行网络配置,它比传统的编辑ifcfg文件的方式更加直观、可靠且不易出错,以下以3ad(LACP)模式为例,演示配置过程。

配置前的准备工作

  1. 确认网卡名称:使用 nmcli device statusip addr 命令查看系统中可用的物理网卡名称,ens33ens34
  2. 确保物理网卡状态:确保这两块网卡当前未被NetworkManager管理,或已删除其原有连接配置。
  3. 交换机配置:若使用3ad模式,需要在连接服务器的交换机上进行相应的LACP配置,将对应的两个端口设置为一个聚合组(Trunk或Port-Channel)。

配置步骤

创建Bond接口

我们创建一个名为bond0的逻辑接口,并指定其绑定模式为3ad

sudo nmcli connection add type bond con-name bond-bond0 ifname bond0 mode 802.3ad
  • type bond: 指定连接类型为bond。
  • con-name bond-bond0: 为这个连接配置文件命名,通常以bond-开头。
  • ifname bond0: 指定逻辑接口的名称为bond0
  • mode 802.3ad: 指定绑定模式为LACP。

为Bond接口配置IP地址

为这个新建的bond0接口配置静态IP地址、子网掩码、网关和DNS。

sudo nmcli connection modify bond-bond0 ipv4.addresses 192.168.1.100/24
sudo nmcli connection modify bond-bond0 ipv4.gateway 192.168.1.1
sudo nmcli connection modify bond-bond0 ipv4.dns "8.8.8.8,8.8.4.4"
sudo nmcli connection modify bond-bond0 ipv4.method manual
  • ipv4.method manual: 将IPv4的配置方法设置为手动(静态IP)。

将物理网卡加入Bond组

CentOS系统下如何正确配置两网卡汇聚?

将物理网卡ens33ens34作为从属设备添加到bond0主接口中。

# 添加第一块网卡
sudo nmcli connection add type ethernet slave-type bond ifname ens33 master bond-bond0
# 添加第二块网卡
sudo nmcli connection add type ethernet slave-type bond ifname ens34 master bond-bond0
  • slave-type bond: 表明这是一个bond的从属连接。
  • master bond-bond0: 指定其主连接为之前创建的bond-bond0

激活并验证配置

所有配置完成后,激活新的连接配置。

sudo nmcli connection up bond-bond0

激活后,系统会自动启动从属的物理网卡连接,可以通过以下命令进行验证:

  1. 查看Bond接口状态

    ip addr show bond0

    该命令应能显示bond0接口以及你为其配置的IP地址。

  2. 查看Bonding详细信息(最重要)

    cat /proc/net/bonding/bond0

    这个文件提供了Bond接口最核心的运行状态信息,一个成功的配置输出会类似如下:

    CentOS系统下如何正确配置两网卡汇聚?

    Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
    Bonding Mode: IEEE 802.3ad Dynamic link aggregation
    Transmit Hash Policy: layer2 (0)
    MII Status: up
    MII Polling Interval (ms): 100
    Up Delay (ms): 0
    Down Delay (ms): 0
    802.3ad info
    LACP active: on
    LACP rate: fast
    Min links: 0
    Aggregator selection policy (ad_select): stable
    System priority: 65535
    System MAC address: 00:0c:29:xx:xx:xx
    Active Aggregator Info:
            Aggregator ID: 1
            Number of ports: 2
            Actor Key: 17
            Partner Key: 1
            Partner Mac Address: 00:23:04:yy:yy:yy
    Slave Interface: ens33
    MII Status: up
    Speed: 1000 Mbps
    Duplex: full
    Link Failure Count: 0
    Permanent HW addr: 00:0c:29:xx:xx:xx
    Slave queue ID: 0
    Slave Interface: ens34
    MII Status: up
    Speed: 1000 Mbps
    Duplex: full
    Link Failure Count: 0
    Permanent HW addr: 00:0c:29:zz:zz:zz
    Slave queue ID: 0

    从输出中可以清晰地看到Bond模式、LACP状态以及两块从属网卡的状态(MII Status: up)。

为了测试冗余性,可以尝试拔掉其中一根网线,稍等片刻后再次查看/proc/net/bonding/bond0,会发现对应网卡的状态变为down,但网络连接依然保持,因为流量已全部切换到另一块网卡上。


相关问答FAQs

问题1:我应该选择哪种绑定模式?如果我的交换机不支持LACP怎么办?

解答: 选择哪种模式取决于你的具体需求和网络环境。

  • 如果追求极致的带宽和负载均衡,且你的交换机支持端口聚合,balance-rr (mode 0) 是一个不错的选择,但要注意数据包乱序的可能性。
  • 如果你的交换机支持LACP协议,强烈推荐使用 3ad (mode 4),这是最标准和智能的模式,它能与交换机动态协商,实现真正的链路聚合和冗余,是生产环境中最常用的模式。
  • 如果你的交换机不支持任何聚合协议,或者你无法配置交换机,但又希望实现负载均衡,balance-alb (mode 6) 是最佳选择,它不需要交换机的任何配合,就能在发送和接收两个方向上实现负载均衡。
  • 如果你的唯一目标是高可用性(冗余),对带宽没有额外要求,且希望配置最简单、兼容性最好,active-backup (mode 1) 是最稳妥的选择,它只需要在服务器端配置,对交换机没有任何要求。

问题2:配置完成后,如何快速判断哪块网卡正在承担主要的数据传输任务?

解答: 判断哪块网卡是“主要”的,取决于你使用的绑定模式。

  • 对于 模式,这个概念最明确,你可以通过查看 /proc/net/bonding/bond0 文件,找到 Currently Active Slave 字段,它后面显示的网卡名称就是当前正在活动的主网卡。
    cat /proc/net/bonding/bond0 | grep "Currently Active Slave"
  • 对于 等负载均衡模式,通常没有“主要”网卡的概念,因为流量是被分发到所有活动链路上的,你可以使用网络监控工具如 iftopnload 分别监控两块物理网卡(如 ens33ens34)的实时流量,如果看到两块网卡都有数据流量,说明负载均衡正在工作,如果其中一块流量为零,可能表示它处于备用状态或存在链路问题,同样,/proc/net/bonding/bond0 文件会显示所有从属网卡的状态,帮助你判断它们是否都正常参与了聚合。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-10-25 08:55
下一篇 2025-10-15 13:44

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

广告合作

QQ:14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信