详解热备份路由协议(HSRP)

简介:

了解HSRP概述

HSRP(热备份路由协议):是思科私有的一种技术,它确保了的那个网络边缘设备或接入链路出现故障时,用户通信能迅速并透明地恢复,以此为IP网络提供冗余性。热备份路由协议为IP网络提供容错和增强的路由选择功能。通过使用一个虚拟的IP地址和虚拟MAC地址,LAN网段上的两台或者多台路由器可以作为一台虚拟路由器对外提供服务。


熟悉HSRP组成员

HSRP备份有一台活跃路由器,一台备份路由器,一台虚拟路由器和其他路由器组成。

活跃路由器:主要功能是转发到虚拟路由器的数据包。组中的另一台路由器被选为备份路由器。活跃路由器通过发送Hello消息来承担和保持它活跃的角色。

备份路由器:只要功能是监视HSRP组的运行状态,并且到活跃路由器不能运行时,迅速承担起转发数据包的责任。备份路由器也传输Hello消息,告知组中所有路由器备份路由器的角色和状态变化。

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

其他路由器:这些路由器监视Hello消息,但不做应答。这些路由器转发任何经由他们的数据包,但并不转发经由虚拟路由器的数据包。


理解HSRP原理

HSRP组内的每个路由器都有指定的优先级,用于衡量路由器在活跃路由器选择中的优先程度。默认优先级为100(可配置范围0-255),组中最高优先的路由器将成为活跃路由器,其次的为备份路由器。当优先级相同的情况下,将比较路由器的LAN口IP地址,地址大的将成为活跃路由器。

当终端用户向虚拟路由器提交数据时,将由活跃路由器进行处理,当活跃路由器发生故障时,备份路由器将在数秒之内承担活跃路由器的工作,这时由于备份成为了活跃路由器,而备份路由器的位置空缺,组内其它路由器将晋升备份路由器,在次比较优先级选出备份路由器。


HSRP的配置及应用

HSRP的配置命令语法如下:

1、配置HSRP的成员

Switch(cofnig-if)#standby group-number ip virtual-ip-address

group-number:表示该端口所属的HSRP组,通过在备份命令中指定一个唯一的组号可以创建多个HSRP组。virtual-ip-address:表示虚拟HSRP路由器的IP地址,即网段的IP地址。

2、配置HSRP优先级

Switch(cofnig-if)#standby group-number priority priority-value

priority-value:范围为0-255,默认100。

3、配置HSRP的占先权

Switch(cofnig-if)#standby group-number preempt

占先权的解释:HSRP中优先级高的活跃路由器进行定期维护时,HSRP备份路由器将成为活跃路由器。但是当以前的优先级高的活跃路由器修好后加入到HSRP中时,如果没有配置占先权的话,它将不会从备份路由器中抢回活跃路由器的位置,哪怕是它的优先级高于备份路由器,如果配置了的话,则会从优先级低路由器中抢回活跃路由器的职位。

4、配置HSRP的端口跟踪

Switch(cofnig-if)#standby group-number track interface-type mod/num interface-priority

group-number:采用跟踪功能的端口的组号

interface-type:跟踪端口的端口类型

mod/num:跟踪端口的端口号

interface-priority:当端口失效时,路由器的热备份优先级将降低的数值,当端口变为可用时,路由器的优先级将加上该数值,默认为10。

端口跟踪解释:如果不设置端口跟踪的话,当路由器的某个端口不可用时,但是它还是会发送hello消息告诉其他路由器,此路由器是可用的,其实数据是传输不出去。当给活跃路由器配置端口跟踪后,当跟踪的端口不可用时,此活跃路由器的优先级将减少相应的值,当变的可用时,则上升相应的值。这样的话很灵活的提供故障的切换效果。

5、配置Hello消息的计时器

Switch(cofnig-if)#standby group-number times hellotime holdtime

hellotime:hello消息的间隔时间,默认3s,范围1-255.

holdtime:hello消息的保存时间,默认10s,一般设置为hello间隔的三倍。

6、检查HSRP的状态

Switch#show standby [interface-type mod/num] [group-number] brief

interface-type mod/num:要显示的端口类型和序号

group-number:要显示的具体HSRP

brief:显示摘要信息,每个备份组总结显示一行输出。


HSRP的应用实例

配置公司两台核心三层交换机,实现路由器的备份+负载均衡。

实验拓扑如下图所示:

实验要求如下:

1、使vlan 10和vlan 30的数据由SW2进行处理。

2、使vlan 20的数据包由SW1进行处理。

3、当任意一台路由器的某个端口不可用或路由器不可用时,数据能从备份路由器上处理。

在SW1上配置VTP server,创建vlan。配置如下:

#设置与所有交换机的接口为链路接口(trunk)并配置wan接口的IP地址和默认路由

sw1(config)#int range f0/1 -3

sw1(config-if-range)#switchport mode trunk

sw1(config-if-range)#no sh

sw1(config-if-range)#exit

sw1(config)#int f0/0

sw1(config-if)#ip add 202.106.123.1 255.255.255.0

sw1(config-if)#no switchport

sw1(config-if)#no sh

sw1(config-if)#exit

sw1(config)#ip route 0.0.0.0 0.0.0.0 f0/0

#配置VTP以及创建vlan

sw1#vlan database

sw1(vlan)#vtp domain test

sw1(vlan)#vtp server

sw1(vlan)#vtp password 123

sw1(vlan)#vtp pruning

sw1(vlan)#exit

sw1#vlan database

sw1(vlan)#vlan 10

sw1(vlan)#vlan 20

sw1(vlan)#vlan 30

#配置HSRP,配置SW1为vlan 10的备份路由器

sw1(config)#int vlan 10

sw1(config-if)#ip add 192.168.1.1 255.255.255.0

sw1(config-if)#standby 10 ip 192.168.1.254

sw1(config-if)#standby 10 priority 150

sw1(config-if)#standby 10 preempt

sw1(config-if)#no sh

#配置HSRP,配置SW1为vlan 20的活跃路由器

sw1(config)#int vlan 20

sw1(config-if)#ip add 192.168.2.1 255.255.255.0

sw1(config-if)#standby 20 ip 192.168.2.254

sw1(config-if)#standby 20 priority 200

sw1(config-if)#standby 20 preempt

sw1(config-if)#standby 20 track f0/0 100

sw1(config-if)#standby 20 track f0/1 100

sw1(config-if)#standby 20 track f0/2 100

sw1(config-if)#no sh

#配置HSRP,配置SW1为vlan 30的备份路由器

sw1(config)#int vlan 30

sw1(config-if)#ip add 192.168.3.1 255.255.255.0

sw1(config-if)#standby 30 ip 192.168.3.254

sw1(config-if)#standby 30 priority 150

sw1(config-if)#standby 30 preempt

sw1(config-if)#no sh


在SW2上配置VTP client,学习SW1创建的vlan。

#设置与所有交换机的接口为链路接口(trunk)并配置wan接口的IP地址和默认路由

sw2(config)#int range f0/1 -3

sw2(config-if-range)#switchport mode trunk

sw2(config-if-range)#no sh

sw2(config-if-range)#exit

sw2(config)#int f0/0

sw2(config-if)#ip add 202.106.123.2 255.255.255.0

sw1(config-if)#no switchport

sw1(config-if)#no sh

sw2(config-if)#exit

sw2(config)#ip route 0.0.0.0 0.0.0.0 f0/0

#配置VTP以及创建vlan

sw2#vlan database

sw2(vlan)#vtp domain test

sw2(vlan)#vtp client

sw2(vlan)#vtp password 123

sw2(vlan)#vtp pruning

#配置HSRP,配置SW2为vlan 10的活跃路由器

sw2(config)#int vlan 10

sw2(config-if)#ip add 192.168.1.2 255.255.255.0

sw2(config-if)#standby 10 ip 192.168.1.254

sw2(config-if)#standby 10 priority 200

sw2(config-if)#standby 10 preempt

sw2(config-if)#standby 10 track f0/0 100

sw2(config-if)#standby 10 track f0/1 100

sw2(config-if)#standby 10 track f0/2 100

sw2(config-if)#no sh

#配置HSRP,配置SW2为vlan 20的备份路由器

sw2(config)#int vlan 20

sw2(config-if)#ip add 192.168.2.2 255.255.255.0

sw2(config-if)#standby 20 ip 192.168.2.254

sw2(config-if)#standby 20 priority 150

sw2(config-if)#standby 20 preempt

sw2(config-if)#no sh

#配置HSRP,配置SW2为vlan 30的活跃路由器

sw2(config)#int vlan 30

sw2(config-if)#ip add 192.168.3.2 255.255.255.0

sw2(config-if)#standby 30 ip 192.168.3.254

sw2(config-if)#standby 30 priority 200

sw2(config-if)#standby 30 preempt

sw2(config-if)#standby 30 track f0/0 100

sw2(config-if)#standby 30 track f0/1 100

sw2(config-if)#standby 30 track f0/2 100

sw2(config-if)#no sh


在SW3上配置VTP client,学习SW1创建的vlan。

#设置与所有交换机的接口为链路接口(trunk)

sw3(config)#int range f0/0 -1

sw3(config-if-range)#switchport mode trunk

sw3(config-if-range)#no sh

#配置VTP以及创建vlan

sw3#vlan database

sw3(vlan)#vtp domain test

sw3(vlan)#vtp client

sw3(vlan)#vtp password 123

sw3(vlan)#vtp pruning

#将指定的接口加入相应的vlan

sw3(config)#int f0/2

sw3(config-if)#switchport access vlan 10

sw3(config-if)#no sh

sw3(config-if)#exit

sw3(config)#int f0/3

sw3(config-if)#switchport access vlan 20

sw3(config-if)#no sh


在SW4上配置VTP client,学习SW1创建的vlan。

#设置与所有交换机的接口为链路接口(trunk)

sw4(config)#int range f0/0 -1

sw4(config-if-range)#switchport mode trunk

sw4(config-if-range)#no sh

#配置VTP以及创建vlan

sw4#vlan database

sw4(vlan)#vtp domain test

sw4(vlan)#vtp client

sw4(vlan)#vtp password 123

sw4(vlan)#vtp pruning

#将指定的接口加入相应的vlan

sw4(config)#int f0/2

sw4(config-if)#switchport access vlan 20

sw4(config-if)#no sh

sw4(config-if)#exit

sw4(config)#int f0/3

sw4(config-if)#switchport access vlan 30

sw4(config-if)#no sh


此时公司内部的两台核心交换机就算是配置好了HSRP了,现在不管是那一台核心交换机坏掉还是交换机上的数据接口不可用,都不会影响用户访问Internet。因为两台核心交换配置HSRP,实现了路由的备份和负载均衡,而路由器的备份和负载对用户来说是透明的。



本文转自yun5277 51CTO博客,原文链接:http://blog.51cto.com/dengqi/1253916,如需转载请自行联系原作者
相关文章
|
运维 Linux 网络安全
推荐几款SSH客户端
对于经常使用Linux服务器的,应该都对SSH比较熟悉吧!特别是做运维的,而对于做Linux或Android系统开发的,一般会在公司搭建一台性能强劲的服务器,然后大家一起在上面做开发。大家一般都是通过SSH客户端登录到服务器上进行开发。那接下来给大家推荐几款平时常用的SSH客户端。
|
编译器 API 数据安全/隐私保护
深入对比:Qt 的 QFile/QFileInfo 和与 C++17 Filesystem 和标准文件流 的细节剖析
深入对比:Qt 的 QFile/QFileInfo 和与 C++17 Filesystem 和标准文件流 的细节剖析
1079 3
|
传感器 人工智能 监控
智慧电厂AI算法方案
智慧电厂AI算法方案通过深度学习和机器学习技术,实现设备故障预测、发电运行优化、安全监控和环保管理。方案涵盖平台层、展现层、应用层和基础层,具备精准诊断、智能优化、全方位监控等优势,助力电厂提升效率、降低成本、保障安全和环保合规。
610 2
智慧电厂AI算法方案
|
8月前
|
机器学习/深度学习 人工智能 自然语言处理
用AI精准定位问题代码,调试时间直接砍半!LocAgent:斯坦福开源代码调试神器,多跳推理锁定问题代码
LocAgent是由斯坦福大学、耶鲁大学等顶尖机构联合开发的代码定位框架,通过将代码库转化为图结构并利用大语言模型的多跳推理能力,实现精准的问题代码定位。
677 1
用AI精准定位问题代码,调试时间直接砍半!LocAgent:斯坦福开源代码调试神器,多跳推理锁定问题代码
|
7月前
|
监控 NoSQL Java
分布式锁—2.Redisson的可重入锁
本文主要介绍了Redisson可重入锁RedissonLock概述、可重入锁源码之创建RedissonClient实例、可重入锁源码之lua脚本加锁逻辑、可重入锁源码之WatchDog维持加锁逻辑、可重入锁源码之可重入加锁逻辑、可重入锁源码之锁的互斥阻塞逻辑、可重入锁源码之释放锁逻辑、可重入锁源码之获取锁超时与锁超时自动释放逻辑、可重入锁源码总结。
|
12月前
【HarmonyOS Next开发】实现矩形上下拖动、动态拖拽修改高度
实现一个矩形块上下拖动,并且可以拖动边缘定位点改变矩形块高度。
256 6
【HarmonyOS Next开发】实现矩形上下拖动、动态拖拽修改高度
|
JavaScript Java 关系型数据库
民宿预定管理系统 毕业设计 JAVA+Vue+SpringBoot+MySQL
民宿预定管理系统 毕业设计 JAVA+Vue+SpringBoot+MySQL
584 0
民宿预定管理系统 毕业设计 JAVA+Vue+SpringBoot+MySQL
|
Rust 并行计算 安全
揭秘Rust并发奇技!线程与消息传递背后的秘密,让程序性能飙升的终极奥义!
【8月更文挑战第31天】Rust 以其安全性和高性能著称,其并发模型在现代软件开发中至关重要。通过 `std::thread` 模块,Rust 支持高效的线程管理和数据共享,同时确保内存和线程安全。本文探讨 Rust 的线程与消息传递机制,并通过示例代码展示其应用。例如,使用 `Mutex` 实现线程同步,通过通道(channel)实现线程间安全通信。Rust 的并发模型结合了线程和消息传递的优势,确保了高效且安全的并行执行,适用于高性能和高并发场景。
408 0
|
Web App开发 编解码 移动开发
网页不安装插件如何播放RTSP/FLV视频
点量云流提出了一种基于后台拉流转码的方案,将RTSP/RTMP/FLV等协议的视频流转换为WebRTC格式,实现在现代浏览器中的无插件播放。此方案具有良好的兼容性,支持主流浏览器,无需担心兼容问题。它利用浏览器硬件解码能力,减少终端计算资源消耗,并且具备低延迟和高实时性的优点,延迟可控制在100ms以内,非常适合摄像头监控领域。此外,前端集成简单,仅需使用标准WebRTC接口即可接入,降低了复杂度。
647 9
|
机器学习/深度学习 存储 自然语言处理