HSRP协议原理及配置实例


一、 HSRP协议概述
---- 实现HSRP的条件是系统中有多台路由器,它们组成一个“热等待组”,这个组形成一个虚拟路由器 。在任一时刻,一个组内只有一个路由器是活动的,并由它来转发数据包,假如活动路由器发生了故障,将选择一个等待路由器来替代活动路由器,但是在本网络内的主机看来,虚拟路由器没有改变 。所以主机仍然保持连接,没有受到故障的影响,这样就较好地解决了路由器切换的问题 。
---- 为了减少网络的数据流量,在设置完活动路由器和等待路由器之后,只有活动路由器和等待路由器定时发送HSRP报文 。假如活动路由器失效,等待路由器将接管成为活动路由器 。假如等待路由器失效或者变成了活动路由器,将由另外的路由器被选为等待路由器 。
---- 在实际的一个特定的局域网中,可能有多个热等待组并存或重叠 。每个热等待组模拟一个虚拟路由器工作,它有一个Well-known-MAC地址和一个IP地址 。该IP地址、组内路由器的接口地址、主机在同一个子网内,但是不能一样 。当在一个局域网上有多个热等待组存在时,把主机分布到不同的热等待组,可以使负载得到分担 。
二、HSRP协议数据包格式
---- 在热等待组内,路由器定时以不同类型的数据报文广播状态信息 。该协议运行在UDP之上,端口号为1985,目的地址为多播地址224.0.0.2,TTL标记为1 。数据包的源地址为发送方路由器的实际IP地址,而不是虚拟地址,这样可以用来标记不同的路由器 。UDP的格式如图1所示 。
 
 
---- 版本: 指示HSPR的版本信息 。
---- 操作码: 用来描述数据包中报文的类型,可能的值为0、1和2,如表1所示 。
---- 状态: 描述发出该报文的路由器的当前状态 。在一个热等待组内的所有路由器都运行着这样的状态机,有以下6种状态,见表2 。
---- 呼叫时间: 只在呼叫报文中有意义,表示路由器定时发送呼叫报文的间隔时间,以秒为单位 。假如该参数没有在路由器上配置,它可能要从活动路由器上学习获得 。假如没有配置也没有学习,那么建议使用缺省值3 。
---- 保持时间: 只在呼叫报文中有意义,被接收路由器用来判定该呼叫报文是否合法,单位为秒,其值至少是呼叫时间的3倍 。假如该参数没有配置,也同样可以从活动路由器上学习 。活动路由器不能从等待路由器学习呼叫时间和保持时间,它只能继续使用从先前的活动路由器学习来的该值 。建议的缺省值为10 。
---- 优先级: 该参数用来选择活动和等待路由器,2个具有不同优先级的路由器,优先级高的将成为活动路由器 。2个具有相同优先级的路由器,IP地址高的将成为活动路由器 。
---- 组: 用来标记路由器所在的热等待组 。对令牌环类型的网络,合法的值是0、1和2,对于其他类型的网络,合法值是0~255 。
---- 认证码: 包括8个明文的字符作为密码,假如没有配置,缺省值为0×63 0×69 0×73 0×63 0×6F 0×00 0×00 0×00 。
---- 虚拟IP地址: 4个8位组,用来指定本热等待组的虚拟IP地址,它可以是从活动路由器的呼叫报文中学习来的 。假如没有配置该地址,并且呼叫报文是需要熟悉的,那么只能通过活动路由器学习 。
---- 在配置路由器或路由交换模块(Route Switch Module,RSM)时需要为上述字段赋值 。
三、 HSRP中路由器的状态及状态转换
---- 在热等待组中,每个路由器运行着一个简单的状态机,通过当前的状态和事件的触发,而转换成不同的状态 。其中包括以下状态 。
---- 1.初始状态 HSRP启动时的状态,HSRP还没有运行,一般是在改变配置或端口刚刚启动时进入该状态 。

推荐阅读