了解HSRP概述
HSRP(热备份路由协议):是思科私有的一种技术,它确保了的那个网络边缘设备或接入链路出现故障时,用户通信能迅速并透明地恢复,以此为IP网络提供冗余性。热备份路由协议为IP网络提供容错和增强的路由选择功能。通过使用一个虚拟的IP地址和虚拟MAC地址,LAN网段上的两台或者多台路由器可以作为一台虚拟路由器对外提供服务。
熟悉HSRP组成员
HSRP备份有一台活跃路由器,一台备份路由器,一台虚拟路由器和其他路由器组成。
活跃路由器:主要功能是转发到虚拟路由器的数据包。组中的另一台路由器被选为备份路由器。活跃路由器通过发送Hello消息来承担和保持它活跃的角色。
备份路由器:只要功能是监视HSRP组的运行状态,并且到活跃路由器不能运行时,迅速承担起转发数据包的责任。备份路由器也传输Hello消息,告知组中所有路由器备份路由器的角色和状态变化。
虚拟路由器:主要功能是想最终用户提供一台可以连续工作的路由器。虚拟路由器配置有它自己的IP地址和MAC地址,但并不实际转发数据包。
其他路由器:这些路由器监视Hello消息,但不做应答。这些路由器转发任何经由他们的数据包,但并不转发经由虚拟路由器的数据包。
理解HSRP原理
HSRP组内的每个路由器都有指定的优先级,用于衡量路由器在活跃路由器选择中的优先程度。默认优先级为100(可配置范围0-255),组中最高优先的路由器将成为活跃路由器,其次的为备份路由器。当优先级相同的情况下,将比较路由器的LAN口IP地址,地址大的将成为活跃路由器。
当终端用户向虚拟路由器提交数据时,将由活跃路由器进行处理,当活跃路由器发生故障时,备份路由器将在数秒之内承担活跃路由器的工作,这时由于备份成为了活跃路由器,而备份路由器的位置空缺,组内其它路由器将晋升备份路由器,在次比较优先级选出备份路由器。
HSRP的配置及应用
HSRP的配置命令语法如下:
1、配置HSRP的成员
Switch(cofnig-if)#standbygroup-numberipvirtual-ip-address
group-number:表示该端口所属的HSRP组,通过在备份命令中指定一个唯一的组号可以创建多个HSRP组。virtual-ip-address:表示虚拟HSRP路由器的IP地址,即网段的IP地址。
2、配置HSRP优先级
Switch(cofnig-if)#standbygroup-numberprioritypriority-value
priority-value:范围为0-255,默认100。
3、配置HSRP的占先权
Switch(cofnig-if)#standbygroup-numberpreempt
占先权的解释:HSRP中优先级高的活跃路由器进行定期维护时,HSRP备份路由器将成为活跃路由器。但是当以前的优先级高的活跃路由器修好后加入到HSRP中时,如果没有配置占先权的话,它将不会从备份路由器中抢回活跃路由器的位置,哪怕是它的优先级高于备份路由器,如果配置了的话,则会从优先级低路由器中抢回活跃路由器的职位。
4、配置HSRP的端口跟踪
Switch(cofnig-if)#standbygroup-numbertrackinterface-typemod/numinterface-priority
group-number:采用跟踪功能的端口的组号
interface-type:跟踪端口的端口类型
mod/num:跟踪端口的端口号
interface-priority:当端口失效时,路由器的热备份优先级将降低的数值,当端口变为可用时,路由器的优先级将加上该数值,默认为10。
端口跟踪解释:如果不设置端口跟踪的话,当路由器的某个端口不可用时,但是它还是会发送hello消息告诉其他路由器,此路由器是可用的,其实数据是传输不出去。当给活跃路由器配置端口跟踪后,当跟踪的端口不可用时,此活跃路由器的优先级将减少相应的值,当变的可用时,则上升相应的值。这样的话很灵活的提供故障的切换效果。
5、配置Hello消息的计时器
Switch(cofnig-if)#standbygroup-numbertimeshellotimeholdtime
hellotime:hello消息的间隔时间,默认3s,范围1-255.
holdtime:hello消息的保存时间,默认10s,一般设置为hello间隔的三倍。
6、检查HSRP的状态
Switch#showstandby[interface-typemod/num][group-number]brief
interface-typemod/num:要显示的端口类型和序号
group-number:要显示的具体HSRP
brief:显示摘要信息,每个备份组总结显示一行输出。
HSRP的应用实例
配置公司两台核心三层交换机,实现路由器的备份+负载均衡。
实验拓扑如下图所示:
实验要求如下:
1、使vlan10和vlan30的数据由SW2进行处理。
2、使vlan20的数据包由SW1进行处理。
3、当任意一台路由器的某个端口不可用或路由器不可用时,数据能从备份路由器上处理。
在SW1上配置VTPserver,创建vlan。配置如下:
#设置与所有交换机的接口为链路接口(trunk)并配置wan接口的IP地址和默认路由
sw1(config)#intrangef0/1-3
sw1(config-if-range)#switchportmodetrunk
sw1(config-if-range)#nosh
sw1(config-if-range)#exit
sw1(config)#intf0/0
sw1(config-if)#ipadd202.106.123.1255.255.255.0
sw1(config-if)#noswitchport
sw1(config-if)#nosh
sw1(config-if)#exit
sw1(config)#iproute0.0.0.00.0.0.0f0/0
#配置VTP以及创建vlan
sw1#vlandatabase
sw1(vlan)#vtpdomaintest
sw1(vlan)#vtpserver
sw1(vlan)#vtppassword123
sw1(vlan)#vtppruning
sw1(vlan)#exit
sw1#vlandatabase
sw1(vlan)#vlan10
sw1(vlan)#vlan20
sw1(vlan)#vlan30
#配置HSRP,配置SW1为vlan10的备份路由器
sw1(config)#intvlan10
sw1(config-if)#ipadd192.168.1.1255.255.255.0
sw1(config-if)#standby10ip192.168.1.254
sw1(config-if)#standby10priority150
sw1(config-if)#standby10preempt
sw1(config-if)#nosh
#配置HSRP,配置SW1为vlan20的活跃路由器
sw1(config)#intvlan20
sw1(config-if)#ipadd192.168.2.1255.255.255.0
sw1(config-if)#standby20ip192.168.2.254
sw1(config-if)#standby20priority200
sw1(config-if)#standby20preempt
sw1(config-if)#standby20trackf0/0100
sw1(config-if)#standby20trackf0/1100
sw1(config-if)#standby20trackf0/2100
sw1(config-if)#nosh
#配置HSRP,配置SW1为vlan30的备份路由器
sw1(config)#intvlan30
sw1(config-if)#ipadd192.168.3.1255.255.255.0
sw1(config-if)#standby30ip192.168.3.254
sw1(config-if)#standby30priority150
sw1(config-if)#standby30preempt
sw1(config-if)#nosh
在SW2上配置VTPclient,学习SW1创建的vlan。
#设置与所有交换机的接口为链路接口(trunk)并配置wan接口的IP地址和默认路由
sw2(config)#intrangef0/1-3
sw2(config-if-range)#switchportmodetrunk
sw2(config-if-range)#nosh
sw2(config-if-range)#exit
sw2(config)#intf0/0
sw2(config-if)#ipadd202.106.123.2255.255.255.0
sw1(config-if)#noswitchport
sw1(config-if)#nosh
sw2(config-if)#exit
sw2(config)#iproute0.0.0.00.0.0.0f0/0
#配置VTP以及创建vlan
sw2#vlandatabase
sw2(vlan)#vtpdomaintest
sw2(vlan)#vtpclient
sw2(vlan)#vtppassword123
sw2(vlan)#vtppruning
#配置HSRP,配置SW2为vlan10的活跃路由器
sw2(config)#intvlan10
sw2(config-if)#ipadd192.168.1.2255.255.255.0
sw2(config-if)#standby10ip192.168.1.254
sw2(config-if)#standby10priority200
sw2(config-if)#standby10preempt
sw2(config-if)#standby10trackf0/0100
sw2(config-if)#standby10trackf0/1100
sw2(config-if)#standby10trackf0/2100
sw2(config-if)#nosh
#配置HSRP,配置SW2为vlan20的备份路由器
sw2(config)#intvlan20
sw2(config-if)#ipadd192.168.2.2255.255.255.0
sw2(config-if)#standby20ip192.168.2.254
sw2(config-if)#standby20priority150
sw2(config-if)#standby20preempt
sw2(config-if)#nosh
#配置HSRP,配置SW2为vlan30的活跃路由器
sw2(config)#intvlan30
sw2(config-if)#ipadd192.168.3.2255.255.255.0
sw2(config-if)#standby30ip192.168.3.254
sw2(config-if)#standby30priority200
sw2(config-if)#standby30preempt
sw2(config-if)#standby30trackf0/0100
sw2(config-if)#standby30trackf0/1100
sw2(config-if)#standby30trackf0/2100
sw2(config-if)#nosh
在SW3上配置VTPclient,学习SW1创建的vlan。
#设置与所有交换机的接口为链路接口(trunk)
sw3(config)#intrangef0/0-1
sw3(config-if-range)#switchportmodetrunk
sw3(config-if-range)#nosh
#配置VTP以及创建vlan
sw3#vlandatabase
sw3(vlan)#vtpdomaintest
sw3(vlan)#vtpclient
sw3(vlan)#vtppassword123
sw3(vlan)#vtppruning
#将指定的接口加入相应的vlan
sw3(config)#intf0/2
sw3(config-if)#switchportaccessvlan10
sw3(config-if)#nosh
sw3(config-if)#exit
sw3(config)#intf0/3
sw3(config-if)#switchportaccessvlan20
sw3(config-if)#nosh
在SW4上配置VTPclient,学习SW1创建的vlan。
#设置与所有交换机的接口为链路接口(trunk)
sw4(config)#intrangef0/0-1
sw4(config-if-range)#switchportmodetrunk
sw4(config-if-range)#nosh
#配置VTP以及创建vlan
sw4#vlandatabase
sw4(vlan)#vtpdomaintest
sw4(vlan)#vtpclient
sw4(vlan)#vtppassword123
sw4(vlan)#vtppruning
#将指定的接口加入相应的vlan
sw4(config)#intf0/2
sw4(config-if)#switchportaccessvlan20
sw4(config-if)#nosh
sw4(config-if)#exit
sw4(config)#intf0/3
sw4(config-if)#switchportaccessvlan30
sw4(config-if)#nosh
此时公司内部的两台核心交换机就算是配置好了HSRP了,现在不管是那一台核心交换机坏掉还是交换机上的数据接口不可用,都不会影响用户访问Internet。因为两台核心交换配置HSRP,实现了路由的备份和负载均衡,而路由器的备份和负载对用户来说是透明的。