簡介
HSRP(Hot Standby Router Protocol 熱備份路由器協定)是Cisco的專有協定。HSRP把多台路由器組成一個“熱備份組”,形成一個虛拟路由器。這個組内隻有一個路由器是Active(活動)的,并由它來轉發資料包,如果活動路由器發生了故障,備份路由器将成為活動路由器。從網絡内的主機來看,網關并沒有改變。
HSRP的工作過程:
HSRP路由器利用Hello包來互相監聽各自的存在。當路由器長時間沒有接收到Hello包時,就認為活動路由器故障,備份路由器就會成為活動路由器。HSRP協定利用優先級決定哪個路由器成為活動路由器。如果一個路由器的優先級比其它路由器的優先級高,則該路由器成為活動路由器。路由器的預設優先級是100。在一個組中,最多有一個活動路由器和一個備份路由器。HSRP路由器發送的多點傳播(224.0.0.2)消息有以下三種:
Hello:通知其它路由器發送者的HSRP優先級和狀态資訊,HSRP路由器預設每3秒發送一個Hello消息。
Coup:當一個備用路由器變為一個活動路由器時發送一個Coup消息。
Resign:當活動路由器要當機或者當有優先級更高的路由器發送Hello消息時,主動發送一個Resign消息。
HSRP的封包格式:

①版本:訓示HSRP的版本資訊。
②操作碼:用來描述資料包中封包的類型,可能的值為0、1和2,分别表示是Hello、Coup和Resign消息。
③狀态:描述發出該封包的路由器的目前狀态。有0、1、2、4、8、16六種狀态,分别表示為Initial、Learn、
Listen、Speak、Standby和Active狀态。
④呼叫時間(Hellotime):隻在呼叫封包中有意義,表示路由器定時發送呼叫封包的間隔時間,以秒為機關。如
果該參數沒有在路由器上配置,它可能要從活動路由器上學習獲得。預設值為3秒。
⑤保持時間(Holdtime):隻在呼叫封包中有意義,被接收路由器用來判斷該呼叫封包是否合法,機關為秒,其值
至少是呼叫時間的3倍。如果該參數沒有配置,也同樣可以從活動路由器上學習。活動路由器不能從等待路由
器學習呼叫時間和保持時間,它隻能繼續使用從先前的活動路由器學習來的該值。預設值為10秒。
⑥優先級:該參數用來選擇活動和等待路由器,兩個具有不同優先級的路由器,優先級高的将成為活動路由器。
兩個具有相同優先級的路由器,IP位址大的将成為活動路由器。預設優先級為100。
⑦組:用來标記路由器所在的熱等待組。對令牌環類型的網絡,合法的值是0、1和2,對于其它類型的網絡,合
法值是0-255。
⑧認證碼:包括8個明文的字元作為密碼,如果沒有配置,預設值為cisco。
⑨虛拟IP位址:用來指定本熱等待組的虛拟IP位址,它可以從活動路由器的呼叫封包中學習到。如果沒有配置該
位址,并且呼叫封包是需要認識的,那麼隻能通過活動路由器學習。
HSRP路由器的6中狀态:
1.Initial:HSRP啟動時的狀态,HSRP還沒有運作,一般是在改變配置或端口剛剛啟動時進入該狀态。
2.Learn:在該狀态下,路由器還沒有決定虛拟IP位址,也沒有看到認證的、來自活動路由器的Hello封包。路由
器仍在等待活動路由器發來的Hello封包。
3.Listen:路由器已經得到了虛拟IP位址,但是它既不是活動路由器也不是等待路由器。它一直監聽從活動路由
器和等待路由器發來的Hello封包。
4.Speak:在該狀态下,路由器定期發送Hello封包,并且積極參加活動路由器或等待路由器的競選。如果選出活
動路由和等待路由,則變成監聽狀态(Listen)。而此時隻有活動路由器和等待路由處于說話狀态。
5.Standby:處于該狀态的路由器是下一個候選的活動路由器,它定時發送Hello封包。
6.Active:處于活動狀态的路由器承擔轉發資料包的任務,這些資料包是發給該組的虛拟MAC位址的。它定時發
出Hello封包。
HSRP的2個定時器:
HSRP使用2個定時器:Hello間隔和Hold時間。預設Hello間隔是3秒,預設的Hold間隔是10秒。Hello間隔定義了兩組路由器之間交換資訊的頻率。Hlod間隔定義了經過多長時間後,沒有收到其它路由器的資訊,則活動路由器或者備用路由器就會被宣告為失敗。配置計時器并不是越小越好,雖然計時器越小則切換時間越短。計時器的配置需要和STP等的切換時間相一緻。另外,Hold間隔最少應該是Hello間隔的3倍。
實驗
在路由器和三層交換機上都可以配置HSRP,這裡是在路由器R1和R3上配置。
指令:
R1(config-if)#standby 1 ip 192.168.13.254 //啟用HSRP功能,建立standby組1,并設定虛拟網關IP位址
R1(config-if)#standby priority 120 //設定HSRP的優先級,該值大的會搶占成Active路由器,預設為100
R1(config-if)#standby 1 preempt //設定允許在該路由器優先級是最高時搶占為活動路由器
R1(config-if)#standby 1 timers 3 10 //設定Hellotime為3秒,Holdtime為10秒,預設即為該值
R1(config-if)#standby 1 authentication md5 key-string cisco //配置認證密碼
R1(config-if)#standby 1 track s0/0 30 //配置端口跟蹤

說明:
①相同組号的路由器屬于同一個HSRP組,所有屬于同一個HSRP組的路由器的虛拟IP位址必須一緻。
②“standby 1 preempt”指令:
1>如果不配置該指令,即使該路由器優先級再高,也不會成為Active路由;
2>如果再配置“standby 1 preempt delay minimum 1000”指令,則會延時1000毫秒才進行搶占。
③Hellotime:路由器每間隔多長時間發送Hello資訊;Holdtime:在多長時間内同組的其它路由器沒有收到活動路
由器的資訊,則認為活動路由器發生故障;如果要更改預設值,所有同HSRP組的路由器該項設定必須一緻。
④配置認證密碼為了防止非法裝置加入到HSRP組,并且同HSRP組的密碼必須一緻。
⑤端口跟蹤:如果試驗中沒有配置s0/0的端口跟蹤,當R1的s0/0接口出現問題,R1将沒有到達R2的Loopback0接
口所在網段的路由。然而R1和R3之間的以太網仍然沒有問題,HSRP的Hello包正常發送和接收。是以R1仍然是
虛拟網關192.168.13.254的活動路由器,Server的資料仍會發送給R1,這樣會造成Server無法ping通R2的
Loopback接口。當配置路由跟蹤後,端口跟蹤使得R1發現s0/0上的鍊路出現問題後,把自己的優先級(我們設
置的為120)減去一個數字(我們設定的為30),成為了90。由于R3的優先級為預設值100,這樣R3就成為了活動
路由器,Server的資料包将發往R3。降低的值應該選取合适的值,使得其他路由器能成為活動路由器。
⑥可以使用“standby 1 mac-address”指令修改虛拟MAC位址,系統預設的MAC位址為“0000.0c07.acXX”,
“XX”為HSRP的組号。
⑦可以使用“standby 1 name”指令設定HSRP組1的名字,如果沒有設定,系統将自動生成。
⑧由于HSRP的兩個版本version1和version2不相容,可以使用“standby version”指令設定HSRP的版本。
配置IP位址及路由:
R1(config)#int f1/0
R1(config-if)#ip add 192.168.13.1 255.255.255.0
R1(config-if)#no sh
R1(config)#int s0/0
R1(config-if)#ip add 192.168.12.1 255.255.255.0
R1(config)#router rip
R1(config-router)#network 192.168.12.0
R1(config-router)#network 192.168.13.0
R1(config-router)#passive-interface f1/0 //防止從該接口發送RIP資訊給R3
R2(config)#int lo0
R2(config-if)#ip add 192.168.2.2 255.255.255.0
R2(config)#int s0/0
R2(config-if)#ip add 192.168.12.2 255.255.255.0
R2(config-if)#clock rate 128000
R2(config-if)#no sh
R2(config)#int s0/1
R2(config-if)#ip add 192.168.23.2 255.255.255.0
R2(config)#router rip
R2(config-router)#network 192.168.2.0
R2(config-router)#network 192.168.12.0
R2(config-router)#network 192.168.23.0
R3(config)#int f1/0
R3(config-if)#ip add 192.168.13.3 255.255.255.0
R3(config-if)#no sh
R3(config)#int s0/1
R3(config-if)#ip add 192.168.23.3 255.255.255.0
R3(config)#router rip
R3(config-router)#network 192.168.23.0
R3(config-router)#network 192.168.13.0
R3(config-router)#passive-interface f1/0
配置HSRP:
R1(config-if)#standby 1 ip 192.168.13.254
R1(config-if)#standby priority 120
R1(config-if)#standby 1 preempt
R1(config-if)#standby 1 timers 3 10
R1(config-if)#standby 1 authentication md5 key-string cisco
R1(config-if)#standby 1 track s0/0 30
R3(config-if)#standby 1 ip 192.168.13.254
R3(config-if)#standby 1 preempt
R3(config-if)#standby 1 timers 3 10
R3(config-if)#standby 1 authentication md5 key-string cisco
實驗調試
R1#show standby brief //檢視HSRP簡要資訊

R1#show standby //檢視HSRP詳細資訊

Server:ping 192.168.2.2 -t
R1(config)#sh

在Server上連續ping路由器R2的Loopback接口的IP位址(192.168.2.2),在R1上關閉F1/0接口,可以發現:當R1故障時,R3很快就替代了R1,計算機的通信幾乎沒有受到什麼影響。
說明:如果重新打開R1的F1/0接口,由于再R1上配置了搶占(Preempt),是以R1又會成為活動路由器。
R3#debug standby //以下是當R1的F1/0接口關閉後,R3成為活動路由器過程中的debug資訊

配置多個HSRP組
之前的步驟已經虛拟了192.168.13.254網關,對于這個網關隻能有一個活動路由器,于是這個路由器将承擔全部的資料流量。我們可以再建立一個HSRP組,虛拟出另一個網關192.168.13.253,這時R3是活動路由器,讓一部分計算機指向這個網關,這樣就能做到負載平衡。
R1(config-if)#standby 1 ip 192.168.13.254
R1(config-if)#standby 1 priority 120
R1(config-if)#standby 1 track s0/0 30
R1(config-if)#standby 2 ip 192.168.13.253
R1(config-if)#standby 2 preempt
R1(config-if)#standby 2 authentication md5 key-string cisco
R3(config-if)#standby 1 ip 192.168.13.254
R3(config-if)#standby 2 ip 192.168.13.253
R3(config-if)#standby 2 priority 120
R3(config-if)#standby 2 preempt
R3(config-if)#standby 2 authentication md5 key-string cisco
R3(config-if)#standby 2 track s0/1 30
說明:我們這裡建立了兩個HSRP組,組1的IP為192.168.13.254,活動路由器為R1,一部分計算機的網關指向
192.168.13.254。組2的IP為192.168.13.253,活動路由器為R2,其餘計算機的網關指向192.168.13.253。這
樣,當網絡全部正常時,一部分資料是由R1轉發的,其餘資料是由R2轉發的,實作了負載平衡。當一個路由器
出現問題時,則另一個路由器就成為兩個HSRP組的活動路由器,承擔全部的資料轉發。通過這種方式實作負載
平衡,要求不同的計算機在設定網關時有所不同,如果計算機的IP是DHCP配置設定的,那這種方法就不太友善了。
注意:HSRP實際上在區域網路用的較多,由于區域網路内大多使用三層交換機,是以這時HSRP是在交換機上配置的。
另外,HSRP有Version1和Version2,兩者不相容,是以所有路由器或者交換機要使用相同的HSRP版本,可以使
用“standby version”指令設定版本。
轉自:http://blog.sina.com.cn/s/blog_635e1a9e010193if.html
本文轉自飛奔的小GUI部落格51CTO部落格,原文連結http://blog.51cto.com/9237101/1895002如需轉載請自行聯系原作者
ziwenzhou