HSRP在企业网中的应用
HSRP简介
热备份路由器协 议(HSRP)的设计目标是支持特定情况下 IP 流量失败转移不会引起混乱、并允许主机使用单路由器,以及即使在实际第一跳路由器使用失败的情形下仍能维护路由器间的连通性。换句话说,当源主机不能动态 知道第一跳路由器的 IP 地址时,HSRP 协议能够保护第一跳路由器不出故障。
HSRP工作原理
负责转发数据包的路由器称之为活动路由器(Active Router)。一旦主动路由器出现故障,HSRP 将激活备份路由器(Standby Routers)取代主动路由器。HSRP 协议提供了一种决定使用主动路由器还是备份路由器的机制,并指定一个虚拟的 IP 地址作为网络系统的缺省网关地址。如果主动路由器出现故障,备份路由器(Standby Routers)承接主动路由器的所有任务,并且不会导致主机连通中断现象。
HSRP 运行在 UDP 上,采用端口号1985。路由器转发协议数据包的源地址使用的是实际 IP 地址,而并非虚拟地址,正是基于这一点,HSRP 路由器间能相互识别.
实验设备:2台cisco 3640路由器,2台cisco c3550交换机,2台pc机
拓扑图
r1配置步骤
Router>en
Router#conf t
Router(config)#host r1
r1(config)#int f0/0
r1(config-if)#no shut #开启物理接口f0/0
r1(config)#int f0/0.10 #拆分子接口f0/0.10
r1(config-subif)#encapsulation dot1Q 10 #给来自vlan10的数据打标签
r1(config-subif)#ip add 192.168.10.1 255.255.255.0 #配置子接口f0/0 .10 ip地址
r1(config-subif)#int f0/0.20 #拆分子接口f0/0.20
r1(config-subif)#encapsulation dot1Q 20 给来自vlan20的数据打标签
r1(config-subif)#ip add 192.168.20.1 255.255.255.0 配置子接口f0/0.20 ip地址
r1(config)#int f0/0.10 #将f0/0/10加入虚拟组 10
r1(config-subif)#standby 10 ip 192.168.10.254 #给虚拟组10配置虚拟ip
r1(config-subif)#standby 10 priority 120 #调整f0/0.10的优先级为120
r1(config-subif)#standby 10 preempt #启用权力争夺
r1(config)#int f0/0.20 #将f0/0/20加入虚拟组 20
r1(config-subif)#standby 20 ip 192.168.20.254 #给虚拟组20配置虚拟ip
r2配置步骤
Router>en
Router#conf t
Router(config)#
Router(config)#int f0/0
Router(config-if)#no shut
Router(config-subif)#int f0/0.10
Router(config-subif)#encapsulation dot1Q 10
Router(config-subif)#ip add 192.168.10.2 255.255.255.0
Router(config-subif)#int f0/0.20
Router(config-subif)#encapsulation dot1Q 20
Router(config-subif)#ip add 192.168.20.2 255.255.255.0
Router(config)#hostname r2
r2(config)#int f0/0.10 #将f0/0/10加入虚拟组 10
r2(config-subif)#standby 10 ip 192.168.10.254 #给虚拟组配置虚拟ip
r2(config)#int f0/0.20 #将f0/0/10加入虚拟组 10
r2(config-subif)#standby 20 ip 192.168.20.254 #给虚拟组配置虚拟ip
r2(config-subif)#standby 20 priority 120 #调整f0/0.10的优先级为120
r2(config-subif)#standby 20 preempt #启用权力争夺
sw-1配置步骤
sw-1(config)#int f0/0
sw-1(config-if)#switchport mode trunk #将f0/0和f0/1配置成trunk链路
sw-1(config)#int f0/1
sw-1(config-if)#switchport mode trunk
sw-1#vlan database
sw-1(vlan)#vlan 10 #创建vlan10和vlan20
VLAN 10 added:
Name: VLAN0010
sw-1(vlan)#vlan 20
VLAN 20 added:
Name: VLAN0020
sw-1(vlan)#exit
sw-1#conf t
sw-1(config)#int range f0/3 – 10 #在vlan10中加入接口f0/3-10
sw-1(config-if-range)#switchport access vlan 10
sw-1(config-if-range)#int range f0/11 - 15 #在vlan20中加入接口f0/11-15
sw-1(config-if-range)#switchport access vlan 20
sw-2配置步骤
sw-2(config)#int f0/0 #将f0/0和f0/1配置成trunk链路
sw-2(config-if)#switchport mode trunk
sw-2(config-if)#
sw-2(config-if)#
sw-2(config-if)#switchport mode trunk
sw-2#vlan database #创建vlan10和vlan20
sw-2(vlan)#vlan 10
VLAN 10 added:
Name: VLAN0010
sw-2(vlan)#vlan 20
VLAN 20 added:
Name: VLAN0020
sw-2(vlan)#exit
sw-2#conf t
sw-2(config)#int range f0/3 – 10 #在vlan10中加入接口f0/3-10
sw-2(config-if-range)#switchport access vlan 10
sw-2(config-if-range)#int range f0/11 - 15 #在vlan20中加入接口f0/11-15
sw-2(config-if-range)#switchport access vlan 20
测试一:用pc1 ping pc2,并tracert
测试结果
---------------------------------测试结果显示来自数据走的是r1的f0/0/10接口,在vlan 10中r2是备份路由
测试二:用pc2 ping pc1,并tracert
测试结果
---------------------------------测试结果显示来自数据走的是r2的f0/0/20接口,在vlan20 中r1是备份路由
测试三:断开和r1的连接,用pc1ping pc2,并tracert
测试结果
------------------------测试结果显示数据走的是r2的e1.1接口,在vlan 10中r2从备份路由器变为主路由器了
测试四:重新连接r1,用pc1ping pc2,并tracert
测试结果
--------------------------------测试结果表明,当r1恢复连接后,在vlan10中主路由器又变成r1了
上述测试表明实验成功!