天天看點

熱備份路由選擇協定(HSRP)的原理與配置

HSRP的原理

     HSRP(Hot Standby Routing Protocol,熱備份路由選擇協定)是Cisco私有的一種技術,它確定了當網絡邊緣裝置或接傳入連結路出現故障時,使用者通信能迅速并透明的恢複,以此為IP網絡提供備援性。通過應用HSRP,可使網絡的正常運作時間接近100%,進而滿足使用者對網絡可靠性的要求

    熱備份路由協定為IP網絡提供了容錯和增強的路由選擇功能。通過使用同一個虛拟IP位址和虛拟MAC位址,LAN網段上的兩台或多台路由器可以作為一台虛拟路由器對外提供服務。HSRP使組内的Cisco路由器能互相監視對方的運作狀态。

(1) 虛拟路由器組的成員通過HSRP消息不斷的交換狀态資訊。

(2) 如果其中一台出現故障,另一台就能接替它,繼續完成路由功能。

   LAN網段上的主機都配置使用同一個虛拟路由器作為預設網關,并不斷将IP包發往同一個IP和MAC位址。是以,路由裝置的切換對主機都是透明的。HSRP向主機提供了預設網關的備援性,絕大多數主機以預設網關作為唯一的下一跳IP和MAC位址。另外,通過多個熱備份組,路由器可以提供備援備份,并在不同的IP子網上實作負載均衡。

HSRP組成員

    HSRP備份組由一台活躍路由器、一台備份路由器、一台虛拟路由器和其他路由器組成(在三層交換機配置HSRP時也使用HSRP定義的備份路由器等名稱)。其中,各路由器的作用如下:

1.活躍路由器的功能是轉發發送到虛拟路由器的資料包。組中的另一台路由器被選為備份路由器。活躍路由器通過發送Hello消息來承擔和保持它活躍的角色。

2.備份路由器的功能是監視HSRP組的運作狀态,并且當活躍路由器不能運作時,迅速承擔起轉發資料包的責任。備份路由器也傳輸Hello消息,告知組中所有路由器備份路由器的角色和狀态變化。

3.虛拟路由器(即該LAN上的網關)的功能是向最終使用者提供一台可以連續工作的路由器。虛拟路由器配有它自己的IP位址和MAC位址,但并不實際轉發資料包。

4.HSRP備份組可以包含其他路由器。這些路由器監視Hello消息,但不做應答。這些路由器轉發任何經由它們的資料包,但并不轉發經由虛拟路由器的資料包。

  當活躍路由器失效時,其他HSRP路由器将不能接收到Hello消息,随後備份路由器就承擔起活躍路由器的角色。

  随着備份路由器成為活躍路由器,備份路由器的位置空缺,組中的所有其他路由器将競争備份路由器的角色。預設情況(優先級相同)下,IP位址大的路由器将成為新的備份路由器。盡管一個HSRP組中可以有多台路由器,但隻有活躍路由器才負責轉發發送到虛拟路由器的資料包。

HSRP的具體工作原理

   HSRP組内的每個路由器都有指定的優先級(Priority),用于衡量路由器在活躍路由器選擇中的優先程度。預設的優先級是100,它是使用者配置中的可選項,可以是0-255内的任何值。組中有最高優先級的路由器将成為活躍路由器。

活躍路由器替虛拟路由器對資料流進行到響應。如果末端主機發送了一個資料包到虛拟路由器的MAC位址,那麼,活躍路由器将接收并且處理這個資料包。如果末端主機對虛拟路由器的IP位址發送ARP解析請求,那麼,活躍路由器将使用虛拟器的MAC位址進行應答。

    選擇活躍路由器和備份路由器時,如果優先級相同,IP位址大的路由器獲勝。如果在HSRP組内,除了活躍和備份路由器之外還有其他路由器,它們就會監聽活躍路由器和備份路由器的狀态(即它們發出的HSRP Hello包),以實作更強的容錯能力。

虛拟MAC位址

    位址解析協定ARP在IP位址和MAC位址之間建立了一種關聯。每台三層交換機都維護着一個位址解析表。三層交換機在試圖聯系某個裝置之前,先檢查其ARP緩存,以确定這個位址是否已經被解析。虛拟路由器的IP位址和相應的MAC位址維持在HSRP組中的每台三層交換的ARP表中。

虛拟路由器所用的MAC位址由三部分組成:

1.廠商編碼——MAC位址的前三個位元組。

2.HSRP編碼(HSRP衆所周知的虛拟MAC位址)——MAC位址的後兩個位元組,本MAC位址用于一台HSRP虛拟路由器,HSRP編碼總是“07.ac”。

3.組号(HSRP組号)——MAC位址的最後一個位元組是組的标示号。例如,組号47轉換為十六進制為2f,它将構成MAC位址的最後一個位元組

HSRP消息

   HSRP中的所有路由器都發送或接受HSRP消息。這些消息用來決定和維護組内的路由器角色。HSRP消息封裝在使用者資料報協定(UDP)資料包中的資料部分,使用UDP端口号1985。

這些資料包所使用的目的位址是全部路由器多點廣播位址224.0.0.2,生存時間TTL值為1。(發送給相鄰的路由器,隻能發送一次)

HSRP的狀态

    HSRP配置的路由器有六種狀态,并不是所有的HSRP路由器都經曆所有狀态。例如:不是備份路由器或者活躍路由器的路由器,就不會有備份狀态和活躍狀态。

1. 初始狀态:所有路由器都從初始狀态開始。這是一種起始狀态,同時表明HSRP還沒有運作。配置發生變化或一個端口第一次啟用時,就進入該狀态。

2. 學習狀态:路由器等待來自活躍路由器的消息。這時,路由器還沒有看到來自活躍路由器的Hello消息,也沒有學習到虛拟路由器的IP位址。

3. 監聽狀态:路由器知道了虛拟的IP位址,但它既不是活躍路由器,也不是備份路由器。這時,路由器監聽來自活躍路由器和備份路由器的Hello消息。除活躍路由器和備份路由器之外的路由器都保持監聽狀态。

4. 發言狀态:路由器周期性的發送Hello消息,并參與活躍或備份路由器的競選。路由器在獲得虛拟路由器的IP位址之前,不能進入發言狀态。

5. 備份狀态:路由器是成為下一個活躍路由器的候選裝置,并且它也周期性的發送Hello消息。在一個組中隻有一台備份路由器。

6. 活躍狀态:在活躍狀态,路由器負責轉發發送到備份組的虛拟MAC位址的資料包。活躍路由器周期性的發送Hello消息。在一個組中,必須有且隻有一台活躍路由器。

HSRP的計時器

   HSRP使用兩個計時器:Hello間隔和保持時間。任何狀态的HSRP路由器都會在Hello計時器逾時後生成Hello包。預設的Hello間隔是3s,預設的保持時間是10s。

   未配置計時器的路由器會從活躍路由器或備份路由器學到這些計時器的值。活躍路由器上配置的計時器值會覆寫其他路由器上的計時器設定值。同一個HSRP組内的路由器應該使用相同的計時器值。通常,保持時間會大于或等于Hello間隔的三倍,并且保持時間的取值必須大于Hello間隔。

   其他HSRP路由器按照保持時間對活躍路由器進行監控:當收到任何活躍路由器發出的Hello包時,路由器會根據HSRP Hello消息中的相應字段重置保持時間值。

   通常,預設的HSRP計時器值适用于大多數的LAN網段。(對于反應慢的路由器,将保持時間改長一點)

HSRP與VRRP的差別

   HSRP是Cisco的專有協定。在Cisco的HSRP之後,Internet工程任務組(Internet Engineering Task Force,IETF)也指定了一種路由備份備援協定:虛拟路由器備援協定(Virtual Router Redundancy Protocol,VRRP)。目前,包括Cisco在内的主流廠商均已在其産品中支援VRRP協定。

   VRRP的工作原理與HSRP相似,也是将系統中的多台路由器組成VRRP組,該組擁有同一個虛拟IP位址作為LAN的預設網關位址。

   VRRP和HSRP也有很多不同。VRRP與HSRP的一個主要差別在安全性方面:它允許參與VRRP組的裝置間建立認證機制。另一個主要差別是:VRRP中隻有三種狀态——初始狀态(Initialize)、主狀态(Master)、備份狀态(Backup),而HSRP有六種狀态。其餘在封包類型、封包格式和通過TCP而非UDP發送封包方面也都有所不同。

HSRP的配置及應用

1. 配置為HSRP的成員

要将三層交換機配置為一個HSRP組的成員,可以在VLAN虛拟接口端口配置模式下輸入下面的指令:

   Switch(config-if)# standby group-number ip virtual-ip-address     

 group-number:表示該端口所屬的HSRP組。通過在備份指令中指定一個唯一的組号可以建立多個HSRP組。預設組是0号,可配置範圍是0-255。

  virtual-ip-address:表示虛拟HSRP路由器的IP位址,即網段的網關位址。如果指定了IP位址,則該位址就會用作該組的HSRP位址。如果沒有指定IP位址,路由器就會通過HSRP Hello消息學到虛拟位址。在選擇活躍路由器時,線路上至少要有一台路由器被配置,或者學到了虛拟IP位址。需要注意配置的虛拟IP位址必須和端口配置的實際位址處于同一網段

例如:為交換機配置HSRP組号為10,指定虛拟位址為192.168.1.254

   Switch(config-if)#standby 10 ip 192.168.1.254             

如果需要從HSRP組中取消一個端口,可以在上述指令前加關鍵字no。

   Switch(config-if)# no standby 10 ip 192.168.1.254        

2. 配置HSRP的優先級

   使用者可以指定端口在組内的優先級。這樣,在發生故障時,使用者可以靈活的指定端口順序。優先級數值高的将成為活躍路由器,指定優先級可使用下面的指令:

   Switch(config-if)#standby group-number priority priority-value  

其中,priority-value的範圍是0-255,預設值是100。

3. 配置HSRP的占先權

  要想原先的活躍路由器(優先級高)能夠從優先級較低的新活躍路由器那裡重新取回轉發權,恢複轉發路由器的角色,可以使用下面的指令:

   Switch(config-if)#standby group-number preempt    

  在配置了standby preempt指令之後,優先級高的端口将變成活躍狀态。

除了上述情況下,還有一些其他情況需要配置占先權:

* 配置HSRP時,先配置低優先級的路由器A,當配置完成後它會确認HSRP組中其他路由器的狀态和優先級。此時路由器A是HSRP組中唯一的裝置,路由器A認為自身優先級最高而成為活躍路由器。在路由器A成為活躍路由器後,再配置高優先級的路由器B,如果沒有配置占先權,則路由器B将不會成為活躍狀态,而成為備份狀态。

* 在網絡中的HSRP組工作正常,路由器A優先級為200,路由器B優先級為100,路由器A成為活躍路由器。在路由器A上配置端口跟蹤,優先級降低150。當跟蹤的端口鍊路出現故障時,路由器A的優先級降低為50,路由器B成為HSRP組中優先級最高的裝置。這時如果路由器B沒有配置占先權,則不會成為活躍路由器。

    由此可以看出,如果網絡中已經存在活躍路由器,則新加入HSRP組中沒有配置占先權的路由器無論其優先級高低都不會成為活躍路由器。

4. 配置Hello消息的計時器

    預設計時器值在很多網絡中都工作得很好,一般情況下不需要修改。然而,如果Hello包需要經過有時會擁塞的網絡,可以修改這些值,指令如下:

   Switch(config-if)#standby group-number times hellotime holdtime    

  其中,hellotime間隔時間預設為3s,設定範圍是1-255;holdtime保持時間最少應該是Hello時間的三倍,預設的保持時間是10s。

例如:将Hello時間和保持時間分别配置為2s和8s,指令如下:

   Switch(config-if)#standby 10 times 2 8        

注意:同一個HSRP組中的Hello時間和保持時間應該配置相同。

5. 配置HSRP的端口跟蹤

   利用HSRP跟蹤(HSRP Tracking)功能,可以指定HSRP監控路由器上的另一端口。如果被跟蹤端口的狀态變為Down,其他路由器就接替其成為活躍路由器。這一過程是通過被跟蹤端口的鍊路狀态變為Down時減小HSRP的優先級來實作的。減小優先級的目的是讓路由器的HSRP優先級低于其他路由器,預設減小值是10。HSRP跟蹤功能減少額主端口不可用時路由器的優先級,但其仍有保持活躍路由器的可能性。通用的原則是在HSRP端口上同時設定占先功能(高優先級和低優先級都配置),以提供最佳的故障切換效果。

  配置端口跟蹤,可以輸入下面的指令:

   Switch(config-if)#standby group-number track interface-type mod/num interface-priority   

 其中:

 group-number:采用跟蹤功能的端口的組号

 interface-type:跟蹤端口的端口類型

 mod/num:跟蹤端口的端口号

 interface-priority:當端口失效時,路由器的熱備份優先級将降低的數值;當端口變為可用時,路由器的優先級将加上該數值,預設值為10。

  要關閉端口跟蹤功能時,可以使用no standby group-number track指令

例如:配置跟蹤端口F0/1,優先級降低100

   Switch(config-if)#standby 10 track fastEthernet 0/1 100       

6. 檢查HSRP的狀态

  要顯示HSRP路由器的狀态,在特權模式下輸入如下指令:

   Switch# show standby [interface-type mod/num] [group-number] brief    

其中:

 interface-type mod/num:要顯示的端口類型和序号

 group-number:要顯示的具體HSRP組

 brief:顯示摘要資訊,每個備份組總結顯示一行輸出

實驗案例:配置HSRP以及生成樹實作負載均衡,備份備援

1.配置裝置基本資訊:包括接口IP、VLAN、trunk、路由等配置 (略)

2.配置HSRP

 在SW1上配置HSRP

 在SW2上配置HSRP

3.配置STP實作VLAN負載均衡

   SW1(config)# spanning-tree vlan 2  root primary          

   SW1(config)# spanning-tree vlan 3  root secondary        

   SW2(config)# spanning-tree vlan 3  root primary          

   SW2(config)# spanning-tree vlan 2  root secondary        

本文轉自 楊書凡 51CTO部落格,原文連結:http://blog.51cto.com/yangshufan/1957421,如需轉載請自行聯系原作者

繼續閱讀