简介:PC用户有一个路由器作为一个网关地址,当网关崩溃,那么用户就会断网,HSRP(思科私有)就是为了解决这类问题的2种网关冗余备份协议。

     

                                 HSRP:(Hot Standby Router Protocol):热备份路由协议


原理:

HSRPv1、HSRPv2、MHSRP_第1张图片

如上图:

  •              概述 R1R2建立一个邻接关系,并且加入一个组,形成虚拟的路由器,ip地址10.1.1.100 mac地址 aaaa:bbbb:cccc,这样PC可以指向这个虚拟的ip地址为网关。

 其中R1R2之间会选出一个活动路由器(ActiveRouter 其代理ARP开启)和一个备份路由器(Standby Router其代理ARP抑制),平常活动路由器作为网关转发数据,当活动路由器失效之后,备份路由器瞬间切换,保证网络的高可用性。

 

  •              实现措施HSRP定义了一个优先级(HSRPv1是0-255,v2是0-4095,配合vlan数量好管理)方案,如果一个路由器的优先级设置的比所有其他路由器的优先级高,则该路由器成为主动路由器。路由器的缺省优先级是100,所以如果只设置一个路由器的优先级高于100,则该路由器将成为主动路由器。

通过在设置了HSRP协议的路由器之间发组播(HSRPv1地址224.0.0.2,和CGMP地址冲突,HSRPv2改为224.0.0.102),来得知各自的HSRP优先级,HSRP协议选出当前的主动路由器。当在预先设定的一段时间内主动路由器不能发送hello消息时,优先级最高的备用路由器变为主动路由器。路由器之间的包传输对网络上的所有主机来说都是透明的。

 

注意HSRP 运行在UDP上,采用端口号1985。路由器转发协议数据包的源地址使用的是实际IP 地址,而并非虚拟地址,正是基于这一点,HSRP 路由器间能相互识别。

             HSRP的虚拟ip和虚拟mac不能是真实的已用ip和mac,mac地址是0000:0c07:acxx(HSRPV1)、0000:0c9f:fxxx(HSRPv2)

    

HSRPv1

  •            HSRPv1三类报文

Hello———hello消息通知其他路由器发送路由器的HSRP优先级和状态信息,HSRP路由器默认为每3秒钟发送一个hello消息;

Coup———当一个备用路由器变为一个主动路由器时发送一个coup消息;

Resign———当主动路由器要宕机或者当有优先级更高的路由器发送hello消息时,主动路由器发送一个resign消息。

 

  •          HSRP形成邻接关系之间的六种接口状态

Initial———HSRP启动时的状态,HSRP还没有运行,一般是在改变配置或端口刚刚启动时进入该状态。

Learn———学习状态,不知道虚拟IP,未看到活跃路由器发hello。等待活跃路由器发hello。

Listen———路由器已经得到了虚拟IP地址,但是它既不是活动路由器也不是等待路由器。它一直监听从活动路由器和等待路由器发来的HELLO报文。

Speak———在该状态下,路由器定期发送HELLO报文,并且积极参加活动路由器或等待路由器的竞选。

Standby———当主动路由器失效时路由器准备接管包传输功能。

Active———路由器执行包传输功能。

 

  •            HSRP的跟踪机制HSRP可以跟踪某个接口的状态,当该接口状态down之后,HSRP会将配置了跟踪机制的活动路由的优先级降低,低于备份路由器,这时候备份路由器开启了preempt机制,备份路由器→活动路由器 

 interface FastEthernet0/0

 ip address 10.1.1.254255.255.255.0

 duplex auto

 speed auto

 standby 1 authentication md5 key-string cisco

 standby 1 ip 10.1.1.100

 standby 1 priority 120

 standby 1 track FastEthernet0/1 30f0/1down之后优先级会在原有的基础上减掉30. R1_priority -track< R2_priority

 end

 

也可全局定义一种track

 track 1 interface Serial1/0 line-protocol

 interface FastEthernet0/0

 standby 10 track 1 decrement 10

 

 

 

  •            认证3种模式就不说了,上面配置有

 

     配置的位置:物理接口、SVI接口、三层以太网通道

 

 

  • HSRP和ICMP的重定向报文

HSRPv1、HSRPv2、MHSRP_第2张图片

如上图,R1为组1的活动路由器,为组2的备份路由器

                 R2为组2的活动路由器,为组1的备份路由器

                 R3为组3的活动路由器,为组4的备份路由器

                 R4为组4的活动路由器,为组3的备份路由器

 ①:ICMP重定向到HSRPActive路由器

                                        1的虚拟IP10.1.1.100R6上有环回口6.6.6.6 PC3-50)指的网管为.100,属于组1,发送ARP请求,R2发现去往6.6.6.6要走的是R4,这时候R4PC(3-50)一个

       ICMP重定向报文,告诉该PC,你应该走的网关是.253,在发生重定向之前会做两次操作:

 HSRPv1、HSRPv2、MHSRP_第3张图片

           

  1. 第一次改变或者说是产生这个重定向报文之前是因为R2发现了去往2.2.2.2得走R4.

  2. 第二次改变是因为主机只会接收icmp重定向报文中的源ip和我的目的网关相同的报文.

 

②;ICMP重定向到被动HSRP路由器

    不被允许的

 

ICMP重定向到没有运行HSRP的路由器

    允许的,重定向的源IP还是要改变的

开启命令:接口下standby redirect unknown

 

 

HSRP v2和v1的主要区别:



HSRPv1、HSRPv2、MHSRP_第4张图片

V1 HELLO报文格式




HSRPv1、HSRPv2、MHSRP_第5张图片


V2HELLO报文格式


1.组号由原来的0-255变成现在的0-4095

R2(config-if)#standby ?        
  <0-4095>        group number

2.支持毫秒级的timer

R2(config-if)#standby 1 timers ?
  <1-254>  Hello interval in seconds
  msec     Specify hello interval in milliseconds

3.多播地址由原来的224.0.0.2变成现在的224.0.0.102(224.0.0.2有可能会和CGMP冲突)

HSRPv1、HSRPv2、MHSRP_第6张图片

4.便于管理和排错(思科的IOU模拟PC会无法ping通虚拟地址,PT和GNS3倒是可以模拟)


5.原来的报文里面源MAC地址为虚mac地址,现在v2在消息报文里面添加了发送MAC地址的字段

HSRPv1、HSRPv2、MHSRP_第7张图片


6.接口的状态上把learn和linsten融合到speak中了,有点生成树的RSTP对于STP的端口状态的改变

        initial→speak→backup→(active)


debug信息如下

R1(config-if)#no shut

*Mar  1 01:51:19.015: HSRP: Fa0/0 Grp 1 MAC addr update Delete from SMF  0000.0c9f.f001
*Mar  1 01:51:19.027: HSRP: Fa0/0 Interface UP
*Mar  1 01:51:19.027: HSRP: Fa0/0 Starting minimum interface delay (1 secs)
R1(config-if)#
*Mar  1 01:51:20.027: HSRP: Fa0/0 Interface min delay expired
*Mar  1 01:51:20.027: HSRP: Fa0/0 Grp 1 Init: a/HSRP enabled
*Mar  1 01:51:20.027: HSRP: Fa0/0 Grp 1 Init -> Listen (active 0, passive 0->1)
*Mar  1 01:51:20.031: HSRP: Fa0/0 Grp 1 Redundancy "hsrp-Fa0/0-1" state Init -> Backup
*Mar  1 01:51:20.031: HSRP: Fa0/0 IP Redundancy "hsrp-Fa0/0-1" update, Init -> Backup
R1(config-if)#
*Mar  1 01:51:21.011: %LINK-3-UPDOWN: Interface FastEthernet0/0, changed state to up
*Mar  1 01:51:22.011: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up
R1(config-if)#
*Mar  1 01:51:30.027: HSRP: Fa0/0 Grp 1 Listen: c/Active timer expired (unknown)
*Mar  1 01:51:30.027: HSRP: Fa0/0 Grp 1 Listen -> Speak (active 0, passive 1)
*Mar  1 01:51:30.027: HSRP: Fa0/0 Grp 1 Redundancy "hsrp-Fa0/0-1" state Backup -> Speak
*Mar  1 01:51:30.031: HSRP: Fa0/0 IP Redundancy "hsrp-Fa0/0-1" update, Backup -> Speak
R1(config-if)#
*Mar  1 01:51:40.027: HSRP: Fa0/0 Grp 1 Speak: d/Standby timer expired (unknown)
*Mar  1 01:51:40.027: HSRP: Fa0/0 Grp 1 Standby router is local
*Mar  1 01:51:40.027: HSRP: Fa0/0 Grp 1 Speak -> Standby (active 0, passive 1)
*Mar  1 01:51:40.027: HSRP: Fa0/0 Grp 1 Redundancy "hsrp-Fa0/0-1" state Speak -> Standby
*Mar  1 01:51:40.031: HSRP: Fa0/0 IP Redundancy "hsrp-Fa0/0-1" standby, unknown -> local
*Mar  1 01:51:40.031: HSRP: Fa0/0 IP Redundancy "hsrp-Fa0/0-1" update, Speak -> Standby
*Mar  1 01:51:40.527: HSRP: Fa0/0 Grp 1 Standby: c/Active timer expired (unknown)
*Mar  1 01:51:40.527: HSRP: Fa0/0 Grp 1 Active router is local
*Mar  1 01:51:40.527: HSRP: Fa0/0 Grp 1 Standby router is unknown, was local
*Mar  1 01:51:40.527: HSRP: Fa0/0 Grp 1 Standby -> Active (active 0->1, passive 1->0)
*Mar  1 01:51:40.531: %HSRP-5-STATECHANGE: FastEthernet0/0 Grp 1 state Standby -> Active
R1(config-if)#
*Mar  1 01:51:40.531: HSRP: Fa0/0 Grp 1 Redundancy "hsrp-Fa0/0-1" state Standby -> Active
*Mar  1 01:51:40.539: HSRP: Fa0/0 Grp 1 Activating MAC 0000.0c9f.f001
*Mar  1 01:51:40.539: HSRP: Fa0/0 Grp 1 Adding 0000.0c9f.f001 to MAC address filter
*Mar  1 01:51:40.539: HSRP: Fa0/0 IP Redundancy "hsrp-Fa0/0-1" standby, local -> unknown
*Mar  1 01:51:40.539: HSRP: Fa0/0 IP Redundancy "hsrp-Fa0/0-1" update, Standby -> Active
R1(config-if)#
*Mar  1 01:51:43.539: HSRP: Fa0/0 IP Redundancy "hsrp-Fa0/0-1" update, Active -> Active
R1(config-if)#
*Mar  1 01:52:00.083: HSRP: Fa0/0 Grp 1 Standby router is 10.1.1.253
*Mar  1 01:52:00.083: HSRP: Fa0/0 Nbr 10.1.1.253 is no longer passive
*Mar  1 01:52:00.083: HSRP: Fa0/0 Nbr 10.1.1.253 standby for group 1


7.虚MAC地址的变化原来的是0000.0c07.acxx,现在是0000.0c9f.fxxx需要注意的是,HSRPv2不支持运行LAN仿真的ATM接口;HSRP v2和HSRP v1不能互操作

Active virtual MAC address is 0000.0c9f.f001
    Local virtual MAC address is 0000.0c9f.f001 (v2 default)

(在同一个接口下不能同时配置v1和v2,会冲突,但是在同一个路由器的不同接口下可以这么配置);HSRPv2在IOS 12.3(4)T之后得到支持;HSRPv2的报文格式发生了巨大变化


MHSRP:

下一节和VRRP一起讲






 

 

HSRPv2的配置,有个思科官网的配置案例,可以看一下

http://www.cisco.com/c/en/us/support/docs/ip/hot-standby-router-protocol-hsrp/113553-to-hsrpv2-config.html



                                                                                                                                                                                                                                                 --我只是个网络的小菜鸟,一步一步的向着自己的目标在前进着,从不停歇