Cisco热备份路由协议(HSRP)

出处:考试大 作者:huangling 日期:2007年07月13日 13时15分
       

I、 发送无偿ARP消息

  路由器通过广播ARP应答包来把组的虚IP地址和虚MAC地址广播出去。如同ARP包一样,这个包使用虚拟MAC地址作为链路层包头中的源MAC地址。

  5,7 状态过渡

  下面的表格说明了这种状态机制的各状态间的转换过程。对于每个时间以及路由器所处的每个状态来说,路由器必须执行前面已说明的一系列操作并转换为即定的状态。如果没有操作被事先声明,也就不会有任何操作发生,如果没有声明任何状态改变,也不会有任何的状态的改变。

  下面表中所使用的符号是在5,6节的操作列表中所列出的一系列操作所对应的字母。状态则是用在5,3节中的状态列表中个状态所对应的数字来表示。斜线(‘/’)是操作和状态的分隔符。状态的转变可以是二选一的,这主要取决于外部状态。二选一的状态用‘|’来分隔。

  详细情况请见附加说明

  说明

  + 如果配置了虚IP地址,应设为状态3(监听),如果没有设置虚IP地址,应设为状态2(学习)。这两种情况都使用操作A和B

  * 如果路由器被配置为优先占取,则采用操作B,G,F,和I,而且设为状态6(激活)。

  如果路由器没有被设为优先占取,则采用操作A,并且没有状态变化。    

  6,对MAC地址的考虑

  6. 1 概述

  每个HSRP组都有一个众所周知的联合的虚拟MAC地址。在令牌环网络上,这些地址实际上属于功能地址。下面这三个地址:0xC0 0x00 0x00 0x01 0x00 0x00, 0xC0 0x00 0x00 0x02 0x00 0x00, 以及 0xC0 0x00 0x00 0x04 0x00 0x00分别与组0,1,2相联系。

  在其他媒质上,虚MAC地址为0x00 0x00 0x0C 0x07 0xAC XX,其中 XX代表HSRP的组号。凡执行HSRP都要尽可能地使用这种公认的HSRP MAC地址作为该组的虚MAC地址。

  活路由器必须接收和发送用于定义组的虚MAC地址的数据包。它在离开激活状态后则必须停止发送或接受这种包。

  当且仅当路由器处于激活状态下时,路由器必须使用组虚拟MAC地址作为它的Hello消息包的源MAC地址。这对于处于学习状态的网桥来说是非常必要的,这样可以使网桥能够断定这个虚MAC地址是处于哪个网段的。

  对于每个组来说,都要有一个虚拟IP地址和一个虚拟MAC地址。这是个非常理想的情况,因为这样使得ARP表处于一种最终状态,而不需要象HSRP活路由器那样随着活路由器人选的改变而随时改变表中的数据。

  另外,对于HSRP在网桥环境下工作时,网桥必须能够在虚MAC地址改变时很快地进行自我刷新。虽然处于学习状态的网桥理论上能够作到这一点,但有些还是在这方面存在着问题的。因此推荐只有真正处于学习状态的网桥才能使用HSRP.虚MAC地址的改变可能会对那些与MAC地址捆绑的附加状态的环境产生负面的影响。

  例如令牌环网络。如果源路由网桥正在使用的话,RIF将以虚MAC地址存在主机的RIF缓存里。RIF指出了用于到达MAC地址的路径和最后的环。在路由器转为活路由器时,它们将不会影响在带桥的环上的主机的RIF缓存。这也许会导致数据包被转发到上一级活路由器的环上。

  在这种环境下,一台路由器也许会使用它标准的MAC地址作为虚MAC地址。这种做法是非常不被提倡的。在这种模式下,虚IP地址将会超时路由到不同的MAC地址,而最终会在路由的终点产生问题,因为ARP表是假设了一个在MAC地址和IP地址见相对静态的关系。而在这种情况下,只要当路由终点接受到一个进入激活状态的路由器所产生的毫无根据的ARP应答时,则ARP表就会进行更新。

 6.2 地址过滤器

  正如前面所提到的,路由器正在以它们的组的MAC地址和IP地址仿效着一个虚路由器。MAC地址理论上是由路由器的端口控制器的一个地址过滤器或MAC地址列表来提供的。这对于路由器来说,在维护它们的主MAC地址时增加一个或多个虚MAC地址到它们的控制器的MAC地址过滤器中是非常理想的。

  不幸的是,有些端口控制器只支持一个unicastMAC地址的地址过滤器。或者说,在令牌环网络中,那些应由HSRP所使用的功能性地址已经被其他协议所占用了。这种情况下,这些路由器仍旧能够执行HSRP,但当路由器假设或放弃作为活路由器进行控制时,HSRP必定改变端口的主MAC地址。

  这就存在着一些潜在的问题,因为有些传输可能会希望使用路由器的主MAC地址。但问题也许会因为路由器发送那些无端的ARP包来回答它没有运行HSRP的IP地址来减轻。

  尽管如此,其他网络实体也应该在使用IP时通过刷新ARP表来反映路由器当前正使用的是组的虚MAC地址,而不是它的主MAC地址。

  有些协议也许因为端口主MAC地址的改变而不能与备份协议同时运行。举例说,DECnet IV和HSRP就不会同时运行在同一台设备上。

  6.3 ICMP重定向

  当运行HSRP时,防止主机发现备份组中路由器的主MAC地址是非常重要的。因此应该禁用任何可能把路由器的主MAC地址通知给主机的协议。所以,凡HSRP所涉及到的路由器,即使它只有一个端口运行了HSRP,都不能在运行HSRP的端口发送ICMP重定向包。

  6.4 ARP 代理

  一般地说,主机在通过它们缺省路由的配置来学习HSRP的虚IP地址。这些主机把包发送给虚IP地址用以达到它在局域网之外的目的地。在某些情况下,主机可能使用由ARP代理来路由到局域网之外。这时,主机使用由ARP代理应答提供的MAC地址。如果ARP代理应答说明了HSRP虚MAC地址,则HSRP功能将被保留。

  如果一台HSRP路由器被配置为支持ARP代理的HSRP,那么这台路由器必须在它所产生的任何ARP代理应答中说明HSRP虚MAC地址。ARP代理应答一定不要受HSRP状态机制的约束。状态机制的约束可能会导致ARP代理应答的匮乏,因为这些ARP代理应答可能会受到其他一些因素的限制,如水平分割原则。

  7.安全上的考虑

  这种协议没有提供安全方面的保证。消息中的认证域对于防止错误配置是非常有用的。该协议很容易被局域网中的入侵者攻击,这可能会导致一个黑洞的产生和拒绝服务。

  但从局域网外面是很难对该协议进行攻击的,因为大多数路由器不会转发到多播地址(224.0.0.2)的数据包。

最后更新时间:2008-05-28 12:01:59
文章评论
共有 0 位网友发表了评论
用户名: 新注册) 密码: 匿名评论 [查看所有评论]

评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。