一、 HSRP协议概述
实现HSRP的条件是系统中有多台路由器,它们组成一个“热等待组”,这个组形成一个虚拟路由器。在任一时刻,一个组内只有一个路由器是活动的,并由它来转发数据包,如果活动路由器发生了故障,将选择一个等待路由器来替代活动路由器,但是在本网络内的主机看来,虚拟路由器没有改变。所以主机仍然保持连接,没有受到故障的影响,这样就较好地解决了路由器切换的问题。
为了减少网络的数据流量,在设置完活动路由器和等待路由器之后,只有活动路由器和等待路由器定时发送HSRP报文。如果活动路由器失效,等待路由器将接管成为活动路由器。如果等待路由器失效或者变成了活动路由器,将由另外的路由器被选为等待路由器。
在实际的一个特定的局域网中,可能有多个热等待组并存或重叠。每个热等待组模仿一个虚拟路由器工作,它有一个Well-known-MAC地址和一个IP地址。该IP地址、组内路由器的接口地址、主机在同一个子网内,但是不能一样。当在一个局域网上有多个热等待组存在时,把主机分布到不同的热等待组,可以使负载得到分担。
二、HSRP协议数据包格式
在热等待组内,路由器定时以不同类型的数据报文广播状态信息。该协议运行在UDP之上,端口号为1985,目的地址为多播地址224.0.0.2,TTL标记为1。数据包的源地址为发送方路由器的实际IP地址,而不是虚拟地址,这样可以用来标记不同的路由器。UDP的格式如图1所示。
在每一个虚拟局域网内都有一个HSRP组,从逻辑上讲,Cisco 7010和Cisco 5509的RSM在每个虚拟局域网上都有局域网接口,并且都配置有IP地址,同时配置一个虚拟地址,该地址作为在该虚拟局域网内所有主机的网关。下面以VLAN 9为例,RSM中VLAN 9的配置如下:
---- interface Vlan9
---- description surportcenter
---- ip address 202.120.95.66 255.255.255.224
该路由器在该VLAN9上的接口的IP地址以及掩码
no ip redirects
no ip directed-broadcast
no ip route-cache cef
standby 9 timers 3 250
定义热等待组号为9,每3秒交换一次hello信息,250没有收到hello信息就开切换
standby 150 priority 110
定义路由器的权值,值越大,成为活动路由器的希望越大
standby 9 preempt
Enable该组的HSRP抢占功能,谁的权值大就可以立即成为活动路由器
standby 9 ip 202.120.95.65
该组的虚拟IP地址,作为该VLAN中主机的网关地址
Cisco 7010路由器中接口的配置如下:
interface FastEthernet0/0.9
description surportcenter
ip address 202.120.95.67 255.255.255.224
cisco7010在VLAN9上的接口的IP地址以及掩码,该地址和RSM中的地址必须属于同一个子网,并且不同
no ip redirects
encapsulation is l 9
所使用的虚拟局域网协议
standby 9 timers 3 250
和在RSM中的含义一样,并且必须相同
standby 9 priority 100
比在RSM中的值小,所以RSM在该VLAN中为活动的
standby 9 preempt
和在RSM中含义一样
standby 9 ip 202.120.95.65
该组的虚拟IP地址,必须和RSM中一样
为了达到负载均衡的目的,应该使Cisco 5509 RSM和Cisco 7010承担大致相同的负载,我们的方法是,在RSM中,VLAN 1到VLAN 30的权值为110,VLAN 31到VLAN 60的权值为100; 相反,在Cisco 7010中,VLAN 1到VLAN 30的权值为100,VLAN 31到VLAN 60的权值为100。这样,在正常情况下,Cisco 5509的RSM负责VLAN 1到VLAN 30的路由,Cisco 7010负责VLAN 31到VLAN 60的路由。如果有一方出现了故障,将由另一个来负载全部的路由工作。
五、HSRP存在的问题
对于在HSRP协议,最大的问题是没有提供安全防护,在一个局域网内部,通过发送虚假的UDP多播数据包很容易对局域网中的路由器实施攻击,导致数据包黑洞(Packet Black Hole)和拒绝服务攻击(Denial-of-Service Attack)。一般无法从一个局域网的外部实施攻击,因为大多数路由器都不转发目的地址为所有路由器的多播地址(224.0.0.2)。
联系客服