在通過LAN交換機連線的兩台路由器之間運行熱備份路由器協定(HSRP)時,您可能會發現HSRP不穩定。這通常發生在網路中斷或活動路由器轉換期間,例如將具有更高優先順序的HSRP路由器和預佔配置為新增到LAN。本文解釋為什麼會發生這種不穩定以及如何避免它。
本文件沒有特定需求。
本文件所述內容不限於特定軟體和硬體版本。
如需文件慣例的詳細資訊,請參閱思科技術提示慣例。
本節提供用於設定本文件中所述功能的資訊。
注意:要查詢有關本文檔中使用的命令的其他資訊,請使用命令查詢工具(僅限註冊客戶)。
本文檔使用下圖所示的網路設定。
本檔案會使用以下設定:
路由器A |
---|
interface FastEthernet1/0 ip address 10.144.220.3 255.255.252.0 standby priority 120 standby preempt standby ip 10.144.220.1 |
路由器B |
---|
interface FastEthernet3/0 ip address 10.144.220.2 255.255.252.0 standby priority 110 standby preempt standby ip 10.144.220.1 |
目前沒有適用於此組態的驗證程序。
本節提供的資訊可用於對組態進行疑難排解。
輸出直譯器工具(僅供註冊客戶使用)支援某些show命令,此工具可讓您檢視show命令輸出的分析。
註:使用debug命令之前,請參閱有關Debug命令的重要資訊。
debug standby
在上圖中,當路由器A新增到網路時,您可以觀察路由器B的HSRP狀態從活動到備用之間的抖動。在路由器B上運行debug standby將產生以下輸出:
RouterB# debug standby *Mar 1 02:55:56: SB0:FastEthernet3/0 Hello out 10.144.220.2 Active pri 110 hel 3 hol 10 ip 10.144.220.1 *Mar 1 02:56:08: SB0:FastEthernet3/0 Hello in 10.144.220.3 Active pri 120 hel 3 hol 10 ip 10.144.220.1 *Mar 1 02:56:08: SB0: FastEthernet3/0 state Active -> Speak *Mar 1 02:56:08: SB0:FastEthernet3/0 Resign out 10.144.220.2 Speak pri 110 hel 3 hol 10 ip 10.144.220.1 *Mar 1 02:56:08: SB0:FastEthernet3/0 Hello out 10.144.220.2 Speak pri 110 hel 3 hol 10 ip 10.144.220.1 *Mar 1 02:56:09: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet3/0, changed state to down *Mar 1 02:56:11: SB0: FastEthernet3/0 state Speak -> Init *Mar 1 02:56:13: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet3/0, changed state to up *Mar 1 02:56:13: SB0: FastEthernet3/0 state Init -> Listen *Mar 1 02:56:14: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet3/0, changed state to down *Mar 1 02:56:14: SB0: FastEthernet3/0 state Listen -> Init *Mar 1 02:56:20: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet3/0, changed state to up *Mar 1 02:56:20: SB0: FastEthernet3/0 state Init -> Listen *Mar 1 02:56:30: SB0: FastEthernet3/0 state Listen -> Speak *Mar 1 02:56:40: SB0: FastEthernet3/0 state Speak -> Standby *Mar 1 02:56:41: SB0: FastEthernet3/0 state Standby -> Active *Mar 1 02:56:41: SB: FastEthernet3/0 Adding 0000.0c07.ac00 to address filter *Mar 1 02:56:41: SB0:FastEthernet3/0 Hello out 10.144.220.2 Active pri 110 hel 3 hol 10 ip 10.144.220.1 *Mar 1 02:56:44: SB0:FastEthernet3/0 Hello in 10.144.220.3 Active pri 120 hel 3 hol 10 ip 10.144.220.1 *Mar 1 02:56:44: SB0: FastEthernet3/0 state Active -> Speak
從上面的輸出可以清楚地看到,路由器B的HSRP狀態正在不斷地從活動狀態變為通話狀態,再到備用狀態,如此等等。
HSRP過程使用組播地址224.0.0.2與其他HSRP路由器通訊hello資料包。如果失去連線,或者向網路新增了具有更高優先順序的HSRP路由器,HSRP狀態可能會開始擺動,如上圖所示。當在某些路由器平台上運行HSRP(請參閱下面的註釋),並且向網路新增了優先順序較高的路由器時,優先順序較低的路由器的HSRP狀態會從「活動」更改為「正在發言」,並且會發生鏈路狀態更改。交換器的連線埠會偵測到此連結狀態變更,而且會進行跨距樹狀目錄通訊協定轉換。埠大約需要30秒才能完成偵聽、學習和轉發階段。此時間段超過HSRP hello進程的預設超時,因此優先順序較低的路由器在達到Standby狀態後會變為Active,因為未從活動路由器收到任何hello資料包。
由於路由器看不到彼此的HSRP hello資料包,因此它們都會變為活動狀態。當交換機埠轉換到Learning狀態時,交換機可能會看到兩個不同埠中的同一個虛擬MAC地址。
注意:由HSRP狀態更改引起的物理鏈路狀態更改專門發生在Cisco 2600、Cisco 3600和Cisco 7200系列路由器的網路模組 — 快速乙太網(NM-FE)介面上。此行為在Cisco IOS®軟體版本12.1(3)及更新版本中不再發生。
如需更多資訊,請參閱Cisco錯誤ID CSCdr02376(僅限註冊客戶)。
執行下列任務之一,以解決上述問題。
使用set spantree portfast enable配置交換機,這樣交換機就可以繞過spantree狀態並直接進入轉發狀態。
如果路由器配置為在此介面/埠橋接資料包,則不能使用此解決方法,因為此類鏈路上的立即轉發會使網路容易出現轉發環路故障。
注意:對於連線到其他交換機或網橋的交換機埠,此限制也適用。
更改HSRP計時器,使生成樹轉發延遲(預設值為15秒)小於HSRP保持時間(預設值為10秒)的一半。
我們建議HSRP保持時間為40秒。
注意:增加HSRP保持時間會使HSRP在檢測到活動路由器關閉和使備用路由器活動時速度變慢。
確保網路上沒有資料包風暴(IPX容易發生資料包風暴)。
配置standby use-bia 命令,該命令強制HSRP活動路由器使用燒錄地址。
這實現了兩件事。由於HSRP不再需要更改(或新增)單播MAC地址到MAC地址過濾器清單,因此乙太網介面不會重置。它還會使交換機無法學習兩個不同埠上的相同地址。請參閱什麼是standby use-bia命令及其如何工作?以獲取更多資訊。
注意:使用standby use-bia命令具有以下缺點:
當路由器變為活動狀態時,虛擬IP地址將移動到不同的MAC地址。新活動路由器傳送一個免費地址解析協定(ARP)響應,但並非所有主機實現都正確處理了免費ARP。
設定備用use-bia時,代理ARP會中斷。備用路由器無法覆蓋故障路由器的代理ARP資料庫丟失。
由於內部限制,多層交換器功能卡2(MSFC2)上不支援standby use-bia命令。 如需詳細資訊,請參閱在Supervisor引擎2上設定IP單播第3層交換的設定原則與限制一節。
修訂 | 發佈日期 | 意見 |
---|---|---|
1.0 |
02-Jun-2008 |
初始版本 |