IPで通信する機器が、自分と違うネットワーク(サブネット)に存在する相手にパケットを送信するためには、ルーターに中継してもらう必要があります。
HSRP の目的は、ゲートウェイの切り替わりに自律的な対応ができない機器へ、冗長化されたゲートウェイを提供することです。
ゲートウェイの切り替わりは、可能な限り端末機器に意識させることなく行われることが望まれます。このことを、端末から見て透過的 (Transparent)であると呼びます。
端末がルーターを越えた先のネットワークにパケットを送るためには、デフォルト・ゲートウェイのMAC アドレスを知る必要があります。
HSRP のスタンバイ・グループに参加しているルーターは、自分がアクティブ・ルーターとなる必要があるのか、スタンバイ・ルーターとなるべきかを判断するため、メッセージ(パケット)を交換しあいます。
HSRP パケットの中身を見ていきます。
スタンバイ・グループに参加しているルーターは、メッセージを交換し合うことで、アクティブ、スタンバイ・ルーターを選定し、その状態を維持します。

HSRP 基礎編 (7) HSRP のタイマー

スタンバイ・グループ内のルーターが正しく協調動作するために、ルーターでは以下の三種類のタイマーが稼動しています。
HSRP という一つのシステムを維持するため、スタンバイ・グループに参加するルーターは、適切なステート(状態)を維持し、他のルーターから受信するメッセージを監視することで、自身の採るべき挙動を決定します。
アクティブ・ルーターは、バーチャルIP アドレス宛と、自身のインターフェイスに設定されたリアルIP アドレス宛、両方のパケットを処理する必要があります。
故障やケーブルが抜けたりしてアクティブ・ルーターがいなくなったりプライオリティが下がると、それまでスタンバイ・ルーターだったルーターが、アクティブ・ルーターに遷移します。

HSRP はサブネット内で動作するプロトコルです。ルーターのインターフェイス毎に設定するプロトコルなので、同じルーター上であっても、他のインターフェイスの状況は関知しません。

HSRP のスタンバイ・グループは、ひとつのインターフェイス上に複数作成することもできます。

HSRP では、スタンバイ・グループに参加するルーターに共通の文字列を設定することでルーターの簡易認証を行うことができます。

HSRP を使っているインターフェイスでICMPリダイレクトを有効にすると、バーチャル・ルーターによる冗長構成が活かされない状況が発生することがあります。そのため、HSRP を設定したインターフェイスでは、ICMP リダイレクトが自動的に無効となります。

IOS バージョン12.1(3)T から、HSRP とICMP リダイレクトを協調動作させるための仕組みが加わりました。

ここからは、実際にHSRP をルータに設定してきます。まずは、HSRP を設定する前のネットワークの状況を確認しましょう。


サブネット192.168.1.0/24 にバーチャル・ルーターをつくります。

Router-A に障害を発生させて、HSRP の動作を確認してみましょう。

アクティブ・ルーターが切り替わることが確認できたので、shutdown したRouter-A のインターフェイスe0/0 を元に戻しましょう。

アクティブ・ルーターとなっているRouter-A で別な障害を発生させてみます。

Router-A のインターフェイスs2/0 をshutdown しても通信は継続できましたが、余計なルータ(Router-A)が介在し続けるのは効率がよくありません。

これまで、Hello Time やHold Time はデフォルト値のままでした。

HSRP のスタンバイ・グループに参加するルーターに、共通の合言葉を設定します。

これまで、三台のルータにスタンバイ・グループを設定して、バーチャル・ルーターによるゲートウェイの冗長化を端末に提供してきました。

三つのスタンバイ・グループへバランスよく負荷分散ができたところで、障害を発生させて状況の変化を観察してみましょう。

これまで番号で呼んできたスタンバイ・グループですが、名前を付けることもできます。

これまでの説明では、Router-C だけIOS バージョン12.0 で動作させていましたが、このページでは全てのルーターをIOS バージョン12.4 とします。HSRP とICMP リダイレクトの協調機能が12.0 ではサポートされていないからです。

今度は、Router-A を全てのスタンバイ・グループのアクティブ・ルーターにした状態で、ICMP リダイレクトの動作を見ていきます。

リダイレクト先がHSRP のスタンバイ・グループに参加してなかったらどうでしょうか?

HSRP 関連のコマンド一覧です。

  • standby ip
  • standby name
  • standby preemp
  • standby preempt delay minimum
  • standby preempt dealy reload


HSRP 関連のコマンド一覧です。

  • standby preempt dealy sync
  • standby priority
  • standby track 
  • standby timers


HSRP 関連のコマンド一覧です。

  • standby authentication
  • standby authentication md5 key-string 
  • standby authentication md5 key-chain

HSRP 関連のコマンド一覧です。

  • standby mac-address
  • standby use-bia
  • standby version
  • standby sso
  • standby redirects
  • standby redirects [disable | enable]

HSRP 関連のコマンド一覧です。

  • standby redirects timers
  • standby redirects unknown
  • standby redirects advertisement authentication md5 key-chain
  • standby redirects advertisement authentication md5 key-string

HSRP 実践編 (20) HSRP のshow コマンド

HSRP 関連のshow コマンド一覧です。

  • show standby
  • show standby delay
  • show standby
  • show standby redirects
  • show standby capability
  • show standby internal

このページでは次のようなネットワークを使います。

実用性に多少疑問はありますが、先ほどの例でboolean and を使った場合にどのような挙動をするか見てみましょう。



これまで見てきたトラッキングは、インターフェイスのアップ・ダウンを対象としたものでした。HSRP が動作しているルーター自身の状況を監視していたわけです。

HSRPを究める:応用編(2) HSRP のトラッキング対象インターフェイスを複数にする(2)』では、複数のインターフェイスをboolean and でトラッキングしました。
実用性に乏しいことをお話しましたが、ネットワークの構成しだいでboolean and が有効に働くこともあります。

これまでは、インターフェイスや特定のIP 経路情報をトラッキングして、アクティブ・ルーターの切り替えを行ってきました。

今回は、EtherChannel を組んでいるインターフェイスをトラッキングしてみます。

HSRP 応用編 (7) HSRP バージョン2 (1)

これまで見てきたHSRP のバージョンは1 でした。

HSRP バージョン2 のパケット・フォーマットです。

HSRP 応用編 (9) HSRP バージョン2 (2)

HSRP バージョン2 の設定です。

10BASE-T 以降のイーサネットなどネットワーク機器のポートは、通常、データの送信と受信の両方が行えることが期待されています。

Cisco は、イーサネット・ポートにおいて、TX(送信側)からフレームを送信でき、同時に、RX(受信側)でフレームを受信できる状態をBidirectional(双方向、バイダイレクショナル)であると定義しています。

オート・ネゴシエーションがあればUDLD は必要ない、という意見があります。

確かに、オート・ネゴシエーションのリモート・フォルト(Remote Fault)機能を利用すれば、TX から送信した(はず)の信号が相手に届いていないことを検出できます。


UDLDを究める (4) UDLD の基本動作

UDLD は、対向機器との間でフレームを送信しあって到達性を確認します。

UDLD のフレーム・フォーマットです。

UDLDを究める (6) UDLD のタイマー

UDLD が正常に動作するため、二つのタイマーが定義されています。

UDLD の稼動状況を意味するステートを、Bi-directional ステートと呼びます。

UDLD のステート・マシン内のフェイズを、オペレーショナル・ステートと呼びます。

Catalyst のポートがリンク・アップしてから、UDLD のステートがBi-directional となるまでの流れを見ていきます。

一旦Bi-directional(双方向)になった後、Unidirectional(片方向)を検知するまでを見ていきます。

これまで見てきたUDLD はノーマル・モードと呼びます。

UDLD ノーマル・モードとアグレッシブ・モードの間に、大きな実装の違いはありません。
異なるのは「Unidirectional と判断するための条件」だけです


UDLD 関連のコマンド一覧です。

    • udld enable
    • udld aggressive
    • udld message time
    • udld reset

UDLD 関連のshow コマンド一覧です。

Catalyst の機能は、機種やIOS のトレインによってサポート状況やコマンドのフォーマットが微妙に異なる場合があります。
サポート状況はCisco Systems のウェブサイトで確認してください。


debug コマンドを使って、ポートがリンク・アップしてからBi-directional となるまでの流れを見ていきます。

debug コマンドを使って、Unidirectional を検知してから、ErrDisable されるまでの流れを見ていきます。

debug コマンドを使って、Unidirectional を検知してから、ErrDisable されるまでの流れを見ていきます。

さまざまなメーカから発売されるLAN スイッチのデータシートを見ると、ほとんどの製品がTCAM を実装しているのが分かります。

CatOS で動作しているCatalyst シリーズのLAN スイッチでは、MAC アドレス・テーブルのことをCAM(Content Addressable Memory)と呼んでいます。

Cisco のCatalyst は、不具合を検知したポートをErrDisable(エラー・ディセイブル)という状態にすることで、不具合箇所を局所化する機能を持っています。

LAN スイッチ Cisco のservice timestamps

Cisco のルーターやLAN スイッチで発生したトラブルを調査する時、皆さんはどのshow コマンドを一番に確認しますか?
状況により答えは様々だと思いますが、私はshow logging を実行して、障害発生中の状況がユーザーの証言と食い違いがないかを確認します。

ip subnet-zero ...... ほとんどすべてのCisco ルーターやCatalyst に設定されています。
ルーターを初期化しても必ず入っているこの設定。
気にはなっても、あえて触れなかった人も多いのではないでしょうか。
多くのレイヤー2 スイッチでは、MAC アドレス・テーブルのエージング・タイムは300 秒に設定されています。