このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

HSRP(プリエンプト その1)

 ここでは、「HSRP(二重化 その3)」で構築したネットワークを使用して、HSRPにおけるプリエンプト(preempt)機能を解説していきます。

 HSRPのデフォルトの動作は、一度、Activeルータが選出されると、後からプライオリティの高いルータが復旧しても、そのルータは、現在のActiveルータがダウンするまで、Activeルータに選出されません。

まずは、この動作を確認してから、プリエンプト(preempt)機能を解説します。

上図のネットワークを設定します。設定は、「HSRP(二重化 その3)」に掲載しています。

 まずは、すべての機器を再起動させます。下図の「Power Cycle Devices」ボタンをクリックします。これは、ルータへのHSRPの設定が完了した順が、Activeルータの選出に影響しているからです。

R3ルータで、「show standby」コマンドを実行します。

●R3の「show standby」コマンドの出力結果

R3#show standby 
GigabitEthernet0/0 - Group 1
  State is Active
    5 state changes, last state change 00:00:29
  Virtual IP address is 192.168.1.254
  Active virtual MAC address is 0000.0C07.AC01
    Local virtual MAC address is 0000.0C07.AC01 (v1 default)
  Hello time 3 sec, hold time 10 sec
    Next hello sent in 0.589 secs
  Preemption disabled
  Active router is local
  Standby router is 192.168.1.1, priority 100 (expires in 8 sec)
  Priority 255 (configured 255)
  Group name is hsrp-Gig0/0-1 (default)

R3ルータが、Activeルータに選出されていることが確認できます。

R3ルータとS1スイッチを接続しているケーブルを削除します。

R2ルータとR3ルータで「show standby」コマンドを実行します。

●R2の「show standby」コマンドの出力結果

R2#show standby 
GigabitEthernet0/0 - Group 1
  State is Active
    7 state changes, last state change 00:23:15
  Virtual IP address is 192.168.1.254
  Active virtual MAC address is 0000.0C07.AC01
    Local virtual MAC address is 0000.0C07.AC01 (v1 default)
  Hello time 3 sec, hold time 10 sec
    Next hello sent in 0.213 secs
  Preemption disabled
  Active router is local
  Standby router is unknown, priority 255
  Priority 100 (default 100)
  Group name is hsrp-Gig0/0-1 (default)

●R3ルータの「show standby」コマンドの出力結果

R3#show standby 
GigabitEthernet0/0 - Group 1
  State is Init (interface down)
  Virtual IP address is 192.168.1.254
  Active virtual MAC address is 0000.0C07.AC01
    Local virtual MAC address is 0000.0C07.AC01 (v1 default)
  Hello time 3 sec, hold time 10 sec
    Next hello sent in 1.180 secs
  Preemption disabled
  Active router is unknown
  Standby router is unknown
  Priority 255 (configured 255)
  Group name is hsrp-Gig0/0-1 (default)

R2ルータが、Activeルータに選出され、R3ルータが「Init」になっていることが確認できます。

R3ルータとS1スイッチを接続しているケーブルを接続します。

R2ルータとR3ルータで「show standby」コマンドを実行します。

●R2の「show standby」コマンドの出力結果

R2#show standby 
GigabitEthernet0/0 - Group 1
  State is Standby
    9 state changes, last state change 01:18:20
  Virtual IP address is 192.168.1.254
  Active virtual MAC address is 0000.0C07.AC01
    Local virtual MAC address is 0000.0C07.AC01 (v1 default)
  Hello time 3 sec, hold time 10 sec
    Next hello sent in 2.209 secs
  Preemption disabled
  Active router is 192.168.1.2, priority 255 (expires in 7 sec)
    MAC address is 0000.0C07.AC01
  Standby router is local
  Priority 100 (default 100)
  Group name is hsrp-Gig0/0-1 (default)

●R3の「show standby」コマンドの出力結果

R3#show standby 
GigabitEthernet0/0 - Group 1
  State is Active
    11 state changes, last state change 01:18:07
  Virtual IP address is 192.168.1.254
  Active virtual MAC address is 0000.0C07.AC01
    Local virtual MAC address is 0000.0C07.AC01 (v1 default)
  Hello time 3 sec, hold time 10 sec
    Next hello sent in 2.52 secs
  Preemption disabled
  Active router is local
  Standby router is 192.168.1.1, priority 100 (expires in 8 sec)
  Priority 255 (configured 255)
  Group name is hsrp-Gig0/0-1 (default)

なぜか、R3ルータがActiveルータに切り替わっています。

 本来であれば、R3ルータは、プライオリティ値が高いにも関わらず、R2ルータの方がActiveルータに選出されたままになっているはずなのですが。

 Packet Tracer8.1.1 で検証したところ、バグであるのか、プリエンプトの設定をしなくとも自動的にR2ルータがActiveルータに選出されます。たまにですが、選出されない場合もありました。

 HSRPのデフォルトの動作は、一度、Activeルータが選出さると、後からプライオリティの高いルータが復旧しても、そのルータは、現在のActiveルータがダウンするまで、Activeルータに選出されないのがデフォルトの動作です。

プリエンプトの設定

 Packet Tracer では、自動的にActiveルータが切り替わってしまうバグがあるようですが、自動で切り替えるコマンドがサポートされているため、設定していきます。

 常にActiveになる権利を与えるには、「preempt」オプションを指定します。Avtiveにしておきたいルータにだけ、設定しておけばよいのですが、すべてルータに設定しても問題ありません。

R3ルータで「preempt」オプションを追加します。

R3(config)#int g0/0
R3(config-if)#standby 1 preempt

コマンドを追加すると、すぐにActiveルータに選出されるようになります。

R3ルータで「show standby」コマンドを実行します。

●R3ルータの「show standby」コマンドの出力結果

R3#show standby 
GigabitEthernet0/0 - Group 1
  State is Active
    17 state changes, last state change 00:47:38
  Virtual IP address is 192.168.1.254
  Active virtual MAC address is 0000.0C07.AC01
    Local virtual MAC address is 0000.0C07.AC01 (v1 default)
  Hello time 3 sec, hold time 10 sec
    Next hello sent in 1.476 secs
  Preemption enabled
  Active router is local
  Standby router is 192.168.1.1, priority 100 (expires in 9 sec)
  Priority 255 (configured 255)
  Group name is hsrp-Gig0/0-1 (default)

黄色のマークの「Preemption enabled」からpreempt機能が有効になっていることが確認できます。

Coup メッセージ

 preemptを設定すると、自分のプライオリティが最も高いことを確認すると、「Coupメッセージ」を送信して、復旧後、再びActiveルータに速やかに切り替えます。「Coup メッセージ」を確認するには、実機環境でパケットキャプチャする必要があります。

debug standby packets

 HSRPでやり取りされるメッセージを確認するには、「debug standby packets」コマンドを使用します。

 リアルタイムに定期的に送受信されるHelloメッセージの様子やHSRPのステートの様子を確認することができます。

R3ルータで「debug standby packets」コマンドを実行します。

R3#debug standby packets

●R3の「debug standby」コマンドの出力結果

R3#debug standby packets 
HSRP Packets debugging is on
R3#HSRP: Gig0/0 Grp 1 Hello  out 192.168.1.2 Active  pri 255 vIP 192.168.1.254
HSRP: Gig0/0 Grp 1 Hello  out 192.168.1.2 Active  pri 255 vIP 192.168.1.254
HSRP: Gig0/0 Grp 1 Hello  out 192.168.1.2 Active  pri 255 vIP 192.168.1.254
HSRP: Gig0/0 Grp 1 Hello  out 192.168.1.2 Active  pri 255 vIP 192.168.1.254
HSRP: Gig0/0 Grp 1 Hello  out 192.168.1.2 Active  pri 255 vIP 192.168.1.254
HSRP: Gig0/0 Grp 1 Hello  out 192.168.1.2 Active  pri 255 vIP 192.168.1.254
HSRP: Gig0/0 Grp 1 Hello  out 192.168.1.2 Active  pri 255 vIP 192.168.1.254
HSRP: Gig0/0 Grp 1 Hello  out 192.168.1.2 Active  pri 255 vIP 192.168.1.254
HSRP: Gig0/0 Grp 1 Hello  out 192.168.1.2 Active  pri 255 vIP 192.168.1.254
HSRP: Gig0/0 Grp 1 Hello  out 192.168.1.2 Active  pri 255 vIP 192.168.1.254
HSRP: Gig0/0 Grp 1 Hello  out 192.168.1.2 Active  pri 255 vIP 192.168.1.254
HSRP: Gig0/0 Grp 1 Hello  out 192.168.1.2 Active  pri 255 vIP 192.168.1.254
endeHSRP: Gig0/0 Grp 1 Hello  out 192.168.1.2 Active  pri 255 vIP 192.168.1.254

まとめ

 ちょっと引っかかる部分もありますが、preemptを設定しておくことで、自分のプライオリティが最も高いことをルータが確認すると、「Coupメッセージ」を送信して、復旧後に、Activeルータに速やかに切り替えることができます。

関連コンテンツ