LAN スイッチで接続された 2 台のルータ間で Hot Standby Router Protocol(HSRP)を実行すると、HSRP が不安定になることがあります。これは、ネットワークが不通になっているときやアクティブ ルータの移行中(高い優先順位と preempt が設定された HSRP ルータを LAN に追加しているときなど)に多く発生します。このドキュメントでは、この不安定な状態になる理由とその回避方法について説明します。
このドキュメントに特有の要件はありません。
このドキュメントの内容は、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。
ドキュメントの表記法の詳細は、「シスコ テクニカル ティップスの表記法」を参照してください。
このセクションでは、このドキュメントで説明する機能を設定するために必要な情報を提供しています。
注:この文書で使用されているコマンドの詳細を調べるには、「Command Lookup ツール」を使用してください(登録ユーザのみ)。
このドキュメントでは次の図に示すネットワーク構成を使用しています。
このドキュメントでは、次の構成を使用します。
ルータ 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 秒かけて、リスニング、ラーニング、転送を行います。アクティブ ルータから hello パケットを受信しなかったため、この時間は、優先度の低いルータがスタンバイの状態になった後でアクティブになるように、HSRP の hello プロセスのデフォルト タイムアウトを超えています。
ルータは互いに HSRP の hello パケットを監視しているわけではないため、両方がアクティブになります。スイッチ ポートがラーニング ステートに移行すると、スイッチは、2 つの異なるポートから同じ仮想 MAC アドレスを確認する場合があります。
注:HSRP状態の変更による物理的なリンクステートの変更は、特にCisco 2600、Cisco 3600、およびCisco 7200シリーズルータのネットワークモジュールのファストイーサネット(NM-FE)インターフェイスで発生します。この動作は、Cisco IOS® ソフトウェア リリース 12.1(3) 以降では発生しません。
詳細については、シスコのバグ ID CSCdr02376(登録ユーザ専用)を参照してください。
上記の問題を回避するには、次のタスクのいずれかを実行します。
set spantree portfast enable コマンドを使用して、スイッチがスパニング ツリー ステートをバイパスし、転送ステートに直接移行するようにします。
このインターフェイス/ポートでルータがパケットをブリッジするように設定されている場合、このようなリンクで即座に転送を行うと、ネットワークで転送ループ アウテージが発生する傾向があるため、この回避策は使用できません。
注:この制限は、他のスイッチまたはブリッジに接続されているスイッチポートにも当てはまります。
スパニング ツリーの転送遅延(デフォルトは 15 秒)が HSRP ホールドタイム(デフォルトは 10 秒)の半分未満になるように HSRP タイマーを変更します。
HSRP ホールドタイムの推奨値は 40 秒です。
注:HSRPホールドタイムを増やすと、アクティブルータがダウンし、スタンバイルータがアクティブになったことをHSRPが遅くなります。
ネットワークにパケット ストームがないことを確認してください(IPX はパケット ストームが発生する傾向があります)。
HSRP アクティブ ルータがバーンドイン アドレスを使用するように強制するには、standby use-bia コマンドを設定します。
これにより、次のことを実現できます。HSRP はユニキャスト MAC アドレスを変更したり、ユニキャスト MAC アドレスを MAC アドレス フィルタ リストに追加したりする必要がなくなるため、イーサネット インターフェイスはリセットされなくなります。また、スイッチが 2 つの異なるポートで同じアドレスを学習しないようになります。詳細については、『standby use-bia コマンドとその動作について』参照してください。
注:standby use-biaコマンドの使用には、次の短所があります。
ルータがアクティブになると、仮想 IP アドレスが別の MAC アドレスに移ります。新しいアクティブ ルータは gratuitous Address Resolution Protocol(ARP)応答を送信しますが、必ずしもすべてのホスト実装が gratuitous ARP を正しく処理できるとは限りません。
standby use-bia コマンドを設定すると、プロキシ ARP を使用できなくなります。スタンバイルータは、障害が発生したルータのプロキシARPデータベースの損失をカバーできません。
内部の制約のため、standby use-bia コマンドはマルチレイヤ スイッチ フィーチャ カード 2(MSFC2)ではサポートされていません。 詳細については、『スーパーバイザ エンジン 2 での IP ユニキャスト レイヤ 3 スイッチングの設定』の「制限の設定ガイドライン」セクションを参照してください。
改定 | 発行日 | コメント |
---|---|---|
1.0 |
02-Jun-2008 |
初版 |