簡介
本檔案介紹熱待命路由器通訊協定(HSRP)的運作方式並檢視其功能。
必要條件
需求
本文件沒有特定需求。
採用元件
本文件所述內容不限於特定軟體和硬體版本。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
慣例
如需文件慣例的詳細資訊,請參閱思科技術提示慣例。
HSRP背景和操作
實現接近100%的網路正常運行時間的一種方法是使用HSRP,它為IP網路提供網路冗餘,並確保使用者流量立即透明地從網路邊緣裝置或接入電路的第一跳故障中恢復。
當兩台或多台路由器共用IP地址和MAC(第2層)地址時,它們可以充當單個「虛擬」路由器。虛擬路由器組的成員不斷交換狀態消息。這樣,如果一台路由器由於計畫或計畫外原因而停止運行,則一台路由器可以承擔另一台路由器的路由責任。主機繼續將IP資料包轉發到一致的IP和MAC地址,並且執行路由的裝置轉換是透明的。
動態路由器發現機制
其中介紹了主機可用的動態路由器發現機制。許多此類機制無法提供網路管理員所需的網路恢復能力。這可能是因為通訊協定最初並非提供網路復原,或是因為網路上的每部主機都無法執行通訊協定。除了列出的功能外,還必須注意許多主機僅允許您配置預設網關。
代理位址解析通訊協定
有些IP主機使用代理地址解析協定(ARP)選擇路由器。當主機運行代理ARP時,它會傳送一個ARP請求,請求它要聯絡的遠端主機的IP地址。網路上的路由器(路由器A)代表遠端主機做出應答,並提供自己的MAC地址。使用代理ARP,主機的行為就如同遠端主機連線到網路的同一網段一樣。如果路由器A發生故障,主機繼續將目的地為遠端主機的資料包傳送到路由器A的MAC地址,即使這些資料包無處可去且已丟失。您可以等待ARP獲取傳送另一個ARP請求的本地網段上另一台路由器(路由器B)的MAC地址,也可以重新啟動主機以強制它傳送ARP請求。無論哪種情況,在相當長的一段時間內,即使路由協定已收斂,主機仍無法與遠端主機通訊,並且路由器B準備傳輸通過路由器A的包。
動態路由協定
有些IP主機執行(或偵聽)動態路由協定(例如路由資訊協定(RIP)或開放最短路徑優先(OSPF))來發現路由器。使用RIP的缺點是適應拓撲變化的速度很慢。要在每台主機上運行動態路由協定,由於多種原因,再加上管理開銷, processing
開銷、安全問題,或某些平台考慮事項缺少協定實施。
ICMP路由器探索通訊協定
某些較新的IP主機在路由變得不可用時使用ICMP路由器發現協定(IRDP)(RFC 1256)來查詢新路由器。運行IRDP的主機偵聽來自其已配置路由器的問候組播消息,並在不再接收這些hello消息時使用備用路由器。IRDP的預設計時器值意味著它不適於檢測第一跳的故障。預設通告速率是每7到10分鐘一次,預設生存時間為30分鐘。
動態主機設定通訊協定
動態主機設定通訊協定(DHCP)(RFC 1531)提供了一種機制,可將組態資訊傳送到TCP/IP網路上的主機。運行DHCP客戶端的主機在引導到網路時向DHCP伺服器請求配置資訊。此配置資訊通常包括IP地址和預設網關。如果預設閘道失敗,沒有切換到備用路由器的機制。
HSRP操作
不支援動態發現的大型舊式主機實施可以配置預設路由器。要在每台主機上運行動態路由器發現機制,由於多種原因,再加上管理開銷, processing
開銷、安全問題,或某些平台考慮事項缺少協定實施。 HSRP為這些主機提供故障切換服務。
使用HSRP時,一組路由器協同工作,向LAN上的主機呈現單個虛擬路由器的假象。該組稱為HSRP組或備用組。從組中選出的單個路由器負責分發主機傳送到虛擬路由器的資料包。此路由器稱為作用中路由器。另一個路由器被選為待命路由器。在活動路由器發生故障時,備用路由器會假定資料包 — forwarding
活動路由器的職責。雖然任意數量的路由器可以運行HSRP,但只有活動路由器轉發傳送到虛擬路由器的資料包。
為了將網路流量降至最低,一旦協定完成選擇過程,只有主用和備用路由器會定期傳送HSRP消息。如果作用中路由器故障,待命路由器將接替作用中路由器。如果備用路由器發生故障或成為活動路由器,則會選擇另一台路由器作為備用路由器。
在特定的LAN上,多個熱備用組可以共存和重疊。每個備用組模擬一個虛擬路由器。每台路由器可以參與多個組。在這種情況下,路由器會為每個組維護獨立的狀態和計時器。每個備用組都有一個已知的MAC地址和IP地址。
HSRP 定址
大多數情況下,當您將路由器配置為HSRP組的一部分時,它們會偵聽該組的HSRP MAC地址以及它們自己的內建MAC地址。例外情況是其乙太網控制器只識別單個MAC地址的路由器(例如,Cisco 2500和Cisco 4500路由器上的Lance控制器)。當這些路由器是活動路由器時,它們使用HSRP MAC地址;當它們不是活動路由器時,它們使用固化的地址。
HSRP在除令牌環以外的所有介質上使用此MAC地址:
0000.0c07.ac** (where ** is the HSRP group number)
Cisco IOS®版本和HSRP功能表
本檔案將說明哪些Cisco IOS軟體版本支援的HSRP功能。按一下某項功能可檢視詳細說明。臨時版本號指示功能首次出現的版本或功能更改的版本。
Cisco IOS HSRP功能
HSRP 功能
佔先
HSRP搶佔功能使具有最高優先順序的路由器能夠立即成為活動路由器。優先順序首先由您配置的優先順序值確定,然後由IP地址確定。在每種情況下,值越高,優先順序越高。 當較高優先順序的路由器搶佔較低優先順序的路由器時,它會傳送一條政變消息。當低優先順序活動路由器從高優先順序活動路由器收到Coup消息或Hello消息時,它變為通話狀態並傳送重新簽名消息。
搶佔延遲
搶佔延遲功能允許搶佔延遲可配置的時間段,並允許路由器在成為活動路由器之前填充其路由表。
在Cisco IOS軟體版本12.0(9)之前,路由器重新載入時開始延遲。在Cisco IOS版本12.0(9)中,第一次嘗試搶佔時開始延遲。
要配置HSRP優先順序和搶佔,請使用standby <group> <prioritynumber> <preempt [delay [minimum]seconds] [syncseconds]>命令。有關詳細資訊,請參閱 HSRP文檔。
介面 Tracking
介面 tracking
允許您在路由器上指定另一個介面以監控HSRP進程,以便更改給定組的HSRP優先順序。
如果介面的指定線路通訊協定關閉,此路由器的HSRP優先順序會降低,並允許另一個具有更高優先順序的HSRP路由器成為使用中路由器(如果已啟用搶佔功能)。
配置HSRP介面 tracking
,使用standby <group> track interface <priority>命令。
註:Interface Track命令的可用性取決於使用的軟體版本,但可以使用standby <group> track <object>命令。
當多個被跟蹤的介面關閉時,優先順序將減少一個累積量。如果顯式設定遞減值值,則如果該介面關閉,該值將減去該值,並且遞減是累積的。如果不設定顯式遞減值,則每個關閉介面的值將遞減10,遞減是累積的。
此範例使用以下設定,預設遞減值值為10:
註:如果未指定HSRP組編號,則預設組編號為組0。
interface ethernet0
ip address 10.1.1.1 255.255.255.0
standby ip 10.1.1.3
standby priority 110
standby track serial0
standby track serial1
採用此配置的HSRP行為如下:
-
0個介面關閉=不減少(優先順序為110)
-
1個介面關閉=減少10(優先順序變為100)
-
2個介面關閉=減少10(優先順序變為90)
前面提到的HSRP行為是真實的,即使遞減值顯式配置為:
interface ethernet0
ip address 10.1.1.1 255.255.255.0
standby ip 10.1.1.3
standby priority 110
standby track serial0 10
standby track serial1 10
在Cisco IOS版本12.1之前,如果路由器帶有關閉介面,則HSRP介面 tracking
將介面視為開啟。
使用燒錄地址
使用固化的地址(BIA)功能允許HSRP組使用介面的固化MAC地址,而不是HSRP MAC地址。Use BIA首先在Cisco IOS版本11.1(8)中實施。要配置HSRP以使用BIA,請使用standby use-bia <scope interface>命令。
之所以實施use-bia 命令,是為了克服在使用令牌環介面上的HSRP MAC地址的功能地址時的限制。
注意:當HSRP在多環源路由橋接環境中運行,並且HSRP路由器駐留在不同的環上並使用功能地址時,可能導致路由資訊欄位(RIF)混亂。因此,引入了use-bia 命令。
use-bia功能還允許在同一路由器上使用DECnet、Xerox Network Systems(XNS)和HSRP,方法是使用DECnet MAC地址(BIA)作為HSRP MAC地址。use-bia 命令對於已在LAN上的其他裝置上配置裝置的BIA的網路也很有用。
但是,use-bia 命令有幾個缺點:
-
當路由器變為活動狀態時,虛擬IP地址將移動到不同的MAC地址。新活動路由器傳送免費ARP響應,但並非所有主機實現都正確處理了免費ARP。
-
use-bia配置時代理ARP中斷。備用路由器無法覆蓋故障路由器的代理ARP資料庫丟失。
-
在Cisco IOS版本12.0(3.4)T之前,如果配置了use-bia,則僅允許一個HSRP組。
在子介面上配置use-bia命令時,它實際上顯示在主介面上,並應用於所有子介面。在Cisco IOS版本12.0(6.2)和更新版本中,use-bia 命令使用可選的scope介面關鍵字進行擴展,以便應用於單個子介面。
多個 HSRP 群組
Cisco IOS版本10.3中增加了多個HSRP(MHSRP)組功能。此功能可進一步實現網路中的冗餘和負載共用,並允許更充分地利用冗餘路由器。當路由器主動轉發一個HSRP組的流量時,它可能處於備用狀態,或者處於偵聽狀態。
自Cisco IOS版本12.0(3.4)T起,您可以在啟用多個HSRP組的情況下使用use-bia 命令。請參閱使用HSRP的負載共用,以配置HSRP並利用多個路徑。
可配置的MAC地址
通常,您可以使用HSRP幫助終端站定位IP路由的第一跳網關。終端站配置了預設網關。但是,HSRP可以為其他協定提供第一跳冗餘。某些通訊協定(例如進階對等網路(APPN))會使用MAC位址識別第一躍點以進行路由。
在這種情況下,通常必須能夠指定使用standby mac-address命令的虛擬MAC地址。虛擬IP地址對這些協定來說並不重要。該命令的實際語法是standby [group] mac-address mac-address 。
註:不能在權杖環介面上使用此命令。
Syslog 支援
支援系統日誌 messaging
用於HSRP的資訊已新增到Cisco IOS版本11.3中。此功能可提高效率 logging
和 tracking
系統日誌伺服器上的當前活動路由器和備用路由器。
HSRP 偵錯
在Cisco IOS版本12.1之前,HSRP調試命令相對簡單。要啟用HSRP調試,您只需使用debug standby命令,該命令啟用所有介面上所有備用組的HSRP狀態和資料包資訊輸出。
Cisco IOS版本12.0(2.1)中新增一個偵錯條件,允許根據介面和群組編號過濾standby debug指令的輸出。此命令利用Cisco IOS版本12.0中引入的debug條件正規化,如下所示:debug condition standby interface group。您指定的介面必須是可支援HSRP的有效介面。組可以是任何組(0 - 255)。
您可以為不存在的組設定調試條件,這樣便可以在新組的初始化過程中捕獲調試資訊。
您必須啟用standby debug順序才能生成任何調試輸出。如果未配置任何備用調試條件,則將為所有介面上的所有組生成調試輸出。如果至少配置一個備用調試條件,則所有備用調試條件都會過濾備用調試輸出。
強化的 HSRP 偵錯
在Cisco IOS版本12.1(0.2)之前,HSRP調試用途有限,因為資訊在週期性hello消息的噪音中丟失。因此,Cisco IOS 12.1(0.2)中增加了增強型偵錯功能。
下表說明了用於增強調試的命令選項。
您可以使用介面和HSRP組條件調試過濾debug輸出。要啟用介面條件調試,請使用debug condition interface命令。要啟用HSRP條件調試,請使用debug condition standby interface group 命令。
介面偵錯條件僅適用於未設定備用偵錯條件。Cisco IOS軟體版本12.1(1.3)中根據對HSRP狀態表的改進進一步增強了HSRP調試。
這些增強功能顯示HSRP狀態表事件。在輸出中,a/、b/ 、c/等,請參閱HSRP有限狀態機的事件,這些事件在RFC 2281中都有介紹。
SB1: Ethernet0/2 Init: a/HSRP enabled
SB1: Ethernet0/2 Active: b/HSRP disabled (interface down)
SB1: Ethernet0/2 Listen: c/Active timer expired (unknown)
SB1: Ethernet0/2 Active: d/Standby timer expired (10.0.0.3)
SB1: Ethernet0/2 Speak: f/Hello rcvd from higher pri Speak router
SB1: Ethernet0/2 Active: g/Hello rcvd from higher pri Active router
SB1: Ethernet0/2 Speak: h/Hello rcvd from lower pri Active router
SB1: Ethernet0/2 Standby: i/Resign rcvd
SB1: Ethernet0/2 Active: j/Coup rcvd from higher pri router
SB1: Ethernet0/2 Standby: k/Hello rcvd from higher pri Standby router
SB1: Ethernet0/2 Standby: l/Hello rcvd from lower pri Standby router
SB1: Ethernet0/2 Active: m/Standby mac address changed
SB1: Ethernet0/2 Active: n/Standby IP address configured
驗證
HSRP身份驗證功能由HSRP資料包中包含的共用明文金鑰組成。此功能可防止優先順序較低的路由器通過 learning
優先順序較高的路由器的備用IP地址和備用計時器值。
要配置HSRP身份驗證字串,請使用standby authentication <string>命令。
IP 備援
HSRP為IP路由提供無狀態冗餘。HSRP本身只能維持自己的狀態。它假設每台路由器獨立於其它路由器構建和維護自己的路由表。IP冗餘功能提供了一種機制,允許HSRP為客戶端應用程式提供服務,以便它們可以實施狀態故障切換。
IP冗餘沒有為對等應用程式提供交換狀態資訊的機制。這由應用程式本身決定,如果應用程式要提供狀態故障切換,這一點至關重要。
IP冗餘通常僅對移動IP主用代理實施。以下是組態範例:
configure terminal
router mobile
ip mobile home-agent standby hsrp-group1
!
interface e0/2
no shutdown
ip address 10.0.0.1 255.0.0.0
standby 1 ip 10.0.0.11
standby 1 name hsrp-group1
註:自Cisco IOS版本12.1(3)T起,除了關鍵字standby外,接受關鍵字冗餘。在更高版本的Cisco IOS中,standby關鍵字將逐步淘汰。正確的命令是 ip mobile home-agent redundancy hsrp-group1。
IP冗餘的未來用途包括:
-
NAT — 需要提供冗餘網關。
-
IPSEC — 需要同步狀態資訊,以便在使用HSRP時運行。
-
DHCP伺服器 — 在各種路由器中實施的DHCP伺服器。
-
NBAR、CBAC — 需要映象非對稱路由的防火牆狀態。
-
GPRS — 需要跟蹤TCP狀態的方法。
SNMP管理資訊庫
SNMP管理資訊庫(MIB)支援已新增到Cisco IOS版本12.0(3.0)T。HSRP有兩個相關MIB:
在Cisco IOS版本12.0(6.1)T之前,如果存在網橋組虛擬介面(BVI),則經過擴展HSRP MIB會導致路由器崩潰。
適用於多重通訊協定標籤交換虛擬私人網路的HSRP支援
Cisco IOS版本12.1(3)T新增了對多重協定標籤交換虛擬私人網路(MPLS VPN)的HSRP支援。
當您在兩個提供商邊緣(PE)之間連線了乙太網,並且您具有以下任一條件時,MPLS VPN介面上的HSRP非常有用:
網路圖顯示兩個PE及其VPN之間運行的HSRP routing/forwarding
(VRF)介面。具有HSRP虛擬IP地址的CE被配置為它的預設路由。並且HSRP配置為跟蹤將PE連線到提供商網路的其餘部分的介面。例如,如果PE1的介面E1發生故障,則HSRP優先順序會降低,以便PE2接管該介面 forwarding
將資料包傳送到虛擬IP/MAC地址。
以下是組態:
路由器PE1 |
路由器PE2 |
ip cef
!
ip vrf vrf1
rd 100:1
route-target export 100:1
route-target import 100:1
!
interface ethernet0
no shutdown
ip vrf forwarding vrf1
ip address 10.2.0.1 255.255.0.0
standby 1 ip 10.2.0.20
standby 1 priority 105
standby 1 preempt delay minimum 10
standby 1 timers 3 10
standby 1 track ethernet1 10
standby 1 track ethernet2 10 |
ip cef
!
ip vrf vrf1
rd 100:1
route-target export 100:1
route-target import 100:1
!
interface ethernet0
no shutdown
ip vrf forwarding vrf1
ip address 10.2.0.2 255.255.0.0
standby 1 ip 10.2.0.20
standby 1 priority 100
standby 1 preempt delay minimum 10
standby 1 timers 3 10
standby 1 track ethernet1 10
standby 1 track ethernet2 10 |
您可以使用以下命令驗證HSRP虛擬IP地址是否位於正確的VRF ARP和Cisco Express中 Forwarding
表:
ed1-pe1#show ip arp vrf vrf1
Protocol Address Age (min) Hardware Addr Type Interface
Internet 10.2.0.1 - 00d0.bbd3.bc22 ARPA Ethernet0/2
Internet 10.2.0.20 - 0000.0c07.ac01 ARPA Ethernet0/2
ed1-pe1#show ip cef vrf vrf1
Prefix Next Hop Interface
0.0.0.0/0 10.3.0.4 Ethernet0/3
0.0.0.0/32 receive
10.1.0.0/16 10.2.0.1 Ethernet0/2
10.2.0.0/16 attached Ethernet0/2
10.2.0.1/32 receive
10.2.0.20/32 receive
224.0.0.0/24 receive
255.255.255.255/32 receive
適用於ICMP重新導向的HSRP支援
HSRP基於這樣一個概念:保護子網的HSRP對等路由器可以提供對構成網路的所有其他子網的訪問。因此,哪台路由器成為活動HSRP路由器並不重要,因為所有路由器都有通往每個子網的路由。
HSRP使用特殊的虛擬IP地址和虛擬MAC地址,它們邏輯上連線到HSRP活動路由器。當介面上使用HSRP時,在該介面上會自動禁用ICMP重定向。從Cisco IOS 12.1(3)T開始,ICMP重定向功能在配置了HSRP的介面上啟用ICMP重定向。如需詳細資訊,請參閱適用於ICMP重新導向的HSRP支援。這樣做是為了防止主機重定向離開HSRP虛擬IP地址。子網中的兩台(或更多)路由器可能與網路的其它部分沒有相同的連通性。也就是說,對於特定的目標IP地址,其中一個路由器可以擁有通往該地址的更佳路徑,甚至可以成為連線到該地址的唯一路由器。
ICMP協定允許路由器將特定目的地的封包重新導向到同一子網上的另一台路由器(如果第一台路由器知道另一台路由器有通往該特定目的地的更佳路徑)。與預設網關一樣,如果終端站重定向到某個特定目的地的路由器發生故障,則無法向該目的地傳送終端站資料包。在標準HSRP中,這恰恰是發生的情況。因此,建議您在啟用HSRP的情況下禁用ICMP重定向。
擴展ICMP重定向和HSRP之間的關係時,可以解決此問題,這允許您利用HSRP和ICMP重定向的優勢。每個子網中運行兩個(或多個)HSRP組,其中配置的HSRP組數至少與參與路由器的數量相同。配置優先順序,使每台路由器至少是一個HSRP組的主路由器。當一個路由器確定將終端站重定向到特定目的地的不同路由器時,它不會將終端站重定向到另一個路由器IP地址,而是找到將該路由器作為其主要路由器的HSRP組,並將終端站重定向到相應的虛擬IP地址。如果目標路由器隨後發生故障,HSRP會確保另一台路由器接管其工作,並可能將終端重定向到另一台虛擬路由器。
Bridge Group Virtual Interface
Cisco IOS版本12.0(6.2)T中增加了橋接組虛擬介面(BVI)的HSRP支援。
子介面
子介面上的HSRP組的組號必須在同一主介面上所有子介面上的所有其它組中具有唯一性。這是因為子介面未收到唯一的SNMP介面索引。如果您在不同子介面上有2個號碼為N的組,則在MIB中,子介面1上的組N和子介面2上的組N會顯示為同一個組。
相關資訊