网络设备中VRRP协议和Linux服务器中keepalived的两个区别

news2025/1/12 19:44:47

1、什么是VRRP?keepalived又是什么?

VRRP全称是Virtual Router Redundancy Protocol,即虚拟路由冗余协议。它的主要目的是在一个网络中提供冗余的路由。当一个三层网络设备或服务器出现故障时,VRRP可以确保网络仍能正常工作。VRRP通过在这些设备之间使用IP组播或单播通信来实现冗余。它可以确保在网络中有多个物理节点时,且在某些节点发生故障时仍能保持服务。
Keepalived是一个维护IP网络稳定性的重要软件。它是Linux内核中的一个组件,用于实现虚拟路由冗余协议(VRRP)。Keepalived负责监控和维护一个VRRP集群,以确保所有VRRP实例都在线并能相互通信。如果VRRP集群中的任何一个实例出现故障,Keepalived将自动从故障实例中选择一个健康实例来接管故障实例的工作。
VRRP和Keepalived都是保证网络稳定性和可靠性的重要组件,它们在不同的方面发挥着重要作用。

2、网络设备中VRRP协议和服务器中keepalived的两个区别

2.1、网络设备中VRRP协议的虚拟IP地址对应一个虚拟的mac地址,而keepalived的虚拟IP地址对应Master节点的物理IP地址

以下是通过一个实验来验证两者在有关mac地址上的区别。

2.1.1、在网络设备中配置VRRP协议

相关实验拓扑如下:
在这里插入图片描述
(1)针对实验中,锐捷路由和交换设备的配置脚本如下:

!Ruijie-Switch-1配置(设置VRRP优先级为120,从而协商为Master节点)
!
vlan range 1,100
!
interface GigabitEthernet 0/0
 switchport access vlan 100
!
interface VLAN 100
 ip address 172.16.100.11 255.255.255.0
 vrrp 1 ip 172.16.100.10
 vrrp 1 priority 120
 vrrp 1 timers advertise 3
!
end

!Ruijie-Switch-2配置(设置VRRP优先级为100,从而协商为BACKUP节点)
!
vlan range 1,100
!
interface GigabitEthernet 0/0
 switchport access vlan 100
!
interface VLAN 100
 ip address 172.16.100.12 255.255.255.0
 vrrp 1 ip 172.16.100.10
 vrrp 1 priority 100
 vrrp 1 timers advertise 3
!
End

!Ruijie-vRouter配置
!
interface GigabitEthernet 0/0
 no switchport
 ip address 172.16.100.5 255.255.255.0
!

(2)刷入脚本后,分别在两台运行VRRP的锐捷交换机上,通过“show vrrp”命令查看VRRP的协商情况
在这里插入图片描述
在这里插入图片描述
(3)各个路由交换节点进行互ping后(包括ping真实IP地址和虚拟IP地址),在锐捷路由器上通过“show arp”命令查看arp表,可发现虚拟IP地址对应一个虚拟mac地址,和真实IP地址对应的真实mac地址都不同,如下:
在这里插入图片描述

2.1.2、在Linux服务器中的keepalived

相关实验拓扑如下:
在这里插入图片描述
(1)针对本实验中,分别在debian系统和OpenEuler系统中执行“apt install keepalived -y”和“yum install keepalived -y”安装keepalived
(2)将debian系统/etc/keepalived目录下的keepalived.conf文件修改为以下内容(debian的VRRP优先级为100,为Master):

global_defs {
   notification_email {
                11202@qq.com
   }
   notification_email_from keepalived@showjoy.com
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {
   state MASTER
   interface ens33
   virtual_router_id 51
   priority 100
   advert_int 1
   authentication {
   auth_type PASS
   auth_pass 1111
  }
   virtual_ipaddress {
     192.168.26.100
  }
}

(3)将OpenEuler系统/etc/keepalived目录下的keepalived.conf文件修改为以下内容(OpenEuler的VRRP优先级为50,为BACKUP):

global_defs {
   notification_email {
                11202@qq.com
   }
   notification_email_from keepalived@showjoy.com
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {
   state BACKUP
   interface ens160
   virtual_router_id 51
   priority 50
   advert_int 1
   authentication {
   auth_type PASS
   auth_pass 1111
  }
   virtual_ipaddress {
     192.168.26.100
  }
}

(4)分别在两个系统中执行命令“systemctl restart keepalived”,使得keepalived的配置生效
(5)验证keepalived冗余效果是否生效
(6)若确定keepalived配置无误,将所有节点进行互ping后,在WinServer服务器上,通过命令“arp -a”查看arp表,可发现keepalived的虚拟IP地址始终和Master保持一致(若Master出现宕机,Backup升级为Master,此时虚拟IP地址对应的mac地址将变为新的Master)
在这里插入图片描述

2.2、keepalived可以通过自定义shell脚本实现应用层进程级别等的冗余备份,而网络设备的VRRP只能实现网络层面冗余备份

如下图所示,keepalived通过/etc/keepalived/keepalived.conf配置文件中的vrrp_scripttrack_script字段,可以实现包括监控端口号,系统进程等实现冗余备份,例如,通过keepalived监控nginx进程,若nginx进程被杀死,即使服务器仍旧正常运行,相关服务仍旧可以通过自定义脚本切换到Backup节点上, 从而保障业务正常运行:
在这里插入图片描述

3、两者因使用场景差异,造成以上两个区别

首先针对与keepalived和网络设备VRRP在mac地址机制上的差别,个人认为网络设备之所以会针对虚拟IP地址去虚拟一个虚拟mac出来,主要是为了降低当网络中有mac地址绑定场景时的维护难度,当网关需要配置mac地址绑定时,只需要将虚拟mac地址和网络接口或IP地址绑定起来就可以了,此时无论真实的物理设备的mac如何改变,都不会因为mac地址绑定的原因而造成网络中断,这是网络设备VRRP针对网络层面上的优化,在这一点上,keepalived就需要维护单独维护真实的mac地址绑定。
而针对于keepalived,因为keepalived通常是部署在服务器上,所以会涉及到应用层面上的冗余需求,因此keepalived可以通过自定义shell脚本实现应用进程层面上的冗余,而不单单只是硬件和网络层面上的冗余。

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

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

相关文章

在.NET Core中正确使用HttpClient的方式

HttpClient 是 .NET Framework、.NET Core 或 .NET 5以上版本中的一个类,用于向 Web API 发送 HTTP 请求并接收响应。它提供了一些简单易用的方法,如 GET、POST、PUT 和 DELETE,可以很容易地构造和发送 HTTP 请求,并处理响应数据。…

算法之时间复杂度---数据结构

目录 前言: 1.时间复杂度 1.1时间复杂度的理解 1.2规模与基本操作执行次数 1.3大O渐进表示法 1.4计算基本操作的次数 2.常见的时间复杂度及其优劣比较 ❤博主CSDN:啊苏要学习 ▶专栏分类:数据结构◀ 学习数据结构是一件有趣的事情&…

2023五一数学建模B题完整模型代码【原创首发】

已经完成五一数学建模全部内容,大家可以文末查看!!供参考使用! 摘要 随着网络购物的普及和发展,快递行业需求持续增长,对于快递公司来说,准确预测运输需求以及合理规划运输线路和仓库布局变得…

分享一个有意思的键盘,我们就只会ctrl c+v

先上效果图&#xff1a; 再上代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><style>* {border: 0;box-sizing: border-box;margin: 0;padding: 0;}:roo…

【pyTorch学习笔记④】PyTorch基础·中篇

文章目录 三、Numpy与Tensor3.Tensor的索引4.Tensor的广播机制5.逐元素操作6.归并操作7.比较操作8.矩阵操作9.PyTorch与Numpy的比较 相关推荐 三、Numpy与Tensor 3.Tensor的索引 &#xff08;1&#xff09;item&#xff1a;若Tensor为单元素&#xff0c;则返回标量&#xff0…

驱动开发:通过MDL映射实现多次通信

在前几篇文章中LyShark通过多种方式实现了驱动程序与应用层之间的通信&#xff0c;这其中就包括了通过运用SystemBuf缓冲区通信&#xff0c;运用ReadFile读写通信&#xff0c;运用PIPE管道通信&#xff0c;以及运用ASYNC反向通信&#xff0c;这些通信方式在应对一收一发模式的时…

【Java笔试强训 8】

&#x1f389;&#x1f389;&#x1f389;点进来你就是我的人了博主主页&#xff1a;&#x1f648;&#x1f648;&#x1f648;戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔&#x1f93a;&#x1f93a;&#x1f93a; 目录 一、选择题 二、编程题 &#x1f525;两种排…

【Java笔试强训 6】

&#x1f389;&#x1f389;&#x1f389;点进来你就是我的人了博主主页&#xff1a;&#x1f648;&#x1f648;&#x1f648;戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔&#x1f93a;&#x1f93a;&#x1f93a; 目录 一、选择题 二、编程题 &#x1f525;不要二 …

权限提升:本地权限提升.(AT || SC || PS )

权限提升&#xff1a;本地权限提升. 权限提升简称提权&#xff0c;由于操作系统都是多用户操作系统&#xff0c;用户之间都有权限控制&#xff0c;比如通过 Web 漏洞拿到的是 Web 进程的权限&#xff0c;往往 Web 服务都是以一个权限很低的账号启动的&#xff0c;因此通过 Web…

JavaScript用map实现Hashmap

&#x1f4dd;个人主页&#xff1a;爱吃炫迈 &#x1f48c;系列专栏&#xff1a;数据结构与算法 &#x1f9d1;‍&#x1f4bb;座右铭&#xff1a;道阻且长&#xff0c;行则将至&#x1f497; 文章目录 正如我们已经看到的&#xff0c;Map 对象是一个键值对。最初&#xff0c;M…

〖Python网络爬虫实战⑲〗- 数据存储之CSV文件

订阅&#xff1a;新手可以订阅我的其他专栏。免费阶段订阅量1000 python项目实战 Python编程基础教程系列&#xff08;零基础小白搬砖逆袭) 说明&#xff1a;本专栏持续更新中&#xff0c;目前专栏免费订阅&#xff0c;在转为付费专栏前订阅本专栏的&#xff0c;可以免费订阅付…

第二部分——长难句——第二章——复合句——第一节——名词性从句

首先复合句是什么呢&#xff1f; 多件事一样重要就叫并列句&#xff0c;如果不一样重要就叫并列句。 复合句主句从句 下面我们来看一个例句&#xff1a; 找到从句之后剩下来的不就是主句吗&#xff1f; 一&#xff0c;宾语从句 &#xff08;一&#xff09;宾语从句的含义 一…

字符串中的第一个唯一字符

题目&#xff1a;字符串中的第一个唯一字符 思路一&#xff1a;暴力查找&#xff0c;时间复杂度 思路一&#xff1a;开辟检查重复数组,以空间换时间&#xff0c;时间复杂度 这段代码的作用是在一个字符串 s 中找到第一个不重复&#xff08;只出现一次&#xff09;的字符&#…

kafka和rocketmq区别对比

Kafka和RocketMQ是目前非常流行的分布式消息系统&#xff0c;它们都能够高效地处理海量的消息数据。在本文中&#xff0c;我们将对Kafka和RocketMQ进行技术比较&#xff0c;分析它们在各方面的优缺点&#xff0c;以便读者在选择消息系统时能够做出更加明智的决策。 一、架构设计…

Java-volatile实现详解(从java到汇编)

在Java内存模型一节&#xff0c;除了synchronized外&#xff0c;我们还提到一个常用关键词----volatile&#xff0c;我们说过volatile保证了并发环境的可见性和顺序性&#xff0c;使用volatile修饰的变量&#xff0c;当然值发生改变时&#xff0c;可以同步到其他线程&#xff0…

【python】你的表情包缺不缺?我猜你缺了~来批量获取一波吧~

目录 前言环境使用:模块使用:如何去实现本次案例: <通用模板>代码展示尾语 &#x1f49d; 前言 嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! 在我们的生活中&#xff0c;总少不了表情包来调剂 少了表情包就会少了很多趣味 今天就来教大家如何批量下载我们的表情包 环…

力扣刷题2023-04-29-1——题目:1431. 拥有最多糖果的孩子

题目&#xff1a; 给你一个数组 candies 和一个整数 extraCandies &#xff0c;其中 candies[i] 代表第 i 个孩子拥有的糖果数目。 对每一个孩子&#xff0c;检查是否存在一种方案&#xff0c;将额外的 extraCandies 个糖果分配给孩子们之后&#xff0c;此孩子有 最多 的糖果…

接触Word的编辑保护【简单版】

首先&#xff0c;我们遇到的情况是下图这样的&#xff1a; 点一下停止保护&#xff0c;是下图这样的&#xff1a; 开始解决&#xff1a; 第一种方式&#xff1a;另存为Word Xml 存好了&#xff0c; 打开如下图&#xff08;我用VS打开的&#xff0c;最好找个能够格式化代码的编…

秘密是如何被泄露的?自建文件分享神器HFS

近年来&#xff0c;随着互联网技术的飞速发展&#xff0c;我们对于互联网的依赖也日益增加。利用互联网这种高效便捷的工具&#xff0c;我们可以随时随地进行文件的传输、图片的分享以及与他人的交流。然而&#xff0c;看似安全的聊天窗口&#xff0c;其实背后是庞大的互联网算…

MybatisPlus动态表名

核心代码 mybatisplus的配置 Configuration public class MybatisPlusConfig {// 这里是存储需要动态变化的表&#xff0c;防止乱操作static List<String> tableList() {List<String> tables new ArrayList<>();//表名tables.add("user");return…