Linux实现双网卡绑定

1、介绍

linux 主机安装双网卡,共享一个IP地址,对外提供访问,实际同样连接两条物理线路到交换机实现平时双网卡同时工作,分流网络压力,同时提供冗余备份,监控,防止物理线路的单点故障。

配置双网卡的目的:实现高可用、流量负载均衡

实现原理:
Linux bonding 驱动模块 提供了一种方法,用以把多个网络接口(network interface)组合成一个 逻辑的 “bonded” 接口。 Bonded 接口的工作方式取决于驱动的模式:不同的模式提供了热备份或负载均衡等不同的服务。

几种模式:

• 轮询策略(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命令

二、步骤

1、进入网卡配置目录下:

cd /etc/sysconfig/network-scripts/

2、vim ifcfg-bond0:

TYPE=Ethernet
BOOTPROTO=static
NAME=bond0
DEVICE=bond0
IPADDR="192.168.50.8"
NETMASK=255.255.255.0
GATEWAY=192.168.50.2
DNS1=114.114.114.114
ONBOOT=yes
BONDING_OPTS="miimon=100 mode=1"

3、vim ifcfg-ens33:

TYPE=Ethernet
BOOTPROTO=none
NAME=ens33
DEVICE=ens33
ONBOOT=yes
MASTER=bond0
SLAVE=yes

4、vim ifcfg-ens36:

TYPE=Ethernet
BOOTPROTO=none
NAME=ens36
DEVICE=ens36
ONBOOT=yes
MASTER=bond0
SLAVE=yes

5、vim /etc/modprobe.d/dist.conf:

alias bond0 bonding
options bond0 miimon=100 mode=1 primary=eth0
  • alias bond0 bonding,表示系统在启动时加载bonding模块,对外虚拟网络接口设备为 bond0

  • miimon=100,表示系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线

  • mode=1,表示绑定模式为1

  • primary=eth0,系统首先eth0作为bond0接口与外界信息的传输接口

6、vim /etc/rc.local:

modprobe bonding miimon=100 mode=1

7、所有配置都已完成,重启网络:

systemctl restart network
ifconfig查看信息

ifconfig
8、检查bonding mode,想查看那个网卡再工作,使用下面这个命令

cat /proc/net/bonding/bond0
cat /sys/class/net/bond0/bonding/mode	

9、 网卡切换

ifenslave –c bond0 eth0           //测试bonding能否正常切换Bonding完成后配置全局网关,vi  /etc/sysconfig/network

三、测试

通过断开不同网卡,观察网络是否可以用

(注意:VMware实验环境不能使用ifdown去断开网卡,而是要在界面下方点击断开连接)

这里通过ping命令

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/876936.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言 ——— 函数指针数组的讲解及其用法

目录 前言 函数指针数组的定义 函数指针数组的使用 前言 数组是存放一组相同类型数据的存储空间 关于指针数组的知识请见:C语言 ——— 指针数组 & 指针数组模拟二维整型数组-CSDN博客 那么要将多个函数的地址存储到数组中,这个数组该如何定义…

C++中的依赖注入

目录 1.概述 2.构造函数注入 3.setter方法注入 4.接口注入 5.依赖注入框架 6.依赖注入容器 7.依赖注入框架的工作原理 8.依赖注入的优势 9.总结 1.概述 依赖注入是一种设计模式,它允许我们在不直接创建对象的情况下为对象提供其依赖项;它通过将…

云仓技术带来的物流变革影响

1、实时可视性: 云仓技术使物流公司能够实时跟踪和监控货物在供应链中的位置和状态。这种实时可视性提供了更好的货物追踪和管理能力,同时也提高了客户服务的质量。 ———————————————————— 2、仓储优化: 云仓技术可以…

从0开始搭建vue + flask 旅游景点数据分析系统(四):编写前端首页【数据驾驶舱】

本期我们编写数据驾驶舱页面(Dashboard)这个页面。主要任务是引入echarts 组件编写数据驾驶舱页面。 视频教程后续会更新在我的B站:https://space.bilibili.com/1583208775?spm_id_from666.25.0.0 推荐从教程第一集开始从零开始学习:https://blog.csdn…

OpenCV中的圆形标靶检测——findCirclesGrid()(四)

这里把上一篇文章中分析的函数源码及其注释张贴出来,具体如下。 void CirclesGridClusterFinder::hierarchicalClustering(const std::vector<Point2f> &points, const Size &patternSz, std::vector<Point2f> &patternPoints) { #ifdef HAVE_TEGRA_…

实验室责任人员管理保障实训系统安全

在智慧校园的实训管理生态中&#xff0c;实验室责任人员的角色犹如精密机器中的关键齿轮&#xff0c;他们不仅是实验室安全与高效运转的守护者&#xff0c;更是实训教学质量的直接塑造者。这一角色的重要性&#xff0c;在智慧校园的数字化转型中得到了前所未有的凸显&#xff0…

将Git远程仓库中的项目迁移到另一个远程库, So easy

需求描述 将一个Git远程仓库中的项目迁移到另一个远程库, 这里的示例是将原来控管在 Bitbucket的项目迁移到GitHub。 当然,能想到的最简单的方式就是在GitHub创建一个新项目,然后把原来的文件 add, commit , push 。这样的话虽然代码是控管了,但是之前提交的历史记录并没有…

vue2,vue3项目无限滚动组件,支持滑动

参数说明 items&#xff1a;项目数组 stepTime&#xff1a;每一步滚动的时间间隔&#xff08;毫秒&#xff09; stepHeight&#xff1a;垂直滚动时每一步的高度 stepWidth:水平滚动时每一步的宽度 threshold&#xff1a;判断是否需要滚动的项目数量阈值 containerHeight&#x…

Linux系统配置STM32的开发环境(代码编辑,编译,下载调试)

常见的stm32开发都是直接使用keil-MDK工具的&#xff0c;这是个集成开发环境&#xff0c;包含了代码编辑&#xff0c;编译&#xff0c;下载&#xff0c;调试&#xff0c;等功能&#xff0c;而且keil还是个图形化操作工具&#xff0c;直接可以点击图标案件就可以实现编译下载啥的…

Tableau入门|数据可视化与仪表盘搭建

原视频链接&#xff08;up:戴戴戴师兄&#xff09;&#xff0c;文章为笔者的自学笔记&#xff0c;用于复习回顾&#xff0c;原视频下方有原up整理的笔记&#xff0c;更加直观便捷。因为视频中间涉及的细节较多&#xff0c;建议一边操作&#xff0c;一边学习。 整体介绍 可视化…

set,map(java)

前言&#xff1a;要了解set和map&#xff0c;首先需要对搜索树和哈希有一定的了解&#xff0c;才能进一步深入的了解set和map。 1.搜索树 &#xff08;1&#xff09;性质&#xff1a; 若它的左子树不为空&#xff0c;则左子树上所有节点值都小于根节点的值。 若它的右子树不…

【单机锁】实现原理

文章目录 1.互斥锁 sync.Mutex 的实现原理&#xff1b;1.1获取策略有如下两种&#xff1a;1.2sync.Mutex的方案1.2.1具体方案如下&#xff1a;1.2.2转换的条件&#xff1a;1.2.3运行的两种模式&#xff1a;1.2.4两种模式的转换条件1.2.5唤醒标识&#xff1a; 1.3源码走读 2. sy…

Android 异步编程:RxJava的基本使用以及搭配Retrofit一起使用

目录 Rxjava是什么如何使用Rxjava的知识点使用场景 一、是什么&#xff1f; RxJava是一个基于响应式编程&#xff08;Reactive Programming&#xff09;和观察者模式&#xff08;Observer pattern&#xff09;的Java库。它提供了一种异步、基于事件流的编程方式&#xff0c;…

猫头虎分享:PyTorch异常ModuleNotFoundError: No module named ‘torch’解决方案

&#x1f42f; 猫头虎分享&#xff1a;PyTorch异常ModuleNotFoundError: No module named ‘torch’解决方案 &#x1f4bb; 摘要 在本篇博客中&#xff0c;我们将深入探讨如何解决PyTorch中常见的“ModuleNotFoundError: No module named ‘torch’”错误。通过详细的步骤指…

loadrunner录制解决提示安全问题

点击页面任意位置&#xff0c;输入&#xff1a; thisisunsafe

差分法求解 Burgers 方程(附完整MATLAB 及 Python代码)

Burgers 方程的数值解及误差分析 引言 Burgers 方程是一个非线性偏微分方程&#xff0c;在流体力学、非线性声学和交通流理论中有广泛应用。本文将通过数值方法求解带粘性的 Burgers 方程&#xff0c;并分析其误差。 方程模型 Burgers 方程的形式为&#xff1a; u t u u …

gp_Trsf和Ncollection_Mat4获得值注意:

gp_Trsf在获取值得时候索引开始时1&#xff0c;是一个三行四列得矩阵。 Ncollection_Mat4开始得索引值时0&#xff0c;是一个四行四列得矩阵。

Jmeter下载、安装、永久汉化(Windows环境)

1、JDK下载 JDK8下载地址https://www.oracle.com/java/technologies/downloads/#java8-windows JDK8的Windows的64位&#xff1a; 2、Jmeter下载 jmeter下载地址https://jmeter.apache.org/download_jmeter.cgi 3、配置环境变量 安装好后&#xff0c;把jdk和jmeter都配置到…

Docker从入门到实践教程(电子版)

前言 Docker 是个伟大的项目&#xff0c;它彻底释放了虚拟化的威力&#xff0c;极大降低了云计算资源供应的成本&#xff0c;同时让应用的 分发、测试、部署和分发都变得前所未有的高效和轻松&#xff01; 本电子书既适用于具备基础 Linux 知识的 Docker 初学者&#xff0c;也…

ADMAS-Simulink联合仿真输入设置

使用Solidworks、ADAMS、Simulink进行机电联合仿真_adams-simulink-CSDN博客RecurDynSimulink联合仿真案例演示_哔哩哔哩_bilibili# C#调用已经使用Python训练好的神经网络做图片检测_c#调用python训练好的神经网络模型-CSDN博客