首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 互联网 >

HSRP协议引见

2012-10-08 
HSRP协议介绍本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁

HSRP协议介绍
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。

msn: yfydz_no1@hotmail.com
来源:http://yfydz.cublog.cn

参考资料: RFC2281

1. 前言HSRP(Hot Standby Router Protocol)是CISCO公司制定的专有路由器备份协议,支持多台路由器形成热备而消除单台设备失效造成的网络中断。HSRP并不是IETF的相关工作组制定的,只是因为CISCO设备应用广泛,所以由其提交的协议就采纳为RFC,使其他厂商也可以实现,但Cisco申请了专利,要得到Cisco的授权(巨FT)。2. 协议说明HSRP协议基本是用在终端主机的第一跳路由器上,而不是骨干网络中运行动态路由协议的路由器上。HSRP可以在多台路由器上运行,但有且只有一台路由器是活动(active)、真正进行网络数据转发的,其他都是备份,但会根据设备优先级选出一台作为第一热备机(standby),主机失效后由其替代,其他备份机再重新选standby。HSRP是按网络接口配置的,即配置HSRP协议具体运行在哪个接口卡上。HSRP协议数据只周期性在active机和standby机之间通信,其他机就只接收数据不发送数据。HSRP协议可以同时运行多个组,每个组代表应该虚拟路由器,而一台路由器可以同时加入多个HSRP组。每个组只有一个虚拟IP和一个虚拟MAC地址。运行HSRP必须要配置的参数为:备份组号:      Standby group number虚拟MAC地址:   Virtual MAC address优先级:        Priority认证数据(口令):Authentication DataHello间隔时间: Hellotime失效时间:      Holdtime组内至少有一台设备必须配置而其他设备可能配置的参数为:虚拟IP地址:    Virtual IP Address任何设备可选配置:抢占能力:      Preemption capability HSRP协议状态说明   1. 初始化: Initial      这是个起始状态表示HSRP还没运行下,通过改变路由器配置或网卡第一次启动时会进入这个状态。   2. 学习:Learn      这时路由器还没确定虚拟IP地址,也没收到认证过的活动路由器的Hello信息,这个状态下路由器      仍在等待来自活动路由器的信息。   3. 监听:Listen      路由器已经知道虚拟IP地址,但本身既不是活动路由器也不是热备路由器,本机接收来自其他路由      器的hello信息。   4. 说话:Speak      路由器周期性的发送发送hello信息,并主动参加活动路由器和热备路由器的选举。如果路由器已      经拥有虚拟IP地址的话就不进入此状态。   5. 热备:Standby      路由器是下一个活动路由器的候选,并周期地发送hello信息,除了及其短暂的时间内,一个组里      最多只能有一个热备路由器。   6. 活动:Active      路由器当前要进行目的MAC是HSRP组的虚拟MAC地址的网络数据的转发,并周期性的发送Hello信息。      除了及其短暂的时间内,一个组里 最多只能有一个活动路由器。 以下是HSRP协议事件有限状态机的事件说明:      a - HSRP协议被配置到一个网卡使能      b - HSRP在一个网卡上禁用,或者网卡停用      c - 活动定时器超时,在失效时间内没收到hello信息      d - 热备定时器超时,在热备失效时间内没收到hello信息      e - Hello定时器超时,定时发送hello信息      f - 在说话状态下接收到有更高优先权的路由器的hello信息      g - 接收到来自活动路由器的更高优先权的hello信息      h - 接收到来自活动路由器的更低优先权的hello信息      i - 接收到活动路由器的退出消息      j - 接收到更高优先权的路由器的Coup消息      k - 接收到从热备路由器发来的更高优先权的hello消息HSRP协议动作说明:      A  启动活动定时器:Start Active Timer         如果接收到认证过的活动路由器的hello信息时该事件触发,此定时器的超时设置为         hello信息中的失效时间(hold time);没收到的话超时设为路由器自身配置的失效         时间,活动定时器启动。      B  启动热备定时器:Start Standby Timer         如果接收到认证过的热备路由器的hello信息时该事件触发,此定时器的超时设置为         hello信息中的失效时间(hold time);没收到的话超时设为路由器自身配置的失效         时间,热备定时器启动。      C  停止活动定时器:Stop Active Timer         活动定时器停止。      D  停止活动定时器:Stop Standby Timer         热备定时器停止。      E  学习参数:Learn Parameters         当接收到经过认证的活动路由器的消息时进行动作,如果该路由器没有手动配置         虚拟IP地址,则虚拟IP地址可以从这些消息中学习到,路由器也可以从信息中学         习到hello间隔时间和失效时间。      F  发送hello消息:Send Hello Message         路由器发送hello消息,描述自身状态,hello间隔时间和失效时间。      G  发送Coup消息:Send Coup Message         路由器发送Coup消息来通知活动路由器现在有优先权更高的路由器存在。      H  发送退出消息:Send Resign Message         路由器发送退出消息允许其他路由器成为活动路由器。      I  发送假ARP消息:Send Gratuitous ARP Message         路由器发送对应HSRP组的虚拟IP和虚拟MAC的ARP广播信息,这些消息中的源MAC地址         为虚拟MAC地址。 HSRP协议状态转换表(RFC里没画状态状态图,就给了这个表,看起来费劲一些,凑合看吧)                               States+-----+----------+----------+----------+----------+----------+----------+|     |    1     |     2    |    3     |    4     |    5     |     6    ||     |  Initial |  Learn   |  Listen  |  Speak   |  Standby |   Active |+-----+----------+----------+----------+----------+----------+----------+|Event|                                                                 |+-----+----------+----------+----------+----------+----------+----------+|  a  |  AB/2|3+ |          |          |          |          |          |+-----+----------+----------+----------+----------+----------+----------+|  b  |          |   CD/1   |   CD/1   |   CD/1   |   CD/1   |   CDH/1  |+-----+----------+----------+----------+----------+----------+----------+|  c  |          |          |   AB/4   |          |  CDFI/6  |          |+-----+----------+----------+----------+----------+----------+----------+|  d  |          |          |   B/4    |   D/5    |          |          |+-----+----------+----------+----------+----------+----------+----------+|  e  |          |          |          |    F     |    F     |    F     |+-----+----------+----------+----------+----------+----------+----------+|  f  |          |          |          |   B/3    |   B/3    |          |+-----+----------+----------+----------+----------+----------+----------+|  g  |          |   EAB/3  |    EA    |   EA     |   EA     |   AB/4   |+-----+----------+----------+----------+----------+----------+----------+|  h  |          |   EAB/3  | A|BGFI/6*| A|BGFI/6*| A|BGFI/6*|    G     |+-----+----------+----------+----------+----------+----------+----------+|  i  |          |          |   AB/4   |   A      |  CFI/6   |          |+-----+----------+----------+----------+----------+----------+----------+|  j  |          |          |          |          |          |   ABH/4  |+-----+----------+----------+----------+----------+----------+----------+|  k  |          |          |    B     |   B/3    |  B/3     |    B     |+-----+----------+----------+----------+----------+----------+----------+|  l  |          |          |    B/4   |   D/5    |          |    B     |+-----+----------+----------+----------+----------+----------+----------+ 3. 协议定义 3.1 包头头参数HSRP包的源地址是本机地址,目的地址为224.0.0.2,为一多播地址,IP包的TTL值为1,因此数据不能跨网段;使用UDP协议,目的端口为1985(纪念CISCO公司的成立年份?)。3.2 HSRP协议数据格式                          1                   2                   3   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   |   Version     |   Op Code     |     State     |   Hellotime   |   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   |   Holdtime    |   Priority    |     Group     |   Reserved    |   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   |                      Authentication  Data                     |   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   |                      Authentication  Data                     |   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   |                      Virtual IP Address                       |   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+其中:   Version: HSRP版本号,1字节,RFC2281中定义为0;   Op Code: 操作码,1字节,描述该HSRP信息的类型,可能的取值为:         0 - Hello,正常通告信息         1 - Coup,路由器希望成为活动路由器时发送         2 - Resign,路由器不再作为活动路由器时发送   State: 状态,1字节,用于描述路由器的状态,可能取值为:         0 - Initial         1 - Learn         2 - Listen         4 - Speak         8 - Standby        16 - Active   Hellotime: Hello信息的间隔时间,1字节,只在Hello包中有效,时间数值单位为秒,        通常是系统配置的,如果没有配置,则可从活动路由器的的经过认证的Hello信息中获取。        如果没从hello消息中学习到,缺省为3秒。   Holdtime: 失效时间,1字节,数值以秒为单位。只在Hello包中有效,时间数值单位为秒,        失效时间最少是hello时间的3倍,通常是手动配置的,如果没有配置,则可从活动路        由器的的经过认证的Hello信息中获取。发送hello信息的路由器必须设置失效时间。        路由器已经处于活动状态时不准再从hello信息中学习新的失效时间。        如果没从hello消息中学习到,缺省为10秒。    Priority: 优先权值,1字节,用来选举活动和热备路由器,数值大者优先级高,相同时IP地        址大者优先级高    Group: 组号,1字节,标志热备组,对于Token Ring,有效值为0~2,其他类型网络0~255都有效;    Authentication Data: 认证数据,8字节,明文的8字节口令值,缺省是:          0x63 0x69 0x73 0x63 0x6F 0x00 0x00 0x00.    Virtual IP Address: 虚拟IP地址,4字节,本组内使用的虚拟IP地址,如果该地址没有         配置到路由器上,则是通过经过了认证的Hello信息得到。4. 结论 HSRP是比较早的路由器热备协议,对后来的热备协议有较大影响,VRRP和HSRP就很类似,不过这些协议最大的问题就是内部安全,如果攻击者在内部发送虚假协议信息的话是容易得手的,而从外部则比较难攻击。

热点排行