HSRPの概要
HSRPは、デフォルト ゲートウェイIPアドレスが設定されたIEEE(米国電気電子学会)802 LAN上のIPホスト ファースト ホップに冗長性を確保しネットワークのアベイラビリティを高めるシスコの標準方式です。HSRPを使用すると、特定のルータのアベイラビリティに依存せずIPトラフィックをルーティングすることができます。また、一連のルータ インターフェイスを組み合わせることで、1台の仮想ルータ、またはLAN上のホストへのデフォルト ゲートウェイのように機能させることができます。ネットワークまたはセグメント上にHSRPを設定すると、仮想MAC(メディア アクセス制御)アドレス、および設定されたルータ グループ間で共有されるIPアドレスを使用できるようになりHSRPが設定された複数のルータは、仮想ルータのMACアドレスおよびIPネットワーク アドレスを使用できるようになります。仮想ルータは、実際には存在しません。相互にバックアップ機能を提供するように設定されている複数のルータに、共通のターゲットを表すルータです。1台のルータがアクティブなルータとして、もう1台のルータがスタンバイ ルータとして選択されます。スタンバイ ルータは、指定されたアクティブ ルータが故障した場合に、グループのMACアドレスおよびIPアドレスを制御するルータです。
(注) HSRPグループ内のルータには、Catalyst 3750ルーテッド ポート、Switch Virtual Interface(SVI)など、HSRPをサポートする任意のルータ インターフェイスを指定できます。
HSRPは、ネットワーク上のホストからのIPトラフィックに冗長性を提供することで、ネットワークのアベイラビリティを高めます。アクティブ ルータは、ルータ インターフェイスのグループ内でパケットのルーティングを実行するために選択されたルータです。スタンバイ ルータは、アクティブ ルータが故障した場合、または設定条件が満たされた場合に、ルーティング作業を引き継ぐルータです。
HSRPは、ホストがルータ ディスカバリ プロトコルをサポートしておらず、選択されたルータのリロードや電源故障時に新しいルータに切り替えることができない場合に有効です。HSRPをネットワーク セグメントに設定すると、HSRPは仮想MACアドレスとIPアドレスを1つずつ提供します。このアドレスは、HSRPが動作するルータ インターフェイス グループ内のルータ インターフェイス間で共有できます。プロトコルによってアクティブ ルータとして選択されたルータは、グループのMACアドレス宛のパケットを受信し、ルーティングします。 n 台のルータでHSRPが稼働している場合、 n +1 個のIPアドレスおよびMACアドレスが割り当てられます。
指定されたアクティブ ルータの故障をHSRPが検出すると、選択されているスタンバイ ルータがホット スタンバイ グループのMACアドレスおよびIPアドレスの制御を引き継ぎます。この時点で新しいスタンバイ ルータも選択されます。HSRPが稼働しているデバイスは、マルチキャストUDPベースのhelloパケットを送受信することにより、ルータ障害の検出、アクティブ ルータおよびスタンバイ ルータの指定を行います。インターフェイスにHSRPが設定されている場合、そのインターフェイスではInternet Control Message Protocol(ICMP)のリダイレクト メッセージがデフォルトでディセーブルとなっています。
レイヤ3で動作するCatalyst 3750スイッチおよびスイッチ スタック間で複数のホット スタンバイ グループを設定すると、冗長ルータをさらに活用できます。そのためには、インターフェイスに設定するホット スタンバイ コマンド グループごとにグループ番号を指定します。たとえば、スイッチ1のインターフェイスをアクティブ ルータ、スイッチ2のインターフェイスをスタンバイ ルータとして設定できます。また、スイッチ2の別のインターフェイスをアクティブ ルータ、スイッチ1の別のインターフェイスをスタンバイ ルータとして設定することもできます。
図 32-1に、HSRP用に設定されたネットワークのセグメントを示します。各ルータには、仮想ルータのMACアドレスおよびIPネットワーク アドレスが設定されています。ルータAのIPアドレスをネットワーク上のホストに設定する代わりに、デフォルト ルータである仮想ルータのIPアドレスを設定します。ホストCからホストBにパケットが送信される場合、ホストCは仮想ルータのMACアドレスにパケットを送信します。何らかの理由により、ルータAがパケットの伝送を停止すると、ルータBが仮想IPアドレスおよび仮想MACアドレスに応答してアクティブ ルータとなり、アクティブ ルータの作業を行います。ホストCは引き続き仮想ルータのIPアドレスを使用し、ホストB宛のパケットをアドレッシングします。ルータBはそのパケットを受信し、ホストBに送信します。ルータBはHSRPの機能を使用し、ルータAが動作を再開するまで、ホストBのセグメント上のユーザと通信する必要があるホストCのセグメント上のユーザに連続的にサービスを提供します。また、ホストAセグメントとホストBの間で、引き続き通常のパケット処理機能を実行します。
HSRPおよびスイッチ スタック
HSRPのhelloメッセージは、スタック マスターで生成されます。HSRPがアクティブであるスタック マスターに障害が発生すると、HSRPアクティブ ステートのフラッピングが生じることがあります。これは、新規スタック マスターの選択および初期化されている間にHSRP helloメッセージが生成されず、スタック マスターが故障したあとでないとスタンバイ ルータがアクティブにならない可能性があるためです。
図 32-1 HSRPの一般的な構成
HSRPの設定
ここでは、HSRPの設定情報について説明します。
• 「HSRPのデフォルト設定」
• 「HSRP設定時の注意事項」
• 「HSRPのイネーブル化」
• 「HSRPグループ属性の設定」
• 「HSRPグループおよびクラスタリングの設定」
HSRPのデフォルト設定
表 32-1 に、HSRPのデフォルト設定を示します。
表 32-1 HSRPのデフォルト設定
|
|
HSRPグループ |
設定なし |
スタンバイ グループ番号 |
0 |
スタンバイMACアドレス |
システムへの割り当て:0000.0c07.acXX( XX はHSRPグループ番号) |
スタンバイ プライオリティ |
100 |
スタンバイ遅延 |
0(遅延なし) |
スタンバイでのインターフェイス プライオリティの追跡 |
10 |
スタンバイhello時間 |
3秒 |
スタンバイ ホールドタイム |
10秒 |
HSRP設定時の注意事項
HSRPを設定する場合は、次の注意事項に従ってください。
• HSRPは最大32個のVLANまたはルーティング インターフェイスに設定できます。
• 以下の手順では、次に示すレイヤ3インターフェイスの1つを指定する必要があります。
–ルーテッド ポート: no switchport インターフェイス コンフィギュレーション コマンドを入力して、レイヤ3ポートとして設定された物理ポートです。
–SVI: interface vlan vlan_id グローバル コンフィギュレーション コマンドによって作成されたVLAN(仮想LAN)インターフェイスです。デフォルトではレイヤ3インターフェイスです。
–レイヤ3モードのEtherChannelポート チャネル: interface port-channel port- channel-numberグローバル コンフィギュレーション コマンドを使用し、イーサネット インターフェイスをチャネル グループにバインドして作成されたポート チャネル論理インターフェイスです。詳細については、「レイヤ3 EtherChannelの設定」を参照してください。
• すべてのレイヤ3インターフェイスにIPアドレスを割り当てる必要があります。「レイヤ3インターフェイスの設定」を参照してください。
HSRPのイネーブル化
standby ip インターフェイス コンフィギュレーション コマンドを実行すると、設定されたインターフェイスでHSRPがアクティブになります。IPアドレスを指定した場合は、IPアドレスがホット スタンバイ グループの指定アドレスとして使用されます。IPアドレスを指定しなかった場合は、スタンバイ機能によって学習されます。指定アドレスを使用し、ケーブル上に少なくとも1つのルーティング ポートを設定する必要があります。IPアドレスを設定すると、常に、現在使用されている別の指定アドレスが、設定したIPアドレスに変更されます。
standby ip コマンドがインターフェイス上でイネーブルに設定され、プロキシAddress Resolution Protocol(ARP)がイネーブルの場合、インターフェイスのホット スタンバイ ステートがアクティブになると、プロキシARP要求に対する応答は、ホット スタンバイ グループのMACアドレスを使用して実行されます。インターフェイスが別のステートの場合、プロキシARPの応答は抑制されます。
レイヤ3インターフェイス上でHSRPを作成する場合、またはイネーブルにする場合は、イネーブルEXECモードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
interface interface-id |
インターフェイス コンフィギュレーション モードを開始し、HSRPをイネーブルにするレイヤ3インターフェイスを入力します。 |
ステップ 3 |
standby [ group-number ] ip [ ip-address [ secondary ]] |
HSRPグループの番号および仮想IPアドレスを使用して、HSRPグループを作成(またはイネーブルに)します。 • (任意) group-number ― HSRPをイネーブルにするインターフェイスのグループ番号を指定します。指定できる範囲は0~255で、デフォルトは0です。HSRPグループが1つしかない場合は、グループ番号を入力する必要はありません。 • (1つのインターフェイスで必須、それ以外は任意) ip-address ― ホット スタンバイ ルータ インターフェイスの仮想IPアドレスを指定します。少なくとも1つのインターフェイスに対して仮想IPアドレスを入力する必要があります。他のインターフェイスは、その仮想IPアドレスを学習します。 • (任意) secondary ― IPアドレスはセカンダリ ホット スタンバイ ルータ インターフェイスです。ルータがセカンダリ ルータとスタンバイ ルータのいずれにも指定されず、かつプライオリティも設定されていない場合は、プライマリIPアドレスが比較され、IPアドレスが大きいルータがアクティブ ルータ、IPアドレスが2番めに大きいルータがスタンバイ ルータになります。 |
ステップ 4 |
end |
イネーブルEXECモードに戻ります。 |
ステップ 5 |
show standby [ interface-id [ group ]] |
設定を確認します。 |
ステップ 6 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
HSRPをディセーブルにするには、 no standby [ group-number ] ip [ ip-address ]インターフェイス コンフィギュレーション コマンドを使用します。
次に、ポートのグループ1でHSRPをアクティブにする例を示します。ホットスタンバイ グループで使用されるIPアドレスは、HSRPを使用して学習されます。
(注) これは、HSRPをイネーブルにするために必要な最小限の手順です。
Switch# configure terminal
Switch(config)# interface gigabitethernet1/0/1
Switch(config-if)# no switchport
Switch(config-if)# standby 1 ip
HSRPグループ属性の設定
前述の設定だけでHSRPを実行することはできますが、認証、プライオリティ、プリエンプトおよびプリエンプト遅延、タイマー、MACアドレスなど、HSRPグループの属性を設定することもできます。
HSRPのプライオリティの設定
standby priority 、 standby preempt 、および standby track インターフェイス コンフィギュレーション コマンドはいずれも、アクティブ ルータとスタンバイ ルータの特性、および新しいアクティブ ルータが処理を引き継いだ場合の動作を設定するために使用できます。プライオリティを設定する場合の注意事項は、次のとおりです。
• プライオリティを割り当てておくと、アクティブおよびスタンバイ ルータを選択するときに役立ちます。プリエンプトがイネーブルの場合は、プライオリティが最高のルータが指定アクティブ ルータになります。プライオリティが等しい場合は、プライマリIPアドレスが比較されます。IPアドレスが大きいルータが優先されます。
• 最大の値(1~255)が、最高のプライオリティ(アクティブ ルータになる確率が最も高い)を表します。
• プライオリティ、プリエンプト、またはその両方を設定するときは、少なくとも1つのキーワード( priority 、 preempt 、または両方)を指定する必要があります。
• インターフェイスが standby track コマンドによって設定されている場合、ルータ上の別のインターフェイスがダウンすると、デバイスのプライオリティが動的に変更されることもあります。
• standby track インターフェイス コンフィギュレーション コマンドを実行すると、ルータのホット スタンバイ プライオリティとインターフェイスのアベイラビリティが関連付けられます。この機能は、HSRP用に設定されていないインターフェイスを追跡する場合に有効です。追跡対象のインターフェイスが故障すると、追跡が設定されていたデバイスのホット スタンバイ プライオリティが10減少します。追跡対象でないインターフェイスの場合は、そのステートが変わっても、設定済みデバイスのホット スタンバイ プライオリティは変わりません。ホット スタンバイ用に設定されたインターフェイスごとに、追跡するインターフェイスのリストを個別に設定できます。
• standby track interface-priority インターフェイス コンフィギュレーション コマンドを実行すると、追跡対象のインターフェイスがダウンした場合のホット スタンバイ プライオリティの減少幅を指定できます。インターフェイスが稼働状態に戻ると、プライオリティは同じ分だけ増加します。
• interface-priority 値が設定されている場合に、複数の追跡対象インターフェイスがダウンすると、設定済みプライオリティの減少幅が累積されます。プライオリティ値が設定されていない追跡対象インターフェイスが故障した場合、デフォルトの減少幅は10です。この値は累積されません。
• インターフェイスに対してルーティングを最初にイネーブルにした時点で、完全なルーティング テーブルは存在しません。このインターフェイスがプリエンプトに設定されている場合はアクティブ ルータになりますが、十分なルーティング処理はできません。この問題を解決するには、ルータがルーティング テーブルを更新できるように遅延時間を設定します。
インターフェイスにHSRPプライオリティ特性を設定するには、イネーブルEXECモードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
interface interface-id |
インターフェイス コンフィギュレーション モードを開始し、プライオリティを設定するHSRPインターフェイスを入力します。 |
ステップ 3 |
standby [ group-number ] priority priority [ preempt [ delay delay ]] |
アクティブ ルータを選択するときに使用される priority 値を設定します。指定できる範囲は1~255で、デフォルトのプライオリティは100です。最大の値が、最も高いプライオリティを表します。 • (任意) group-number ― コマンドが適用されるグループ番号です。 • (任意) preempt ― ローカル ルータのプライオリティがアクティブ ルータよりも高い場合、アクティブ ルータとして制御を行います。 • (任意) delay ― ローカル ルータがアクティブ ルータの役割を引き継ぐまでの時間を、指定された秒数だけ延期します。指定できる範囲は0~3600(1時間)で、デフォルトは0です(引き継ぐ前の遅延はありません)。 デフォルト値に戻すには、このコマンドの no 形式を使用します。 |
ステップ 4 |
standby [ group-number ] [ priority priority ] preempt [ delay delay ] |
ルータを preempt に設定し、ローカル ルータのプライオリティがアクティブ ルータよりも高い場合は、アクティブ ルータとして制御を行います。 • (任意) group-number ― コマンドが適用されるグループ番号です。 • (任意) priority ― グループ プライオリティを設定または変更します。指定できる範囲は1~255で、デフォルトは100です。 • (任意) delay ― ローカル ルータがアクティブ ルータの役割を引き継ぐまでの時間を、指定された秒数だけ延期します。指定できる範囲は0~3600(1時間)で、デフォルトは0です(引き継ぐ前の遅延はありません)。 デフォルト値に戻すには、このコマンドの no 形式を使用します。 |
ステップ 5 |
standby [ group-number ] track type number [ interface-priority ] |
他のインターフェイスを追跡するようにインターフェイスを設定します。この設定により、他のインターフェイスの1つがダウンした場合は、そのデバイスのホット スタンバイ プライオリティが減少します。 • (任意) group-number ― コマンドが適用されるグループ番号です。 • type ― 追跡対象のインターフェイス タイプを(インターフェイス番号とともに)入力します。 • number ― 追跡対象のインターフェイス番号を(インターフェイス タイプとともに)入力します。 • (任意) interface-priority ― インターフェイスがダウンした場合、または稼働状態に戻った場合に、ルータのホット スタンバイ プライオリティを減少または増加させる幅を入力します。デフォルト値は10です。 |
ステップ 6 |
end |
イネーブルEXECモードに戻ります。 |
ステップ 7 |
show running-config |
スタンバイ グループの設定を確認します。 |
ステップ 8 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
デフォルトのプライオリティ、プリエンプト、遅延値に戻すには、 no standby [ group-number ] priority priority [ preempt [ delay delay ]]および no standby [ group-number ] [ priority priority ] preempt [ delay delay ]インターフェイス コンフィギュレーション コマンドを使用します。
追跡を解除するには、 no standby [ group-number ] track type number [ interface-priority ]インターフェイス コンフィギュレーション コマンドを使用します。
次の例では、ポートがアクティブになり、IPアドレスおよびプライオリティ120(デフォルト値よりも高いプライオリティ)が設定されます。アクティブ ルータになるまでの待機時間は300秒(5分間)です。
Switch# configure terminal
Switch(config)# interface gigabitethernet1/0/1
Switch(config-if)# no switchport
Switch(config-if)# standby ip 172.19.108.254
Switch(config-if)# standby priority 120 preempt delay 300
HSRP認証およびタイマーの設定
HSRP認証ストリングを設定したり、hello時間インターバルやホールドタイムを変更することもできます。
これらの属性を設定する場合の注意事項は次のとおりです。
• 認証ストリングはすべてのHSRPメッセージに暗号化されずに送信されます。相互運用できるように、接続されたすべてのルータおよびアクセス サーバに同じ認証ストリングを設定する必要があります。認証ストリングが一致しないと、HSRPによって設定された他のルータから、指定されたホット スタンバイIPアドレスおよびタイマー値を取得できません。
• スタンバイ タイマー値が設定されていないルータまたはアクセス サーバは、アクティブ ルータまたはスタンバイ ルータからタイマー値を取得できます。アクティブ ルータに設定されたタイマーは、常に他のタイマー設定よりも優先されます。
• ホット スタンバイ グループのすべてのルータで、同じタイマー値を使用する必要があります。通常の場合、 holdtime は hellotime の3倍以上です。
インターフェイスにHSRPの認証とタイマーを設定するには、イネーブルEXECモードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
interface interface-id |
インターフェイス コンフィギュレーション モードを開始し、認証を設定するHSRPインターフェイスを入力します。 |
ステップ 3 |
standby [ group-number ] authentication string |
(任意) authentication string ― すべてのHSRPメッセージで伝達されるストリングを入力します。認証ストリングには8文字までを指定できます。デフォルト ストリングは cisco です。 (任意) group-number ― コマンドが適用されるグループ番号です。 |
ステップ 4 |
standby [ group-number ] timers hellotime holdtime |
(任意)helloパケット間隔、およびアクティブ ルータのダウンを他のルータが宣言するまでの時間を設定します。 • group-number ― コマンドが適用されるグループ番号です。 • hellotime ― helloインターバル(秒)です。指定できる範囲は1~255秒で、デフォルトは3秒です。 • holdtime ― アクティブまたはスタンバイ ルータのダウンが宣言されるまでの時間(秒)です。指定できる範囲は1~255秒で、デフォルトは10秒です。 |
ステップ 5 |
end |
イネーブルEXECモードに戻ります。 |
ステップ 6 |
show running-config |
スタンバイ グループの設定を確認します。 |
ステップ 7 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
認証ストリングを削除するには、 no standby [ group-number ] authentication string インターフェイス コンフィギュレーション コマンドを使用します。タイマーをデフォルト値に戻すには、 no sta ndby [ group-number ] timers hellotime holdtime インターフェイス コンフィギュレーション コマンドを使用します。
次に、グループ1のホット スタンバイ ルータを相互動作させるために必要な認証ストリングとして、 word を設定する例を示します。
Switch# configure terminal
Switch(config)# interface gigabitethernet1/0/1
Switch(config-if)# no switchport
Switch(config-if)# standby 1 authentication word
次に、helloパケット間隔が5秒、ルータがダウンしたとみなされるまでの時間が15秒となるように、スタンバイ グループ1のタイマーを設定する例を示します。
Switch# configure terminal
Switch(config)# interface gigabitethernet1/0/1
Switch(config-if)# no switchport
Switch(config-if)# standby 1 ip
Switch(config-if)# standby 1 timers 5 15
HSRPグループおよびクラスタリングの設定
デバイスがHSRPスタンバイ ルーティングに参加し、クラスタリングがイネーブルの場合は、同じスタンバイ グループを使用して、コマンド スイッチの冗長性およびHSRPの冗長性を確保することができます。同じHSRPスタンバイ グループをイネーブルにし、コマンド スイッチおよびルーティングの冗長性を確保するには、 cluster standby-group HSRP-group-name [ routing-redundancy ]グローバル コンフィギュレーション コマンドを使用します。 routing-redundancy キーワードを指定せずに同じHSRPスタンバイ グループ名でクラスタを作成すると、そのグループに対するHSRPスタンバイ ルーティングはディセーブルになります。
次に、スタンバイ グループmy_hsrpをクラスタにバインドし、同じHSRPグループをイネーブルにしてコマンド スイッチおよびルータの冗長性を確保する例を示します。このコマンドを実行できるのは、コマンド スイッチに対してのみです。スタンバイ グループの名前または番号が存在しない場合、またはスイッチがクラスタ メンバーである場合は、エラー メッセージが表示されます。
Switch# configure terminal
Switch(config)# cluster standby-group my_hsrp routing-redundancy