您的位置:首页 > 理论基础 > 计算机网络

HSRP的工作原理和在企业网络中的应用

2014-05-08 01:21 232 查看

HSRP的工作原理和在企业网络中的应用

一、HSRP的简介

SHRP即热备份路由协议,它主要是向我们提供了这样一种机制,它的设计目的主要在于支持IP协议传输失败情况下的不中断服务,保证了网络的高可用性。具体说,就是本协议用于在源主机无法动态地学习到首跳路由器IP地址的情况下防止首跳路由的失败。它主要用于多接入,多播和广播局域网(例如以太网)。
二、HSRP的工作原理
HSRP协议利用一个优先级方案来决定哪个配置了HSRP协议的路由器成为默认的主动路由器。如果一个路由器的优先级设置的比所有其他路由器的优先级高,则该路由器成为主动路由器。路由器的默认缺省优先级是100,所以如果只设置一个路由器的优先级高于100,则该路由器将成为主动路由器。
通过在设置了HSRP协议的路由器之间广播HSRP优先级,HSRP协议选出当前的主动路由器。当在预先设定的一段时间内主动路由器不能发送hello消息时,优先级最高的备用路由器变为主动路由器。路由器之间的包传输对网络上的所有主机来说都是透明的。   配置了HSRP协议的路由器交换以下三种多点广播消息:Hello———hello消息通知其他路由器发送路由器的HSRP优先级和状态信息,HSRP路由器默认为每3秒钟发送一个hello消息;  coup———当一个备用路由器变为一个主动路由器时发送一个coup消息;Resign———当主动路由器要宕机或者当有优先级更高的路由器发送hello消息时,主动路由器发送一个resign消息。在任一时刻,配置了HSRP协议的路由器都将处于以下六种状态之一:
Initial———HSRP启动时的状态,HSRP还没有运行,一般是在改变配置或端口刚刚启动时进入该状态。   learn———路由器已经得到了虚拟IP地址,但是它既不是活动路由器也不是等待路由器。它一直监听从活动路由器和等待路由器发来的HELLO报文。 Listen———路由器正在监听hello消息。Speak———在该状态下,路由器定期发送HELLO报文,并且积极参加活动路由器或等待路由器的竞选。
Standby———当主动路由器失效时路由器准备接管包传输功能。Active———路由器执行包传输功能,即路由器处于激活状态。
三、应用案例
1、案例1
(1)实施环境:思科小凡模拟器
(2)要求:
现有一网络,网络中有两个VLAN,两个VLAN通过路由器进行通信工作,现要求要实现网络的高可用性,必须保证在一个路由器损坏的情况下还能工作,并且在使用两个路由器工作时必须保证路由器的利用效率。
(3)网络拓扑图:
根据网络要求使用绘图工具绘制出网络拓扑图,如图1所示:

图1:网络拓扑图(4)设备实施:
1)路由器R1的配置://进入特权模式Router>enable//进入用户模式Router#config tRouter(config)#hos//修改名称Router(config)#hostname R1R1(config)#int f0/0 //启动接口R1(config-if)#no shutR1(config-if)#exitR1(config)#int f0/0.1R1(config-subif)#encapsulation d//把子接口封装为dot1Q类型R1(config-subif)#encapsulation dot1Q 10//配置IP地址R1(config-subif)#ip add 192.168.10.1 255.255.255.0R1(config-subif)#exit//进入子接口R1(config)#int f0/0.2R1(config-subif)#enR1(config-subif)#encapsulation d//把字节口封装为dot1QR1(config-subif)#encapsulation dot1Q 20R1(config-subif)#ip add 192.168.20.1 255.255.255.0//配置HSRP协议R1(config)#int f0/0.1R1(config-subif)#stR1(config-subif)#standby ?//把加入热备份组号10以及备份虚拟IPR1(config-subif)#standby 10 ip 192.168.10.254R1(config-subif)#standby pri//配置优先级(优先级之越大越优先,默认100)R1(config-subif)#standby priority 120//启动立即抢占R1(config-subif)#standby preR1(config-subif)#standby preemptR1(config)#int f0/0.2R1(config-subif)#standby //把加入热备份组号20以及备份虚拟IPR1(config-subif)#standby 20 ip 192.168.20.254R1(config-subif)#standby 20 pri//配置优先级(优先级之越大越优先,默认100)R1(config-subif)#standby 20 priority 100R1(config-subif)#standby pre//启动立即抢占R1(config-subif)#standby preempt2)路由器R2的配置:Router>enableRouter#config t//修改名称Router(config)#hostname R2R2(config)#int f0/0//启动接口R2(config-if)#no shutR2(config-if)#exit //进入子接口R2(config)#int f0/0.1R2(config-subif)#encapsulation d//把接口封装为dot1Q类型VLAN 10R2(config-subif)#encapsulation dot1Q 10R2(config-subif)#ip add 192.168.10.2 255.255.255.0R2(config-subif)#exit//进入子接口R2(config)#int f0/0.2//把接口封装为dot1Q类型VLAN 20R2(config-subif)#encapsulation dot1Q 20 R2(config-subif)#ip add 192.168.20.2 255.255.255.0R2(config)#int f0/0.1R2(config-subif)#stan//把加入热备份组号10以及备份虚拟IPR2(config-subif)#standby 10 ip 192.168.10.254R2(config-subif)#stanR2(config-subif)#standby 10 pri//配置优先级(优先级之越大越优先,默认100)R2(config-subif)#standby 10 priority 100R2(config-subif)#stanR2(config-subif)#standby 10 pre//启动立即抢占R2(config-subif)#standby 10 preempt R2(config-subif)#exitR2(config)#int f//进入子接口R2(config)#int f0/0.2R2(config-subif)#sstanR2(config-subif)#stan //把加入热备份组号10以及备份虚拟IPR2(config-subif)#standby 20 ip 192.168.20.254R2(config-subif)#stanR2(config-subif)#standby 20 pri//配置优先级(优先级之越大越优先,默认100)R2(config-subif)#standby 20 priority 120R2(config-subif)#staR2(config-subif)#standby 20 pre//启动立即抢占R2(config-subif)#standby 20 preempt
3)交换机S1的配置:Router>enaRouter#config tEnter configuration commands, one per line. End with CNTL/Z.Router(config)#hos//修改名称Router(config)#hostname S1S1(config)#exitS1#vlan database //创建VLAN10S1(vlan)#VLAN 10VLAN 10 added:Name: VLAN0010//创建VLAN10S1(vlan)#VLAN 20VLAN 20 added: Name: VLAN0020S1(vlan)#exitS1#config t//进入接口S1(config)#int f0/0//把接口设为trunk类型S1(config-if)#switchport mode trunk//trunk下允许所有VLAN通过S1(config-if)#switchport trunk allowed vlan allS1(config-if)#exitS1(config)#int f0/1S1(config-if)#switchport mode tr//把接口设为trunk类型S1(config-if)#switchport mode trunk //trunk下允许所有VLAN通过S1(config-if)#switchport trunk allowed vlan allS1(config-if)#exitS1(config)#int f0/2S1(config-if)#switchport mode tr//把接口设为trunk类型S1(config-if)#switchport mode trunk//trunk下允许所有VLAN通过S1(config-if)#switchport trunk allowed vlan allS1(config)#int f0/10 S1(config-if)#swS1(config-if)#switchport acc//允许VLAN 10通过S1(config-if)#switchport access vlan 10S1(config-if)#exitS1(config)#int f0/20S1(config)#int f0/15S1(config-if)#switchport access vlan 20
4)交换机S2的配置:Router>enaRouter#config tRouter(config)#host//修改名称Router(config)#hostname S2S2(config)#exitS2#vlan dataS2#vlan database //创建VLAN 10S2(vlan)#vlan 10VLAN 10 added:Name: VLAN0010 //创建VLAN 20 S2(vlan)#vlan 20VLAN 20 added:Name: VLAN0020 S2#config tS2(vlan)#exit//进入接口S2(config)#int f0/0S2(config-if)#switchport mode tr//把接口设为trunk类型S2(config-if)#switchport mode trunkS2(config-if)#exitS2(config)#int f0/1S2(config-if)#switchport mode tr//把接口设为trunk类型S2(config-if)#switchport mode trunk//在trunk下允许所有VLAN通过S2(config-if)#switchport trunk allowed vlan allS2(config-if)#int f0/2S2(config-if)#switchport mode trS2(config-if)#switchport mode trunk S2(config-if)#switchport trunk allowed vlan allS2(config-if)#exitS2(config)#int f0/10S2(config-if)#switchport acS2(config-if)#switchport access vlan 10S2(config-if)#int f0/15//把接口设为允许VLAN20通过S2(config-if)#switchport acceS2(config-if)#switchport access vlan 20
(5)测试验证:1)查看R1上的HSRP协议:在R1上查看HSRP协议如下图所示:

2)PC1 ping PC4

3)断开R2的接口,即R2损坏后查看R1上的HSRP协议


2、案例2
(1)实施环境:思科小凡模拟器
(2)要求:
现有一网络,网络中有两个VLAN,两个VLAN通过路由器进行通信工作,现在要求要实现网络的高可用性,必须保证在一个路由器损坏的情况下还能工作,并且在使用两个路由器工作时必须保证路由器的高效利用效率,并且要求两个VLAN的主机可以访问到Internet。
(3)网络拓扑图:
根据网络要求使用绘图工具绘制出网络拓扑图,如图2所示:

图2:网络拓扑图
(4)设备的配置:
1)路由器R1的配置://进入特权模式Router>enable//进入用户模式Router#config tRouter(config)#hos//修改名称Router(config)#hostname R1R1(config)#int s1/0//配置IP地址R1(config-if)#ip add 192.168.1.1 255.255.255.0R1(config-if)#no shutR1(config-if)#exitR1(config)#int f0/0 R1(config-if)#no shutR1(config-if)#exit//进入子接口R1(config)#int f0/0.1R1(config-subif)#enR1(config-subif)#encapsulation d//把接口封装为dot1Q VLAN10R1(config-subif)#encapsulation dot1Q 10//配置IP地址R1(config-subif)#ip add 192.168.10.1 255.255.255.0R1(config-subif)#exitR1(config)#int f0/0.2//把接口封装为dot1Q VLAN10R1(config-subif)#encapsulation dR1(config-subif)#encapsulation dot1Q 20//配置IP地址R1(config-subif)#ip add 192.168.20.1 255.255.255.0//配置HSRP协议R1(config)#int f0/0.1R1(config-subif)#stR1(config-subif)#standby ?//把加入热备份组号10以及备份虚拟IPR1(config-subif)#standby 10 ip 192.168.10.254R1(config-subif)#standby pri//配置优先级(优先级之越大越优先,默认100)R1(config-subif)#standby priority 120//启动立即抢占R1(config-subif)#standby preR1(config-subif)#standby preempt//配置跟踪接口,当接口中断时优先级减小30R1(config-subif)#standby 10 track s1/0 30R1(config)#int f0/0.2R1(config-subif)#standby R1(config-subif)#standby 20 ip ?//把加入热备份组号10以及备份虚拟IPR1(config-subif)#standby 20 ip 192.168.20.254R1(config-subif)#standby 20 pri//配置优先级(优先级之越大越优先,默认100)R1(config-subif)#standby 20 priority 100R1(config-subif)#standby pre//启动立即抢占R1(config-subif)#standby preempt//配置默认路由R1(config)#ip route 0.0.0.0 0.0.0.0 192.168.1.1//配置访问控制列表R1(config)#access-list 10 permit 192.168.10.0 255.255.255.0 R1(config)#access-list 10 permit 192.168.20.0 255.255.255.0R1(config)#int f0/0.1R1(config-subif)#ip nat in//在接口上配置允许nat进入R1(config-subif)#ip nat inside R1(config-subif)#int f0/0.2//在接口上配置允许nat进入R1(config-subif)#ip nat inR1(config-subif)#ip nat inside R1(config-subif)#int s1/0R1(config-if)#ip nat out//在接口上应用natR1(config-if)#ip nat outside R1(config)#ip nat source list 10 intR1(config)#ip nat source list 10 interface s1/02)路由器R2的配置:Router>enableRouter#config t//修改名称Router(config)#hostname R2R2(config)#int s1/1//配置IP地址R2(config-if)#ip add 192.168.2.1 255.255.255.0R2(config-if)#no shutR2(config-if)#exitR2(config)#int f0/0//启动接口R2(config-if)#no shutR2(config-if)#exit //进入子接口R2(config)#int f0/0.1R2(config-subif)#encapsulation d//把接口封装为dot1Q类型VLAN 10R2(config-subif)#encapsulation dot1Q 10R2(config-subif)#ip add 192.168.10.2 255.255.255.0R2(config-subif)#exit//进入子接口R2(config)#int f0/0.2//把接口封装为dot1Q类型VLAN 20R2(config-subif)#encapsulation dot1Q 20 R2(config-subif)#ip add 192.168.20.2 255.255.255.0R2(config)#int f0/0.1R2(config-subif)#stan//把加入热备份组号10以及备份虚拟IPR2(config-subif)#standby 10 ip 192.168.10.254R2(config-subif)#stanR2(config-subif)#standby 10 pri//配置优先级(优先级之越大越优先,默认100)R2(config-subif)#standby 10 priority 100R2(config-subif)#stanR2(config-subif)#standby 10 pre//启动立即抢占R2(config-subif)#standby 10 preempt R2(config-subif)#exitR2(config)#int f//进入子接口R2(config)#int f0/0.2R2(config-subif)#sstanR2(config-subif)#stan //把加入热备份组号10以及备份虚拟IPR2(config-subif)#standby 20 ip 192.168.20.254R2(config-subif)#stanR2(config-subif)#standby 20 pri//配置优先级(优先级之越大越优先,默认100)R2(config-subif)#standby 20 priority 120R2(config-subif)#staR2(config-subif)#standby 20 pre//启动立即抢占R2(config-subif)#standby 20 preempt//配置默认路由R2(config)#ip route 0.0.0.0 0.0.0.0 192.168.2.1 //配置接口跟踪当接口出现故障时优先级减小30R2(config-subif)#standby 20 track s1/1 30//配置访问控制列表20允许所有通过R2(config)#access-list 20 permit anyR2(config)#int f0/0.1//在接口下设置nat进入R2(config-subif)#ip nat insR2(config-subif)#ip nat insideR2(config-subif)#int f0/0.2R2(config-subif)#ip nat in//在接口下设置nat进入R2(config-subif)#ip nat insideR2(config-subif)#int s1/1R2(config-if)#ip na//在接口下设置nat出入R2(config-if)#ip nat ouR2(config-if)#ip nat outside//配置动态natR2(config)#ip nat source list 20 interface s1/13)路由器R3的配置:Router>enaRouter#conf t//修改名称Router(config)#hostname R3R3(config)#int s1/0R3config-if)#ip add//配置IP地址R3(config-if)#ip address 192.168.1.1 255.255.255.0//打开接口R3(config-if)#no shutR3(config-if)#exit//进入接口R3(config)#int s1/1R3(config-if)#ip add//配置IP地址R3(config-if)#ip address 192.168.2.1 255.255.255.0R3(config-if)#no shutR3(config)#int looR3(config)#int loopback 0R3(config-if)#ip addR3(config-if)#ip address 1.1.1.1 255.255.255.0
(5)测试验证:1)在PC1上ping1.1.1.1和路由跟踪,如下图:



2)查看路由器R1的HSRP协议

3)断开R2的S1/1接口,查看R2的变化和R1的HSRPR2(config-if)#shutR2(config-if)#*Mar 1 06:09:06.914: %HSRP-5-STATECHANGE: FastEthernet0/0.2 Grp 20 state Active -> Speak //从这里可以看到S2的f0/0.2的接口有激活状态转变为Speek状态了。路由器R1的HSRP变化如下图所示:

5)中断R2的S1/1接口后PC4ping1.1.1.1,如下图所示:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  nat ACL 高可用性 SHRP