当前位置: 首页 > news >正文

创建Linux网卡的链路聚合

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

目录

文章目录

前言

 一、链路聚合的意义(为什么要做)

① 提升带宽(带宽叠加)

② 保障高可用(故障自动切换)

③ 负载均衡(流量分担)

④ 避免单点故障(高可靠部署)

 二、Linux 常见的链路聚合模式(Bonding Mode)

mode=0 (balance-rr)轮询负载均衡

mode=1 (active-backup)主备冗余

mode=2 (balance-xor)按MAC/XOR哈希负载

mode=3 (broadcast)广播发送

mode=4 (802.3ad / LACP)动态链路聚合推荐

mode=5 (balance-tlb)传输负载均衡

mode=6 (balance-alb)双向负载均衡

三、怎么选模式?

四、 网络连接设置nmtui/nmcli

五、聚合连接的含义和作用



前言

在 Linux 中做“网卡链路聚合”(bonding / teaming)主要是为了 提高网络的可用性和带宽利用率,通过把多块物理网卡绑定为一个逻辑网卡(如 bond0team0)。它的应用场景非常多:服务器、虚拟化、存储、负载均衡、高可用集群等。


 一、链路聚合的意义(为什么要做)

① 提升带宽(带宽叠加)

把多块网卡合成为一个“逻辑接口”,例如两块1Gbps 可以组成 2Gbps 的总体吞吐(取决于模式和交换机支持)。

② 保障高可用(故障自动切换)

如果其中一块网卡/线路坏了,业务不中断,自动切换到其他网卡。

③ 负载均衡(流量分担)

连接多个客户端时,系统会自动把流量分配到不同网卡,提高效率。

④ 避免单点故障(高可靠部署)

关键服务(数据库服务器、虚拟化主机、NFS、集群)都离不开它。


 二、Linux 常见的链路聚合模式(Bonding Mode)

Linux bonding 共有 7 种模式,最常用的是模式 0、1、4、6。


mode=0 (balance-rr)轮询负载均衡

  • 特点:流量轮询分到多块网卡,能真正实现带宽叠加

  • 优点:提升带宽、负载均衡

  • 要求:交换机必须配置端口聚合(如 LACP 或静态聚合)

  • 适用:内网服务器、大流量业务


mode=1 (active-backup)主备冗余

  • 特点:只有一块网卡工作,另外为备用

  • 优点:容错能力强,配置简单

  • 要求:交换机无需特殊配置

  • 适用:高可用服务器、数据库、管理网


mode=2 (balance-xor)按MAC/XOR哈希负载

  • 特点:流量按 hash 分配

  • 优点:支持负载均衡+冗余

  • 要求:交换机绑定端口

  • 适用:多客户端访问服务器


mode=3 (broadcast)广播发送

  • 特点:所有数据广播到所有网口

  • 优点:冗余最高

  • 缺点:极耗资源

  • 适用:非常特殊环境(集群心跳)


mode=4 (802.3ad / LACP)动态链路聚合推荐

  • 特点:使用 LACP 协议自动协商

  • 优点:带宽叠加 + 负载均衡 + 高可用

  • 要求:交换机开启 LACP

  • 适用

    • 虚拟化平台

    • 文件服务器

    • 机房生产环境


mode=5 (balance-tlb)传输负载均衡

  • 特点:只在发送方向做负载均衡

  • 优点:交换机无需配置

  • 适用:小型网络环境


mode=6 (balance-alb)双向负载均衡

  • 特点:发送+接收都能负载均衡

  • 优点:无需交换机支持

  • 适用:Linux直连、办公环境


三、怎么选模式?

场景推荐模式交换机是否配置
简单高可用mode=1
大带宽 + 集群mode=4✅ LACP
不改交换机mode=6 / mode=5
内网全速传输mode=0 / mode=4
特殊广播需求mode=3

四、 网络连接设置nmtui/nmcli

系统服务NetworkManager,默认开机自启动

网络接口(Device、Interface):内核自动识别的网卡的名字,比如eth0、eth1、……

网络连接(Connection):管理员为网卡提供的配置的名字,比如link1、link2、……

每一个网络接口可以存在多份网络连接(配置),同一时间只允许其中的一份配置生效

每一份网络连接配置,允许设置多份IP地址(分别属于不同网段的IPv4或IPv6地址)

/etc/sysconfig/network-scripts/ifcfg-接口名

通过nmtui/nmcli可以管理网络连接的配置内容

nmcli   device   status     //列出网卡设备信息

nmcli   device   disconnect   网卡名   //禁用网卡设备

nmcli   device   connect   网卡名  //激活网卡设备

nmcli   connection   show   //列出所有的网络连接

nmcli   connection   show   "连接名"  //列出xx网络连接的配置内容

nmcli   connection   add   con-name  "连接名"   ifname   网卡名   type   ethernet  //添加一个有线网卡的连接

nmcli   connection   modify   "连接名"    xxx参数    值  .. ..               //修改xx网络连接的配置内容

常见的地址参数:

ipv4.addresses   IP地址/掩码位数    ipv4.gateway   默认网关地址    ipv4.dns   DNS服务器地址

ipv4.method   auto|manual          //获取地址方式(自动|手动)

connection.autoconnect   yes|no        //自动激活(是|否)

nmcli   connection   up   "连接名"

nmcli   connection   down   "连接名"

nmcli   connection   delete   "连接名"

查看网络地址相关信息:

ifconfig  [接口名]

ip  add  list  [接口名]

ip  -6  add  list  [接口名]        //只查看IPv6地址信息

cat  /etc/resolv.conf       //查看当前使用的DNS服务器地址

route  -n

ip  route

ip  -6  route            //查看IPv6路由表

ping     IPv4地址

ping6   IPv6地址

五、聚合连接的含义和作用

捆绑多个网络接口,作为一个整体对外提供一份IP地址

主要用于两个目的:提供负载均衡(roundroubin)、提供热备份(activebakcup)

配置聚合连接的要点

1)创建名为team0聚合连接主连接

[root@servera ~]# nmcli connection add con-name team0 ifname team0 type  team   team.runner  roundrobin

2)添加两个成员

[root@servera ~]# nmcli connection add con-name t0p1 ifname eth1 type team-slave  master team0

[root@servera ~]# nmcli connection add con-name t0p2 ifname eth2 type team-slave  master team0

3)为主连接team0配置IP地址

[root@servera ~]# nmcli connection modify team0 ipv4.method manual ipv4.addresses 10.0.0.10/24

4)激活聚合连接

[root@servera ~]# nmcli  connection  up  team0              //激活主连接

[root@servera ~]# nmcli  connection  up  t0p1    //激活成员连接

[root@servera ~]# nmcli  connection  up  t0p2        //激活成员连接

更改聚合类型:

[root@servera ~]# nmcli connection modify team0  team.runner  activebackup

测试聚合连接:

[root@servera ~]# ifconfig   聚合连接名

[root@servera ~]# teamdctl   聚合连接名   state

[root@servera ~]# ping  目标IP地址                            //查看ping检测结果

[root@servera ~]# tcpdump   -i  网卡名  icmp                //抓包分析

http://www.dtcms.com/a/486720.html

相关文章:

  • OSI七层模型:从原理到实战
  • 深入解析Linux下的`lseek`函数:文件定位与操作的艺术
  • Linux C/C++ 学习日记(25):KCP协议:普通模式与极速模式
  • 网站结构 网站内容建设现在建个企业网站要多少钱
  • C++ I/O流的全新边界
  • MySQL————内置函数
  • 精通iptables:从基础到实战安全配置
  • OpenAI发布构建AI智能体的实践指南:实用框架、设计模式与最佳实践解析
  • 如何使用网站模板金华关键词优化平台
  • php大气企业网站东莞邦邻网站建设
  • 简述php网站开发流程网站 设计公司 温州
  • thinkphp8+layui多图上传,带删除\排序功能
  • LeetCode 合并K个升序链表
  • FFmpeg 基本API avformat_alloc_context 函数内部调用流程分析
  • ubuntu系统中ffmpeg+x264简易编译安装指南
  • FLAC to MP3 批量转换 Python
  • 开源鸿蒙6.1和8.1版本被确定为LTS建议版本,最新路标正式发布!-转自开源鸿蒙OpenHarmony社区
  • linux sdl图形编程之helloworld.
  • 开发一个网站系统报价电子商务网站建设试卷及答案
  • 瑞芯微算法环境搭建(2)------编译opencv
  • 计算机视觉(opencv)——人脸网格关键点检测
  • 自己做网站投入编程培训机构需要哪些证件
  • AXI总线的基础知识
  • 【泛微OA】泛微OA平台实现计算具体的天数
  • 「深度学习笔记1」深度学习全面解析:从基本概念到未来趋势
  • puppeteer 生成pdf,含动态目录,目录带页码
  • 深度学习的卷积神经网络中医舌诊断病系统-ResNet50与VGG16方法的比较研究
  • 如何查看网站空间wordpress图片多选
  • Android的Activity与intent知识点
  • 一、前置基础(MVC学习前提)_核心特性_【C# MVC 前置】委托与事件:从 “小区通知” 看懂 MVC 过滤器的底层逻辑