简介:PC用户有一个路由器作为一个网关地址,当网关崩溃,那么用户就会断网,HSRP(思科私有)就是为了解决这类问题的2种网关冗余备份协议。
HSRP:(Hot Standby Router Protocol):热备份路由协议
原理:
如上图:
概述: R1和R2建立一个邻接关系,并且加入一个组,形成虚拟的路由器,ip地址10.1.1.100 mac地址 aaaa:bbbb:cccc,这样PC可以指向这个虚拟的ip地址为网关。
其中R1和R2之间会选出一个活动路由器(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 30(f0/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的重定向报文
如上图,R1为组1的活动路由器,为组2的备份路由器
R2为组2的活动路由器,为组1的备份路由器
R3为组3的活动路由器,为组4的备份路由器
R4为组4的活动路由器,为组3的备份路由器
①:ICMP重定向到HSRP的Active路由器
组1的虚拟IP为10.1.1.100,R6上有环回口6.6.6.6 ,PC(3-50)指的网管为.100,属于组1,发送ARP请求,R2发现去往6.6.6.6要走的是R4,这时候R4给PC(3-50)一个
ICMP重定向报文,告诉该PC,你应该走的网关是.253,在发生重定向之前会做两次操作:
第一次改变或者说是产生这个重定向报文之前是因为R2发现了去往2.2.2.2得走R4.
第二次改变是因为主机只会接收icmp重定向报文中的源ip和我的目的网关相同的报文.
②;ICMP重定向到被动HSRP路由器
不被允许的
③ICMP重定向到没有运行HSRP的路由器
允许的,重定向的源IP还是要改变的
开启命令:接口下standby redirect unknown
HSRP v2和v1的主要区别:
V1 HELLO报文格式
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冲突)
4.便于管理和排错(思科的IOU模拟PC会无法ping通虚拟地址,PT和GNS3倒是可以模拟)
5.原来的报文里面源MAC地址为虚mac地址,现在v2在消息报文里面添加了发送MAC地址的字段
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
--我只是个网络的小菜鸟,一步一步的向着自己的目标在前进着,从不停歇