总的来说就是,由两台以上的路由器组成一个HSRP组,在该组之中选举一台路由器作为Active路由器,一台路由器作为Standby路由器,其它路由器则进入Listen状态。实际工作时,是由Active路由器去转发数据,一旦Active路由器不能保持正常的工作状态,则由Standby路由器去接替Active路由器的工作,然后再在其它路由器中选举一台Standby路由器。但是这一切对于终端用户来说是透明的,整个HSRP组对外呈现出的是一个虚拟的IP地址和一个虚拟的MAC地址。

下面我们用一个实例来说明一下HSRP的工作原理。

 

这是 CCNP SWITCH 642-813 Official Certification Guide 上的一个图例。

配置如下:

CatalystA

CatalystA(config)# interface vlan 50

CatalystA(config-if)# ip address 192.168.1.10 255.255.255.0

CatalystA(config-if)# standby 1 priority 200

CatalystA(config-if)# standby 1 preempt

CatalystA(config-if)# standby 1 ip 192.168.1.1

 

CatalystB

CatalystB (config)# interface vlan 50

CatalystB (config-if)# ip address 192.168.1.11 255.255.255.0

CatalystB (config-if)# standby 1 priority 100

CatalystB (config-if)# standby 1 ip 192.168.1.1

 

验证:

CatalystA #show standby brief

                   P indicates configured to preempt.

                   |

Interface  Grp    Pri    P  State    Active          Standby         Virtual IP

Vl50      1     200    P  Active   local           192.168.1.11    192.168.1.1

 

CatalystA #show standby   

Vlan50 - Group 1

  State is Active

    2 state changes, last state change 04:19:25

  Virtual IP address is 192.168.1.1

  Active virtual MAC address is 0000.0c07.ac01

    Local virtual MAC address is 0000.0c07.ac01 (v1 default)

  Hello time 3 sec, hold time 10 sec

    Next hello sent in 1.524 secs

  Preemption enabled

  Active router is local

  Standby router is 192.168.1.11, priority 100 (expires in 7.000 sec)

  Priority 200 (configured 200)

  IP redundancy name is "hsrp-Vl50-1" (default)

 

CatalystB #show standby

Vlan50 - Group 1

  State is Standby

    1 state change, last state change 04:20:13

  Virtual IP address is 192.168.1.1

  Active virtual MAC address is 0000.0c07.ac01

    Local virtual MAC address is 0000.0c07.ac01 (v1 default)

  Hello time 3 sec, hold time 10 sec

    Next hello sent in 1.880 secs

  Preemption disabled

  Active router is 192.168.1.10, priority 200 (expires in 7.420 sec)

  Standby router is local

  Priority 100 (default 100)

  IP redundancy name is "hsrp-Vl50-1" (default)

 


但是如果你仔细推敲上面的配置就会发现一个问题,那就是无论在什么情况下,在同一时间只有一台路由器在转发数据,而其他路由器都在一边围观。那么我们能否把其它的路由器都利用起来呢?其实这就是HSRP的负载均衡的解决方案。在教材里有这么一句话:Load balancing traffic across two uplinks to two HSRP routers with a single HSRP group is not possible.

        请看下面的图例:

配置如下:

CatalystA(config)# interface vlan 50

CatalystA(config-if)# ip address 192.168.1.10 255.255.255.0

CatalystA(config-if)# standby 1 priority 200

CatalystA(config-if)# standby 1 preempt

CatalystA(config-if)# standby 1 ip 192.168.1.1

CatalystA(config-if)# standby 2 priority 100

CatalystA(config-if)# standby 2 ip 192.168.1.2

 

CatalystB(config)# interface vlan 50

CatalystB(config-if)# ip address 192.168.1.11 255.255.255.0

CatalystB(config-if)# standby 1 priority 100

CatalystB(config-if)# standby 1 ip 192.168.1.1

CatalystB(config-if)# standby 2 priority 200

CatalystB(config-if)# standby 2 preempt

CatalystB(config-if)# standby 2 ip 192.168.1.2

 

这样的方法就是将vlan50所属的终端分为两组,其中一组的默认网关是192.168.1.1 而另一组的默认网关是192.168.1.2 然后建立两个HSRP组。在组1中,路由器A作为Active路由器,路由器B作为Standby路由器;而在组2中,路由器B作为Active路由器,路由器A作为Standby路由器。这样的话,两台路由器就可以在转发本组流量的同时,还能作为对方的热备路由器,更加高效的实现了网络的高可用性。

这个配置里面要注意的就是优先级和抢占的设置。

另外一般在实际的生产环境中很少会将一个vlan中的终端分成两组,再配置不同的默认网关。因为如果是手工配置静态IP地址还好说,如果是使用DHCP的话,配置起来就比较麻烦。所以通常都是将多个vlan分成两组,以vlan为单位进行负载均衡。

这里给出的两个图例只是演示了HSRP的最常见的两个使用场景的应用。而HSRP的认证和接口跟踪也是非常实用的技术。当然在实际生产环境中,如何使用HSRP也和网络的整体架构的设计有很大的关系。