思科交換機hsrp協議
HSRP 的概念 HSRP 是 Hot Standby Routing Protocol(熱備份路由協議)的縮寫。它的作用是能夠把一臺或多臺路由器用來做備份,所謂熱備份是指當使用的路由器不能正常工作時,候補的路由器能夠實現平滑的替換,盡
量不被察覺。 通常,我們的網絡上主機設置一條缺省路由,指向主機所在網段內的一個路由器 R,這樣,主機發出的目的地址不在本網段的報文將被通過缺省路由發往路由器 R,從而實現了主機與外部網絡的通信。在這種情況下,路由器 R 壞掉時,本網段內所有以路由器 R 為缺省路由下一跳的主機將斷掉與外部的通信。HSRP 實現容錯備份功能,可以有效解決上述可靠性問題。
HSRP 解決的問題主機 Pat 設置缺省網關 Router A,這樣訪問主機 Marceau 需要通過 Router A 來進行。一旦 Router A出現故障,主機 Pat 將失去與主機 Marceau 的聯系,除非主機 Pat 重新指定其它的缺省網關,如Router B.
HSRP 的引入
讓我們看一下引入 HSRP 是如何解決問題的。通過在 Router A 和Router B上配置 HSRP,使它們共同組成一個備份組,可以把這個組抽象成一個虛擬路由器,它有自己的 IP 地址和 MAC 地址,分別稱作虛擬IP 地址和虛擬 MAC 地址。這樣主機 Pat 可以把自己的缺省網關設置成虛擬 IP 地址,訪問主機Marceau 就可以通過虛擬路由器來進行。當然,虛擬路由器是一個抽象的概念,實際的網關工作是由Router A 和Router B中的一個來完成的,我們稱完成實際網關工作的路由器為活動路由器,另外一個路由器為備份路由器。如果活動路由器出現故障,就像前面提到的 Router A 發生故障,備份路由器(如Router B)會接替成為活動路由器,因此,主機 Pat 在不察覺情況下,仍然可以通過 Router B來訪問主機 Marceau。
HSRP 的用途
HSRP 用于廣播或多播局域網上的路由器熱備份,并適于靜態的路由配置,實際上 HSRP 正是解決設備不能動態適應路由改變的問題。 HSRP 主要用途: 1、主機設置缺省網關 假設主機 A 是局域網中一臺需要訪問遠程數據的服務器,要求遠程訪問能力可靠。由于主機 A 中靜態設置缺省網關,一旦想更換網關,必須在主機中重新配置。 通過使用 HSRP,主機中設置虛擬路由器為缺省網關,具體由虛擬路由器中的哪臺路由器完成網關的實際工作,主機并不關心,這就為應用提供了較好的可靠性和靈活性。 2、設置靜態路由 可以通過配置靜態缺省路由指向虛擬路由器來實現另外一種備份。
HSRP的實現
HSRP 工作原理
當采用 HSRP, 用戶看到的是一臺虛擬路由器,該虛擬路由器有自己的虛擬 IP 地址和虛擬 MAC 地址,該虛擬路由器是由一組路由器組成的,這組路由器稱為備份組。備份組內由一臺活動路由器、一臺備份路由器,以及群眾路由器構成。一般情況下,一旦活動路由器壞掉,該備份路由器成為活動路由器,然后備份組內選舉組內的另一臺路由器為備份路由器。 組內路由器通過接受來自活動路由器的周期性 Hello 報文來判斷活動路由器是否工作正常。如果組內備份路由器 R 在一定時間間隔未收到活動路由器 Hello 報文,就認為活動路由器壞掉了,優先級高的備份路由器最終成為活動路由器。備份路由器也是通過類似過程產生的。這樣總能保證備份組中有一臺活動路由器,一臺備份路由器。
HSRP 狀態
備份組內的路由器處于各自的狀態,根據相互間發送 HSRP 報文來調整新的狀態。 HSRP 狀態: (1)INIT 所有備份組內組員的初始狀態為 INIT,當組員配置屬性或端口 UP 時,進入 INIT 狀態。 (2)LEARN 該組員未設定虛擬 IP 地址,并等待從本組活動路由器發出的認證的 Hello 報文中學習得到自己的虛擬 IP 地址。 (3)LISTEN 該組員已得知或設置了虛擬 IP 地址,通過監聽 Hello 報文監視活動/備份路由器,一旦發現活動/備份路由器長時間未發送 Hello 報文,則進入 SPEAK 狀態,開始競選。 (4)SPEAK 參加競選活動/備份路由器的組員所處的狀態,通過發送 Hello 報文使競選者間相互比較、競爭。 (5)STANDBY 組內備份路由器所處的態,備份組員監視活動路由器,準備隨時在活動路由器壞掉 時接替活動路由器。備份路由器也周期性發送 Hello 報文告訴其他組員自己沒有壞掉。 (6)ACTIVE 組內活動路由器即負責虛擬路由器實際路由工作的組員所處的狀態。活動路由器周期性發送 Hello 報文告訴其他組員自己沒有壞掉。
HSRP 狀態轉換
HSRP 協議中定義了一個自動狀態機,不同的觸發事件會產生相應的狀態變化和動作。
HSRP 報文
Version :1 Byte HSRP 報文的版本號。本文檔的 HSRP 報文版本為 0 . Oper Code :1 Byte描述了 HSRP 報文的類型,共有3 種報文類型: (1)0 -- Hello Hello 類型報文說明發送者處在運行狀態,有能力成為活動/備份路由器。 (2)1 -- COUP COUP 類型報文說明發送者希望成為活動路由器。 (3)2 -- RESIGN COUP 類型報文說明發送者不再是活動路由器。 State :1 Byte 描述發送者發送報文時所處的狀態。 Hello Time :1 Byte 該域只在 Hello 報文中有意義。它包含發送者發送 Hello 報文的時間間隔,以秒計; 如果路由器上未配置 Hello Time 值,它可以從組中活動路由器發送的 Hello 報文中學習到,但須本路由器認證該 Hello 報文; 如果路由器上既未配置 Hello Time,也未學習到,則賦予缺省值 3. Hold Time :1 Byte 該域只在 Hello 報文中有意義。它包含發送者發送 Hello 報文的持有時間,以秒計; Hold Time 必須大于 Hello Time ,而且最好大于三倍 Hello Time ;如果路由器上未配置 Hold Time ,它可以從組中活動路由器發送的 Hello 報文中學習到,但須本路由器認證該 Hello 報文; 如果路由器上既未置 Hello Time ,也未學習到,則賦予缺省值10 . Priority :1 Byte 該域用來選舉活動/備份路由器。當選舉過程中出現競爭(多個路由器都想成為活動/備份路由器)時,優先級最高的競爭者勝,對于優先級相等的競爭者,IP 地址最大的競爭者勝。 Group :1 Byte 此域中記錄發送者所在的備份組號。對于以太網,Group 取值范圍為0-255 .
Authentication Data :8 Byte 8 字符長的的口令,用于組內成員相互鑒別。 Vritual IP Address:4 Byte 備份組的虛擬IP地址,備份組模擬的虛擬路由器的 IP 地址。虛擬路由器還有一 MAC 地址,它由組號直接映射而成:0X00 00 0C 07 AC ** ,其中"**"為備份組號。 組內各成員須至少有如下信息: (1)備份組號(Group); (2)虛擬 MAC 地址(Virtual MAC Address); (3)優先級(Priority); (4)Authentication Data; (5)Hello Time; (6)Hold Time; 至少一位組員有如下信息: (1)虛擬 IP 地址(Virtual IP Address); 每位組員可選擇配置如下信息:(1)搶占標志(Preempt); 如果某位組員的 Preempt 置位,又收到活動路由器的 Hello 報文,發現自己的優先級比活動路由器高,則該組員可強行取代成為活動路由器。
HSRP 多備份組(MHSRP)
在一網段內,多個備份組可以共存。每個備份組模擬成一虛擬路由器,每個這樣的虛擬路由器配置一虛擬MAC 地址和一虛擬 IP 地址。該虛擬IP地址應屬于本網段,而且不與網段內的任何路由器和主機的IP地址相同,也不與網段內的其他虛擬路由器的虛擬IP地址相同。 一臺路由器也可以參加多個備份組,為多個組作備份。 路由器的 HSRP 配置是針對具體接口的,因此需要在接口模式下配置。在一臺路由器上,備份組由(接口,組號)唯一確定。每個備份組都有屬于自己的數據和狀態。 如果一臺路由器有兩個以太網口,可以分別在兩個接口上配置兩個 HSRP 備份組,為不同網段使用。
HSRP 的配置方法
[no] standby [group-number] ip [virtual ip address]
說明: 使路由器在指定局域網段加入或退出一個備份組。需要指定備份組號和虛擬 IP 地址。備份組號范圍從 0 到 255,如 group-number 不指定,備份組號缺省為 0,virtual ip address 如果不指定,路由器不會參與備份,直到從備份組中的活 動路由器獲得虛擬 IP 地址。注意虛擬 IP 地址應該是接口所在網段的地址。一旦退出 HSRP 備份組,則路由器在該備份組上設置的所有 HSRP 特性不再有效(如優先級,授權字等)。 standby [group-number] priority [priority-value] 說明: HSRP 中根據優先級來確定參與備份組的每臺路由器的地位,備份組中優先級最大并且已獲得虛擬 IP 地址的路由器將成為活動路由器,優先級其次的路由器將成為備份路由器。優先級缺省值是 100,可設置范圍從 0 到 255. standby [group-number] preempt 說明: 一旦備份組中的某臺路由器成為活動路器,只要它沒有出現故障,其它路由器即使隨后被配置更高的優先級,也不會成為活動路由器,除非被設置搶占方式。路由器如果設置搶占方式,它一旦發現自己的優先級比當前的活動路由器的優先級高,就會成為活動路由器。相應地,原活動路由器會退出活動態,成為備份路由器或其它。缺省方式是不搶占。 standby [group-number] authentication string 說明: HSRP 授權字確認同備份組間其它路由器的有效性。授權字 string 的長度不超過 8 個字節。注意:同一備份組要設置相同的授權字。 standby [group-number] timers [hello_time] [hold_time]說明: HSRP 備份組路由器之間通過定時發送 Hello 報文確認相互的狀態,超過一定時間(hold time)沒有收到某臺路由器的 Hello 報文,則認為它已關機或出現故障。用戶可以調整發送 Hello 報文的間隔時間(hello time)和超時時間(hold time)。缺省值分別是 3 秒和 10 秒。時間單位是秒。注意:同一備份組要設置相同的 hello time 和 hold time. standby [group-number] trackinterface_name [priority-reduced] 說明: HSRP 監視接口功能,更好地擴充了備份功能,即不僅在路由器出現故障時提供備份功能,而且在某網絡接口不可用時,也可以使用備份功能。命令作用是監視接口interface_name,如果接口變為不可用,則將優先級減少 priority-reduced (priority-reduced 缺省值為 10) .