热备份路由器协议(HSRP)的
设计目标是支持特定情况下
IP 流量失败转移不会引起混乱、并允许主机使用单路由器,以及即使在实际第一跳路由器使用失败的情形下仍能维护路由器间的
连通性。实现HSRP的条件是系统中有多台路由器,它们组成一个“热备份组”,这个组形成一个
虚拟路由器。换句话说,当源主机不能动态知道第一跳路由器的
IP地址时,HSRP 协议能够保护第一跳路由器不出故障。
简介
HSRP:
热备份路由器协议(HSRP:Hot Standby Router Protocol),是
cisco平台一种特有的技术,是cisco的私有协议。
该协议中含有多台路由器,对应一个HSRP组。该组中只有一个路由器承担转发用户流量的职责,这就是活动路由器。当活动路由器失效后,备份路由器将承担该职责,成为新的活动路由器。这就是热备份的原理。
实现HSRP的条件是系统中有多台路由器,它们组成一个“热备份组”,这个组形成一个
虚拟路由器。在任一时刻,一个组内只有一个路由器是活动的,并由它来转发
数据包,如果活动路由器发生了故障,将选择一个备份路由器来
替代活动路由器,但是在本网络内的主机看来,虚拟路由器没有改变。所以主机仍然保持连接,没有受到故障的影响,这样就较好地解决了
路由器切换的问题。
为了减少网络的数据流量,在设置完活动路由器和备份路由器之后,只有活动路由器和备份路由器定时发送HSRP报文。如果活动路由器失效,备份路由器将接管成为活动路由器。如果备份路由器失效或者变成了活跃路由器,将由另外的路由器被选为备份路由器。
在实际的一个特定的局域网中,可能有多个热备份组并存或重叠。每个热备份组模仿一个虚拟路由器工作,它有一个Well-known-MAC地址和一个
IP地址。该IP地址、组内路由器的接口地址、主机在同一个子网内,但是不能一样。当在一个局域网上有多个热备份组存在时,把主机分布到不同的热备份组,可以使负载得到分担。
原理
负责转发
数据包的
路由器称之为活动路由器(Active Router)。一旦主动路由器出现故障,HSRP 将激活备份路由器(Standby Routers)取代主动路由器。HSRP 协议提供了一种决定使用主动路由器还是备份路由器的机制,并指定一个虚拟的 IP 地址作为
网络系统的
缺省网关地址。如果主动路由器出现故障,备份路由器(Standby Routers)承接主动路由器的所有任务,并且不会导致主机连通中断现象。
HSRP 运行在
UDP上,采用
端口号1985。路由器转发协议数据包的源地址使用的是实际 IP 地址,而并非
虚拟地址,正是基于这一点,HSRP 路由器间能相互识别。
HSRP协议利用一个
优先级方案来决定哪个配置了
HSRP协议的
路由器成为默认的主动路由器。如果一个路由器的优先级设置的比所有其他路由器的优先级高,则该路由器成为主动路由器。路由器的缺省优先级是100,所以如果只设置一个路由器的优先级高于100,则该路由器将成为主动路由器。
通过在设置了HSRP协议的路由器之间发组播(地址224.0.0.2)来得知各自的HSRP优先级,HSRP协议选出当前的主动路由器。当在预先设定的一段时间内主动路由器不能发送hello消息时,优先级最高的备用路由器变为主动路由器。路由器之间的包传输对网络上的所有主机来说都是透明的。
配置了HSRP协议的
路由器交换以下三种多点组播消息:
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———路由器执行包传输功能。
与VRRP的差别
1.在功能上,
VRRP和HSRP非常相似,但是就安全而言,VRRP对HSRP的一个主要优势:它允许参与VRRP组的设备间建立认证机制.并且,不像HSRP那样要求虚拟
路由器不能是其中一个路由器的ip地址,但是VRRP允许这种情况发生(如果”拥有”虚拟路由器地址的路由器被建立并且正在运行,那么应该总是由这个虚拟路由器管理—等价于HSRP中的活动路由器),但是为了确保万一失效发生的时候终端主机不必重新学习
MAC地址,它指定使用的MAC地址00-00-5e-00-01-VRID,这里的VRID是虚拟路由器的ID(等价于一个HSRP的组标识符).
2.另外一个不同是VRRP不使用HSRP中的政变或者一个等价消息,VRRP的
状态机比HSRP的要简单,HSRP有6个状态(初始(Initial)状态,学习(Learn)状态,监听(Listen)状态,对话(Speak)状态,备份(Standby)状态,活动(Active)状态)和8个事件, VRRP只有3个状态(初始状态(Initialize)、主状态(Master)、备份状态(Backup))和5个事件.
3. HSRP有三种报文,而且有三种状态可以发送报文 呼叫(Hello)报文 告辞(Resign)报文 突变(Coup)报文
VRRP有一种报文
VRRP广播报文:由主
路由器定时发出来通告它的存在,使用这些报文可以检测虚拟路由器各种参数,还可以用于主路由器的选举。
4. HSRP将报文承载在
UDP报文上,而VRRP承载在
IP报文上(HSRP 使用UDP 1985端口,向
组播地址224.0.0.2 发送hello消息,HSRP 版本2向224.0.0.102发送hello消息)
5.VRRP的安全:VRRP协议包括三种主要的认证方式:无认证,简单的
明文密码和使用
MD5 HMAC ip认证的强认证.
强认证方法使用IP认证头(AH)协议.AH是与用在IPSEC中相同的协议,AH为认证VRRP分组中的内容和分组头提供了一个方法.
MD5 HMAC 的使用表明使用一个共享的密钥用于产生hash值.
路由器发送一个VRRP分组产生MD5 hash值,并将它置于要发送的通告中,在接收时,接受方使用相同的密钥和MD5值,重新计算分组内容和分组头的hash值,如果结果相同,这个消息就是真正来自于一个可信赖的主机,如果不相同,它必须丢弃,这可以防止攻击者通过访问LAN而发出能影响选择过程的通告消息或者其他一些方法中断网络.
另外,VRRP包括一个保护VRRP分组不会被另外一个远程网络添加内容的机制(设置
TTL值=255,并在接受时检查),这限制了可以进行本地攻击的大部分缺陷.而另一方面,HSRP在它的消息中使用的TTL值是1.
6.VRRP的崩溃间隔时间:3*通告间隔+
时滞时间(skew-
time)
应用
随着Internet的日益普及,人们对网络的
依赖性也越来越强。这同时对网络的稳定性提出了更高的要求,人们自然想到了基于设备的备份结构,就像在服务器中为提高数据的安全性而采用
双硬盘结构一样。
路由器是整个网络的核心和心脏,如果路由器发生致命性的故障,将导致
本地网络的瘫痪,如果是骨干路由器,影响的范围将更大,所造成的损失也是难以估计的。因此,对路由器采用
热备份是提高网络可靠性的必然选择。在一个路由器完全不能工作的情况下,它的全部功能便被系统中的另一个备份路由器完全接管,直至出现问题的路由器恢复正常,这就是热备份路由协议(HotStandby
RouterProtocol),HSRP-RFC2281技术要解决的问题。
设备特点
1.高度的可靠性,两台
路由器之间采用HSRP(热备份
冗余协议)协议,来保证两台路由器中的任意一台down掉,或路由器的
广域网口down,都会迅速切换到另外一台。
2.有效的实现了
负载均衡,在STAR-S1924F+上划分出各自的
VLAN,储蓄
子网VLAN在左侧路由器上的HSRP的
优先级较高,默认使用
网通的
FR线路;邮政系统(办公、报刊、
EMS、VOIP等等)子网VLAN在右侧路由器上的HSRP的优先级较高,默认使用
联通的FR线路。充分利用了带宽资源,而且实现了负载均衡。
3.充分利用了多以太口路由器在划分多业务
网段上的功能,也只有多以太口路由器在HSRP应用中才能实现两个路由器间的负载分担,这是具有四个以太口路由器的极大的优点。
4.在右侧
路由器上启用QoS策略,VoIP业务需要较低的延时,所以将VoIP业务设置成较高的优先级。
5.通过在交换机上设置VLAN,有效的控制了两个子网间的安全。
配置命令
配置实例
这是一个多HSRP组的实例,这种配置可以用于HSRP负载均衡
在配置之前,连接的端口必须是trunk模式。
如图《HSRP实例图》所示。
CK2:
(config)#int e0
(config-if)#ip add 10.16.6.6 255.255.255.0
(config-if)#standby 1 ip 10.16.6.100
(config-if)#standby 1
preempt(config-if)#standby 1 track s0 30
(config-if)#standby 1 priority 120
(config-if)#standby 2 ip 10.16.6.200
(config-if)#standby 2 preempt
(config-if)#standby 2 track s0
(config-if)#standby 2 priority 100
(config)#int e0
(config-if)#ip add 10.16.6.5 255.255.255.0
(config-if)#standby 1 ip 10.16.6.100
(config-if)#standby 1 preempt
(config-if)#standby 1 track s0
(config-if)#standby 1 priority 100
(config-if)#standby 2 ip 10.16.6.200
(config-if)#standby 2 track s0 30
(config-if)#standby 2 priority 120
(config-if)#standby 2 preempt
查看版本
IOS中的默认HSRP版本是HSRPv1,它允许配置最多255个组号码。由于一台设备可以支持4095个VLAN,因此如果需要的话,管理员要在多个接口上重复使用相同的HSRP组号码。尽管这会引起管理员的困惑,但这种
配置方法是可行的。HSRPv1使用虚拟MAC地址是0000.0C07.ACXX,XX表示HSRP组;并向组播地址224.0.0.2发送Hello数据包。
HSRPv2使用的数据包格式与HSRPv1不同。管理员要确保在同一HSRP组中的所有路由器上配置了相同的HSRP版本。因为不同版本的设备之间无法识别Hello消息。设备默认的版本为版本1,管理员可以使用以下命令来改变HSRP版本。
Switch(config-if)#standbyversion 2
认证
HSRP认证可以防止网络中的恶意路由器加入到HSRP组中。
管理员可以通过在HSRP组中所有成员设备上,配置认证
字符串来启用HSRP认证。认证字符串的最大长度为8字节,默认关键字为cisco。实例如下:
RouterA(config)#
interface vlan 10
RouterA(config-if)#ip address 10.1.1.2 255.255.255.0
RouterA(config-if)#standby 10 ip 10.1.1.1
RouterA(config-if)#standby 10 priority 110
RouterA(config-if)#standby 10 preempt
RouterA(config-if)#standby 10 authentication xyz123
监测
管理员可以使用一系列show standby 命令来检查HSRP的状态,其中有多个参数可供使用。比如命令 show standby brief 可以简单显示出HSRP的汇总配置。管理员可以确认每个备用组中的
本地路由器邻居。
当管理员输入 show standby 命令时,设备会显示出完整的信息。在一个HSRP组中,管理员可以使用命令 show ip arp 来查看
多层交换机上的
ARP缓存。
HSRP还通过IOS的调试(debug)工具提供了更详细的检测功能。用于调试HSRP的命令如下:
Swtich# debug standby [errors][
events][packets]显示出HSRP的所有状态变化;
Switch# debug standby terse显示出所有HSRP错误、事件和数据包,但不包括Hello和公告数据包。