VMWare里Centos系统下使用Bonding技术实现两块网卡绑定

一、Bonding技术的好处

bonding(绑定)是一种linux系统下的网卡绑定技术,可以把服务器上n个物理网卡在系统内部抽象(绑定)成一个逻辑上的网卡,实现本地网卡的冗余,带宽扩容和负载均衡。

Bonding技术可以设置七中工作模式,常用的有以下三种:

mode0:两张网卡同时均衡工作,且自动备援,但是需要在与服务器本地网卡相连的交换机设备上进行端口聚合来支持绑定技术。

特点:传输数据包顺序是依次传输(即:第1个包走ens33(ens33是网卡名称,后面会多次使用到),下一个包就走ens34,一直循环下去,直到数据包传输完毕),此模式提供负载平衡和容错能力。但是我们知道如果一个连接或者会话的数据包从不同的接口发出的话,中途再经过不同的链路,在客户端很有可能会出现数据包无序到达的问题,而无序到达的数据包需要重新要求被发送,这样网络的吞吐量就会下降。[补充:吞吐量是指对网络在单位时间内成功地传送数据的数量(以比特、字节等测量单位)]

mode1:1张网卡工作,在工作网卡故障时,第二张网卡替换故障网卡,单纯的主备模式。即:有一块网卡突然出现了故障,另外一块网卡便会立即自动顶替上去,保证数据传输不会中断。

特点:只有一个设备处于活动状态,当一个宕掉另一个马上由备份转换为主设备。此模式只提供了容错能力;此算法的优点是可以提供高网络连接的可用性,但是它的资源利用率较低,只有一个接口处于工作状态,在有 N 个网络接口的情况下,资源利用率为1/N

mode6:两张网卡均衡工作,且自动备援,无需交换机设备提供辅助支持。

特点:接收负载均衡是通过ARP协商实现的,bonding驱动截获本机发送的ARP应答,并把源硬件地址改写为bond中某个slave的唯一硬件地址,从而使得不同的对端使用不同的硬件地址进行通信。举个例子:

mod=6时,先把当前活跃的网卡端口流量占满,再占eth1,….ethX。

而mod=0的话,会发现2个口的流量都很稳定,基本一样的带宽。

mode0和mode6的对比:

mode 0下bond所绑定的网卡的IP都被修改成相同的mac地址,如果这些网卡都被接在同一个交换机,那么交换机的arp表里这个mac地址对应的端口就有多个,那么交换机接受到发往这个mac地址的包应该往哪个端口转发呢?正常情况下mac地址是全球唯一的,一个mac地址对应多个端口肯定使交换机迷惑 了。所以 mode0下的bond如果连接到交换机,交换机这几个端口应该采取聚合方式(cisco称 为 ethernetchannel,foundry称为portgroup),因为交换机做了聚合后,聚合下的几个端口也被捆绑成一个mac地址.

mode6模式下无需配置交换机,因为做bonding的这两块网卡是使用不同的MAC地址。

二、配绑定两块网卡

1.因为之前centos系统里只有一块网卡,所以还需要再添加一块。两块网卡需要选择同一种网络连接模式才能实现绑定,这里选NAT模式。

2.随后利用指令切到网卡配置文件存放目录里,方便后面直接使用相对路径就能对文件进行操作,不然一直使用绝对路径,太费劲。
cd /etc/sysconfig/network-scripts
3.使用指令查看两块网卡的连接情况

由输出信息可知,添加的两个网卡设备名字分别为ens33和ens36,其中ens33网卡处于名为 "Wired connection 1" 的网络连接下,ens36没有连接上任何网络。这个网络系统自动分配的,不用管。lo是用于回环测试的网络,目前不用管,virbr0 是一个虚拟网桥,目前也不用管。

如果nmcli指令使用时报错,说明没有启动NetworkManager服务,使用指令开启服务后再次使用nmcli即可

systemctl start NetworkManager.service
4.查看目录/etc/sysconfig/network-scripts下是否有ens33和ens36的配置文件(ifcfg开头的),如果有我们就将就现有的配置文件改,没有就自己新建。

输出结果显示是没有,只有lo用于回环测试的配置文件,所以我们新建
5.新建又分为两种方式,一种是通过vim建立文件然后输入相应配置将网卡和配置文件关联在一起,但是这样要输入很多信息,而且容易打错字,所以这里我采用重新建立连接的方式,自动生成配置文件,随后再修改文件相应的地方。
先删去已有的网卡连接'Wired connection 1' ,ens36本来就没有连接上不用删

再建立ens33和ens36的连接,其中con-name是新建立的这个网络连接的名称,ifname是网卡名称,此处二者保持一致方便识别。

6.使用ls查看配置文件,发现多了ifcfg-ens33和ifcfg-en36

7、打开这两个文件将其内容分别按照如下进行修改
#ifcfg-ens33内容
TYPE=Ethernet
NAME=ens33
DEVICE=ens33
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0   //指明bonding后的主设备为bond0
SLAVE=yes       //指明自己是从设备

#ifcfg-ens36内容
TYPE=Ethernet
NAME=ens36
DEVICE=ens36
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
8.创建主设备的配置文件 vim ifcfg-bond0

文件里输入

DEVICE=bond0
TYPE=Bond
IPADDR=172.16.0.183 
NETMASK=255.255.255.0
GATEWAY=172.16.0.1
DNS1=114.114.114.114
USERCTL=no
BOOTPROTO=none
ONBOOT=yes
BONDING_MASTER=yes
BONDING_OPTS="mode=6 miimon=100"  //表明配置的工作模式是mode6
//miimon表示监视网络链接的频度 (毫秒), 我们设置的是100毫秒
//根据你的需求也可以指定mode成其它的负载模式。

其中GATEWAY(网关)和NETMACK(掩码)按照下图查找

IPADDR在虚拟机里给出的IP地址范围 里挑一个

 9.由于NetworkManager服务对bonding技术有影响,所以现在需要把这个服务关掉,后面通过network服务对系统进行操作

其中第一条是暂时关掉,而第二条是禁止开机自启动

10.为了让配置文件生效,重启network服务,在ifconfig查看网络信息,如图

 其中bond0就是ens33和ens36合并之后的虚拟网卡,其Ip地址为192.168.153.132

11.查看文件夹cat /proc/net/bonding/bond0获取正在运行的网卡

 从输出结果来看ens33正在运行,ens36作为从机。

三、bonding之后的效果测试

1、打开主机windows的命令提示符,ping虚拟机把两块网卡绑定在一起之后生成的bond0网络的ip地址,发现是通的

2.随后在虚拟机上ifdown ens33,让ens33网卡失效,发现windows命令提示符页面显示网络断了,随后重启网络服务,让bond0生效 ,网络再次通了。查看cat /proc/net/bonding/bond0文件,发现此时ens36为活跃网卡,即ens36在ens33失效后,自动顶替上去了。bonding配置成功

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【git学习】Git 的基本操作

文章目录 🚀创建 Git 本地仓库🚀配置 Git🚀认识⼯作区、暂存区、版本库🚀添加⽂件操作 🚀创建 Git 本地仓库 仓库是进⾏版本控制的⼀个⽂件⽬录。我们要想对⽂件进⾏版本控制,就必须先创建⼀个仓库出来。 …

WPS二次开发系列:WPS SDK打开在线文档

作者持续关注WPS二次开发专题系列,持续为大家带来更多有价值的WPS开发技术细节,如果能够帮助到您,请帮忙来个一键三连,更多问题请联系我(QQ:250325397) 目录 需求场景 效果展示 3、实现步骤 3.1 步骤一、申…

解释PostgreSQL中的MVCC(多版本并发控制)机制是如何工作的?

文章目录 MVCC的工作原理1. 数据行版本化2. 事务ID和可见性3. 清理旧版本 解决方案:MVCC的优势1. 高并发性2. 避免锁竞争3. 一致性视图 示例代码 PostgreSQL中的MVCC(多版本并发控制)机制是一种在数据库管理系统中实现事务隔离级别的方法&…

互联网大厂ssp面经,数据结构part3

1. 哈希表的原理是什么?如何解决哈希碰撞问题? a. 原理:通过哈希函数将每个键映射到一个唯一的索引位置,然后将值存储在对应索引位置的存储桶中。 b. 关键:将不同的键映射到不同的索引位置,以实现快速的插…

Elasticsearch下载

1 最新版下载地址 Download Elasticsearch | Elastic https://www.elastic.co/cn/downloads/elasticsearch 2 其他版本下载地址 https://www.elastic.co/cn/downloads/past-releases#elasticsearch 7.9.2:https://artifacts.elastic.co/downloads/elasticsearch/elasticsear…

STM32的定时器

一、介绍 定时器的工作原理 通用定时器的介绍 定时器的计数模式 定时器时钟源 定时器溢出时间计算公式 二、使用定时器中断点亮LED灯 打开一个LED灯 更改TIME2 然后就是生成代码 三,代码

使用 PhpMyAdmin 安装 LAMP 服务器

使用 PhpMyAdmin 安装 LAMP 服务器非常简单。按照下面所示的步骤,我们将拥有一个完全可运行的 LAMP 服务器(Linux、Apache、MySQL/MariaDB 和 PHP)。 什么是 LAMP 服务器? LAMP 代表 Linux、Apache、MySQL 和 PHP。它们共同提供…

Linux网络编程---Socket编程

一、网络套接字 一个文件描述符指向一个套接字(该套接字内部由内核借助两个缓冲区实现。) 在通信过程中,套接字一定是成对出现的 套接字通讯原理示意图: 二、预备知识 1. 网络字节序 内存中的多字节数据相对于内存地址有大端和小端之分 小端法&…

状态模式和策略模式对比

状态模式和策略模式都是行为型设计模式,它们的主要目标都是将变化的行为封装起来,使得程序更加灵活和可维护。之所以将状态模式和策略模式进行比较,主要是因为两个设计模式的类图相似度较高。但是,从状态模式和策略模式的应用场景…

深入理解 Srping IOC

什么是 Spring IOC? IOC 全称:Inversion of Control,翻译为中文就是控制反转,IOC 是一种设计思想,IOC 容器是 Spring 框架的核心,它通过控制和管理对象之间的依赖关系来实现依赖注入(Dependenc…

信息应用系统等保三级整体解决方案(精华文档Word)

建设要点目录: 1、系统定级与安全域 2、实施方案设计 3、安全防护体系建设规划 软件全文档,全方案获取方式①:本文末个人名片直接获取。 软件开发全系资料分享下载方式②:软件项目开发全套文档下载_软件开发文档下载-CSDN博客

C语言扫雷游戏完整实现(上)

文章目录 前言一、新建好头文件和源文件二、实现游戏菜单选择功能三、定义游戏函数四、初始化棋盘五、 打印棋盘函数六、布置雷函数七、玩家排雷菜单八、标记功能的菜单九、标记功能菜单的实现总结 前言 C语言从新建文件到游戏菜单,游戏函数,初始化棋盘…

【1762】java校园单车投放系统Myeclipse开发mysql数据库web结构jsp编程servlet计算机网页项目

一、源码特点 java校园单车投放管理系统是一套完善的java web信息管理系统 采用serlvetdaobean,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S 模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发&#…

【Linux】文件权限类命令

在Linux中,文件权限是构建多用户操作系统的基础元素,它确保了每个用户只能在其权限范围内操作文件. 0位表示类型 在Linux中第一个字符代表这个文件是什么类型的 符号文件类型-文件d目录l链接文档 1-3位确定属主(该文件的所有者),拥有该文件的权限 4-…

【面试经典 150 | 二叉树】二叉树展开为链表

文章目录 写在前面Tag题目来源解题思路方法一:前序遍历方法二:同步进行方法三:原地操作 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法,两到三天更新一篇文章,欢迎催更…… 专栏内容以分析题目为主&am…

图像处理的基本操作

一、PyCharm中安装OpenCV模块 二、读取图像 1、基本语法 OpenCV提供了用于读取图像的imread()方法,其语法如下: image cv2.imread(filename,flags) (1)image:是imread方法的返回…

opencv可视化图片-----c++

可视化图片 #include <opencv2/opencv.hpp> #include <opencv2/core.hpp> #include <filesystem>// 将数据类型转换为字符串 std::string opencvTool::type2str(int type) {std::string r;uchar depth type & CV_MAT_DEPTH_MASK;uchar chans 1 (typ…

机械臂模型更换成自己的urdf模块

1.将urdf生成slx文件 smimport(rm_65_flange.urdf);%生成Simscape物理模型 2.更换joint部分&#xff08;对应与几个输入几个输出&#xff09;&#xff08;依次更换&#xff09; 3.更改关节部分&#xff08;依次更换&#xff09; 找到urdf文件夹下的meshes文件夹&#xff0c;看…

Python-VBA函数之旅-issubclass函数

目录 一、issubclass函数的常见应用场景&#xff1a; 二、issubclass函数使用注意事项&#xff1a; 三、如何用好issubclass函数&#xff1f; 1、issubclass函数&#xff1a; 1-1、Python&#xff1a; 1-2、VBA&#xff1a; 2、推荐阅读&#xff1a; 个人主页&#xff…

spark3.0.0单机模式安装

注&#xff1a;此安装教程基于hadoop3集群版本 下载安装包 下载spark3.0.0版本&#xff0c;hadoop和spark版本要对应&#xff0c;否则会不兼容 用xftp上传Linux虚拟机&#xff0c;上传目录/bigdata&#xff08;可修改&#xff09; 解压 tar -zxvf /bigdata/spark-3.0.0-bin-h…