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

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

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

相关文章

Pycharm 安装第三方库numpy,显示超时?

一、配置终端Terminal中的镜像源 1.更改pip源,在终端输入如下命令 pip config set global.index-url https://pypi.tuna.tshua.edu.cn/simple2.在终端使用pip install 安装第三方库 例如: pip install numpy二、配置仓库镜像源 1.第一步: 2.第二步:输…

怎么获取别人店铺的商品呢?

jd.item_search_shop(获得店铺的所有商品) 为了进行电商平台 的API开发,首先我们需要做下面几件事情。 1)开发者注册一个账号 2)然后为每个JD应用注册一个应用程序键(App Key) 。 3)下载JDAPI的SDK并掌握基本的API…

4.docker容器编排(docker compose 与 docker swarm)

本文目录 1.容器编排2.Docker Compose1.Docker Compose 安装2.Docker Compose 示例1.使用 docker-compose 启动 nginx2.docker compose 常用命令3.校验 docker-compose.yml 是否有错误4.创建服务&#xff0c;启动容器5.弹性伸缩<扩缩容> 3.Docker Swarm1.Swarm 架构图2.S…

2023.9.6 Redis 的基本介绍

目录 Redis 的介绍 Redis 用作缓存和存储 session 信息 Redis 用作数据库 消息队列 消息队列是什么&#xff1f; Redis 用作消息队列 Redis 的介绍 特点&#xff1a; 内存中存储数据&#xff1a;奠定了 Redis 进行访问和存储时的快可编程性&#xff1a;支持使用 Lua 编写脚…

【Flink】 FlinkCDC读取Mysql( DataStream 方式)(带完整源码,直接可使用)

简介: FlinkCDC读取Mysql数据源,程序中使用了自定义反序列化器,完整的Flink结构,开箱即用。 本工程提供 1、项目源码及详细注释,简单修改即可用在实际生产代码 2、成功编译截图 3、自己编译过程中可能出现的问题 4、mysql建表语句及测试数据 5、修复FlinkCDC读取Mys…

软件测试/测试开发丨Web自动化—capability参数配置 学习笔记

点此获取更多相关资料 本文为霍格沃兹测试开发学社学员学习笔记分享 原文链接&#xff1a;https://ceshiren.com/t/topic/27336 一、capability概述 capability是webdriver支持的标准命令之外的扩展命令&#xff08;配置信息&#xff09;配置web驱动属性&#xff0c;如浏览器名…

自动化测试开发 —— 如何封装自动化测试框架?

封装自动化测试框架&#xff0c;测试人员不用关注框架的底层实现&#xff0c;根据指定的规则进行测试用例的创建、执行即可&#xff0c;这样就降低了自动化测试门槛&#xff0c;能解放出更多的人力去做更深入的测试工作。本篇文章就来介绍下&#xff0c;如何封装自动化测试框架…

不知道有用没用的Api

encodeURIComponent(https://www.baidu.com/?name啊啊啊) decodeURIComponent(https%3A%2F%2Fwww.baidu.com%2F%3Fname%3D%E5%95%8A%E5%95%8A%E5%95%8A) encodeURI(https://www.baidu.com/?name啊啊啊) decodeURI(https://www.baidu.com/?name%E5%95%8A%E5%95%8A%E5%95%8A) …

Mojo 语言官网

Mojo面向 AI 开发者的新型编程语言&#xff0c;无缝支持CPU、GPU&#xff0c;兼容Python&#xff0c;跟Python类似的语法&#xff0c;但是比Python快68000倍。目前Mojo仅支持Ubuntu&#xff0c;暂不支持Windows和Mac&#xff0c;可以在Mojo Playground先体验一下。 Mojo 语言…

Pytorch从零开始实战03

Pytorch从零开始实战——天气识别 本系列来源于365天深度学习训练营 原作者K同学 文章目录 Pytorch从零开始实战——天气识别环境准备数据集模型选择模型训练数据可视化总结 环境准备 本文基于Jupyter notebook&#xff0c;使用Python3.8&#xff0c;Pytorch2.0.1cu118&…

Linux 修改SSH的显示样式,修改终端shell显示的样式,美观更改

要修改SSH的显示样式&#xff0c;您可以使用自定义的PS1&#xff08;提示字符串1&#xff09;变量来更改命令行提示符的外观。在您的情况下&#xff0c;您想要的格式似乎包括日期和时间&#xff0c;以及当前目录。以下是一个示例PS1设置&#xff0c;可以实现您所描述的样式&…

【搭建私人图床】本地PHP搭建简单Imagewheel云图床,在外远程访问

文章目录 1.前言2. Imagewheel网站搭建2.1. Imagewheel下载和安装2.2. Imagewheel网页测试2.3.cpolar的安装和注册 3.本地网页发布3.1.Cpolar临时数据隧道3.2.Cpolar稳定隧道&#xff08;云端设置&#xff09;3.3.Cpolar稳定隧道&#xff08;本地设置&#xff09; 4.公网访问测…

【Spring面试】三、Bean的配置、线程安全、自动装配

文章目录 Q1、什么是Spring Bean&#xff1f;和对象有什么区别Q2、配置Bean有哪几种方式&#xff1f;Q3、Spring支持的Bean有哪几种作用域&#xff1f;Q4、单例Bean的优势是什么&#xff1f;Q5、Spring的Bean是线程安全的吗&#xff1f;Q6、Spring如何处理线程并发问题&#xf…

【已解决】您所使用的密钥ak有问题,不支持jsapi服务,可以访问该网址了解如何获取有效密钥。

您所使用的密钥ak有问题&#xff0c;不支持jsapi服务&#xff0c;可以访问该网址了解如何获取有效密钥。详情查看&#xff1a;http://lbsyun.baidu.com/apiconsole/key#。 问题 百度密钥过期 思路 注册成为开发者 如果还没注册百度地图api账号的&#xff0c;点击以后就进入…

【深度学习】 Python 和 NumPy 系列教程(廿二):Matplotlib详解:2、3d绘图类型(8)3D饼图(3D Pie Chart)

一、前言 Python是一种高级编程语言&#xff0c;由Guido van Rossum于1991年创建。它以简洁、易读的语法而闻名&#xff0c;并且具有强大的功能和广泛的应用领域。Python具有丰富的标准库和第三方库&#xff0c;可以用于开发各种类型的应用程序&#xff0c;包括Web开发、数据分…

WebRTC 源码 编译 iOS端

1. 获取依赖工具 首先&#xff0c;确保你已经安装了以下工具&#xff1a; GitDepot ToolsXcode&#xff08;确保已安装命令行工具&#xff09; 2. 下载 depot_tools 使用 git 克隆 depot_tools 并将其添加到你的 PATH 中&#xff1a; /path/to/depot_tools 替换为自己的路径…

unity C#客户端与服务器程序

客户端和服务器公共的脚本 OSC.cs // This is version 1.01(2015.05.27) // Tested in Unity 4 // Most of the code is based on a library for the Make Controller Kit1/* using UnityEngine; using System; using System.Collections; using System.Threading; using Syst…

Furion api npm web vue混合开发

Furion api npm web vue混合开发 Furion-api项目获取swagger.json文件复制json制作ts包删除非.ts文件上传到npm获取npm包引用 Furion-api项目获取swagger.json文件 使用所有接口合并的配置文件 复制json制作ts包 https://editor.swagger.io 得到 typescript-axios-clien…

怎么科学管理固定资产呢

在当今的商业环境中&#xff0c;固定资产的管理是企业成功的关键因素之一。然而&#xff0c;传统的固定资产管理方法往往过于繁琐&#xff0c;缺乏创新&#xff0c;导致资源的浪费和效率的低下。因此&#xff0c;我们需要一种新的、更加科学的方法来管理我们的固定资产。本文将…

C++多线程的用法(包含线程池小项目)

一些小tips: 编译命令如下&#xff1a; g 7.thread_pool.cpp -lpthread 查看运行时间&#xff1a; time ./a.out 获得本进程的进程id&#xff1a; this_thread::get_id() 需要引入的库函数有&#xff1a; #include<thread> // 引入线程库 #include<mutex> //…