首页 > 运维 > linux运维 > 正文

linux中配置双网卡实现双网卡绑定,负载均衡

星夢妙者
发布: 2025-06-25 11:24:01
原创
551人浏览过

配置双网卡的主要目的如下:

  1. 实现冗余:通过双网卡配置,可以在一条物理线路发生故障时,自动切换到另一条线路,确保网络连接的连续性。

  2. 负载均衡:双网卡共享一个IP地址,并通过两条物理线路连接到交换机,平时双网卡同时工作,帮助分担网络流量,提升网络性能。

这种配置适用于关键性节点服务器、高网络IO服务器以及网络共享存储服务器等。

Linux中的bonding驱动模块提供了一种方法,可以将多个网络接口组合成一个逻辑上的“bonded”接口。bonded接口的工作方式取决于驱动的模式,不同的模式提供了热备份或负载均衡等不同的服务。此外,驱动还会监控链路的可用性。大多数目前发布的Linux内核都以模块方式包含了bonding驱动,同时ifenslave工具(主要配置工具)也都已经安装好。

以下是几种常见的bonding模式:

  • 轮询策略(round robin),mode=0,按照设备顺序依次传输数据包,提供负载均衡和容错能力。
  • 主备策略(active-backup),mode=1,只有主网卡处于工作状态,备网卡处于备用状态,主网卡故障后备网卡开始工作,提供容错能力。
  • 异或策略(load balancing (xor)),mode=2,根据源MAC地址和目的MAC地址进行异或计算的结果来选择传输设备,提供负载均衡和容错能力。
  • 广播策略(fault-tolerance (broadcast)),mode=3,将所有数据包传输给所有接口,通过全部设备来传输所有数据,一个报文会复制两份通过bond下的两个网卡分别发送出去,提供高容错能力。
  • 动态链接聚合(lacp),mode=4,按照802.3ad协议的聚合自动配置来共享相同的传输速度,网卡带宽最高可以翻倍,链路聚合控制协议(LACP)自动通知交换机聚合哪些端口,需要交换机支持802.3ad协议,提供容错能力。
  • 输出负载均衡模式(transmit load balancing),mode=5,输出负载均衡模式,只有输出实现负载均衡,输入数据时则只选定其中一块网卡接收,需要网卡和驱动支持ethtool命令。
  • 输入/输出负载均衡模式(adaptive load balancing),mode=6,输入和输出都实现负载均衡,需要网卡和驱动支持ethtool命令。

以下是CentOS中配置双网卡绑定以实现负载均衡的具体步骤:

bind0 IP地址:192.168.10.54

首先关闭两张网卡:

[root@uplooking ~]# ifdown ens33
[root@uplooking ~]# ifdown ens38
登录后复制

接着新建网卡配置文件:

[root@uplooking /etc/sysconfig/network-scripts]# vim ifcfg-bond0
登录后复制

ifcfg-bond0配置文件内容如下:

TYPE=Ethernet
BOOTPROTO=static
NAME=bond0
DEVICE=bond0
IPADDR="192.168.10.54"
NETMASK=255.255.255.0
GATEWAY=192.168.10.2
ONBOOT=yes
BONDING_OPTS="miimon=100 mode=6"     ##bonding 参数直接在网卡配置文件中指派,并且开机可以自动生效
                                      ## mode=1   1为储备模式, 推荐为 6 ,不会浪费资源。
登录后复制

ifcfg-ens33配置文件内容如下:

TYPE=Ethernet
BOOTPROTO=none
NAME=ens33
DEVICE=ens33
ONBOOT=yes
MASTER=bond0
SLAVE=yes
登录后复制

ifcfg-ens38配置文件内容如下:

TYPE=Ethernet
BOOTPROTO=none
NAME=ens38
DEVICE=ens38
ONBOOT=yes
MASTER=bond0
SLAVE=yes
登录后复制

修改/etc/modprobe.d/dist.conf文件,添加以下内容:

linux中配置双网卡实现双网卡绑定,负载均衡

alias bond0 bonding
登录后复制

这表示系统在启动时加载bonding模块,对外虚拟网络接口设备为bond0。miimon=100表示系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线。mode=1表示绑定模式为1。primary=eth0表示系统首先使用eth0作为bond0接口与外界信息的传输接口。

修改配置文件/etc/rc.local,添加以下内容:

linux中配置双网卡实现双网卡绑定,负载均衡

modprobe bonding miimon=100 mode=1
登录后复制

重启网络:

systemctl restart network
登录后复制

观察验证:

[root@uplooking ~]# ifconfig
登录后复制

linux中配置双网卡实现双网卡绑定,负载均衡

查看bond0的状态:

ip addr 或者 ifconfig
登录后复制

状态信息验证:

cat /proc/net/bonding/bond0
登录后复制

该文件可以显示双网卡配置信息,包括ens33和ens38的启用状态。通过查阅该文件,可以获取bond0网卡的工作状态信息,并通过断开不同网卡,观察该文件的信息变化。

[root@server-18 ~]# watch -n 1 "cat /proc/net/bonding/bond0"
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: adaptive load balancing
Primary Slave: None
Currently Active Slave: ens37
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: ens33
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 3
Permanent HW addr: 00:0c:29:e6:3b:9d
Slave queue ID: 0
Slave Interface: ens38
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 3
Permanent HW addr: 00:0c:29:e6:3b:a7
登录后复制

验证负载均衡的效果:

http-02 ping 192.168.10.54

arp -a 查询arp表:发现192.168.10.54在00:0C:29:58:4C:31 (ens33)网卡上

linux中配置双网卡实现双网卡绑定,负载均衡

http-03 ping 192.168.10.54

arp -a 查询arp表:发现192.168.10.54在00:0C:29:58:4C:3B (ens33)网卡上

linux中配置双网卡实现双网卡绑定,负载均衡

取消bond0网卡的方法:

  1. ifdown bond0 ##此时网络断开

  2. 移除ifcfg-bond0网卡的配置文件,建议不要直接删除,而是移到别的位置,备份起来。

    root@server-18 /etc/sysconfig/network-scripts# mv ifcfg-bond0 /root
    登录后复制
    echo -bond0 > /sys/class/net/bonding_masters ## 移除系统中的bonding状态。
    登录后复制
  3. 修改ens33和ens38网卡配置,解除与bond0网卡的从属关系。

    BOOTPROTO=static
    MASTER=bond0 去掉
    SLAVE=yes 去掉
    加上自己网卡的原先配置。
    登录后复制
  4. systemctl restart network

  5. ifconfig再次观察

下一篇:Linux对大容量磁盘分区→

以上就是linux中配置双网卡实现双网卡绑定,负载均衡的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号