天天看點

HSRP和VRRP基本工作原理

<b>2.1.1 HSRP概述</b>

     實作HSRP的條件是系統中有多台路由器,它們組成一個“熱備份組”,這個組形成一個虛拟路由器。<b>在任一時刻,一個組内隻有一個路由器是活動的</b>,并由它來轉發資料包;如果活動路由器發生了故障,将選擇一個備份路由器來替代活動路由器,但是在本網絡内的主機看來,虛拟路由器沒有改變。是以主機仍然保持連接配接,沒有受到故障的影響,這樣就較好地解決了傳統模式下因路由器切換而帶來的資料丢失問題。

<b>1.    HSRP基本工作原理</b>

    HSRP 協定提供了一種決定使用活動路由器還是備份路由器的機制,并指定一個虛拟的 IP 位址作為網絡系統的預設網關位址。如果活動動路由器出現故障,備份路由器(Standby Router)就會自動接管活動路由器(Active Router)的所有任務,并且不會導緻主機連通中斷現象。當在網絡或者網段中配置了HSRP時,會提供一個由HSRP路由器組中各路由器共享的虛拟MAC位址和虛拟的IP位址。<b>但是</b><b>HSRP</b><b>路由器組中的各</b><b>路由器轉發協定資料包的源位址使用的仍是實體路由器接口上的實際</b><b> IP </b><b>位址,而并非虛拟</b><b>IP</b><b>位址</b>。正因如此,HSRP 組中的路由器間能互相識别。

    HSRP 組中各路由器的識别是通過VRRP Hello廣播包來維系的。HSRP運作在 UDP 上,發送HSRP通告包時所采用的端口号為UDP 1985。為了減少網絡的資料流量,在設定完活動路由器和備份路由器之後,<b>隻有活動路由器向備份路由器定時發送</b><b>HSRP</b><b>封包</b>,而備份路由器不會向活動路由器發送HSRP封包。如果目前活動路由器失效,備份路由器将接管成為新的活動路由器。如果備份路由器失效或者變成了活躍路由器,将由另外的路由器被選為備份路由器。

    HSRP設計用來在支援多路通路、多點傳播、廣播的以太區域網路中工作,不是用來替換現存的動态路由協定的。

<b>2. HSRP版本</b>

    目前一些Cisco IOS交換機支援兩種HSRP版本:HSRPv1和HSRPv2。預設都是v1版本。在HSRPv1版本中,備份組的組号取值範圍為0~255,虛拟MAC位址為0000.0C07.AC??(“??”為HSRPv1組号)。HSRPv1使用多點傳播IP位址224.0.0.2來發送hello包,這樣就會與使用相同多點傳播IP位址的CGMP(Cisco Group Management Protocol,思科組管理協定)相沖突,是以你不能同時啟用HSRPv1和CGMP。

    HSRPv2備份組的組号可以與子接口的VLAN ID号進行比對,取值範圍為0~4095,虛拟MAC位址的取值範圍為0000.0C9F.F000 ~ 0000.0C9F.FFFF。HSRPv2使用多點傳播IP位址224.0.0.102來發送Hello包,這樣就不再與CGMP有沖突了,可以同時啟用這兩個協定。

    另外,HSRPv2與HSRPv1的包格式也不一樣。運作HSRPv1的交換機不能識别發送hello包的實體路由器,因為包中的源MAC位址是虛拟MAC位址。而HSRPv2包使用TLV(type-length-value)格式,并有一個6位元組,帶有發送hello包的實體路由器MAC位址的辨別(identifier)字段。如果運作HSRPv1的接口接收到一個HSRPv2的包,則type(類型)字段将被忽略。

    在實際的一個特定的區域網路中,可能有多個熱備份組并存或重疊,這就是我們下面将要介紹的MHSRP(多HSRP)。每個熱備份組模拟成一個虛拟路由器工作,都有一個Well-known(公認)的MAC位址和一個IP位址。該IP位址、組内路由器的接口位址、主機在同一個子網内,但是不能一樣。當在一個區域網路上有多個熱備份組存在時,把主機分布到不同的熱備份組,可以實作負載分擔。

    【注意】在HSRP備份組中的路由器可以是支援HSRP的任一路由器接口,包括可路由端口和VLAN的SVI接口。但對于交換機來說,這台交換機不能運作LAN Base特性集。

<b>2.1.2 HSRP工作原理</b>

    多數IP主機有一個以單一路由器作為預設網關的IP位址。當使用HSRP時,IP主機的預設網關将以HSRP組的虛拟IP位址替代具體實體路由器接口的IP位址。HSRP通過為網絡中的主機提供備援的IP通信路由來實作網絡的高可用性。

<b>1.     HSRP組中路由器的兩種角色</b>

    在HSRP路由器組中的路由器分成兩種兩種角色:活動路由器(Active Router)和備份路由器(Standby Router),共同構成一台虛拟路由器。活動路由器承擔路由包轉發工作,而備份路由器隻是在目前活動路由器出現故障時,或者滿足某種條件時才接管活動路由器的工作。HSRP對于那些不支援路由發現協定(如ICMP路由發現協定(IRDP)),不能在它們所選擇的路由器重載,或者關閉時切換到新的路由器的主機網絡中非常有用。因為在啟用HSRP後,現存的TCP會話可以繼續,避免中斷,為主機動态選擇下一跳恢複IP路由通信。

    運作HSRP的路由器發送和接收基于UDP的多點傳播Hello消息來檢測路由器的失效,指定活動路由器和備份路由器。當活動路由器在所配置的期間内沒有發送一個Hello包,具有最高優先級的備份路由器将成為新的活動路由器,網絡中所有主機的資料通信将同時切換到新的活動路由器上。

<b>2.     HSRP組虛拟MAC位址和虛拟IP位址</b>

    在一個網段配置了HSRP後,它将提供一個供運作HSRP的路由器組中的各成員路由器共享的虛拟MAC位址(Virtual MAC address)和虛拟IP位址(virtual IP address),各路由器的HSRP備份組IP位址必須都設定成這個虛拟IP位址。在這些路由器中将選擇一台路由器作為活動路由器,活動路由器接收、路由包到路由器組的虛拟MAC位址。當活動路由器失效時,HSRP會檢測到,同時會選舉一個備份路由器來控制路由器組的虛拟MAC位址和虛拟IP位址。

通過共享一個虛拟MAC位址和虛拟IP位址,兩台或者多台路由器可以作為一台虛拟路由器。虛拟路由器并不是實際存在的,但它是作為為HSRP組中互相備份的路由器的公共預設網關。你無需在網絡中用活動路由器的實體接口IP位址為主機配置預設網關,而要用虛拟路由器的虛拟IP位址作為主機的預設網關。如果活動路由器在所配置的延時時間内沒有發送Hello包,則備份路由器會認為活動路由器已失效,備份路由器之間會選舉一台新的路由器作為新新的活動路由器,控制虛拟IP位址的使用。

<b>3.     HSRP優先級</b>

    HSRP還使用優先級機制來決定哪台HSRP路由器成為預設的活動路由器。要配置一台路由器作為活動路由器,你需要配置設定一個比組中其它路由器更高的優先級。預設的優先級是100,是以如果你僅配置一台路由器的優先級大于100(值越大,優先級越高),則這台路由器就會成為預設路由器了。

<b>4.     MHSRP</b>

    你可以在多台交換機或交換機堆疊間配置多個路由器備份組,并為每個備份組指定一個組号。這就是MHSRP(多HSRP)。例如,你可以在switch 1上配置一個接口作為活動路由器,在switch 2上配置一個接口作為備份路由器,同時你也可以在switch 2上配置另一個接口作為活動路由器,而在switch 1上配置另一個接口作為備份路由器。

    有關MHSRP的具體工作原理将在下節介紹。

<b>5.     HSRP示例</b>

    圖2-1顯示了一個網段的HSRP配置。其中的備份組中有兩台路由器,Rouer A是活動路由器,Rouer B是備份路由器。它們兩個一起形成一個虛拟路由器。每台路由器都用虛拟路由器的MAC位址和IP位址進行配置。

<a href="http://blog.51cto.com/attachment/201204/195656553.png" target="_blank"></a>

圖2-1  典型HSRP拓撲示例

    在這樣一個示例中,網絡中的主機預設網關配置就要指向這個虛拟路由器IP位址,而不是指向Router A或者Router B。當Host C發送一個資料包到Host B時,它會先以虛拟路由器的MAC位址作為源MAC位址把資料包發送到虛拟路由器。正常情況下,肯定是通過Router A來對Host C的請示進行響應的,因為它是備份組的活動路由器。如因某種原因,Router A停止了工作,則Router B會以虛拟路由器的MAC位址和IP位址ARP映射表項進行響應,同時成為活動路由器。然後,Host C使用Router B的ARP響應包中的虛拟路由器IP位址發送資料包給Host B。當Rouer B接收到資料包後,再轉發給Host B。直到Router A恢複正常工作之前,HSRP一直允許Router B為Host C網段中到達Host B所在網段的使用者提供不間斷的服務,當然同時它仍然負責正常的Host A和Host B網段這間的使用者通信。

<b>2.3.2 主要VRRP特性概述</b>

    在VRRP中最主要的特性包括以下幾個:(1)VRRP路由器優先級和搶占,(2)VRRP通告,(3)VRRP認證,(4)VRRP對象跟蹤。

<b>1.    VRRP路由器優先級和搶占</b>

    VRRP備援方案的一個重要特征就是VRRP路由器優先級。優先級決定了每個VRPP路由器在虛拟路由器主失效時可以扮演的角色。如果一個VRRP路由器的實體接口IP位址與虛拟路由器的IP位址相同,則認為它是虛拟路由器IP位址擁有者,會自動成為虛拟路由器主的。

    VRRP路由器的優先級也決定了在虛拟路由器主失效時備份路由器可能成為新的虛拟路由器主的排序。你可以使用<b>vrrp priority</b>指令為每個備份路由器配置1~254的優先級,因為255是最高優先級,是虛拟路由器IP位址擁有者的優先級,不可改變的。

     例如。如果目前的虛拟路由器主Router A失效了,這時就會在Router B和Router C這兩台備份路由器間進行新的虛拟路由器主選舉。如果Router B和Router C這兩台路由器的優先級分别配置為101、100,這時Router B将被選舉為新的虛拟路由器主,因為它的優先級更高。如果Router B和Router C這兩台路由器的優先級都配置為100,這時就要考慮這兩台路由器的IP位址配置了,IP位址大的将成為新的虛拟路由器主。

    預設情況下,具有更高優先級的備份路由器可以接管目前的虛拟路由器主,而成為新的虛拟路由器主。你可以使用<b>no vrrp preempt</b>指令禁止VRPP路由器的搶占功能。如果禁止了搶占功能,則選舉成為新的虛拟路由器主的備份路由器将一直保持虛拟路由器主角色,直到原來的虛拟路由器主恢複,重新成為虛拟路由器主。

<b>2.    VRRP通告</b>

    啟用了VRRP後,虛拟路由器主發送VRRP通告到其他VRRP路由器,向其他路由器傳遞虛拟路由器主的優先級和狀态。VRRP通告封裝在IP包中,并用配置設定給VRRP組的多點傳播IP位址進行發送。VRRP通告會發按配置的發送時間間隔向VRRP組中的每個備份路由器。

    盡管VRRP按照RFC 3786是不支援毫秒級計時器,但在Cisco路由器中仍允許你配置毫秒級計時器。你需要手動在虛拟路由器主和備份路由器上配置毫秒級計時器。要注意的是,在備份路由器上使用show vrrp指令顯示的虛拟路由器主通告計時器值總是為1秒,因為備份路由器不接受毫秒時間值。

<b>3.    VRRP對象跟蹤</b>

    對象跟蹤是一個獨立管理建立、監控和删除被跟蹤對象(如接口線路協定狀态)的程序。HSRP、GLBP(Gateway Load Balancing Protocol,網關負載平衡協定)和VRRP用戶端注冊被跟蹤對象,在這些對象的狀态發生改變時采取相應的行動。

每個被跟蹤的對象由一個唯一的号碼辨別的,VRRP、HSRP、GLBP等使用這個号碼對對象進行跟蹤,這與比較新的IOS版本中的HSRP對象跟蹤方法是一樣的。跟蹤程序會周期性地輪換跟蹤被跟蹤的對象,并注意它們的任何參數值的改變。一旦被跟蹤的對象發生任何改變,則會通知VRRP、HSRP或GLBP。

VRRP也可僅跟蹤特定的對象,如接口狀态、線路協定、IP路由狀态和路由的可達性。每個VRRP組可以跟蹤多個可能影響VRRP路由器優先級的對象,你隻需要指出其要跟蹤的對象号,VRRP就會在被跟蹤對象發生任何改變時得到通知,然後VRPP會根據相應的狀态改變減小或者增加虛拟路由器的優先級。

<b>4.    VRRP認證</b>

    VRRP會忽略沒有認證的VRPP消息,預設的認證類型為文本認證,但你也可以配置使用密鑰字元串的簡單MD5認證,或者MD5認證密鑰鍊。MD5認證提供了比純文字認證更高的安全性。MD5認證允許每個VRRP路由器組成員使用一個加密密鑰産生一個加密的MD5哈希值,并作為出站包的一部分。從其他VRRP路由器流入的入站包也會産生一個加密MD5哈希值,如果入站包中的哈希值與本VRRP路由器的出站包中的哈希值與不一緻,則這個入站包将被忽略。MD5哈希值可以直接在配置中使用密鑰字元串給出,也可以通過密鑰鍊間接提供。VRRP路由器将忽略來自不是相同認證配置的VRRP路由器發來的VRRP包。

<b>2.3.3 VRRP基本工作原理</b>

     圖2-4顯示了一個配置了VRRP的區域網路拓撲結構。在這個示例中,Router A、Router B和Router C是組成VRPP虛拟路由器的VRRP路由器成員。虛拟路由器IP位址與Router A的IP位址一樣——10.0.0.1(HSRP中的虛拟IP位址不能與實體路由器的IP位址一樣)。

<a href="http://blog.51cto.com/attachment/201204/195727455.png" target="_blank"></a>

圖2-4 基本的VRRP拓撲

    因為虛拟路由器使用Router A上的實體接口IP位址,Router A就自動成為虛拟路由器主角色,并成為虛拟IP位址擁有者。作為虛拟路由器主,Router A控制着虛拟路由器的IP位址,并且對轉發到這個虛拟IP位址的資料包進行響應。在本示例中,Client 1~3配置Router A的IP位址10.0.0.1作為預設網關。

    此時,Router B和Router C作為虛拟路由器的備份。如果虛拟路由器主(Router A)失效,Router B和Router C中優先級更高的将成為新的虛拟路由器主,為區域網路中的主機提供不間斷的服務。當Router A恢複後,它又将成為虛拟路由器主。

    圖2-5顯示了一個配置了兩個VRRP組的LAN拓撲,Router A和Router B共享到達,或者來自Client 1~4的負載,Router A和Router B為互相備份的關系,因為此時這兩個路由器已建立了兩個VRPP組,而且兩個路由器分别為兩VRRP組中的虛拟路由器主。

在這個示例中,就有兩個VRPP虛拟路由器了。對于VRRP組1,Router A是IP位址虛拟IP位址10.0.0.1的擁有者,自動成為虛拟路由器主,Router B作為備份路由器。Client 1和Clients 2以虛拟IP位址作為預設網關。而在VRRP組2中,Router B是IP位址虛拟IP位址10.0.0.2的擁有者,自動成為虛拟路由器主,Router A作為備份路由器。Client 3和Clients 4以虛拟IP位址作為預設網關。

<a href="http://blog.51cto.com/attachment/201204/195750757.png" target="_blank"></a>

圖2-5 雙VRRP組負載共享的拓撲示例

 本文轉自王達部落格51CTO部落格,原文連結http://blog.51cto.com/winda/836932如需轉載請自行聯系原作者

茶鄉浪子

繼續閱讀