热备份路由选择协议(HSRP)缓存
n HSRP概述安全
HSRP(Hot Standby Routing Protocol,热备份路由选择协议)是Cisco私有的一种技术,它确保了当网络边缘设备或接入链路出现故障时,用户通讯能迅速并透明的恢复,以此为IP网络提供冗余性。经过应用HSRP,可以使网络的正常运行时间接近100%,从而知足用户对网络可靠性的要求网络
热备份路由协议为IP网络提供了容错和加强的路由选择功能。经过使用同一个虚拟IP地址和虚拟MAC地址,LAN网段上的两台或多台路由器能够做为一台虚拟路由器对外提供服务。HSRP使组内的Cisco路由器能互相监视对方的运行状态。负载均衡
? 虚拟路由器组的成员经过HSRP消息不断的交换状态信息。ide
? 若是其中一台出现故障,另外一台就能接替它,继续完成路由功能。学习
LAN网段上的主机都配置使用同一个细腻路由器做为默认网关,并不断将IP包发往同一个IP和MAC地址。所以,路由设备的切换对主机都是透明的。HSRP向主机提供了默认网关的冗余性,绝大多数主机以默认网关做为惟一的下一跳IP和MAC地址。另外,经过多个热备份组,路由器能够提供冗余备份,并在不一样的IP子网上实现负载均衡。编码
n HSRP组成员spa
HSRP备份组由一台活跃路由器、一台备份路由器、一台虚拟路由器和其余路由器组成(在三层交换机配置HSRP时也使用HSRP定义的备份路由器等名称)。其中,各路由器的做用以下:3d
? 活跃路由器的功能是转发发送到虚拟路由器的数据包。组中的另外一台路由器被选为备份路由器。活跃路由器经过发送Hello消息来承担和保持它活跃的角色。blog
? 备份路由器的功能是监视HSRP组的运行状态,而且当活跃路由器不能运行时,迅速承担起转发数据包的责任。备份路由器也传输Hello消息,告知组中全部路由器备份路由器的角色和状态变化。
? 虚拟路由器(即该LAN上的网关)的功能是向最终用户提供一台能够连续工做的路由器。虚拟路由器配有它本身的IP地址和MAC地址,但并不实际转发数据包。
? HSRP备份组能够包含其余路由器。这些路由器监视Hello消息,但不作应答。这些路由器转发任何经由它们的数据包,但并不转发经由虚拟路由器的数据包。
当活跃路由器失效时,其余HSRP路由器将不能接收到Hello消息,随后备份路由器就承担起活跃路由器的角色。
随着备份路由器成为活跃路由器,备份路由器的位置空缺,组中的全部其余路由器将竞争备份路由器的角色。默认状况(优先级相同)下,IP地址大的路由器将成为新的备份路由器。尽管一个HSRP组中能够有多台路由器,但只有活跃路由器才负责转发发送到虚拟路由器的数据包。
n HSRP原理
HSRP组内的每一个路由器都有指定的优先级(Priority),用于衡量路由器在活跃路由器选择中的优先程度。默认的优先级是100,它是用户配置中的可选项,能够是0-255内的任何值。组中有最高优先级的路由器将成为活跃路由器。
活跃路由器替虚拟路由器对数据流进行到响应。若是末端主机发送了一个数据包到虚拟路由器的MAC地址,那么,活跃路由器将接收而且处理这个数据包。若是末端主机对虚拟路由器的IP地址发送ARP解析请求,那么,活跃路由器将使用虚拟器的MAC地址进行应答。
选择活跃路由器和备份路由器时,若是优先级相同,IP地址大的路由器获胜。若是在HSRP组内,除了活跃和备份路由器以外还有其余路由器,它们就会监听活跃路由器和备份路由器的状态(即它们发出的HSRP Hello包),以实现更强的容错能力。
n 虚拟MAC地址
地址解析协议ARP在IP地址和MAC地址之间创建了一种关联。每台三层交换机都维护着一个地址解析表。三层交换机在试图联系某个设备以前,先检查其ARP缓存,以肯定这个地址是否已经被解析。虚拟路由器的IP地址和相应的MAC地址维持在HSRP组中的每台三层交换的ARP表中。
虚拟路由器所用的MAC地址由三部分组成:
? 厂商编码——MAC地址的前三个字节。
? HSRP编码(HSRP众所周知的虚拟MAC地址)——MAC地址的后两个字节,本MAC地址用于一台HSRP虚拟路由器,HSRP编码老是“07.ac”。
? 组号(HSRP组号)——MAC地址的最后一个字节是组的标示号。例如,组号47转换为十六进制为2f,它将构成MAC地址的最后一个字节。
n HSRP消息
HSRP中的全部路由器都发送或接受HSRP消息。这些消息用来决定和维护组内的路由器角色。HSRP消息封装在用户数据报协议(UDP)数据包中的数据部分,使用UDP端口号1985。
这些数据包所使用的目的地址是所有路由器多点广播地址224.0.0.2,生存时间TTL值为1。(发送给相邻的路由器,只能发送一次)
n HSRP的状态
HSRP配置的路由器有六种状态,并非全部的HSRP路由器都经历全部状态。例如:不是备份路由器或者活跃路由器的路由器,就不会有备份状态和活跃状态。
1. 初始状态
全部路由器都从初始状态开始。这是一种起始状态,同时代表HSRP尚未运行。配置发生变化或一个端口第一次启用时,就进入该状态。
2. 学习状态
路由器等待来自活跃路由器的消息。这时,路由器尚未看到来自活跃路由器的Hello消息,也没有学习到虚拟路由器的IP地址。
3. 监听状态
路由器知道了虚拟的IP地址,但它既不是活跃路由器,也不是备份路由器。这时,路由器监听来自活跃路由器和备份路由器的Hello消息。除活跃路由器和备份路由器以外的路由器都保持监听状态。
4. 发言状态
路由器周期性的发送Hello消息,并参与活跃或备份路由器的竞选。路由器在得到虚拟路由器的IP地址以前,不能进入发言状态。
5. 备份状态
路由器是成为下一个活跃路由器的候选设备,而且它也周期性的发送Hello消息。在一个组中只有一台备份路由器。
6. 活跃状态
在活跃状态,路由器负责转发发送到备份组的虚拟MAC地址的数据包。活跃路由器周期性的发送Hello消息。在一个组中,必须有且只有一台活跃路由器。
n HSRP的计时器
HSRP使用两个计时器:Hello间隔和保持时间。任何状态的HSRP路由器都会在Hello计时器超时后生成Hello包。默认的Hello间隔是3s,默认的保持时间是10s。
未配置计时器的路由器会从活跃路由器或备份路由器学到这些计时器的值。活跃路由器上配置的计时器值会覆盖其余路由器上的计时器设定值。同一个HSRP组内的路由器应该使用相同的计时器值。一般,保持时间会大于或等于Hello间隔的三倍,而且保持时间的取值必须大于Hello间隔。
其余HSRP路由器按照保持时间对活跃路由器进行监控:当收到任何活跃路由器发出的Hello包时,路由器会根据HSRP Hello消息中的相应字段重置保持时间值。
一般,默认的HSRP计时器值适用于大多数的LAN网段。(对于反应慢的路由器,将保持时间改长一点)
n HSRP与VRRP的区别
HSRP是Cisco的专有协议。在Cisco的HSRP以后,Internet工程任务组(Internet Engineering Task Force,IETF)也指定了一种路由备份冗余协议:虚拟路由器冗余协议(Virtual Router Redundancy Protocol,VRRP)。目前,包括Cisco在内的主流厂商均已在其产品中支持VRRP协议。
VRRP的工做原理与HSRP类似,也是将系统中的多台路由器组成VRRP组,该组拥有同一个虚拟IP地址做为LAN的默认网关地址。
VRRP和HSRP也有不少不一样。VRRP与HSRP的一个主要区别在安全性方面:它容许参与VRRP组的设备间创建认证机制。另外一个主要区别是:VRRP中只有三种状态——初始状态(Initialize)、主状态(Master)、备份状态(Backup),而HSRP有六种状态。其他在报文类型、报文格式和经过TCP而非UDP发送报文方面也都有所不一样。
n HSRP的配置及应用
1. 配置为HSRP的成员
要将三层交换机配置为一个HSRP组的成员,能够在VLAN虚拟接口端口配置模式下输入下面的命令:
Switch(config-if)# standby group-number ip virtual-ip-address
? group-number:表示该端口所属的HSRP组。经过在备份命令中指定一个惟一的组号能够建立多个HSRP组。默认组是0号,可配置范围是0-255。
? virtual-ip-address:表示虚拟HSRP路由器的IP地址,即网段的网关地址。若是指定了IP地址,则该地址就会用做该组的HSRP地址。若是没有指定IP地址,路由器就会经过HSRP Hello消息学到虚拟地址。在选择活跃路由器时,线路上至少要有一台路由器被配置,或者学到了虚拟IP地址。须要注意配置的虚拟IP地址必须和端口配置的实际地址处于同一网段。
例如:Switch(config-if)#standby 10 ip 192.168.1.254
若是须要从HSRP组中取消一个端口,能够在上述命令前加关键字no。例如:
Switch(config-if)# no standby 10 ip 192.168.1.254
2. 配置HSRP的优先级
用户能够指定端口在组内的优先级。这样,在发生故障时,用户能够灵活的指定端口顺序。优先级数值高的将成为活跃路由器,指定优先级可以使用下面的命令:
Switch(config-if)#standby group-number priority priority-value
其中,priority-value的范围是0-255,默认值是100。
3. 配置HSRP的占先权
要想原先的活跃路由器(优先级高)可以从优先级较低的新活跃路由器那里从新取回转发权,恢复转发路由器的角色,可使用下面的命令:
Switch(config-if)#standby group-number preempt
在配置了standby preempt命令以后,优先级高的端口将变成活跃状态。
除了上述状况下,还有一些其余状况须要配置占先权:
? 配置HSRP时,先配置低优先级的路由器A,当配置完成后它会确认HSRP组中其余路由器的状态和优先级。此时路由器A是HSRP组中惟一的设备,路由器A认为自身优先级最高而成为活跃路由器。在路由器A成为活跃路由器后,再配置高优先级的路由器B,若是没有配置占先权,则路由器B将不会成为活跃状态,而成为备份状态。
? 在网络中的HSRP组工做正常,路由器A优先级为200,路由器B优先级为100,路由器A成为活跃路由器。在路由器A上配置端口跟踪,优先级下降150。当跟踪的端口链路出现故障时,路由器A的优先级下降为50,路由器B成为HSRP组中优先级最高的设备。这时若是路由器B没有配置占先权,则不会成为活跃路由器。
由此能够看出,若是网络中已经存在活跃路由器,则新加入HSRP组中没有配置占先权的路由器不管其优先级高低都不会成为活跃路由器。
4. 配置Hello消息的计时器
默认计时器值在不少网络中都工做得很好,通常状况下不须要修改。然而,若是Hello包须要通过有时会拥塞的网络,能够修改这些值,命令以下:
Switch(config-if)#standby group-number times hellotime holdtime
其中,hellotime间隔时间默认为3s,设置范围是1-255;holdtime保持时间最少应该是Hello时间的三倍,默认的保持时间是10s。
例如:将Hello时间和保持时间分别配置为2s和8s,命令以下:
Switch(config-if)#standby 10 times 2 8
注意:同一个HSRP组中的Hello时间和保持时间应该配置相同。
5. 配置HSRP的端口跟踪
利用HSRP跟踪(HSRP Tracking)功能,能够指定HSRP监控路由器上的另外一端口。若是被跟踪端口的状态变为Down,其余路由器就接替其成为活跃路由器。这一过程是经过被跟踪端口的链路状态变为Down时减少HSRP的优先级来实现的。减少优先级的目的是让路由器的HSRP优先级低于其余路由器,默认减少值是10。HSRP跟踪功能减小额主端口不可用时路由器的优先级,但其仍有保持活跃路由器的可能性。通用的原则是在HSRP端口上同时设定占先功能(高优先级和低优先级都配置),以提供最佳的故障切换效果。
配置端口跟踪,能够输入下面的命令:
Switch(config-if)#standby group-number track interface-type mod/num interface-priority
其中:
? group-number:采用跟踪功能的端口的组号
? interface-type:跟踪端口的端口类型
? mod/num:跟踪端口的端口号
? interface-priority:当端口失效时,路由器的热备份优先级将下降的数值;当端口变为可用时,路由器的优先级将加上该数值,默认值为10。
要关闭端口跟踪功能时,可使用no standby group-number track命令
例如:配置跟踪端口F0/1,优先级下降100,配置以下:
Switch(config-if)#standby 10 track fastEthernet 0/1 100
6. 检查HSRP的状态
要显示HSRP路由器的状态,在特权模式下输入以下命令:
Switch# show standby [interface-type mod/num] [group-number] brief
其中:
? interface-type mod/num:要显示的端口类型和序号
? group-number:要显示的具体HSRP组
? brief:显示摘要信息,每一个备份组总结显示一行输出
n HSRP故障排查
? 配置完成的热备份路由器都处于初始状态
没设置vlan IP
? 配置完成的热备份路由器都处于活跃状态
路由之间没通讯
? 当活跃路由器出口链路出现故障时,备份路由器没有成为活跃状态。
没有设置占先权,端口跟踪
? 网络出现故障,备份路由器变为活跃状态,当网络故障修复时,原来的活跃路由器接入网络后成为备份状态而没有成为活跃状态。
没有设置占先权
n HSRP的应用案例
具体步骤:
1. 给路由器R1的全部接口配置IP地址
配置静态路由。
2. 开启全部的接口
将交换机相连的接口配置为trunk接口
进入链接路由器的接口(F0/0),启用路由接口(no switchport),并配置IP地址
建立两个vlan,
并分别配置IP地址
配置虚拟IP地址、配置优先级、配置优先权、配置端口跟踪
开启路由功能
配置静态路由
配置以太网通道
3. 开启全部的接口
将交换机相连的接口配置为trunk接口
进入链接路由器的接口(F0/1),启用路由接口(no switchport),并配置IP地址
建立两个vlan(和三层交换1建立的要相同),
并分别配置IP地址
配置虚拟IP地址、配置优先级、配置优先权、配置端口跟踪
开启路由功能
配置静态路由
配置以太网通道
4. 开启全部的接口
将交换机相连的接口配置为trunk接口
建立两个vlan(和三层交换1建立的要相同)
将链接客户端的接口加入到vlan
5. 配置STP实现VLAN负载均衡
SW3L1配置信息:
SW3L2配置信息:
6. 验证HSRP
查看SW3L1: