HSRP(主机备份路由器协议)介绍及校园网的应用

--- 随着 Internet 的日益普及,人们对网络的依赖性也越来越强。这同时对网络的稳定性提出了更高的要求,人们自然想到了基于设备的备份结构,就像在服务器中为提高数据的安全性而采用双硬盘结构一样。路由器是整个网络的核心和心脏,如果路由器发生致命性的故障,将导致本地网络的瘫痪,如果是骨干路由器,影响的范围将更大,所造成的损失也是难以估计的。因此,对路由器采用热备份是提高网络健壮性 (robust) 的必然选择。在一个路由器完全不能工作的情况下,它的全部功能便被系统中的另一个备份路由器完全接管,直至出现问题的路由器恢复正常,这就是 Cisco 公司的热等待路由协议 (Hot Standby Router Protocal HSRP) 要解决的问题。
    一、 HSRP 协议概述
    ---- 实现 HSRP 的条件是系统中有多台路由器,它们组成一个 热等待组 ,这个组形成一个虚拟路由器。在任一时刻,一个组内只有一个路由器是活动的,并由它来转发数据包,如果活动路由器发生了故障,将选择一个等待路由器来替代活动路由器,但是在本网络内的主机看来,虚拟路由器没有改变。所以主机仍然保持连接,没有受到故障的影响,这样就较好地解决了路由器切换的问题。
    ---- 为了减少网络的数据流量,在设置完活动路由器和等待路由器之后,只有活动路由器和等待路由器定时发送 HSRP 报文。如果活动路由器失效,等待路由器将接管成为活动路由器。如果等待路由器失效或者变成了活动路由器,将由另外的路由器被选为等待路由器。
    ---- 在实际的一个特定的局域网中,可能有多个热等待组并存或重叠。每个热等待组模仿一个虚拟路由器工作,它有一个 Well-known-MAC 地址和一个 IP 地址。该 IP 地址、组内路由器的接口地址、主机在同一个子网内,但是不能一样。当在一个局域网上有多个热等待组存在时,把主机分布到不同的热等待组,可以使负载得到分担。
    二、 HSRP 协议数据包格式
    ---- 在热等待组内,路由器定时以不同类型的数据报文广播状态信息。该协议运行在 UDP 之上,端口号为 1985 ,目的地址为多播地址 224.0.0.2 TTL 标记为 1 。数据包的源地址为发送方路由器的实际 IP 地址,而不是虚拟地址,这样可以用来标记不同的路由器。 UDP 的格式如图 1 所示。
    三、 HSRP 中路由器的状态及状态转换
    ---- 在热等待组中,每个路由器运行着一个简单的状态机,通过当前的状态和事件的触发,而转换成不同的状态。其中包括以下状态。
    ---- 1 .初始状态 HSRP 启动时的状态, HSRP 还没有运行,一般是在改变配置或端口刚刚启动时进入该状态。
    ---- 2 .学习状态 在该状态下,路由器还没有决定虚拟 IP 地址,也没有看到认证的、来自活动路由器的 HELLO 报文。路由器仍在等待活动路由器发来的 HELLO 报文。
    ---- 3 .监听状态 路由器已经得到了虚拟 IP 地址,但是它既不是活动路由器也不是等待路由器。它一直监听从活动路由器和等待路由器发来的 HELLO 报文。
    ---- 4 .说话状态 在该状态下,路由器定期发送 HELLO 报文,并且积极参加活动路由器或等待路由器的竞选。
    ---- 5 .等待状态 处于该状态的路由器是下一个候选的活动路由器,它定时发送 HELLO 报文。
    ---- 6 .活动状态 处于活动状态的路由器承担转发数据包的任务,这些数据包是发给该组的虚拟 MAC 地址的。它定时发出 HELLO 报文。
    ---- 另外,每一个路由器都有 3 个计时器,即活动计时器、等待计时器和呼叫计时器。
    ---- 状态的变化都是由事件引起的,不同的事件作用于不同的状态在就会产生不同的动作,如启动计时器、发报文等。
    四、 HSRP 在校园网中实现
    ---- 华东师范大学校园网规模比较大,上网的主机相对比较多,共分配有 16 C 类地址。为了保证数据安全和广播风暴,提高网络性能,将校园网划分成 60 个子网。在网络中心采用 Cisco 系统公司的 Catalyst 5509 作为中心交换机,并且带有 RSM 作为 VLAN 间的路由器,另外使用一个 Cisco 7000 系列的路由器和 RSM 。它们都支持 VLAN 以及 VLAN 上的 HSRP 。如图 2 所示。
    ---- 在每一个虚拟局域网内都有一个 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)
    ---- HSRP 只是实现了路由器的平滑切换,使用户感觉不到这种切换,保证了网络的稳定性。但是,一个 HSRP 组内的路由器不能互通它们的其他网络配置信息,例如访问控制列表等。所以在管理实施管理时,为了保证一致性,必须对它们进行相同的修改,增加了管理的复杂性,这也许是为了提高性能而付出的代价吧。
    ---- ( 作者地址 : 上海中山北路 3663 号老图书馆一楼华东师范大学网络信息中心, 200062)
    ---- 版本 : 指示 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 地址,它可以是从活动路由器的呼叫报文中学习来的。如果没有配置该地址,并且呼叫报文是需要认识的,那么只能通过活动路由器学习。
    补充几点~
    1 。在 cisco 的路由器上面~认证是在学习虚拟 IP 地址的时候用的,在一台路由器上面配置 standby 1 ip 192.168.1.254 另一台配置 standby 1 ip ,虚拟的 ip 地址可以通过 hello 包学习过来,配置了认证之后,只有两边密码一样的情况下才会学习到,如果两边都配置 standby 1 ip 192.168.1.254 的话,认证没有什么作用。
    2 。一个接口上面多个 hsrp 的组需要硬件支持, 2500 上面不能直接支持多个 hsrp 的组~需要通过一些特殊的方法实现。
    3 hsrp track 功能,可以查看一个端口,若追踪的端口 down 了~以太口会自动的降低优先级,变成 standby 的功能。不过需要配置和计算。

你可能感兴趣的:(生活,职场,休闲)