HSRP(
Hot Standby Redundancy Protocol
)
热备份路由协议
HSRP
的原理:多台路由器组成一个“路由器组”,用来模拟为一个虚拟的路由器,利用虚拟的IP 地址和虚拟的MAC地址在一个备份组中充当一台路由器作为活动路由器发送数据包,只有当活动路由器失效后,将选择一台备份路由器才能成为活动路由器转发数据包,但对于网络中的主机来说虚拟路由器组是透明的。
HSRP有三种广播包:
1) Hello信息:hello消息向组内的其他路由器发送路由器的HSRP优先级和状态信息,并在后续的时候利用路由器的优先级选举主、备路由器。HELLO消息默认为每3秒钟发送一次。2) Coup:当一个备用路由器变为一个主动路由器时(此时主DOWN)发送一个coup消息。
3
) Resign:当主动路由器DOWN掉或者当有优先级更高的路由器发送hello消息时,ACTIVE路由器发送一个resign消息,类似权利的移交。
HSRP
路由器的状态类型:
1) Initial:HSRP启动时的状态,HSRP还没有运行,一般是在改变配置或端口刚启动时进入该状态。
2) Learn:路由器已经得到了虚拟IP地址,但是它既不是活动路由器也不是备份路由器。它一直监听从活动路由器和备份路由器发来的HELLO报文。
3) Liste:路由器正在监听hello消息。
4) Speak:在该状态下,路由器定期发送HELLO报文,并且积极参加活动路由器或等待路由器的竞选。
5) Standby:当主动路由器失效时路由器准备接包传输功能。
6) Active:路由器执行包传输功能。
HSRP
路由器体系
1)活动路由器,负责转发发送到虚拟路由器的数据。它通过发送HELLO消息(基于UDP,端口号为1985的广播)来通告它的活跃状态
2)备份路由器,监视HSRP组中的运行状态,并且在当前活跃路由器不可用时,迅速承担起负责数据转发的任务。备份路由器也发送HELLO消息来通告组中其他的路由器它备份路由器的角色。
虚拟MAC地址组成:
Vendor ID:厂商ID,构成MAC地址的头3个字节
HSRP代码:表示该地址是HSRP虚拟路由器的。XX07.acxx
组ID:最后一个字节是组ID,由组号组成
其他的路由器也监听HELLO消息,但是不作应答,这样它就不会在备份组有身份的概念,同时它也不参与发送到虚拟路由器的数据包,但是还是转发其他路由器发来的数据包。
HSRP
中,主备路由器的选举过程:
1
) 默认情况下,优先级为100,这时MAC地址最小的成为活动路由器
2) 当活动路由器失效后,备份路由器替代成为活动路由器,当活动和备份路由器都失效后,其他路由器将参与活动和备份路由器的选举工作
a) 优先级高的成为活动路由器,默认为100,取值为0~255
b) 优先级别相同时,接口IP地址高的将成为活动路由器
HSRP
的抢占Preempt
HRSP
技术能够保证优先级高的路由器失效恢复后总能处于活动状态。活动路由器失效后,优先级最高的备用路由器处于活动状态,成为网络上的新的主路由器。
HSRP的端口跟踪track
如果所监测的端口出现故障,则也可以进行路由器的切换。如果主路由器上有多条线路被跟踪,则当一条线路出现故障时,就会切换到备份路由器上,即使其他都线路正常工作,直到主路由器该线路正常工作,才能重新切换回来。接口跟踪使得能够根据HSRP组路由器的接口是否可用,来自动调整该路由器的优先级。当被跟踪的接口不可用时,路由器的HSRP优先级将降低。HSRP跟踪特性确保当HSRP活跃路由器的重要入站接口不可用时,该路由器不再是Active路由器。
HSRP
组间的冗余备份:
组间的冗余备份,就是一台路由器可以是同一个网段或VLAN中多个HSRP备用组的成员。配置多个备用组可进一步提高冗余性,在网络中均衡负载,提高冗余路由器的使用率。组间冗余备份的路由器在为一个HSRP组转发数据流的同时,可以在另一个HSRP分组中处于backup和listen状态。
HSRP
的配置:
配置HSRP
1)全局模式 configure terminal
2)接口模式 interface interface
3)standby group-id ip IP-address
group-id:大小范围为0-255。 IP地址:是虚拟的网关IP地址。
4)设定优先级:standby group-id priority 优先级别
优先级:大小范围为1-255,默认为100。
5
) 指定抢占模式: standby group-id preempt delay
delay
:大小范围为0-3600(1小时)
6) 设置端口跟踪: standby group-id track interface [惩罚值]
惩罚值:默认为10
7)自定虚拟网关的mac地址
standby group-id mac mac-address
8)配置认证
standby group-id authentication mode text password
注意:对于IOS12.3以上的版本中,HSRP支持MD5的认证,具体配置命令为
standby group-id authentication md5 key-string password
9
)配置HSRP时间选项
standby group-id timers hello second hold second
hello秒数:大小范围为1-255,默认为3秒
hold秒数:大小范围为1-255,默认为10秒,hold time= 3*hello time
配置实例:
基本配置:各端口IP地址的配置,R1R2R3之间起OSPF,达到全网互通的目的,其中两台PC分别将默认网关指向R2R3,此时由PC端应该能够访问R1的环回口1.1.1.1.
开始配置HSRP:
R2
上:interface Ethernet0/0
ip address 192.168.1.2 255.255.255.0
full-duplex
standby 10 ip 192.168.1.254----------
设置HSRP的组号为10,虚拟网关地址为192.168.1.254
standby 10 priority 105-----------------
设定R2在group10中的优先级为105
standby 10 preempt---------------------
开启R2在group10中的抢占功能
standby 10 track Serial1/20-----------R2
在group10中跟踪端口S1/2
standby 20 ip 192.168.1.253----------
设置HSRP group20的虚拟网关地址为192.168.1.253
standby 20 preempt---------------------
开启R2在group20中的抢占功能
standby 20 track Serial1/2-------------R2
在group20中监视S1/2端口
R3
上:interface Ethernet0/0
ip address 192.168.1.3 255.255.255.0
full-duplex
standby 10 ip 192.168.1.254---------
设置HSRP的组号为10,虚拟网关地址为192.168.1.254
standby 10 preempt--------------------
开启R3在group10中的抢占功能
standby 10 track Serial1/3------------ R3
在group20中监视S1/3端口
standby 20 ip 192.168.1.253---------
设置HSRP group20的虚拟网关地址为192.168.1.253
standby 20 priority 105----------------
设定R3在group20中的优先级为105
standby 20 preempt------------------
开启R3在group20中的抢占功能
standby 20 track Serial1/3---------- R3
在group20中监视S1/3端口
可见,R2在GROUP10中担任主网关的角色,在GROUP20中担任备份网关的角色,相反,R3在group10中担任备份网关的角色,在group20中担任主网关的角色。
验证:
R2
上有显示:
*Mar 1 00:12:23.475: %HSRP-5-STATECHANGE: Ethernet0/0 Grp 10 state Speak -> Standby
*Mar 1 00:12:23.975: %HSRP-5-STATECHANGE: Ethernet0/0 Grp 10 state Standby -> Active
* Mar 1 00:16:55.895: %HSRP-5-STATECHANGE: Ethernet0/0 Grp 20 state Speak -> Standby
R3
上亦然有如下显示:
*Mar 1 00:13:21.999: %HSRP-5-STATECHANGE: Ethernet0/0 Grp 10 state Speak -> Standby
*Mar 1 00:14:48.999: %HSRP-5-STATECHANGE: Ethernet0/0 Grp 20 state Speak -> Standby
*Mar 1 00:14:49.499: %HSRP-5-STATECHANGE: Ethernet0/0 Grp 20 state Standby -> Active
验证备份效果:
R4#traceroute 1.1.1.1
Type escape sequence to abort.
Tracing the route to 1.1.1.1
1 192.168.1.2 120 msec 124 msec 64 msec
2 192.168.12.1 108 msec * 212 msec
R5#traceroute 1.1.1.1
Type escape sequence to abort.
Tracing the route to 1.1.1.1
1 192.168.1.3 100 msec 168 msec 180 msec
2 192.168.13.1 80 msec * 212 msec
可见R4经由R2访问R1的环回口,而此时R5经由R3访问R1的环回口,此时show standby查看此时的虚拟网关的主备信息。
R2#sh standby
Ethernet0/0 - Group 10
State is Active
2 state changes, last state change 00:09:22
Virtual IP address is 192.168.1.254
Active virtual MAC address is 0000.0c07.ac0a
Local virtual MAC address is 0000.0c07.ac0a (v1 default)
Hello time 3 sec, hold time 10 sec
Next hello sent in 1.908 secs
Preemption enabled
Active router is local
Standby router is 192.168.1.3, priority 100 (expires in 9.100 sec)
Priority 105 (configured 105)
Track interface Serial1/2 state Up decrement 10
IP redundancy name is "hsrp-Et0/0-10" (default)
Ethernet0/0 - Group 20
State is Standby
1 state change, last state change 00:04:50
Virtual IP address is 192.168.1.253
Active virtual MAC address is 0000.0c07.ac14
Local virtual MAC address is 0000.0c07.ac14 (v1 default)
Hello time 3 sec, hold time 10 sec
Next hello sent in 0.828 secs
Preemption enabled
Active router is 192.168.1.3, priority 105 (expires in 9.096 sec)
Standby router is local
Priority 100 (default 100)
Track interface Serial1/2 state Up decrement 10
IP redundancy name is "hsrp-Et0/0-20" (default)
R3#sh standby
Ethernet0/0 - Group 10
State is Standby
1 state change, last state change 00:08:55
Virtual IP address is 192.168.1.254
Active virtual MAC address is 0000.0c07.ac0a
Local virtual MAC address is 0000.0c07.ac0a (v1 default)
Hello time 3 sec, hold time 10 sec
Next hello sent in 1.836 secs
Preemption enabled
Active router is 192.168.1.2, priority 105 (expires in 8.688 sec)
Standby router is local
Priority 100 (default 100)
Track interface Serial1/3 state Up decrement 10
IP redundancy name is "hsrp-Et0/0-10" (default)
Ethernet0/0 - Group 20
State is Active
2 state changes, last state change 00:07:27
Virtual IP address is 192.168.1.253
Active virtual MAC address is 0000.0c07.ac14
Local virtual MAC address is 0000.0c07.ac14 (v1 default)
Hello time 3 sec, hold time 10 sec
Next hello sent in 2.320 secs
Preemption enabled
Active router is local
Standby router is 192.168.1.2, priority 100 (expires in 7.316 sec)
Priority 105 (configured 105)
Track interface Serial1/3 state Up decrement 10
IP redundancy name is "hsrp-Et0/0-20" (default)
当R2的S1/2端口down后,应该在group10中自动切换到R3―group10的备份网关路由器。
当R3的S1/3端口down后,应该在group20中自动切换到 R2-group20的备份网关路由器。
验证:
1、
R2
的S1/2down之后:
R4#traceroute 1.1.1.1
Type escape sequence to abort.
Tracing the route to 1.1.1.1
1 192.168.1.3 100 msec 252 msec 48 msec
2 192.168.13.1 76 msec * 136 msec
可见R4已经选择R3做为去往1.1.1.1 的网关。
R3
的S1/3down之后:
R5#traceroute 1.1.1.1
Type escape sequence to abort.
Tracing the route to 1.1.1.1
1 192.168.1.2 72 msec 104 msec 36 msec
2 192.168.12.1 156 msec * 160 msec
R5
也完成了到1.1.1.1的路径的自动切换。
恢复端口no shutdown之后:
R4#traceroute 1.1.1.1
Type escape sequence to abort.
Tracing the route to 1.1.1.1
1 192.168.1.2 196 msec 140 msec 48 msec
2 192.168.12.1 80 msec * 148 msec
R5#traceroute 1.1.1.1
Type escape sequence to abort.
Tracing the route to 1.1.1.1
1 192.168.1.3 100 msec 152 msec 24 msec
2 192.168.13.1 128 msec * 148 msec
写在实验的后面:
HSRP
部分我没有做authentication的实验,准备流到VRRP在做,因为2者的基本特性一样。HSRP的基本时间这个实验我没有更改它的默认时间,也不建议大家更改系统的默认时间,使用系统默认时间即可。
HSRP
区别与VRRP的一大不同就是group的虚拟网关地址是不能为接口的真实IP地址,只能使用虚拟IP地址作为虚拟网关的IP地址。
由于是半夜完成的实验,所以可能会有错字,我会在以后慢慢改正O(∩_∩)O哈哈~。实验环境为dynamips搭建,在WINDOWS VISTA下运行良好,实验现象正常出现。
Vanyoung 17th
,Jan,2009,@Beijing