通常情况下,为了防止网络故障,我们在网络设计上需要考虑该网络的高可用性。在传统二层网络中,我们使用STP协议对二层网络提供冗余性,而在三层网络中,我们往往利用路由协议提供冗余性。那么,如果需要对网关进行冗余,我们可以使用HSRP(热备路由协议)协议,这是思科专有协议,只能在思科设备上使用。
主机若想将数据包转发出本地网络必须要先转发到网关。如果网关发生故障,那么就使得本地网络无法和网关以外的网络进行通信。而转发到网关是需要知道网关的IP和网关 MAC。HSRP 的原理是将多台网关设备组成一组,在该组中的设备维护一个主 IP 地址和主 MAC 地址,即是网关的IP地址及MAC地址。当组中的主设备失效,备份设备依然能够接替主设备继续工作,面这接替过程对于主机而言是透明的。
现在我们来做个小实验。
图1 网络拓扑
我们可以看到这张拓扑上,一台PC上游连接了两台路由器。在正常的情况下,我们只能取其中一台作为PC的网关。而在使用了HSRP协议后,我们将R1,R2加入同一个HSRP组,我们将R1设为主设备,R2设置为备份设备。
首先要规划一下拓扑的IP地址。VPC的IP地址为10.1.1.10。R1的e0/0接口地址为10.1.1.1,R2的e0/0接口地址为10.1.1.2。我们把网关的地址设置为10.1.1.254。
我们在R1上配置HSRP协议。
# 进入到接口中
R1(config)#int e 0/0
# 配置虚拟网关的IP地址
R1(config-if)#standby 1 ip 10.1.1.254
# 设置优先级为105,优先级默认为100,优先级数值越大越优
R1(config-if)#standby 1 priority 105
# 开启抢占模式,优先级更高的设备可以抢占成为主设备
R1(config-if)#standby 1 preempt
# 当设备发现自己优先级更高,等待多久开始抢占
R1(config-if)#standby 1 preempt delay minimum 10
继续在R2上配置HSRP协议。
R2(config)#int e 0/0
R2(config-if)#standby 1 ip 10.1.1.254
R2(config-if)#standby 1 preempt
R2(config-if)#standby 1 preempt delay minimum 10
在R1上查看HSRP的运行状态。
R1#show standby
Ethernet0/0 - Group 1
State is Active
2 state changes, last state change 00:05:12
Virtual IP address is 10.1.1.254
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 2.784 secs
Preemption enabled, delay min 10 secs
Active router is local
Standby router is 10.1.1.2, priority 100 (expires in 9.664 sec)
Priority 105 (configured 105)
Group name is "hsrp-Et0/0-1" (default)
根据显示的信息“Active router is local”可以得知,R1 是作为活动设备,“Standby router is 10.1.1.2”,R2是作为备份设备。
我们还可以看到Hello时间为3s,在默认情况下,HSRP会周期性发送Hello报文,利用Hello数据包来检测对端组员的状态情况。
下面测试一下PC是否可以ping通网关。
VPCS> ping 10.1.1.254
84 bytes from 10.1.1.254 icmp_seq=1 ttl=255 time=1.227 ms
84 bytes from 10.1.1.254 icmp_seq=2 ttl=255 time=1.946 ms
84 bytes from 10.1.1.254 icmp_seq=3 ttl=255 time=1.125 ms
84 bytes from 10.1.1.254 icmp_seq=4 ttl=255 time=1.777 ms
84 bytes from 10.1.1.254 icmp_seq=5 ttl=255 time=1.403 ms
下面我们先将R1的e0/0接口shutdown掉。再来查看R2的HSRP工作状态。
R2#show standby
Ethernet0/0 - Group 1
State is Active
2 state changes, last state change 00:00:08
Virtual IP address is 10.1.1.254
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 2.144 secs
Preemption enabled, delay min 10 secs
Active router is local
Standby router is unknown
Priority 100 (default 100)
Group name is "hsrp-Et0/0-1" (default)
发现R2已经变成主设备了。
下面我们再次测试一下PC是否可以ping通网关。
VPCS> ping 10.1.1.254
84 bytes from 10.1.1.254 icmp_seq=1 ttl=255 time=1.477 ms
84 bytes from 10.1.1.254 icmp_seq=2 ttl=255 time=1.687 ms
84 bytes from 10.1.1.254 icmp_seq=3 ttl=255 time=1.093 ms
84 bytes from 10.1.1.254 icmp_seq=4 ttl=255 time=1.085 ms
84 bytes from 10.1.1.254 icmp_seq=5 ttl=255 time=1.184 ms
今天的学习分享就到这里啦,感谢大家的订阅。