当前位置: 首页 > news >正文

HSRP(热备份路由选择协议)的概念,原理与配置实验

作者:Insist--

个人主页:insist--个人主页

梦想从未散场,传奇永不落幕,持续更新优质网络知识、Python知识、Linux知识以及各种小技巧,愿你我共同在CSDN进步

目录

一、了解HSRP协议

1. 什么是HSRP协议

2、HSRP协议的作用

二、HSRP组成员

1. 活跃路由器

2. 备份路由器

3. 虚拟路由器

4. 其他

三、HSRP的工作原理

四、基础配置实验

1. 实验需求描述

2. 配置步骤如下:


前言

在之前的文章中,我们讲解过STP协议,配置STP实现双核心负载均衡,虽然可以提高网络的可靠性,但核心交换机宕机后,主机无法自动切换网关,这也就无法保证网络的正常使用了,本篇文章的主角(HSRP)就可以解决这个问题。

一、了解HSRP协议

1. 什么是HSRP协议

HSRP 全称为热备份路由选择协议(Hot Standby Routing Protocol,)是Cisco(思科)私有的一种技术,HSRP确保了当网络边缘设备或接入链路出现故障时,用户通信能迅速并透明地恢复,以此为IP网络提供冗余性。

通过应用HSRP,可使网络的正常运行时间接近100%,从而满足用户对网络可靠性的要求。

2、HSRP协议的作用

HSPR协议的作用就是提高网络的可用性,当网络边缘设备或接入链路出现故障时,HSRP协议可以自动切换到备用路由器,从而确保网络的正常运行。

二、HSRP组成员

HSRP协议中的组成员包括活跃路由器、备份路由器、虚拟路由器和其他路由器,下面来详细的说一下组内的成员:

19f0e120f2514fbd91c6006b3a50066e.jpg

1. 活跃路由器

活跃路由器是负责处理和转发数据包的路由器。组内的另一个路由器被选为备用路由器,活跃路由器通过发送Hello消息来承担和保持它活跃路由器的角色,无论何时,一个组内只有一个活跃路由器。如果活动路由器发生了故障,将选择一个备份路由器来替代活动路由器。

Hello消息:它是一种多点广播消息,用于通知其他路由器发送者的HSRP优先级和状态信息。HSRP路由器默认每3秒发送一个Hello消息。

2. 备份路由器

备份路由器的功能是监视HSRP组内的运行状态当活跃路由器出现故障时,备份路由器会迅速接管活跃路由器的工作。备份路由器也会传输 Hallo 消息,告知组内所有路由器它的角色和状态变化。

3. 虚拟路由器

虚拟路由器的功能是向最终用户提供一台可以连续工作的路由器。虚拟路由器配有它自己的IP地址和MAC地址(但不实际转发数据包)。

4. 其他

HSRP备份组可以包含其他路由器。这些路由器监视Hello消息,但不做应答。这些会路由器转发任何经由它们的数据包,但并不转发经由虚拟路由器的数据包。

三、HSRP的工作原理

简单来说,HSRP的工作原理就是将多台路由器组成一个虚拟路由器。

HSRP组内的每个路由器都必须有指定的优先级( Priority )。默认的优先级是100,在配置过程中优先级是可以手动指定的(范围0~255)。HSRP组中最高优先级的路由器将成为活跃路由器

e91d05eafd784795bd6b7fcc86518d1a.jpg

如上图,路由器A的优先级为200,路由器B的优先级为150。A的优先级大于B的优先级,所以路由器A承担活跃路由器的角色,并且转发所有到达自动生成的HSRP虚拟MAC地址的数据帧

选择活跃路由器和备份路由器时,如果优先级相同,IP地址大的路由器获胜,如下例子:

例如:如果两台路由器的HSRP优先级都是100,一台路由器位于此LAN网段的端口的IP地址是 192.168.100 ,另一台路由器位于此LAN网段的端口的IP地址为 192.168.101 ,则IP地址为 192.168.101(大的) 的路由器会成为此网段的活跃路由器。

如果在HSRP组内,除了活跃路由器和备份路由器之外还有其他路由器,它们就会监听活跃路由器和备份路由器的状态(就是它们发出的HSRP Hello包),这是为了实现更强的容错能力。

四、基础配置实验

1. 实验需求描述

某公司为了增加网络的稳定性,决定在公司内网部署HSRP。如下图是这个公司内部网络拓扑及具体网络规划(交换机之间的链路均为中继链路)。网络中的其他基本配置( VLAN、链路、IP地址等)已经配置完成。现需要为PC所在的VLAN2配置HSRP实现备份冗余。

网络拓扑及具体网络规划如下图:

07931e7e83f84a268aeb8413e114dd18.jpg

2. 配置步骤如下:

步骤一:配置为HSRP成员

将图中的SW1、SW2的VLAN 2接口配置为HSRP成员,HSRP组号为10,配置命令如下。

SW1 ( config ) # interface vlan 2SW1 ( config-if ) # ip address 192.168.1.1 255.255.255.0SW1 ( config-if ) # standby 10 ip 192.168.1.254SW2的配置和SW1的相同

如果需要从HSRP组中取消一个端口,可以在上述命令前加关键字no。

例如,将SW1的VLAN2接口从HSRP组10中移除,命令如下:

SW1 ( config-if ) # no standby 10 ip 192.168.1.254

步骤二:配置优先级

我们可以指定端口在组内的优先级。优先级数值高的将成为活跃路由器,图中SW1的VLAN2接口优先级为200,SW2的VLAN2接口优先级为150,配置优先级的命令如下:

SW1 ( config-if ) # standby 10 priority 200SW2 ( config-if ) # standby 10 priority 150

步骤三:配置占先权

当活跃路由器失效或从网络中移出时,备份路由器将自动承担起活跃路由器的角色。即使有更高优先级的原活跃路由器又重新开始在网络上工作,这台新的活跃路由器仍然会继续作为活跃路由器。

要想使原先的活跃路由器能够从优先级较低的新活跃路由器那里重新取回转发权,为SW1、2配置占先权命令如下:

SW1 ( config-if ) # standby 10 preempt  SW2配置相同

步骤四:配置Hello时间

默认计时器值在大多数网络中都很稳定,一般情况下不需要修改。如果Hello包需要经过有时会拥塞的网络,就需要配置Hello时间,将图中SW1、SW2的Hello间隔时间和保持时间分别配置为2s和8s,命令如下:

SW1 ( config-if ) # standby 10 timers 2 8 SW2配置相同

步骤五:配置端口跟踪

一些情况下,通往外部网络的端口状态直接影响着哪台路由器需要变成活跃路由器,很可能会导致网络故障,所以配置HSRP的端口跟踪功能使活跃路由器的优先级能够基于路由器端口的可用性而进行自动调整。

当活跃路由器上的一个被跟踪端口变为不可用时,活跃路由器的HSRP优先级将被降低。

在图中的SW1上配置端口跟踪,跟踪端口为F0 / 1,优先级降低100,配置命令如下:

SW1 ( config-1f ) # standby 10 track fastEthernet 0 / 1 100

相关文章:

HSRP(热备份路由选择协议)的概念,原理与配置实验

作者:Insist-- 个人主页:insist--个人主页 梦想从未散场,传奇永不落幕,持续更新优质网络知识、Python知识、Linux知识以及各种小技巧,愿你我共同在CSDN进步 目录 一、了解HSRP协议 1. 什么是HSRP协议 2、HSRP协议的…...

数据可视化大屏模板 | 保姆级使用教程

近来很多朋友私信咨询怎么下载使用数据可视化大屏模板,在这里就给大家做一个相对简单的教程总结。有需要的朋友记得先收藏保存,以便不时之需。 数据可视化大屏制作软件:奥威BI系统 数据可视化报表模板板块:模板秀 主要操作&…...

qml怎么显示网页

QML显示网页需要使用Qt WebEngine模块,它提供了一个WebEngineView组件,可以用来在QML中显示和交互网页。 首先,确保你已经安装了Qt WebEngine模块。如果你使用的是Qt的在线安装程序,你可以通过Qt Maintenance Tool来添加这个模块。 以下是如何在QML中使用WebEngineView来…...

leetcode分类刷题:二叉树(一、简单的层序遍历)

二叉树的深度优先遍历题目是让我有点晕,先把简单的层序遍历总结下吧:配合队列进行的层序遍历在逻辑思维上自然直观,不容易出错 102. 二叉树的层序遍历 本题是二叉树的层序遍历模板:每次循环将一层节点出队,再将一层节点…...

STM32 CAN使用记录:FDCAN基础通讯

文章目录 目的关键配置与代码轮询方式中断方式收发测试 示例链接总结 目的 CAN是非常常用的一种数据总线,被广泛用在各种车辆系统中。这篇文章将对STM32中FDCAN的使用做个示例。 CAN的一些基础介绍与使用可以参考下面文章: 《CAN基础概念》https://blo…...

GB/T 11945-2019 蒸压灰砂实心砖和实心砌块检测

蒸压灰砂砖是以砂、石灰为主要原料,经坯料制备,压制成型、蒸压养护而成的实心砖,简称灰砂砖,具有良好的耐久性能和强度。 GB/T 11945-2019蒸压灰砂实心砖和实心砌块检测: 测试要求 测试标准 抗压强度 GB/T 2542 GB…...

echarts静态饼图

<div class"cake"><div id"cakeChart"></div></div> import * as echarts from "echarts";mounted() {this.$nextTick(() > {this.getCakeEcharts()})},methods: {// 饼状图getCakeEcharts() {let cakeChart echart…...

Linux中的apt与yum

Linux中的apt与yum apt和yum区别 apt和yum执行流程 apt和yum区别 apt 和 yum 是两种不同的包管理工具&#xff0c;用于在 Linux 操作系统中安装、升级和删除软件包。它们主要用于不同的 Linux 发行版。 命令适用系统aptUbuntu、DebianyumCentOS、Redhat 也就是说&#xff0…...

DQN算法概述及基于Pytorch的DQN迷宫实战代码

一. DQN算法概述 1.1 算法定义 Q-Learing是在一个表格中存储动作对应的奖励值&#xff0c;即状态-价值函数Q(s,a)&#xff0c;这种算法存在很大的局限性。在现实中很多情况下&#xff0c;强化学习任务所面临的状态空间是连续的&#xff0c;存在无穷多个状态&#xff0c;这种情…...

Pytorch学习整理笔记(一)

文章目录 数据处理DatasetTensorboard使用Transformstorchvision数据集使用DataLoader使用nn.Module的使用神经网络 数据处理Dataset 主要是对Dataset的使用&#xff1a; 继承 Dataset实现init方法&#xff0c;主要是进行一些全局变量的定义&#xff0c;在对其初始化时需要赋…...

paddlespeech asr脚本demo

概述 paddlespeech是百度飞桨平台的开源工具包&#xff0c;主要用于语音和音频的分析处理&#xff0c;其中包含多个可选模型&#xff0c;提供语音识别、语音合成、说话人验证、关键词识别、音频分类和语音翻译等功能。 本文介绍利用ps中的asr功能实现批量处理音频文件的demo。…...

算法分析与设计编程题 递归与分治策略

棋盘覆盖 题目描述 解题代码 // para: 棋盘&#xff0c;行偏移&#xff0c;列偏移&#xff0c;特殊行&#xff0c;特殊列 void dividedCovering(vector<vector<int>>& chessBoard, int dr, int dc, int sr, int sc, int size) {if (size 1) return;size / 2…...

Java的XWPFTemplate工具类导出word.docx的使用

依赖 <!-- word导出 --><dependency><groupId>com.deepoove</groupId><artifactId>poi-tl</artifactId><version>1.7.3</version></dependency><!-- 上面需要的依赖--><dependency><groupId>org.ap…...

Science adv | 转录因子SPIC连接胚胎干细胞中的细胞代谢与表观调控

代谢是生化反应网络的结果&#xff0c;这些反应吸收营养物质并对其进行处理&#xff0c;以满足细胞的需求&#xff0c;包括能量产生和生物合成。反应的中间体被用作各种表观基因组修饰酶的底物和辅助因子&#xff0c;因此代谢与表观遗传密切相关。代谢结合表观遗传涉及疾病&…...

机器学习实战-系列教程7:SVM分类实战2线性SVM(鸢尾花数据集/软间隔/线性SVM/非线性SVM/scikit-learn框架)项目实战、代码解读

&#x1f308;&#x1f308;&#x1f308;机器学习 实战系列 总目录 本篇文章的代码运行界面均在Pycharm中进行 本篇文章配套的代码资源已经上传 SVM分类实战1之简单SVM分类 SVM分类实战2线性SVM SVM分类实战3非线性SVM 3、不同软间隔C值 3.1 数据标准化的影响 如图左边是没…...

DOM渲染与优化 - CSS、JS、DOM解析和渲染阻塞问题

文章目录 DOM渲染面试题DOM的渲染过程DOM渲染的时机与渲染进程的概述浏览器的渲染流程1. 解析HTML生成DOM树&#xff1a;遇到<img>标签加载图片2. 解析CSS生成CSSOM(CSS Object Model): 遇见背景图片链接不加载3. 将DOM树和CSSOM树合并生成渲染树&#xff1a;加载可视节点…...

基于小程序的理发店预约系统

一、项目背景及简介 现在很多的地方都在使用计算机开发的各种管理系统来提高工作的效率&#xff0c;给人们带来很多的方便。计算机技术从很大的程度上解放了人们的双手&#xff0c;并扩大了人们的活动范围&#xff0c;是人们足不出户就可以通过电脑进行各种事情的管理。信息系…...

MD5 算法流程

先通过下面的命令对 md5算法有个感性的认识&#xff1a; $ md5sum /tmp/1.txt 1dc792fcaf345a07b10248a387cc2718 /tmp/1.txt$ md5sum // 从键盘输入&#xff0c;ctrl-d 结束输入 hello, world! 910c8bc73110b0cd1bc5d2bcae782511 -从上面可以看到&#xff0c;一个文件或一…...

TCP/IP协议详解

TCP/IP&#xff08;Transmission Control Protocol/Internet Protocol&#xff0c;传输控制协议/互联网协议&#xff09;是互联网的基本协议&#xff0c;也是国际互联网络的基础。 TCP/IP 不是指一个协议&#xff0c;也不是 TCP 和 IP 这两个协议的合称&#xff0c;而是一个协…...

SSM SpringBoot vue快递柜管理系统

SSM SpringBoot vue快递柜管理系统 系统功能 登录 注册 个人中心 快递员管理 用户信息管理 用户寄件管理 配送信息管理 寄存信息管理 开发环境和技术 开发语言&#xff1a;Java 使用框架: SSM(Spring SpringMVC Mybaits)或SpringBoot 前端: vue 数据库&#xff1a;Mys…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…...

MFC内存泄露

1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...

JVM垃圾回收机制全解析

Java虚拟机&#xff08;JVM&#xff09;中的垃圾收集器&#xff08;Garbage Collector&#xff0c;简称GC&#xff09;是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象&#xff0c;从而释放内存空间&#xff0c;避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

Yolov8 目标检测蒸馏学习记录

yolov8系列模型蒸馏基本流程&#xff0c;代码下载&#xff1a;这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中&#xff0c;**知识蒸馏&#xff08;Knowledge Distillation&#xff09;**被广泛应用&#xff0c;作为提升模型…...

MySQL 知识小结(一)

一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库&#xff0c;分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷&#xff0c;但是文件存放起来数据比较冗余&#xff0c;用二进制能够更好管理咱们M…...

uniapp手机号一键登录保姆级教程(包含前端和后端)

目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号&#xff08;第三种&#xff09;后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...

日常一水C

多态 言简意赅&#xff1a;就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过&#xff0c;当子类和父类的函数名相同时&#xff0c;会隐藏父类的同名函数转而调用子类的同名函数&#xff0c;如果要调用父类的同名函数&#xff0c;那么就需要对父类进行引用&#…...

掌握 HTTP 请求:理解 cURL GET 语法

cURL 是一个强大的命令行工具&#xff0c;用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中&#xff0c;cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...

vue3 daterange正则踩坑

<el-form-item label"空置时间" prop"vacantTime"> <el-date-picker v-model"form.vacantTime" type"daterange" start-placeholder"开始日期" end-placeholder"结束日期" clearable :editable"fal…...

Axure 下拉框联动

实现选省、选完省之后选对应省份下的市区...