一、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 t
router(config)#hos
//修改名稱
router(config)#hostname r1
r1(config)#int f0/0
//啟動接口
r1(config-if)#no shut
r1(config-if)#exit
r1(config)#int f0/0.1
r1(config-subif)#encapsulation d
//把子接口封裝為dot1q類型
r1(config-subif)#encapsulation dot1q 10
//配置ip位址
r1(config-subif)#ip add 192.168.10.1 255.255.255.0
r1(config-subif)#exit
//進入子接口
r1(config)#int f0/0.2
r1(config-subif)#en
//把位元組口封裝為dot1q
r1(config-subif)#encapsulation dot1q 20
r1(config-subif)#ip add 192.168.20.1 255.255.255.0
//配置hsrp協定
r1(config-subif)#st
r1(config-subif)#standby ?
//把加入熱備份組号10以及備份虛拟ip
r1(config-subif)#standby 10 ip 192.168.10.254
r1(config-subif)#standby pri
//配置優先級(優先級之越大越優先,預設100)
r1(config-subif)#standby priority 120
//啟動立即搶占
r1(config-subif)#standby pre
r1(config-subif)#standby preempt
r1(config-subif)#standby
//把加入熱備份組号20以及備份虛拟ip
r1(config-subif)#standby 20 ip 192.168.20.254
r1(config-subif)#standby 20 pri
r1(config-subif)#standby 20 priority 100
2)路由器r2的配置:
router(config)#hostname r2
r2(config)#int f0/0
r2(config-if)#no shut
r2(config-if)#exit
r2(config)#int f0/0.1
r2(config-subif)#encapsulation d
//把接口封裝為dot1q類型vlan 10
r2(config-subif)#encapsulation dot1q 10
r2(config-subif)#ip add 192.168.10.2 255.255.255.0
r2(config-subif)#exit
r2(config)#int f0/0.2
//把接口封裝為dot1q類型vlan 20
r2(config-subif)#encapsulation dot1q 20
r2(config-subif)#ip add 192.168.20.2 255.255.255.0
r2(config-subif)#stan
r2(config-subif)#standby 10 ip 192.168.10.254
r2(config-subif)#standby 10 pri
r2(config-subif)#standby 10 priority 100
r2(config-subif)#standby 10 pre
r2(config-subif)#standby 10 preempt
r2(config)#int f
r2(config-subif)#sstan
r2(config-subif)#standby 20 ip 192.168.20.254
r2(config-subif)#standby 20 pri
r2(config-subif)#standby 20 priority 120
r2(config-subif)#sta
r2(config-subif)#standby 20 pre
r2(config-subif)#standby 20 preempt
3)交換機s1的配置:
router>ena
enter configuration commands, one per line. end with cntl/z.
router(config)#hostname s1
s1(config)#exit
s1#vlan database
//建立vlan10
s1(vlan)#vlan 10
vlan 10 added:
name: vlan0010
s1(vlan)#vlan 20
vlan 20 added:
name: vlan0020
s1(vlan)#exit
s1#config t
//進入接口
s1(config)#int f0/0
//把接口設為trunk類型
s1(config-if)#switchport mode trunk
//trunk下允許所有vlan通過
s1(config-if)#switchport trunk allowed vlan all
s1(config-if)#exit
s1(config)#int f0/1
s1(config-if)#switchport mode tr
s1(config)#int f0/2
s1(config)#int f0/10
s1(config-if)#sw
s1(config-if)#switchport acc
//允許vlan 10通過
s1(config-if)#switchport access vlan 10
s1(config)#int f0/20
s1(config)#int f0/15
s1(config-if)#switchport access vlan 20
4)交換機s2的配置:
router(config)#host
router(config)#hostname s2
s2(config)#exit
s2#vlan data
s2#vlan database
//建立vlan 10
s2(vlan)#vlan 10
//建立vlan 20
s2(vlan)#vlan 20
name: vlan0020
s2#config t
s2(vlan)#exit
s2(config)#int f0/0
s2(config-if)#switchport mode tr
s2(config-if)#switchport mode trunk
s2(config-if)#exit
s2(config)#int f0/1
//在trunk下允許所有vlan通過
s2(config-if)#switchport trunk allowed vlan all
s2(config-if)#int f0/2
s2(config)#int f0/10
s2(config-if)#switchport ac
s2(config-if)#switchport access vlan 10
s2(config-if)#int f0/15
//把接口設為允許vlan20通過
s2(config-if)#switchport acce
s2(config-if)#switchport access vlan 20
(5)測試驗證:
1)檢視r1上的hsrp協定:
在r1上檢視hsrp協定如下圖所示:
2)pc1 ping pc4
3)斷開r2的接口,即r2損壞後檢視r1上的hsrp協定
2、案例2
現有一網絡,網絡中有兩個vlan,兩個vlan通過路由器進行通信工作,現在要求要實作網絡的高可用性,必須保證在一個路由器損壞的情況下還能工作,并且在使用兩個路由器工作時必須保證路由器的高效利用效率,并且要求兩個vlan的主機可以通路到internet。
根據網絡要求使用繪圖工具繪制出網絡拓撲圖,如圖2所示:
圖2:網絡拓撲圖
(4)裝置的配置:
r1(config)#int s1/0
r1(config-if)#ip add 192.168.1.1 255.255.255.0
//把接口封裝為dot1q vlan10
//配置跟蹤接口,當接口中斷時優先級減小30
r1(config-subif)#standby 10 track s1/0 30
r1(config-subif)#standby 20 ip ?
//配置預設路由
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.0
r1(config-subif)#ip nat in
//在接口上配置允許nat進入
r1(config-subif)#ip nat inside
r1(config-subif)#int f0/0.2
r1(config-subif)#int s1/0
r1(config-if)#ip nat out
//在接口上應用nat
r1(config-if)#ip nat outside
r1(config)#ip nat source list 10 int
r1(config)#ip nat source list 10 interface s1/0
r2(config)#int s1/1
r2(config-if)#ip add 192.168.2.1 255.255.255.0
r2(config)#ip route 0.0.0.0 0.0.0.0 192.168.2.1
//配置接口跟蹤當接口出現故障時優先級減小30
r2(config-subif)#standby 20 track s1/1 30
//配置通路控制清單20允許所有通過
r2(config)#access-list 20 permit any
//在接口下設定nat進入
r2(config-subif)#ip nat ins
r2(config-subif)#ip nat inside
r2(config-subif)#int f0/0.2
r2(config-subif)#ip nat in
r2(config-subif)#int s1/1
r2(config-if)#ip na
//在接口下設定nat出入
r2(config-if)#ip nat ou
r2(config-if)#ip nat outside
//配置動态nat
r2(config)#ip nat source list 20 interface s1/1
3)路由器r3的配置:
router#conf t
router(config)#hostname r3
r3(config)#int s1/0
r3config-if)#ip add
r3(config-if)#ip address 192.168.1.1 255.255.255.0
//打開接口
r3(config-if)#no shut
r3(config-if)#exit
r3(config)#int s1/1
r3(config-if)#ip add
r3(config-if)#ip address 192.168.2.1 255.255.255.0
r3(config)#int loo
r3(config)#int loopback 0
r3(config-if)#ip address 1.1.1.1 255.255.255.0
1)在pc1上ping1.1.1.1和路由跟蹤,如下圖:
2)檢視路由器r1的hsrp協定
3)斷開r2的s1/1接口,檢視r2的變化和r1的hsrp
r2(config-if)#shut
r2(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,如下圖所示:
本文出自 “” 部落格,請務必保留此出處