HSRP(Hot Standby Routing Protocol)(私有协议 专利号:5.473.599[2])牋 (在三层交换机与路由器上可以做)
·HSRP是一种网关冗余协议,它通过在冗余网关之间共享协议和MAC,提供不间断的IP路径冗余。
·HSRP在2个或多个路由器间创建虚拟MAC和虚拟IP,其实就是将多台物理的路由器组合成一台虚拟路由器。这个虚拟路由器有自已的IP和MAC,主机的网关设为此虚拟IP就可以了。
·HSRP使cisco ios 路由器可以相互监视对方的运行状态,并在HSRP组当前转发失效或是因进行维护而关机时,能非常迅速地接管起来数据报的转发责任。通过多个热备份组,路由器可以同时提供冗余备份或是在不同地IP子网上执行负载分担。?
·HSRP的hello包包含priority(默认100),hello间隔(默认3S),holdtime(默认10S),虚拟网关IP
·HSRP的hello包发向组播地址224.0.0.2
(The standby protocol runs on top of UDP,and uses port number 1985.Packet are sent to multicast address 224.0.0.2 with TTL=1.)
·HSRP路由器的默认优先级是100, 优先级相同的情况下比较IP地址,越小越优。
·一个HSRP组可以包含多台路由器,在一个稳定的组里面只有两台路由器发送hello包,一台是active路由器,一台是备份路由器,其它路由器不发送hello包,但都处于监听状态。
·HSRP可以配置多个组,配多个组的目地是为了做负载分担
·虚拟MAC地址:前40位固定,将HSRP的组标识符换成十六进制,接到最后就可以了
?例如:HSRP组为47,换成十六进制是2f
牋牋牋 MAC地址前40位为0000.0c07.ac
牋牋牋 最后得到:0000.0c07.ac2f
·UDP帧格式的数据部分的格式:
1、Vsersion 8bit:The version of the HSRP messages this document describes version 0.
2、Op Code(操作码) 8bit:用于说明包内的messages type.
包类型有:
① Hello=0用来表明路由器正在工作,并可以成为活跃路由器或者备份路由器
② Coup=1 一台路由器请求成为Active router 所发信息(政变)
③ Resign=2 一台路由器不希望作为Active router所发信息
3、State 8bit:在Standby Group 中的每个路由器都运行着一个状态机制,这个状态机制描述的是Sending messages的路由器的当前状态
4、Hello time 8bit:包含了Router sending hello message 大约的时间间隔,单位:秒。只在hello message中有意义。
如果路由器没有配置hello time,那么将向Active Rotuer 发送的Hello message学习。
如果Hello time 没有配置并且the hello message is authentication,则只能通过学习来获取Hello time.
如果从Active Router 发送的Hello message中没有得到hello time并且也没有手动配置,那么将把值缺省定义为3s.
5、Hold time 8bit:该字段仅在hello message中有效。Hold time 标明了当前hello message有效期。单位:秒。只在hello message 中有意义。
如果没有配置hold time,那么将Active router 发出的hello message中学习。
如果从Active Router发送的hello message 中没有得到hold time 并且也没有手动配置,那么将把值缺省定义为3s.
6、Priority优先级 8bit:该字段用于选择Active and Standby Routers,优先级高的将成为活动路由器,如果优先级相等,这具有最高IP地址的路由器将成为Active Router.
7、Group 8bit:该字段用于指定Standby Group.在令牌环网络中该值为0-2之间。其它媒介中为0-255之间。
8、Authentication Data 32bit:This field contains a clear-text 8 character reused password.
9、Virtual IP address 16bit:用于所有创建的HSRP Group中的virtual IP address.
如果在没有手动配置和The hello message authentication,则只能通过hello message学习来到。
注:备份组中的每一个路由器都通过一个简单的状态机制参与到这个协议中。在协议已经完成选举过程,只有Active and Standby Router 周期性发送HSRP messages.
·HSRP中路由器的状态:
1、Initial All routers begin in the initial state, when HSRP is not running
2、learn牋(没有收到hello包,没有虚拟ip地址,等待收到hello包)*************实验没有
3、listen(收到hello包,有了虚拟ip地址,除了active和standby,其它路由器都是这个状态)
4、speak?Router 将周期性发送Hello Messages,并参与活跃或是备份路由器的竞选。路由器在没有获得虚拟路由器IP地址之前是不能进入发言状态。)
5、Standby?没选到active的,除了active外优先级最高的router,会周期性发hello包,只有一个)
6、active(此时路由器负责转发发送到热备组的虚拟MAC地址的数据包。它定期的发送HELLO消息。在一个HSRP组中只有一台活跃路由器)
·操作参数:
1、在Standby Group 中每一台路由器必须知道下列信息:
①Standby group
②Virtual MAC address
③Priority
④Authentication Data
⑤Hello time
⑥Hold time
⑦Virtual ip address:每个备份组中必须至少有一台路由器要掌握的信息。
⑧Preemption capability 抢占功能:If a router has higher priority than then active router and preemption is configured,it may take over as the active router using a Coup message.
·计时器,每台路由器都维护的3个时钟
①激活时钟:是用来监视活路由器的,在任何时候,只要路由器发现了从活路由器发过来的被认证过的hello消息,激活时钟就开始计时,直到到达hello消息中所设定的hold time 值为止。
②备份时钟:用于监视备份路由器。该时钟也是在路由器发现了从活路由器发过来的被认证的hello消息,随时开始计时,直到到达hello消息中所设定的hold time值为止。
③hello时钟:是在每一个hello time 时间段终止一次。如果路由器是处于会话、备份或激活状态下,它会在hello时钟停止时产生一个hello消息。Hello消息必须是不稳定的。
·Virtual MAC address:
虚拟路由器的MAC地址由三部分组成:
厂商ID+HSRP编码(固定为07.ac)+组ID(换成十六进制,如47:2F)
①vendor ID:MAC address的前3个字节
②HSRP code:2个字(07.ac)标明该MAC是HSRP virtual router
③Group ID:MAC address 最后一个字节
例:0000.0c|07.ac|0a
·ICMP重定向
当运行HSRP时,防止主机发现备份组中路由器的主MAC地址是非常重要的。因此应该禁用任何可能把路由器的主MAC地址通知给主机的协议。所以,凡HSRP所涉及到的路由器,即使它只有一个端口运行了HSRP,都不能在运行HSRP的端口发送ICMP重定向包。
注:在cisco ios 12.1.3 T以上版本中,cisco路由器将自动关闭ICMP重定向。
使用HSRP时,当末端工作站使用的缺省网关不可用时,可以继续在网络上进行通信。
①在HSRP中,是采用有一套的路由器,分为活跃、备份、虚拟、其他路由器等体系,在外部看来,它是一台拥有IP和MAC地址的目标路由器。
②活跃路由器的功能是负现转发发送到虚拟路由器的数据。它通过发送hello消息(基于UDP广播)来通告它的活跃状态。
③组中会有另外的一台路由器来作为备份路由器。它的功能是监视HSRP组中的运行状态,并且在当前活跃路由器不可用时,迅速承担起负责数据转发的任务。备份路由器也发送hello消息来通告组中其他的路由器它务份路由器的角色。
④虚拟路由器的功能是向最终的用户来代表一台能持续工作的路由器设备。它有自己的MAC和IP地址。但是实际上它是不用来转发数据色,它的作用仅仅是代表一台可用的路由设备。
⑤其他路由器也监听hello消息,但是不作应答,这样它就不会在备份组有身份的概念,同时它也不参与发送到虚拟路由器的数据包,但是还是转发其他路由器发来的数据包。
注:在每个VLAN子网配置一个单独的HSRP组。
·活跃路由器的竞争机制:
1、默认状态的情况下,MAC地址最小的路由器将成为活跃的路由器。
2、当活跃路由器失效的情况下,备份路由器将成为活跃路由器。但是如果在活跃和备份路由器都失效的情况下,路由器身份的竞争依照如下的原则:
①在HSRP中有最高备份优先级的路由器将成为活跃/备份路由器,缺省的优先级是100,优先级从0-255。
②当优先级相同的情况下,具有最高IP地址的路由器将成为活跃的路由器
③默认还是MAC地址最小的成为活跃路由器
HSRP的运行
前面讲过在HSRP中各种路由器的身份及其它们的职责。
活跃路由器对发送到虚拟路由器的数据流进行响应。
即当一个末端站点发送一个数据包到虚拟路由器的MAC地址,那么由活跃路由器来处理这个数据包。
如果一个末端站点发送一个ARP请求,这时活跃路由器用虚拟路由器的MAC地址来进行响应。
重申:在运行HSRP的同时,很重要的一点就是不能让最终用户知道路由器的实际MAC地址(活跃路由器地址),因此任何可能将路由器的实际的MAC地址告诉最终用户的协议都将被关闭。要确保实际路由器的MAC地址不被发现,启用了HSRP的路由器将会自动关闭ICMP重定向功能。