IP : ホット スタンバイ ルータ プロトコル(HSRP)

各種ルータ プラットフォームを使用したスイッチング環境でHSRP の不安定性を回避する方法

2016 年 10 月 27 日 - 機械翻訳について
その他のバージョン: PDFpdf | ライター翻訳版 (2002 年 6 月 1 日) | 英語版 (2015 年 8 月 22 日) | フィードバック


目次


概要

LAN スイッチ経由で接続している 2 台のルータ間でホットスタンバイ ルータ プロトコル(HSRP)を実行すると、HSRP が不安定になることがあります。 これは通常、ネットワーク障害またはアクティブ ルータの移行中(プライオリティが高く、preempt が設定されている HSRP ルータを LAN に追加している場合など)に、発生します。 このドキュメントでは、この不安定さが起きる理由とそれを回避する方法について説明します。

前提条件

要件

このドキュメントに関する固有の要件はありません。

使用するコンポーネント

このドキュメントは、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。

表記法

ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。

設定

この項では、このドキュメントで説明する機能の設定に必要な情報を提供します。

このドキュメントで使用されているコマンドの詳細を調べるには、Command Lookup Tool登録ユーザ専用)を使用してください。

ネットワーク図

このドキュメントでは次の図に示すネットワーク構成を使用しています。

/image/gif/paws/13782/8a.gif

設定

このドキュメントでは、次の設定を使用します。

ルータ 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 コマンドは、Output Interpreter Tool登録ユーザ専用)によってサポートされています。このツールを使用すると、show コマンド出力の分析を表示できます。

debug コマンドを使用する前に、『debug コマンドの重要な情報』を参照してください。

  • debug standby

debug 出力例

上記の図では、ルータ 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登録ユーザ専用)を参照してください。

トラブルシューティング手順

上記の問題を回避するには、次のタスクのいずれかを実行します。

  1. set spantree portfast enable コマンドを使用して、スイッチがスパニング ツリー ステートをバイパスし、転送ステートに直接移行するようにします。

    このインターフェイス/ポートでルータがパケットをブリッジするように設定されている場合、このようなリンクで即座に転送を行うと、ネットワークで転送ループ アウテージが発生する傾向があるため、この回避策は使用できません。

    この制限は、他のスイッチまたはブリッジに接続されているスイッチ ポートにも当てはまります。

  2. スパニング ツリーの転送遅延(デフォルトは 15 秒)が HSRP ホールドタイム(デフォルトは 10 秒)の半分未満になるように HSRP タイマーを変更します。

    HSRP ホールドタイムの推奨値は 40 秒です。

    HSRP ホールドタイムを大きくすると HSRP の検出速度が遅くなり、アクティブ ルータがダウンしてスタンバイ ルータがアクティブになります。

  3. ネットワークにパケット ストームがないことを確認してください(IPX はパケット ストームが発生する傾向があります)。

  4. 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 スイッチングの設定』(英語)の「制限の設定ガイドライン」セクション(英語)を参照してください。


関連情報


Document ID: 13782