首页 > 系统相关 >Linux 多网卡绑定(AB网-ip漂移)-bonding机制-ifenslave工具

Linux 多网卡绑定(AB网-ip漂移)-bonding机制-ifenslave工具

时间:2024-07-08 22:42:06浏览次数:21  
标签:ifenslave 00 AB bond0 ens160 网卡 bonding ff

作用:主备网卡

所谓的多网卡绑定就是将多张物理网卡逻辑上组成一个网卡,这样就可以防止一块网卡坏了网络瘫痪,也能起到提升网络带宽的作用。
把多块网卡绑定在一起,一般有两种工作模式可以选择,轮询模式和主备模式
    - 轮询模式:例如把两块网卡绑定在一起,此时两块网卡都处于工作状态,它们轮流处理数据包,从而提升带宽和容错性。
    - 主备模式:例如把两块网卡绑定在一起,同一时间只有一块网卡处于工作状态,只有发生故障,备用网卡才会切换到工作模式;

bond技术实现网卡绑定

前提:
1、bond技术依赖内核的bonding模块,所以需要先加载bonding模块才行
2、要使得bond能正常工作,必须安装ifenslave 工具,它将两个或更多的网络接口绑定到一个单一的通道,如果没装这个工具,具体表现为bond无法启动,一直是down的状态

# 查看是否已加载bonding模块
lsmod | grep bonding

# 加载bonding模块
sudo modprobe bonding

# 编辑配置文件,不然通过命令加载模块,重启会失效
sudo vim /etc/modules
bonding # 在配置文件中加入需要开启加载的模块

# 检查是否安装ifenslave
which ifenslave

#说明: 如果想移除某个模块,使用rmmod命令就行了。
例如移动 bonding 模块就是 rmmod bonding;

修改配置文件实现bond技术

centos7实现bond技术

1、创建bonding的配置文件
sudo vim /etc/sysconfig/network-scripts/ifcfg-bond0
#添加相关参数
------------------------------------------------------------------------------------------
DEVICE=bond0                    ## 可以根据自己的命名规则来命名,一般叫作bondX
BONDING_MASTER=yes                ## 表示bond0为绑定的主设备
IPADDR=192.168.1.22             #需要做漂移的ip
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
ONBOOT=yes                        # 开启自启动
BOOTPROTO=none                    # 静态地址分配
BONDING_OPTS="mode=active-backup miimon=100 primary=ens160"
#DNS1=
#DNS2=

# BONDING_OPTS决定了 bonding 的模式 model=1(active-backup)表示是主备模式,mode=0表示为轮询模式
# miimon=100表示系统每100ms 监测一次链路连接状态,如果有一条线路不通就转入另一条线路
# primary=ens160 指定ens160为正常时为主节点、当ens160 down掉后才由ens256继承、ens160起来后还是由ens160来工作
#DNS需要就添加到最后
----------------------------------------------------------------------------------------------

2、修改网卡的配置文件
#例如我这里将ens160和een256两个网卡加入到bond0里面去,就需要修改ens160和ens256的配置文件

ens160设置:
sudo vim /etc/sysconfig/network-scripts/ifcfg-ens160
----------------------------------------------------
DEVICE="ens160"
ONBOOT="yes"
BOOTPROTO="none"
MASTER="bond0"
SLAVE="yes"
----------------------------------------------------

ens256设置:
sudo vim /etc/sysconfig/network-scripts/ifcfg-ens256
----------------------------------------------------
DEVICE="ens256"
ONBOOT="yes"
BOOTPROTO="none"
MASTER="bond0"
SLAVE="yes"
-----------------------------------------------------

3、重启网络管理服务
systemctl restart network

4、查看地址:ip a
- 发现ens160和ens256网卡ip都没了(这样才是正常的)
- 多出了一个 bond0
-------------------------------------------------------------------------------------------------------------------
[root@k8s-loadbalancer2 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP group default qlen 1000
    link/ether 00:0c:29:09:66:8f brd ff:ff:ff:ff:ff:ff
3: ens256: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP group default qlen 1000
    link/ether 00:0c:29:09:66:8f brd ff:ff:ff:ff:ff:ff
4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 00:0c:29:09:66:8f brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.22/24 brd 192.168.1.255 scope global noprefixroute bond0
       valid_lft forever preferred_lft forever
----------------------------------------------------------------------------------------------------------------------------------

5、查看bond0的详细信息:
- cat /proc/net/bonding/bond0
- Primary Slave 指网卡正常时由ens160来当主
- MII Status: up 说明网卡正常
--------------------------------------------------------------------------
[root@k8s-loadbalancer2 ~]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: ens160 (primary_reselect always)
Currently Active Slave: ens160
MII Status: up
MII Polling Interval (ms): 50
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: ens256
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:09:66:99
Slave queue ID: 0

Slave Interface: ens160
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:09:66:8f
Slave queue ID: 0
----------------------------------------------------------------

6、测试
- 此时当执行:ifdown ens160  时,ens256会接管ip(192.168.1.22)
- 查看:/proc/net/bonding/bond0
  - 此时是ens256来接管工作的
- 再执行 ifup ens160 再查看,发现此时是ens160来接管ip工作了
---------------------------------------------------------------
[root@k8s-loadbalancer2 ~]# 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: ens256
MII Status: up
MII Polling Interval (ms): 50
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: ens256
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:09:66:99
Slave queue ID: 0
-------------------------------------------------------------------

注意:如果本机安装了keepalive等一些虚拟ip的话、可能会产生某个被keepalive绑定的网卡被指定一个ip(vip)、此时服务器上会产生 ARP 缓存、此时要手动清理:

centos系统:sudo ip neigh flush all

ubuntu系统:sudo arp -d -i ens160 192.168.1.250 

 

ubuntu系统:参考:AB网漂移

标签:ifenslave,00,AB,bond0,ens160,网卡,bonding,ff
From: https://www.cnblogs.com/littlecc/p/18290823

相关文章

  • 谷粒商城学习笔记-2-分布式组件-SpringCloud Alibaba-Nacos注册中心
    文章目录一,Nacos简介1,简介2,Nacos原理剖析二,Nacos服务端安装1,下载nacos-server2,解压启动nacos-server3,验证三,服务注册步骤1,引用Nacas客户端的Jar包2,服务启动类增加注解3,配置Nacos服务器地址四,验证错误记录一,Nacos简介1,简介Nacos是阿里巴巴开源的一个更易于构建云......
  • Something about 计算几何
    没人做计算几何了,怎么会事呢...这几把军训...laji时间找点laji题来做一.板子1.basic2.凸包3.半平面交二.板题三.题目P3194给出\(N<50000\)条直线,找出从y正无穷大可见直线手玩发现所有可见线段构成一个下凸壳。将所有直线按照斜率递增排序,用单调栈维护。栈顶为AB,插入C......
  • matlab中神经网络预测模型的调用
    本章以一道多自变量的例题来表述如何用调用matlab的包进行神经网络预测目录一、问题提出二、训练集,验证集和测试集三、使用神经网络进行训练1.导入数据2.选择训练方法四、结果解读1.性能图2.回归图3.训练方法比较4.保存结果五、进行预测一、问题提出如图所示,现在有401个x变量共......
  • c++ primer plus 第15章友,异常和其他:15.3.1 调用abort()02
    c++primerplus第15章友,异常和其他:15.3.1调用abort()02调用abort()02文章目录c++primerplus第15章友,异常和其他:15.3.1调用abort()0215.3.1调用abort()15.3.1调用abort()对于这种问题,处理方式之一是,如果其中一个参数是另一个参数的负值,则调用abort(......
  • 第二章 MATLAB入门知识 第四节
    ^乘方符号>>9^2 ans=81【+-*/和乘除运算优先级一样】【^比/优先级大】9^1/2 ans=4.5△最基础的MATLAB数值运算的函数:函数名功能计算结果abs求绝对值,也可以用来计算复数的模长abs(1.5) %1.5abs(-1.5) %1.5abs(3+4i) %5floor朝负无穷大四舍五入(......
  • 第三章 MATLAB矩阵的操作的目录【向量元素的引用】
    向量元素的引用有两种:(1)提取向量中的单个元素(2)提取向量中的多个元素可以利用向量中包含的元素个数来描述一个向量的大小。在MATLAB中,使用length函数或numel函数来计算向量中包含的元素个数。向量的元素a1a2a3......an索引(下标)123n在MATLAB中,向量......
  • MATLAB神经网络拟合工具的使用
     本文以MATLABR2022a为例,介绍使用软件自带的神经网络拟合工具箱。首先,准备好需要分析的数据,包括预测变量、响应,在试验分析中分别对应试验因素、试验结果。每一组预测变量均对应一个响应,试验中一组试验因素对应一个试验结果。预测变量的数量、响应的数量分别对应神经网络中的......
  • 解决RuntimeError: Numpy is not available
    解决RuntimeError:Numpyisnotavailable首先遇到问题界面:在vscode首次运行importnumpyasnp报错:大致含义:模块不兼容:这个错误信息表示你当前运行的环境中,某些模块是使用NumPy1.x版本编译的,而你当前的NumPy版本是2.0.0。由于版本不兼容,这些模块可能会崩溃或产......
  • P7411 [USACO21FEB] Comfortable Cows S (搜索)
    P7411[USACO21FEB]ComfortableCowsS搜索容易知道任意时刻的不合法的位置,并且决策只有将空着的位置补起来。每次加入一个点,判断其自身、上下左右是否变得不合法,往下递归即可。复杂度分析,每个点只会不合法一次(修改后就变得合法),所以只会遍历一次,复杂度是\(O(n^2)\)。#inclu......
  • Maven工程下:alibaba fastjson2的各种序列化:java对象转json对象、json对象转java对象
    pom文件导入fastjson2坐标:<dependency><groupId>com.alibaba.fastjson2</groupId><artifactId>fastjson2</artifactId><version>2.0.51</version></dependency>UserVO对象:@Data@AllArgsConstructor......