【ensp】网关冗余vrrp实验

备战中级网络工程师

目录

vrrp(虚拟路由冗余技术)

为什么会出现vrrp?

两个角色

选举流程

基本原理

VRRP 的两个定时器

VRRP 的主备切换

主备切换的条件

VRRP 主备回切

认证方式

冗余路由器

 冗余核心交换机


 

vrrp(虚拟路由冗余技术)

我们先看一个百度的网络拓扑,分析下面拓扑存在的问题;

 针对上面这个拓扑来说,如果上面的核心路由器出现故障,那么下面的所有pc将面临无法访问网络的问题;

为什么会出现vrrp?

为解决单出口路由器出故障而导致的局域网内pc无法与Internet通信的问题,使用vrrp技术可以把多个三层设备虚拟成一个逻辑上的三层设备(路由器或者三层交换机),让他们使用同一个虚拟网关,这样其中一个出现故障,另一个立马接替故障机继续工作;这样会使得两个三层设备会被虚拟成一个如下图:

两个角色

1.Master:响应针对VIP的ARP request报文,承担转发主要数据的角色,并定期发送vrrp报文。

2.Backup:备份设备,实时监听,一旦知道master出问题,就接替主设备工作;


选举流程

两台设备运行之后,相互发送vrrp的通告报文

  1. 先比较优先级,优先级大的优先
  2. 优先级相同则比较接口地址,ip地址大优先

基本原理

vrrp中的master和backup节点会配置一个虚拟IP地址,但是只有master节点才会响应arp请求,返回一个虚拟的mac地址,那么其它节点在访问虚拟ip的时候都会访问master节点。

如果master节点宕机,backup设备节点会切换成master节点,同时发送免费arp,告诉网络中其它设备,虚拟ip最新的mac地址是自己,那么后续网络设备在访问虚拟ip的时候都会访问新的master节点。


VRRP 的两个定时器

ADVER_INTERVAL 定时器: Master 路由器发送 VRRP 通告报文时间周 期,缺省值为 1 秒。每隔 1S 发送一次 VRRP 报文, 用于通告其它路由器, Master 还存活着。

MASTER_DOWN 定时器:Backup 设备监听该定时器超时后,会变为 Master 状态。 Backup 在 3S 后还木有收到 Master 通告的 VRRP 报文,就 认为 Master 路由器故障了,然后该路由器就转换为master。


VRRP 的主备切换

我们前面提到了 VRRP 组中分为 Master 路由器和 Backup 路由器,即主路由器和备份路由器, 很明显的, 当主路由器故障之后, 就由备份路由器来负责网络中流量的转发。

那么,虚拟路由器是通过什么来确定 Master 路由器故障的呢?

通过报文的交互, Master 会周期性的发送 VRRP 报文,该报文用于维持 Master 路由器的 Master 状态,如果 3S 后,也就是 Master_down 定时器超 时后, Backup 路由器还没有收到该报文, 就会认为 Master 路由器失效了, 那么 Backup 路由器就可以进入到 Master 状态。 但是如果网络中存在多台 Backup 路 由器,那么它们之间就会进行 Master 路由器的选举,由优先级最高的那台路由 器来成为 Master 路由器。

主备切换的条件

也就是发生主备切换的场景,如果 Master 路由器打算退出 VRRP 组, 那 么它发送优先级为 0 的 VRRP 报文, 这时就会发生主备切换; 除此之外, 如果 Master 路由器发生了故障,或者链路异常, Backup 路由器在 Master_down 定时器超时后也没有收到 VRRP 报文,也会发生主备切换。

VRRP 主备回切

值得注意的是, VRRP 中, Master 路由器的身份是可以被抢占的。

如果故障了的 Master 路由器恢复了正常, 那么它就可以把 Master 路由器的 身份抢占回来。


认证方式

明文认证

MD5认证

 

冗余路由器

核心代码:

int g0/0/0   
[R1-GigabitEthernet0/0/0]vrrp vrid 1 virtual-ip 192.168.10.1    ###设置虚拟ip
[R1-GigabitEthernet0/0/0]vrrp vrid 1 priority 120     ### 设置优先级为120(默认为100)
[R1-GigabitEthernet0/0/0]vrrp vrid 1 preempt-mode timer delay 5     ###设置抢占时间为5s(默认0秒)
[R1-GigabitEthernet0/0/0]vrrp vrid 1 track int g0/0/1 reduce 30    ###跟踪上下接口(出了问题就降低当前路由器优先级 30)
[R1-GigabitEthernet0/0/0]q

 冗余核心交换机

核心代码:

 核心交换机配置结果:

 

现在开始模拟,core1交换机的的上行接口出现故障;

然后我们紧接着查看core2 的状态,可见core并不是立即从backup状态切换为master,他会有一段时间的等待,原因是:vrrp内部有一个计时器master-down-time,在这个计时器结束后才会主备切换; 

等待一段时间后在查看core2 状态:

状态没有改变。回顾配置,查找错误,发现我在core1 上并没有配置监视上行端口活跃状态,所以上行端口down掉,主备交换机也没有切换,在没有配置监视上行端口的情况下,只有core1 故障关闭掉core 2 才会切换master状态;

 那么如何让core随时监视着上行端口呢?在core1上添加以下命令:

vrrp vrid 10 track int g0/0/1 reduce  30

###跟踪上行端口状态,一旦出故障就降低交换机的优先级30

 

 

成功;

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

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

相关文章

【04-提升模型性能:集成学习与超参数优化】

文章目录 前言集成学习BaggingBoosting超参数优化随机搜索贝叶斯优化总结前言 在前几篇博文中,我们已经介绍了一些机器学习的基础知识、Scikit-learn的核心工具与技巧,以及如何评估模型性能。本篇博文将重点讲解两个可以显著提升机器学习模型性能的高级策略:集成学习和超参数…

Github 2024-04-25Go开源项目日报Top10

根据Github Trendings的统计,今日(2024-04-25统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Go项目10Vue项目1Go编程语言:构建简单、可靠和高效的软件 创建周期:3474 天开发语言:Go协议类型:BSD 3-Clause “New” or “Revised” Lic…

基于spark进行数据分析的心力衰竭可视化大屏项目

基于spark进行数据分析的心力衰竭可视化大屏项目 项目背景 在当今的医疗领域,数据驱动的决策变得日益重要。心力衰竭作为常见的心血管疾病,其临床数据的分析对于改善患者治疗结果至关重要。本文将介绍如何利用Apache Spark进行大规模心力衰竭临床数据的…

浅谈免杀下的持久化

文章目录 前记注册表计划任务COM劫持后记reference 前记 实战中持久化的手段常用的就是加服务、添改注册表、加计划任务、劫持等,这里探索c/c下的维权免杀 注册表 用户级 \HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run \HKEY_CURRENT_USER…

正则表达式.java

正则表达式的作用: ①可以校验字符串是否满足一定的规则,并用来校验数据格式的合法性🧸 🧩[]:只能是括号里的字符 🧩[^]:除了括号里的字符 🧩[- -]:表示两段范围,满足其一即可 &a…

Linux系统内存持续飙高,如何排查

若一台服务器内存使用率持续处于高峰值,可能会导致响应慢(如:ssh操作卡顿、用户访问失败或超时等) 1.查看系统内存使用情况 free -m 2.查看哪些进程内存占用比较高 top 或htop 观察进程PID和命令确认是哪一个进程占用内存较高 …

Mogdb 5.0新特性:SQL PATCH绑定执行计划

前言 熟悉Oracle的dba都知道,生产系统出现性能问题时,往往是SQL走错了执行计划,紧急情况下,无法及时修改应用代码,dba可以采用多种方式针对于某类SQL进行执行计划绑定,比如SQL Profile、SPM、SQL Plan Base…

【prometheus】监控MySQL并实现可视化

目录 一、概述 1.1下载解压mysqld_exporter 1.2创建MySQL授权用户 1.3配置my.cnf 1.4启动mysqld_exporter 1.5prometheus配置修改 二、Grafana展示 【Prometheus】概念和工作原理介绍_prometheus工作原理 【Prometheus】k8s集群部署node-exporter 【prometheus】k8s集…

Python | Leetcode Python题解之第48题旋转图像

题目: 题解: class Solution:def rotate(self, matrix: List[List[int]]) -> None:n len(matrix)# 水平翻转for i in range(n // 2):for j in range(n):matrix[i][j], matrix[n - i - 1][j] matrix[n - i - 1][j], matrix[i][j]# 主对角线翻转for …

验证二叉搜索树 - LeetCode 热题 43

大家好!我是曾续缘😘 今天是《LeetCode 热题 100》系列 发车第 43 天 二叉树第 8 题 ❤️点赞 👍 收藏 ⭐再看,养成习惯 验证二叉搜索树 给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。 有效 二叉搜…

【Linux】什么是yum?--linux中的软件包管理器详解

💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …

UML——类图详解

目录 1. 前言 2. 类图概述 3. 类图表示法 3.1 类的表示方式 3.2 类与类之间关系的表示方式 (1)继承(泛化)关系 (2)实现关系 (3)依赖关系 (4)一般关联关系 (5)聚合关系 (6)组合关系 1. 前言 UML全称(Unified Modeling Language),译为统一建模语言&#x…

FRPC+PHP+MYSQL+APACHE2=个人网站

应用背景有公网需求,但是又不想去买又贵又低配置的服务器,然后方案就应运而生 frp/README_zh.md at dev fatedier/frp (github.com) 在这里, FRPC作为内网穿透服务, PHPMYSQLAPACHE2,作为网站搭建,具体细节不细讲, 但是在我的/var/www/html下面 linaroHinlink:/var/www/h…

代码随想录算法训练营Day8 | ● 344.反转字符串● 541. 反转字符串II● 54.替换数字● 151.翻转字符串里的单词● 55.右旋转字符串

(记得重学) ● 344.反转字符串 题目:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一…

【蓝桥杯2025备赛】集合求和

集合求和 题目描述 给定一个集合 s s s(集合元素数量 ≤ 30 \le 30 ≤30),求出此集合所有子集元素之和。 输入格式 集合中的元素(元素 ≤ 1000 \le 1000 ≤1000) 输出格式 s s s 所有子集元素之和。 样例 #1 …

JAVAEE—HTTP

文章目录 HTTP导读HTTP解析HTTP的格式分析环境准备 HTTP请求格式首行headerHostContent-LengthContent-TypeUser-Agent (简称 UA)RefererCookie 空行body HTTP响应格式认识HTTP的方法POST方法POST和GET的区别第一:用处第二:传递数据第三:GET不…

【漏洞复现】通天星CMSV6车载监控平台Logger未授权漏洞

漏洞描述: 通天星CMSV6车载定位监控平台拥有以位置服务、无线3G/4G视频传输、云存储服务为核心的研发团队,专注于为定位、无线视频终端产品提供平台服务,通天星CMSV6产品覆盖车载录像机、单兵录像机、网络监控摄像机、行驶记录仪等产品的视频…

Sylar C++高性能服务器学习记录05 【线程模块-知识储备篇】

早在19年5月就在某站上看到sylar的视频了,一直认为这是一个非常不错的视频,还有幸加了sylar本人的wx,由于本人一直是自学编程,基础不扎实,也没有任何人的督促,没能坚持下去,每每想起倍感惋惜。恰…

Android IPC | Android多进程模式

前 言 关于Android的进程间通信(即IPC)有很多种方式,比如我们常用的AIDL、Socket等,而其中最重要而且最需要掌握的就是AIDL的使用和原理,简单来说它是通过Binder实现的。 关于Binder的知识点非常多,当我们…

libtorrent - 安装小记

文章目录 官方文档:libtorrent python binding http://libtorrent.org/python_binding.html 1、下载代码 建议使用: git clone --recurse-submodules https://github.com/arvidn/libtorrent.git如果在 github web 界面下载代码,build 的时候…