如下图一个公司拉两条网线一条用来备份网关是192.168.0.253,平时用的网关是254,如果网关是254的这条网线出问题了就可以使用备份不影响公司让人员上网,但是我们切换网关一般是改DHCP服务器的地址池的网关地址,这就需要员工电脑重新获取IP才能生效,这就很不人性化还要通知到每个员工重启电脑才能上网,HSRP协议就是解决这个问题。
作用:备份网关
组号:1-255(没有大小之分)
注意:当加入组之后这个局域网除了原来的两个物理的路由器外,还会出现一个虚拟的路由器,也会连接到局域网内但是线也是虚拟的实际是不存在的,所以不占用物理端口,这个虚拟的路由器也有属于自己的网关,假设为192.168.0.252,这个IP是真实存在的不过不需要我们手动去配置,是那两个物理路由器的网关加入组时两者自动协商出来的。
默认为100,如两个路由器优先级相同就随机确认谁是活跃谁是备份
hello包默认每隔3秒发送一次,坚持时间是10秒,10秒后活跃一方没反应备份路由器就会成为活跃路由器
通信过程:
(1)配置了HSRP协议之后,PC的数据会先到虚拟的路由器再由虚拟路由器转发给活跃路由器。
(2)如果HSRP成员通过定时发送hello包来交流发现活跃路由器一方出现问题了,(最多10秒活跃路由器没反应,备份路由器就会判定为他坏了,我要顶上去成为活跃路由器。
(3)特殊情况:如果原来的活跃路由器被修好了正常工作了,HSRP成员又开始发送hello包交流,现在的获取路由器发现被修好的路由器的优先级比他高就会自动变成备份路由器,被修好的路由器就会自动成为活跃路由器,PC的数据又会流到这里然后被转发。
作用:当检测不到活跃路由器,或检测对方的优先级比自己低,立即抢占活跃路由的名分。(给备份路由或其他路由器配置)
配置PC
按照上面讲的两台路由器之间还有个虚拟路由器,我这里设虚拟路由器的网关是192.168.1.254,所以内网PC的网关设置为192.168.1.254
配置路由器端口IP命令
en # 进入特权模式
conf t # 进入全局配置模式
int Fa0/x # 进入需要配置的端口
ip add IP 子网掩码 # 配置IP,如: ip add 30.1.1.254 255.255.255.0
no shut # 开启端口
给内网的两台路由器都配置一条往右走的默认路由
en # 进入特权模式
conf t # 进入全局配置模式
ip route 0.0.0.0 0.0.0.0 下一跳IP # 配置默认路由,这里的下一跳IP就是外网路由器的网关
第一台路由器配置
en # 进入特权模式
conf t # 进入全局配置模式
ip route 0.0.0.0 0.0.0.0 10.1.1.254
第二台路由器配置
en # 进入特权模式
conf t # 进入全局配置模式
ip route 0.0.0.0 0.0.0.0 20.1.1.254
配置第三台路由器(外网)
外网的数据包传回内网有两条路线,从上面的路由器进入内网,或从下面的路由器,我这里只是为了做实验验证HSRP协议的路由切换,这就设置外网的数据从下面的路由器传回内网,内网的数据从上面路由器传到外网,等下手动关闭上面的路由器的端口,看下面的路由器会不会自动升级为活跃路由器
en # 进入特权模式
conf t # 进入全局配置模式
ip route 0.0.0.0 0.0.0.0 20.1.1.1
en # 进入特权模式
conf t # 进入全局配置模式
int Fa0/x # 进入需要配置的端口
standby 指定组号(1-255)ip 指定组的虚拟IP # 将网关的端口加入HSRP组,例:standby 1 ip 192.168.1.254 意思是将 Fa0/x端口加入HSRP组,并指定这个组的虚拟IP
standby 指定组号(1-255) priority 指定优先级(1-255) # 给指定的组设置优先级例:standby 1 priority 200 给1号组设置优先级为200,默认的是100
standby preempt # 配置占先权,一般活跃路由器不需要配置,配了也不影响
配置第一台路由器 (把这台配置台活跃路由器,优先级200,备份路由器配置比200低就可以了)
en # 进入特权模式
conf t # 进入全局配置模式
int Fa0/0 # 进入需要配置的端口
standby 1 ip 192.168.1.254 # 加入组1并指定组1的虚拟IP192.168.1.254(PC的网关就是这个,通信时PC的数据会先发给这个虚拟的IP的虚拟路由器,再由他转发给活跃路由器)
standby 1 priority 200 # 给1号组设置优先级为200,默认的是100
standby 1 preempt # 配置占先权
然后给活跃路由器配置跟踪,跟踪连接外网的接口,如果出现问题该路由器会自动降低优先级,让备份路由器顶上去成为活跃路由器
standby 1 track fa0/1 # 跟踪组1的fa0/1接口(这条命令给活跃路由器配置就可以了,当然不嫌麻烦个备份路由器配置也不影响)
配置第二台路由器(当做备份路由器,他的优先级一定要第一台的优先级低,不然他就是活跃路由器了)
en # 进入特权模式
conf t # 进入全局配置模式
int Fa0/0 # 进入需要配置的端口
standby 1 ip 192.168.1.254 # 加入组1并指定组1的虚拟IP192.168.1.254(PC的网关就是这个,通信时PC的数据会先发给这个虚拟的IP的虚拟路由器,再由他转发给活跃路由器)
standby 1 priority 190 # 给1号组设置优先级为190,因为不知道活跃路由器出现问题的优先级会降低多少,所以这里就设置高一点
standby 1 preempt # 配置占先权
最后回到第一台交换机的全局配置模式下查看HSRP配置
show standby br # 查看HSRP状态(特权模式的命令,如果在全局模式下要在最前面加do,例 :do show standby br )
ping -t 30.1.1.1 # -t 不手动停止会一直ping
en # 进入特权模式
conf t # 进入全局配置模式
int Fa0/0 # 进入需要配置的端口
shut # 关闭端口
如果不放心可以查看一下现在的活跃路由
show standby br # 查看HSRP状态
en # 进入特权模式
conf t # 进入全局配置模式
int Fa0/0 # 进入需要配置的端口
shut # 关闭端口
查看刚才的ping命令发现现在的活跃路由器还是192.168.1.252网关所在的路由器,回馈的报错信息“目标主机不可答 ”
分析原因:之前通过命令: standby 1 track fa0/1 跟踪活跃路由器组1的fa0/1接口,原理是如果这个端口与端口所连接的外网出现问题,当前的活跃路由器就会自动降低优先级,让原来的备份路由器可以自动升级为活跃路由器,现在的问题就是备份路由器没有自动升级成活跃路由器,原因应该是活跃路由器降低的优先级还是比备份的高或相等。
en # 进入特权模式
sh standby # 查看HSRP组成员信息
查看了现在路由器的优先后发现备份的路由器和现在活跃的路由器降低后优先级都是190,得出自动降低的优先级是10,所以要将备份路由器的优先级设置大于190
en # 进入特权模式
conf t # 进入全局配置模式
int Fa0/0 # 进入需要配置的端口
standby 1 priority 195 # 给1号组设置优先级为195
查看一下PC可以正常通信了