天天看點

HSRP的工作原理和在企業網絡中的應用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 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,如下圖所示:

本文出自 “” 部落格,請務必保留此出處

繼續閱讀