首页 > 其他分享 >bond模式详解与配置

bond模式详解与配置

时间:2024-05-08 11:47:01浏览次数:27  
标签:overruns errors bond0 接口 网卡 详解 模式 yes bond

1.bond介绍
以太网通道绑定(Ethernet Channel Bonding)是一种网络技术,用于将多个物理网络接口(通常是以太网网卡)组合成一个逻辑接口。这样做的目的是增加网络带宽、提高可靠性和提供冗余备份。

在以太网通道绑定中,多个物理接口被绑定在一起形成一个虚拟的接口,称为 Bond 接口。该 Bond 接口有自己的 IP 地址和 MAC 地址,它看起来就像是单个网络接口一样,但实际上是由多个物理接口组成的。Bond 接口上的数据包可以通过任何一个物理接口进行传输,并且可以根据配置的策略在多个物理接口之间分配。

以太网通道绑定有许多优点,包括:

增加带宽:通过将多个物理接口绑定在一起,可以增加可用的带宽。如果每个物理接口的带宽是相同的,则总带宽将成倍增加。
提高可靠性:当一个物理接口发生故障时,其他接口仍然可以继续工作,从而提高了网络的可靠性。这种冗余设计可以防止单点故障。
提供负载均衡:通过合理配置,可以将网络流量均匀地分布到各个物理接口上,从而实现负载均衡。这有助于最大程度地利用可用带宽,并防止某些接口过载。
故障自动恢复:一旦一个物理接口失效,系统可以自动将流量切换到其他可用的接口,从而实现快速的故障恢复。
以太网通道绑定在服务器环境中特别常见,用于连接到交换机或路由器的网络连接。它可以通过多种配置模式来适应不同的网络需求,例如负载均衡、冗余备份、动态链接聚合等。


2.bond模式说明
bonding技术提供了七种工作模式,在使用的时候需要指定一种,每种有各自的优缺点.

balance-rr (mode=0) 默认, 有高可用 (容错) 和负载均衡的功能, 需要交换机的配置,每块网卡轮询发包 (流量分发比较均衡).
active-backup (mode=1) 只有高可用 (容错) 功能, 不需要交换机配置, 这种模式只有一块网卡工作, 对外只有一个mac地址。缺点是端口利用率比较低
balance-xor (mode=2) 不常用
broadcast (mode=3) 不常用
802.3ad (mode=4) IEEE 802.3ad 动态链路聚合,需要交换机配置
balance-tlb (mode=5) 不常用
balance-alb (mode=6) 有高可用 ( 容错 )和负载均衡的功能,不需要交换机配置 (流量分发到每个接口不是特别均衡)。


3.bond配置

3.1 配置信息(如果要更换模式的话,只需要在ifcfg-bind0网卡文件中修改对应模式,并配置好对应交换机模式即可)

系统: Centos7.8
网卡: ifcfg-eno1、ifcfg-eno2
bond0:172.16.3.94
负载模式: mode1(主备)

3.2 关闭和停止NetworkManager服务(一定要关闭,不关会对做bonding有干扰)

systemctl stop NetworkManager.service     # 停止NetworkManager服务
systemctl disable NetworkManager.service  # 禁止开机启动NetworkManager服务

3.3 加载bonding模块(没有提示说明加载成功)

modprobe bonding

3.4 查看bonding模块是否被加载

[root@localhost ~]# lsmod | grep bonding
bonding               152979  0 

3.5 配置内容

#网卡eno1配置
[root@localhost network-scripts]# cat /etc/sysconfig/network-scripts/ifcfg-eno1 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eno1
UUID=6a9a57ce-eff1-4630-a871-c090e4eed147
DEVICE=eno1
ONBOOT=yes
MASTER=bond0  #新增
SLAVE=yes

#网卡eno2配置
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eno2 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eno2
UUID=08b2e589-a9e1-4045-8c3f-68608bfffea1
DEVICE=eno2
ONBOOT=yes
MASTER=bond0  #新增
SLAVE=yes

#bond0配置(新创建文件ifcfg-bond0,并添加下边内容)
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-bond0 
DEVICE=bond0
NAME=bond0
TYPE=Bond
BONDING_MASTER=yes
IPADDR=172.16.3.94
PREFIX=22
GATEWAY=172.16.0.1
DNS1=114.114.114.114
ONBOOT=yes
BOOTPROTO=static
BONDING_OPTS="mode=1 miimon=100"

3.6 重启网卡

systemctl restart network

3.7 查看bond0网卡状态

[root@localhost ~]# cat /proc/net/bonding/bond0 
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eno1
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eno1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 3c:ec:ef:0e:29:0e
Slave queue ID: 0

Slave Interface: eno2
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 3c:ec:ef:0e:29:0f
Slave queue ID: 0

3.8 查看网卡信息ifconfig

[root@localhost ~]# ifconfig
bond0: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST>  mtu 1500
        inet 172.16.3.94  netmask 255.255.252.0  broadcast 172.16.3.255
        inet6 fe80::3eec:efff:fe0e:290e  prefixlen 64  scopeid 0x20<link>
        ether 3c:ec:ef:0e:29:0e  txqueuelen 1000  (Ethernet)
        RX packets 44110  bytes 2694349 (2.5 MiB)
        RX errors 0  dropped 745  overruns 0  frame 0
        TX packets 542  bytes 49817 (48.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        ether 02:42:6c:de:c4:73  txqueuelen 0  (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

eno1: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST>  mtu 1500
        ether 3c:ec:ef:0e:29:0e  txqueuelen 1000  (Ethernet)
        RX packets 22250  bytes 1372167 (1.3 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 542  bytes 49817 (48.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eno2: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST>  mtu 1500
        ether 3c:ec:ef:0e:29:0e  txqueuelen 1000  (Ethernet)
        RX packets 21860  bytes 1322182 (1.2 MiB)
        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

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 3166622  bytes 771384383 (735.6 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3166622  bytes 771384383 (735.6 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

 

4.参考文档

https://www.cnblogs.com/snnu/p/10293872.html

 

标签:overruns,errors,bond0,接口,网卡,详解,模式,yes,bond
From: https://www.cnblogs.com/Leonardo-li/p/18179341

相关文章

  • launch文件详解
    学习参考文章:ROS学习笔记-roslaunch文件的编写&用sh脚本控制launch文件启动顺序_launch文件怎么设置权限-CSDN博客【ROS】从入门到急眼--launch文件详解_launch文件注释-CSDN博客[ROS系列学习教程]launch文件_roslaunch教程-CSDN博客4.2.6launch文件标签之rosparam·Aut......
  • Nginx配置中文详解
    Nginx配置文件nginx.conf中文详解参考:Nginx入门指南https://www.w3cschool.cn/nginx/######Nginx配置文件nginx.conf中文详解######定义Nginx运行的用户和用户组userwwwwww;#nginx进程数,建议设置为等于CPU总核心数。worker_processes8;#全局错误日志定义类......
  • docker网络配置:bridge模式、host模式、container模式、none模式
    在docker平台里有四种网络模式,今天继续分享一下它们的常用知识,进一步加深对docker技术的理解。1、docker网络模式分类dockerrun创建Docker容器时,可以用--net选项指定容器的网络模式,Docker主要有以下4种网络模式。bridge模式:--net=bridge如果不指定的话默认设置。host模式......
  • 桥接模式(C++)
    桥接模式:主要应用于需求复杂,不确定的场景,用于解耦#include<iostream>usingnamespacestd;//ImplementorclassDrawAPI{public:virtualvoiddrawCircle(intradius,intx,inty)=0;virtual~DrawAPI(){}};//ConcreteImplementorAclassRedCircle:......
  • PID 控制详解
    阶跃响应阶跃响应是指将一个阶跃输入(stepfunction)加到系统上时,系统的输出。稳态误差是指系统的响应进入稳态后﹐系统的期望输出与实际输出之差。控制系统的性能可以用稳、准、快三个字来描述。稳是指系统的稳定性(stability),一个系统要能正常工作,首先必须是稳定的,从阶跃响应上看......
  • JavaScript 流程控制语句详解:if语句、switch语句、while循环、for循环等
    JavaScript,作为一种广泛使用的编程语言,它的流程控制语句是构建逻辑和实现功能的基础。流程控制语句包括条件语句、循环语句和转向语句,它们是编程中不可或缺的部分。接下来,我们将一一解析这些语句,带你走进JavaScript的世界。一、什么是流程控制语句流程控制语句是用来控制程序中......
  • openGauss 导出模式
    导出模式openGauss目前支持使用gs_dump工具导出模式级的内容,包含模式的数据和定义。用户可通过灵活的自定义方式导出模式内容,不仅支持选定一个模式或多个模式的导出,还支持排除一个模式或者多个模式的导出。可根据需要自定义导出如下信息:导出模式全量信息,包含数据和对象定义。......
  • Linux常用命令:echo、cat、tail详解
    Linux常用命令:echo、cat、tail详解Linux常用命令:echo、cat、tail详解在Linux系统中,命令行工具是非常强大的。其中,echo、cat和tail这三个命令在日常的系统管理和文本处理中经常被使用。下面,我们将逐一探讨这三个命令的详细用法和常见示例。1.echo命令echo是一个常用的输出......
  • 大模型高效微调详解-从Adpter、PrefixTuning到LoRA
    一、背景目前NLP主流范式是在大量通用数据上进行预训练语言模型训练,然后再针对特定下游任务进行微调,达到领域适应(迁移学习)的目的。指令微调是预训练语言模型微调的主流范式其目的是尽量让下游任务的形式尽量接近预训练任务,从而减少下游任务和预训练任务之间的Gap,实现预训练......
  • 【设计模式】策略模式
    一、介绍策略模式是一种行为设计模式,它能让你定义一系列算法,并将每种算法分别放入独立的类中,以使算法的对象能够相互替换。这里列举两个例子来说明下策略模式的使用场景:(1)根据会员等级来计算折扣力度。不同等级拥有不同的折扣力度,这样就可以根据策略模式去灵活的计算,就算之后又......