【ネットワーク基礎・入門】HSRP(Hot Standby Router Protocol)の概要を復習のために深掘りしてみた

  • URLをコピーしました!
目次

はじめに

こんにちは。ネットワークエンジニアの「だいまる」です。

今回は、復習がてらHot Standby Router Protocol(HSRP)についてまとめてみましたので、ぜひご参照いただければと思います。

HSRPとはなんだ?

HSRPとは、Hot Standby Router Protocolの略称であり、複数L3SWもしくはルータを仮想的に1つのルータに見せることができるプロトコルです。

このプロトコルは、アクセス側(ユーザ側)に近い部分で使われるイメージがあり、ゲートウェイルータ(GWR)等を冗長化し、単一障害点をなくす目的で使われていることが多いと思います。

また、Cisco独自のプロトコルのため、他のルータとは互換性がなく、他ベンダーの機器と併用して利用する場合はVRRPを利用することが多くなります。

仮想的な1つのルータ
仮想的な1つのルータ
Text is not SVG – cannot display

HSRPのバージョンは2つ!!IOSのVersion1とNXOSのVersion2

HSRPはCisco独自のプロトコルであり、Versionも2つあります。

Version1は主にIOSルータで利用されており、グループ番号が「0~255」Helloパケットの宛先が「224.0.0.2」となっております。

また、Version2はNXOSで利用されており、こちらはグループ番号が「0~4095」と拡張されており、Helloパケットの宛先が「224.0.0.102」になっております。

比較表を以下に載せておきます。

項目Version1Version2
グループ番号0~2550~4095
MACアドレス0000.0c07.acXX0000.0c9f.fXXX
Helloパケット宛先224.0.0.2224.0.0.102

MACアドレスの「XX」 or 「XXX」は16進数でのグループ番号の表記になります。

そのため、グループ番号「18」であれば、Version1が「12」、Version2が「012」になります。

HSRPの5つのステータス種別

HSRPのステータスは、Version共通で5種類あります。

ステータス詳細
INIT初期状態、設定直後やリンクダウン時の状態
LISTENHelloパケットを他ルータからListenしている状態
SPEAKHelloパケットを送信し、Active or Standbyを選定中
ACTIVE仮想IPアドレスと仮想MACアドレスを保持し、データ転送を処理する
STANDBYACTIVEルータが障害発生時にACTIVEを引き継ぐルータ
①設定直後:INIT状態
①設定直後:INIT状態
①設定直後:INIT状態
①設定直後:INIT状態
②LISTEN/SPEAK
→Helloパケットを他ルータに送信・Listen
②LISTEN/SPEAK…
③Active決定
③Active決定
③Standby決定
③Standby決定
データトラフィックフロー
データトラフィックフロー
Text is not SVG – cannot display

HSRPの一般的な設定方法

 実機で演習をする前にConfig例をまとめていきたいと思います。

まず、一般的な設定は、基本的にInterface設定の配下に追加し、設定していきます。

(config)# interface { interface-id }
(config-if)# standby { group no } ip { master ip }

この設定をHSRPを起動させるルータに追加すれば、動作します。

そして、今回は6つのオプションを説明していきたいと思います。

①Priority

1つ目がプライオリティです。

これは、ActiveルータとStandbyルータを意図的に指定するために利用します。

デフォルトのプライオリティは「100」であり、プライオリティが同一の場合はIPアドレスが大きい方がアクティブルータとなります。

投入Configは以下の通りとなります。

(config-if)# standby { group no } priority { priority value }
Priority:120→Active
Priority:120→Active
Priority:100→Standby
Priority:100→Standby
Text is not SVG – cannot display

②Preempt

 Preemptの機能は、アクティブルータよりもプライオリティが高いルータが存在した場合、即座に切替を実施する機能となります。

 この機能は、主に障害時の切り替えを高速に行うことやプライオリティが一番高いルータをアクティブルータにしたい場合などに利用されることが多いです。

HSRPは通常、一度アクティブルータが決定するとそのルータよりもプライオリティが高くとも、障害が発生しない限りアクティブルータには切り替わりません。

この機能はその弱点を補うための機能となります。

(config-if)# standby { group no } preempt
①Activeルータ(Pri 100)
①Activeルータ(Pri 100)
②Pri 120のルータを追加
②Pri 120のルータを追加
Preempt機能有の場合
Preempt機能有の場合
①Activeルータ(Pri 100)
①Activeルータ(Pri 100)
②Pri 120のルータを追加
②Pri 120のルータを追加
Preempt機能無の場合
Preempt機能無の場合
③切り替わらない
③切り替わらない
③即座に切替
③即座に切替
Text is not SVG – cannot display

③Hello/Holdタイマの調整

 3つ目は、Hello/Deadタイマーの調整です。

通常、HSRPのHello/Deadタイマーの値は「3秒/10秒」となっております。

この値を調整するために利用されるのがこの機能となります。

(config-if)# standby { group no } timers { hello time (sec) } { hold time (sec) }

④Preempt Delay

4つ目の機能は、Preemptの発動を遅らせる「Preempt Delay」になります。

この機能は、アクティブルータの切替が生じた際に、IGPの経路が収束する前にアクティブルータが切り替わるとパケットドロップが収束までの時間発生する可能性があります。

そのドロップを防ぐために使われるのがこの機能になります。

①切替条件発生
①切替条件発生
Preempt Delay無の場合
Preempt Delay無の場合
 ②切り替わり
 ②切り替わり
IGP ネットワーク
IGP ネットワーク
②IGP経路再計算
②IGP経路再計算
③Activeルータ
③Activeルータ
⑤IGP経路収束
⑤IGP経路収束
④Drop発生
→IGP未収束のため
④Drop発生…
⑥Drop解消
⑥Drop解消
①切替条件発生
①切替条件発生
Preempt Delay有の場合
Preempt Delay有の場合
 ②Preempt Delay発動
 ②Preempt Delay発動
IGP ネットワーク
IGP ネットワーク
③IGP経路再計算/収束
③IGP経路再計算/収束
⑤Activeルータ
⑤Activeルータ
④指定時間後、切替
④指定時間後、切替
Text is not SVG – cannot display

⑤MD5認証

5つ目の機能はMD5認証です。

これは、HSRPグループに属するルータ同士で認証を行うために利用されます。

(config-if)# standby { group no } authentication md5 { string }

⑥IFトラッキング

最後の機能はIFトラッキングとなります。

この機能は、HSRPを有効にしていない他のIFでDownが発生した場合にアクティブルータを切り替えるためによく利用されます。

通常、HSRPを有効にしていないIFがDownした場合、HSRPでは特に検知せずにそのままの状態となります。

その場合、構成によってはパケットドロップが発生し通信断となる可能性があります。

その可能性をなくすためによく利用されます。

ただ、IFトラッキングはHSRPの設定とIPSLAの設定が必要となります。

IPSLAは後日まとめたいと思いますのでもう少々お待ちください。

(config-if)# standby { group no } track { track no } decrement { decrement value } 
①障害発生
①障害発生
IF Tracking無の場合
IF Tracking無の場合
IGP ネットワーク
IGP ネットワーク
②切り替わらない
②切り替わらない
Activeルータ
Activeルータ
①障害発生
①障害発生
IF Tracking有の場合
IF Tracking有の場合
 ②Tracking発動
 ②Tracking発動
IGP ネットワーク
IGP ネットワーク
③Priority変化・切替
③Priority変化・切替
④Activeルータ
④Activeルータ
パケットドロップ発生
パケットドロップ発生
Standbyルータ
Standbyルータ
Activeルータ
Activeルータ
Standbyルータ
Standbyルータ
④Standbyルータ
④Standbyルータ
Text is not SVG – cannot display

ネットワーク演習 実機でHSRPを設定してみよう

今回、CMLで確認した構成は以下の図の通りとなっており、確認項目は全部で4つとなります。

その4つを問題演習形式でまとめていきたいと思います。(以下の対応はあくまで例となります。)

ルータ2
ルータ2
ルータ1
ルータ1
ルータ3
ルータ3
HSRPグループ
HSRPグループ
OSPFエリア
OSPFエリア
Lo:10.0.1.1/32
Lo:10.0.1.1/32
Lo:10.0.1.2/32
Lo:10.0.1.2/32
Lo:10.0.1.3/32
Lo:10.0.1.3/32
Vlan10:192.168.1.3
Vlan10:192.168….
Gi0/2: 192.168.1.1
Gi0/2: 192.168.1.1
Gi0/1: 192.168.1.2
Gi0/1: 192.168.1.2
HSRP IP: 192.168.1.5
HSRP IP: 192.168.1.5
Text is not SVG – cannot display

演習1 HSRPの設定をした上で動作確認を行う

事前確認

設定前の事前確認は、以下コマンドで実施しました。

Router2

Router2#show running-config interface gigabitEthernet 0/2
Building configuration...

Current configuration : 118 bytes
!
interface GigabitEthernet0/2
 ip address 192.168.1.1 255.255.255.248
 duplex auto
 speed auto
 media-type rj45
end

Router3

Router3#show running-config interface gigabitEthernet 0/1
Building configuration...

Current configuration : 118 bytes
!
interface GigabitEthernet0/1
 ip address 192.168.1.2 255.255.255.248
 duplex auto
 speed auto
 media-type rj45
end

L2SW

L2SW#show running-config interface vlan 10
Building configuration...

Current configuration : 64 bytes
!
interface Vlan10
 ip address 192.168.1.3 255.255.255.248
end

L2SW#ping 192.168.1.5
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.5, timeout is 2 seconds:
.....
設定方法&状態確認

次にRouter2とRouter3にHSRPの設定を入れていきます。

今回の手順はRouter2を先に設定しました。

Router2

Router2# conf t
Router2(config)#interface gigabitEthernet 0/2
Router2(config-if)#standby 10 ip 192.168.1.5

この時に出力されたDebugログでもHSRPが設定されていることがわかります。

Debugログコマンド:debug standby events

*Oct 16 23:45:51.352: HSRP: Gi0/2 Interface UP
*Oct 16 23:45:51.352: HSRP: Gi0/2 Initialize swsb, Intf state Up
*Oct 16 23:45:51.352: HSRP: Gi0/2 Starting minimum intf delay (1 secs) - uptime 664
*Oct 16 23:45:51.352: HSRP: Gi0/2 Grp 10 Set virtual MAC 0000.0c07.ac0a type: v1 default
*Oct 16 23:45:51.352: HSRP: Gi0/2 MAC hash entry 0000.0c07.ac0a, Added Gi0/2 Grp 10 to list
*Oct 16 23:45:51.352: HSRP: BFD client status 0 -> 1
*Oct 16 23:45:51.352: HSRP: Gi0/2 Added 192.168.1.5 to hash table
*Oct 16 23:45:51.352: HSRP: Gi0/2 Grp 10 Has mac changed? cur 0000.0c07.ac0a new 0000.0c07.ac0a
*Oct 16 23:45:51.352: HSRP: Gi0/2 Grp 10 Disabled -> Init
*Oct 16 23:45:51.352: HSRP: Gi0/2 Grp 10 Redundancy "hsrp-Gi0/2-10" state Disabled -> Init
*Oct 16 23:45:51.353: HSRP: Gi0/2 IP Redundancy "hsrp-Gi0/2-10" added
*Oct 16 23:45:51.353: HSRP: Gi0/2 IP Redundancy "hsrp-Gi0/2-10" update, Disabled -> Init
*Oct 16 23:45:52.374: HSRP: Gi0/2 Intf min delay expired - uptime 665
*Oct 16 23:45:52.375: HSRP: Gi0/2 Grp 10 Init: a/HSRP enabled
*Oct 16 23:45:52.376: HSRP: Gi0/2 Grp 10 Init -> Listen
*Oct 16 23:45:52.378: HSRP: Gi0/2 Grp 10 Redundancy "hsrp-Gi0/2-10" state Init -> Backup
*Oct 16 23:45:52.379: HSRP: Gi0/2 IP Redundancy "hsrp-Gi0/2-10" update, Init -> Backup
*Oct 16 23:46:02.536: HSRP: Gi0/2 Grp 10 Listen: d/Standby timer expired (unknown)
*Oct 16 23:46:02.536: HSRP: Gi0/2 Grp 10 Listen -> Speak
*Oct 16 23:46:02.536: HSRP: Gi0/2 Grp 10 Redundancy "hsrp-Gi0/2-10" state Backup -> Speak
*Oct 16 23:46:02.536: HSRP: Gi0/2 IP Redundancy "hsrp-Gi0/2-10" update, Backup -> Speak
*Oct 16 23:46:13.439: HSRP: Gi0/2 Grp 10 Speak: d/Standby timer expired (unknown)
*Oct 16 23:46:13.439: HSRP: Gi0/2 Grp 10 Standby router is local
*Oct 16 23:46:13.439: HSRP: Gi0/2 Grp 10 Speak -> Standby
*Oct 16 23:46:13.439: HSRP: Gi0/2 Grp 10 Redundancy "hsrp-Gi0/2-10" state Speak -> Standby
*Oct 16 23:46:13.440: HSRP: Gi0/2 IP Redundancy "hsrp-Gi0/2-10" standby, unknown -> local
*Oct 16 23:46:13.440: HSRP: Gi0/2 IP Redundancy "hsrp-Gi0/2-10" update, Speak -> Standby
*Oct 16 23:46:14.831: HSRP: Gi0/2 Grp 10 Standby: c/Active timer expired (unknown)
*Oct 16 23:46:14.831: HSRP: Gi0/2 Grp 10 Active router is local
*Oct 16 23:46:14.831: HSRP: Gi0/2 Grp 10 Standby router is unknown, was local
*Oct 16 23:46:14.831: HSRP: Gi0/2 Grp 10 Standby -> Active
*Oct 16 23:46:14.831: %HSRP-5-STATECHANGE: GigabitEthernet0/2 Grp 10 state Standby -> Active
*Oct 16 23:46:14.831: HSRP: Gi0/2 Grp 10 Redundancy "hsrp-Gi0/2-10" state Standby -> Active
*Oct 16 23:46:14.832: HSRP: Gi0/2 Grp 10 Added 192.168.1.5 to ARP (0000.0c07.ac0a)
*Oct 16 23:46:14.833: HSRP: Gi0/2 Grp 10 Activating MAC 0000.0c07.ac0a
*Oct 16 23:46:14.833: HSRP: Gi0/2 Grp 10 Adding 0000.0c07.ac0a to MAC address filter
*Oct 16 23:46:14.833: HSRP: Gi0/2 IP Redundancy "hsrp-Gi0/2-10" standby, local -> unknown
*Oct 16 23:46:14.833: HSRP: Gi0/2 IP Redundancy "hsrp-Gi0/2-10" update, Standby -> Active
*Oct 16 23:46:17.864: HSRP: Gi0/2 IP Redundancy "hsrp-Gi0/2-10" update, Active -> Active

Router2の設定を行った後は、冗長化のためRouter3も設定を投入していきます。

Router3

Router3#conf t

Router3(config)#interface gigabitEthernet 0/1
Router3(config-if)#standby 10 ip 192.168.1.5
Router3(config-if)#end

この設定により、Router3でもHSRPが有効となりますが最初に触れていた通り、既にActiveルータが決まっている場合、切替は起きないため、このルータはIPアドレスが大きいですが、Standbyルータとなっています。

*Oct 16 23:53:31.068: HSRP: Gi0/1 Interface UP
*Oct 16 23:53:31.069: HSRP: Gi0/1 Initialize swsb, Intf state Up
*Oct 16 23:53:31.069: HSRP: Gi0/1 Starting minimum intf delay (1 secs) - uptime 1118
*Oct 16 23:53:31.069: HSRP: Gi0/1 Grp 10 Set virtual MAC 0000.0c07.ac0a type: v1 default
*Oct 16 23:53:31.069: HSRP: Gi0/1 MAC hash entry 0000.0c07.ac0a, Added Gi0/1 Grp 10 to list
*Oct 16 23:53:31.071: HSRP: BFD client status 0 -> 1
*Oct 16 23:53:31.071: HSRP: Gi0/1 Added 192.168.1.5 to hash table
*Oct 16 23:53:31.071: HSRP: Gi0/1 Grp 10 Has mac changed? cur 0000.0c07.ac0a new 0000.0c07.ac0a
*Oct 16 23:53:31.072: HSRP: Gi0/1 Grp 10 Disabled -> Initnd
Router3#
*Oct 16 23:53:31.072: HSRP: Gi0/1 Grp 10 Redundancy "hsrp-Gi0/1-10" state Disabled -> Init
*Oct 16 23:53:31.073: HSRP: Gi0/1 IP Redundancy "hsrp-Gi0/1-10" added
*Oct 16 23:53:31.073: HSRP: Gi0/1 IP Redundancy "hsrp-Gi0/1-10" update, Disabled -> Init
*Oct 16 23:53:31.694: HSRP: Gi0/1 Grp 10 Active router is 192.168.1.1
*Oct 16 23:53:31.695: HSRP: Gi0/1 Nbr 192.168.1.1 created
*Oct 16 23:53:31.695: HSRP: Gi0/1 Nbr 192.168.1.1 active for group 10
*Oct 16 23:53:32.090: HSRP: Gi0/1 Intf min delay expired - uptime 1119
*Oct 16 23:53:32.090: HSRP: Gi0/1 Grp 10 Init: a/HSRP enabled
*Oct 16 23:53:32.090: HSRP: Gi0/1 Grp 10 Init -> Listen
*Oct 16 23:53:32.090: HSRP: Gi0/1 Grp 10 Redundancy "hsrp-Gi0/1-10" state Init -> Backup
*Oct 16 23:53:32.091: HSRP: Gi0/1 IP Redundancy "hsrp-Gi0/1-10" update, Init -> Backup
*Oct 16 23:53:32.117: %SYS-5-CONFIG_I: Configured from console by cisco on vty0 (192.168.11.19)
Router3#
*Oct 16 23:53:43.926: HSRP: Gi0/1 Grp 10 Listen: d/Standby timer expired (unknown)
*Oct 16 23:53:43.926: HSRP: Gi0/1 Grp 10 Listen -> Speak
*Oct 16 23:53:43.926: HSRP: Gi0/1 Grp 10 Redundancy "hsrp-Gi0/1-10" state Backup -> Speak
*Oct 16 23:53:43.926: HSRP: Gi0/1 IP Redundancy "hsrp-Gi0/1-10" update, Backup -> Speak
*Oct 16 23:53:55.759: HSRP: Gi0/1 Grp 10 Speak: d/Standby timer expired (unknown)
*Oct 16 23:53:55.759: HSRP: Gi0/1 Grp 10 Standby router is local
*Oct 16 23:53:55.759: HSRP: Gi0/1 Grp 10 Speak -> Standby
*Oct 16 23:53:55.759: %HSRP-5-STATECHANGE: GigabitEthernet0/1 Grp 10 state Speak -> Standby
*Oct 16 23:53:55.759: HSRP: Gi0/1 Grp 10 Redundancy "hsrp-Gi0/1-10" state Speak -> Standby
*Oct 16 23:53:55.760: HSRP: Gi0/1 IP Redundancy "hsrp-Gi0/1-10" standby, unknown -> local
*Oct 16 23:53:55.760: HSRP: Gi0/1 IP Redundancy "hsrp-Gi0/1-10" update, Speak -> Standby

2つのルータに設定後の状態は、Router2がActiveルータ、Router3がStandbyルータとなっており、想定通りであることがわかります。

Router2の状態

Router2#show standby gigabitEthernet 0/2
GigabitEthernet0/2 - Group 10
  State is Active
    2 state changes, last state change 00:08:02
  Virtual IP address is 192.168.1.5
  Active virtual MAC address is 0000.0c07.ac0a
    Local virtual MAC address is 0000.0c07.ac0a (v1 default)
  Hello time 3 sec, hold time 10 sec
    Next hello sent in 2.352 secs
  Preemption disabled
  Active router is local
  Standby router is 192.168.1.2, priority 100 (expires in 10.864 sec)
  Priority 100 (default 100)
  Group name is "hsrp-Gi0/2-10" (default)

Router3の状態

Router3#show standby gigabitEthernet 0/1
GigabitEthernet0/1 - Group 10
  State is Standby
    1 state change, last state change 00:00:17
  Virtual IP address is 192.168.1.5
  Active virtual MAC address is 0000.0c07.ac0a
    Local virtual MAC address is 0000.0c07.ac0a (v1 default)
  Hello time 3 sec, hold time 10 sec
    Next hello sent in 0.384 secs
  Preemption disabled
  Active router is 192.168.1.1, priority 100 (expires in 8.912 sec)
  Standby router is local
  Priority 100 (default 100)
  Group name is "hsrp-Gi0/1-10" (default)

L2SWの状態

L2SW#ping 192.168.1.5
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.5, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/3 ms
L2SW#traceroute 192.168.1.5
Type escape sequence to abort.
Tracing the route to 192.168.1.5
VRF info: (vrf in name/id, vrf out name/id)
  1 192.168.1.1 3 msec *  4 msec

この時のパケットキャプチャでは、Router2-Router3間ではHSRPパケットは流れてなく、Router2-L2SWとRouter3-L2SW間で流れていることがわかりました。

今回は、その一部を添付したいと思います。

これらのパケットのうち、「Advertise」と「Hello(Active/Speak/Standby)」の中身を細かくみていきたいと思います。

Advertiseメッセージ(Passive)

設定直後のルータは、他のHSRPルータに認識されていません。

この状態を「Passive」と呼びます。

この状態から周りのルータに自分を知ってもらうためにはAdvertiseしないといけません。

そこで送られているのが、この「Advertise」メッセージになります。

Helloパケット

Helloパケットは、HSRPのルータ同士で意思疎通を取るためのメッセージになります。

その中にも状態(State)がActive/Standby/Speak等あります。

今回は、Activeの中身を見ていきます。

演習2 Preemptの設定を行い、動作確認を行う

STEP
事前確認

事前確認は、演習1での事後確認がそのままの状態となるので、ここでは割愛します。

STEP
設定投入

設定投入ではpreemptの設定だけでなく、Activeルータを切り替えたいため、Router3側にPriority110を設定しました。

Router3#conf t
Router3(config)#interface gigabitEthernet 0/1
Router3(config-if)#standby 10 preempt
Router3(config-if)#standby 10 priority 110
Router3(config-if)#end

この時のDebugログは、以下の通りとなります。

*Oct 17 00:03:32.270: HSRP: Gi0/1 Grp 10 Priority 100 -> 110

*Oct 17 00:03:34.659: HSRP: Gi0/1 Grp 10 Standby: h/Hello rcvd from lower pri Active router (100/192.168.1.1)
*Oct 17 00:03:34.659: HSRP: Gi0/1 Grp 10 Active router is local, was 192.168.1.1
*Oct 17 00:03:34.660: HSRP: Gi0/1 Nbr 192.168.1.1 no longer active for group 10 (Standby)
*Oct 17 00:03:34.660: HSRP: Gi0/1 Nbr 192.168.1.1 Was active or standby - start passive holddown
*Oct 17 00:03:34.661: HSRP: Gi0/1 Grp 10 Standby router is unknown, was local
*Oct 17 00:03:34.664: HSRP: Gi0/1 Grp 10 Standby -> Active
*Oct 17 00:03:34.664: %HSRP-5-STATECHANGE: GigabitEthernet0/1 Grp 10 state Standby -> Active
*Oct 17 00:03:34.664: HSRP: Gi0/1 Grp 10 Redundancy "hsrp-Gi0/1-10" state Standby -> Active
*Oct 17 00:03:34.665: HSRP: Gi0/1 Grp 10 Added 192.168.1.5 to ARP (0000.0c07.ac0a)
*Oct 17 00:03:34.666: HSRP: Gi0/1 Grp 10 Activating MAC 0000.0c07.ac0a
*Oct 17 00:03:34.666: HSRP: Gi0/1 Grp 10 Adding 0000.0c07.ac0a to MAC address filter
*Oct 17 00:03:34.666: HSRP: Gi0/1 IP Redundancy "hsrp-Gi0/1-10" standby, local -> unknown
*Oct 17 00:03:34.666: HSRP: Gi0/1 IP Redundancy "hsrp-Gi0/1-10" update, Standby -> Active
*Oct 17 00:03:37.671: HSRP: Gi0/1 IP Redundancy "hsrp-Gi0/1-10" update, Active -> Active
Router3#
Router3#
*Oct 17 00:03:45.488: HSRP: Gi0/1 Grp 10 Standby router is 192.168.1.1
*Oct 17 00:03:45.488: HSRP: Gi0/1 Nbr 192.168.1.1 is no longer passive
*Oct 17 00:03:45.488: HSRP: Gi0/1 Nbr 192.168.1.1 standby for group 10

上記ログより、Priorityが100から110に変化し、Activeルータになっていることがわかります。

Preemptを追加すると即座に切り替わることがこれからもわかると思います。

STEP
事後確認

最後に、各ルータの状態確認を行います。

ルータ2

Router2#show standby gigabitEthernet 0/2
GigabitEthernet0/2 - Group 10
  State is Standby
    4 state changes, last state change 00:00:08
  Virtual IP address is 192.168.1.5
  Active virtual MAC address is 0000.0c07.ac0a
    Local virtual MAC address is 0000.0c07.ac0a (v1 default)
  Hello time 3 sec, hold time 10 sec
    Next hello sent in 2.880 secs
  Preemption enabled
  Active router is 192.168.1.2, priority 110 (expires in 11.856 sec)
  Standby router is local
  Priority 100 (default 100)
  Group name is "hsrp-Gi0/2-10" (default)

ルータ3

show standby gigabitEthernet 0/1
GigabitEthernet0/1 - Group 10
  State is Active
    2 state changes, last state change 00:00:28
  Virtual IP address is 192.168.1.5
  Active virtual MAC address is 0000.0c07.ac0a
    Local virtual MAC address is 0000.0c07.ac0a (v1 default)
  Hello time 3 sec, hold time 10 sec
    Next hello sent in 2.400 secs
  Preemption enabled
  Active router is local
  Standby router is 192.168.1.1, priority 100 (expires in 10.448 sec)
  Priority 110 (configured 110)
  Group name is "hsrp-Gi0/1-10" (default)

L2SW

L2SW#ping 192.168.1.5
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.5, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 1/1/2 ms
L2SW#traceroute 192.168.1.5
Type escape sequence to abort.
Tracing the route to 192.168.1.5
VRF info: (vrf in name/id, vrf out name/id)
  1 192.168.1.2 2 msec *  2 msec
L2SW#

上記ログからもわかるようにRouter3がActiveに切り替わってることやPreemptが有効になっていることがわかります。

STEP
パケットキャプチャからわかる動作

まずは、Preempt発動前後のパケットキャプチャを見ていきたいと思います。

このCoupメッセージとは、ActiveルータではないルータがActiveになろうとする際に利用されるメッセージとなります。

演習3 Preempt Delayの設定を行い、動作確認を行う

演習2でPreemptを設定できたところで、次はPreemptの発動を遅らせる「Preempt Delay」を設定していきます。

Preempt DelayはIGPの再計算とHSRPのタイミングを調整するために利用されますが、大規模ネットワークでもない限り再現することは難しいと思うので、今回はPreempt Delayの動作だけ確認していきたいと思います。

STEP
事前確認

Preempt Delay設定時の状態確認は以下の通りとなります。

今回は、Router3に「standby 10 preempt delay minimum 5」を設定した状態となります。

Router2

Router2#show standby gigabitEthernet 0/2
GigabitEthernet0/2 - Group 10
  State is Standby
    6 state changes, last state change 00:03:52
  Virtual IP address is 192.168.1.5
  Active virtual MAC address is 0000.0c07.ac0a
    Local virtual MAC address is 0000.0c07.ac0a (v1 default)
  Hello time 3 sec, hold time 10 sec
    Next hello sent in 1.760 secs
  Authentication MD5, key-string
  Preemption enabled
  Active router is 192.168.1.2, priority 110 (expires in 10.512 sec)
  Standby router is local
  Priority 100 (default 100)
    Track object 10 state Up decrement 30
  Group name is "hsrp-Gi0/2-10" (default)
Router2#

Router3

Router3#show standby gigabitEthernet 0/1
GigabitEthernet0/1 - Group 10
  State is Active
    5 state changes, last state change 00:04:31
  Virtual IP address is 192.168.1.5
  Active virtual MAC address is 0000.0c07.ac0a
    Local virtual MAC address is 0000.0c07.ac0a (v1 default)
  Hello time 3 sec, hold time 10 sec
    Next hello sent in 1.184 secs
  Authentication MD5, key-string
  Preemption enabled, delay min 5 secs
  Active router is local
  Standby router is 192.168.1.1, priority 100 (expires in 9.296 sec)
  Priority 110 (configured 110)
    Track object 10 state Up decrement 30
  Group name is "hsrp-Gi0/1-10" (default)

L2SW

L2SW#ping 192.168.1.5
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.5, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/3 ms
L2SW#traceroute 192.168.1.5
Type escape sequence to abort.
Tracing the route to 192.168.1.5
VRF info: (vrf in name/id, vrf out name/id)
  1 192.168.1.2 1 msec *  1 msec
L2SW#
STEP
動作確認

それでは本題のPreempt Delayの動作確認をしていきます。

切替条件の発生後、Router3のDebugログを見ると5秒間は待機した上で切り替わることがわかると思います。

Router2

*Oct 19 00:15:05.493: HSRP: Gi0/2 Grp 10 Active: j/Coup rcvd from higher pri router (110/192.168.1.2)
*Oct 19 00:15:05.493: HSRP: Gi0/2 Grp 10 Active router is 192.168.1.2, was local
*Oct 19 00:15:05.493: HSRP: Gi0/2 Nbr 192.168.1.2 active for group 10
*Oct 19 00:15:05.493: HSRP: Gi0/2 Grp 10 Standby router is unknown, was 192.168.1.2
*Oct 19 00:15:05.493: HSRP: Gi0/2 Nbr 192.168.1.2 no longer standby for group 10 (Active)
*Oct 19 00:15:05.493: HSRP: Gi0/2 Grp 10 Active -> Speak
*Oct 19 00:15:05: %HSRP-5-STATECHANGE: GigabitEthernet0/2 Grp 10 state Active -> Speak
*Oct 19 00:15:05.493: HSRP: Gi0/2 Grp 10 Redundancy "hsrp-Gi0/2-10" state Active -> Speak
*Oct 19 00:15:05.493: HSRP: Gi0/2 Grp 10 Removed 192.168.1.5 from ARP
*Oct 19 00:15:05.493: HSRP: Gi0/2 Grp 10 Deactivating MAC 0000.0c07.ac0a
*Oct 19 00:15:05.493: HSRP: Gi0/2 Grp 10 Removing 0000.0c07.ac0a from MAC address filter
*Oct 19 00:15:05.493: HSRP: Gi0/2 IP Redundancy "hsrp-Gi0/2-10" update, Active -> Speak

Router3

*Oct 19 00:14:55: %LINK-3-UPDOWN: Interface GigabitEthernet0/2, changed state to up
*Oct 19 00:14:56: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/2, changed state to up
*Oct 19 00:14:58: %TRACK-6-STATE: 10 ip sla 10 reachability Down -> Up
*Oct 19 00:14:58.338: HSRP: Gi0/1 Grp 10 Track 10 object changed, state Down -> Up
*Oct 19 00:14:58.338: HSRP: Gi0/1 Grp 10 Priority 80 -> 110
*Oct 19 00:15:01.173: HSRP: Gi0/1 Grp 10 Standby: h/Hello rcvd from lower pri Active router (100/192.168.1.1)
*Oct 19 00:15:01.173: HSRP: Gi0/1 Grp 10 Starting minimum preempt delay (5 secs) - uptime 1259
*Oct 19 00:15:06.327: HSRP: Gi0/1 Grp 10 Minimum preempt delay expired - uptime 1264
*Oct 19 00:15:06.327: HSRP: Gi0/1 Grp 10 Active router is local, was 192.168.1.1
*Oct 19 00:15:06.327: HSRP: Gi0/1 Nbr 192.168.1.1 no longer active for group 10 (Standby)
*Oct 19 00:15:06.327: HSRP: Gi0/1 Nbr 192.168.1.1 Was active or standby - start passive holddown
*Oct 19 00:15:06.327: HSRP: Gi0/1 Grp 10 Standby router is unknown, was local
*Oct 19 00:15:06.327: HSRP: Gi0/1 Grp 10 Standby -> Active
*Oct 19 00:15:06: %HSRP-5-STATECHANGE: GigabitEthernet0/1 Grp 10 state Standby -> Active
*Oct 19 00:15:06.327: HSRP: Gi0/1 Grp 10 Redundancy "hsrp-Gi0/1-10" state Standby -> Active
*Oct 19 00:15:06.327: HSRP: Gi0/1 Grp 10 Added 192.168.1.5 to ARP (0000.0c07.ac0a)
*Oct 19 00:15:06.328: HSRP: Gi0/1 Grp 10 Activating MAC 0000.0c07.ac0a
*Oct 19 00:15:06.328: HSRP: Gi0/1 Grp 10 Adding 0000.0c07.ac0a to MAC address filter
*Oct 19 00:15:06.328: HSRP: Gi0/1 IP Redundancy "hsrp-Gi0/1-10" standby, local -> unknown
*Oct 19 00:15:06.328: HSRP: Gi0/1 IP Redundancy "hsrp-Gi0/1-10" update, Standby -> Active
*Oct 19 00:15:09.334: HSRP: Gi0/1 IP Redundancy "hsrp-Gi0/1-10" update, Active -> Active
*Oct 19 00:15:16.856: HSRP: Gi0/1 Grp 10 Standby router is 192.168.1.1
*Oct 19 00:15:16.856: HSRP: Gi0/1 Nbr 192.168.1.1 is no longer passive
*Oct 19 00:15:16.856: HSRP: Gi0/1 Nbr 192.168.1.1 standby for group 10

演習4 IFトラッキングの設定を行い、動作の確認を行う

最後にHSRPを有効化していないインタフェースでダウンが発生した際に検知し、Priorityを下げるIFトラッキングを見ていきたいと思います。

STEP
事前確認

各ルータの状態確認を行なっていきます。
ここではIP SLAの設定の説明は行いませんので、後日投稿する記事でご確認いただければと思います。

Router2

Router2では、HSRP IFトラッキングの設定を行い、切替前の状態を確認していきます。

Router2#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Router2(config)#interface gigabitEthernet 0/2
Router2(config-if)#standby 10 track 10 decrement 30
Router2(config-if)#end
Router2#
*Oct 18 00:04:57.691: HSRP: Gi0/2 Grp 10 Track 10 add, priority decrement 30
*Oct 18 00:04:57.691: HSRP: Gi0/2 Grp 10 Track 10 Start tracking
*Oct 18 00:04:57.691: HSRP: Gi0/2 Grp 10 Track 10 link id 1
Router2#

上記設定投入後にtrackが開始されたことがDebugログからも見て取れると思います。

ここでshowコマンドによる状態確認をしてみます。

Router2#show standby gigabitEthernet 0/2
GigabitEthernet0/2 - Group 10
  State is Standby
    3 state changes, last state change 00:06:01
  Virtual IP address is 192.168.1.5
  Active virtual MAC address is 0000.0c07.ac0a
    Local virtual MAC address is 0000.0c07.ac0a (v1 default)
  Hello time 3 sec, hold time 10 sec
    Next hello sent in 2.656 secs
  Authentication MD5, key-string
  Preemption enabled
  Active router is 192.168.1.2, priority 110 (expires in 8.272 sec)
  Standby router is local
  Priority 100 (default 100)
    Track object 10 state Up decrement 30
  Group name is "hsrp-Gi0/2-10" (default)

Router2#show ip sla summary
IPSLAs Latest Operation Summary
Codes: * active, ^ inactive, ~ pending

ID           Type        Destination       Stats       Return      Last
                                           (ms)        Code        Run
-----------------------------------------------------------------------
*10          icmp-echo   10.1.0.1          RTT=1       OK          2 seconds ago

上記結果からIFトラッキング時にDecrement 30が行われることが見て取れます。

この設定をRouter3にも設定していきます。

Router3

Router3#show standby gigabitEthernet 0/1
GigabitEthernet0/1 - Group 10
  State is Active
    2 state changes, last state change 00:06:40
  Virtual IP address is 192.168.1.5
  Active virtual MAC address is 0000.0c07.ac0a
    Local virtual MAC address is 0000.0c07.ac0a (v1 default)
  Hello time 3 sec, hold time 10 sec
    Next hello sent in 0.592 secs
  Authentication MD5, key-string
  Preemption enabled
  Active router is local
  Standby router is 192.168.1.1, priority 100 (expires in 9.648 sec)
  Priority 110 (configured 110)
    Track object 10 state Up decrement 30
  Group name is "hsrp-Gi0/1-10" (default)

Router3#show ip sla summary
IPSLAs Latest Operation Summary
Codes: * active, ^ inactive, ~ pending

ID           Type        Destination       Stats       Return      Last
                                           (ms)        Code        Run
-----------------------------------------------------------------------
*10          icmp-echo   10.2.0.1          RTT=1       OK          3 seconds ago
STEP
IFトラッキングの動作確認

それでは、HSRPのIFトラッキングの動作確認を行なっていきましょう。

Router3のIF Gigabitethernet 0/2を落としてみましょう。

Router3

以下Debugログを見ると、Gi0/2がDownした後に、IPSLAがDownすることでPriorityが110から80に30減少していることがわかると思います。

このことからHSRPのIFトラッキングが発動していることが見て取れます。

*Oct 19 00:03:30: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/2, changed state to down
*Oct 19 00:03:31: %LINK-3-UPDOWN: Interface GigabitEthernet0/2, changed state to down
*Oct 19 00:03:31: %OSPF-5-ADJCHG: Process 100, Nbr 10.0.1.1 on GigabitEthernet0/2 from FULL to DOWN, Neighbor Down: Interface down or detached
*Oct 19 00:03:43: %TRACK-6-STATE: 10 ip sla 10 reachability Up -> Down
*Oct 19 00:03:43.338: HSRP: Gi0/1 Grp 10 Track 10 object changed, state Up -> Down
*Oct 19 00:03:43.338: HSRP: Gi0/1 Grp 10 Priority 110 -> 80
*Oct 19 00:03:44.406: HSRP: Gi0/1 Grp 10 Active: j/Coup rcvd from higher pri router (100/192.168.1.1)
*Oct 19 00:03:44.407: HSRP: Gi0/1 Grp 10 Active router is 192.168.1.1, was local
*Oct 19 00:03:44.407: HSRP: Gi0/1 Nbr 192.168.1.1 active for group 10
*Oct 19 00:03:44.407: HSRP: Gi0/1 Grp 10 Standby router is unknown, was 192.168.1.1
*Oct 19 00:03:44.407: HSRP: Gi0/1 Nbr 192.168.1.1 no longer standby for group 10 (Active)
*Oct 19 00:03:44.407: HSRP: Gi0/1 Grp 10 Active -> Speak
*Oct 19 00:03:44: %HSRP-5-STATECHANGE: GigabitEthernet0/1 Grp 10 state Active -> Speak
*Oct 19 00:03:44.408: HSRP: Gi0/1 Grp 10 Redundancy "hsrp-Gi0/1-10" state Active -> Speak
*Oct 19 00:03:44.408: HSRP: Gi0/1 Grp 10 Removed 192.168.1.5 from ARP
*Oct 19 00:03:44.408: HSRP: Gi0/1 Grp 10 Deactivating MAC 0000.0c07.ac0a
*Oct 19 00:03:44.409: HSRP: Gi0/1 Grp 10 Removing 0000.0c07.ac0a from MAC address filter
*Oct 19 00:03:44.409: HSRP: Gi0/1 IP Redundancy "hsrp-Gi0/1-10" update, Active -> Speak
*Oct 19 00:03:54.840: HSRP: Gi0/1 Grp 10 Speak: d/Standby timer expired (unknown)
*Oct 19 00:03:54.840: HSRP: Gi0/1 Grp 10 Standby router is local
*Oct 19 00:03:54.840: HSRP: Gi0/1 Grp 10 Speak -> Standby
*Oct 19 00:03:54: %HSRP-5-STATECHANGE: GigabitEthernet0/1 Grp 10 state Speak -> Standby
*Oct 19 00:03:54.840: HSRP: Gi0/1 Grp 10 Redundancy "hsrp-Gi0/1-10" state Speak -> Standby
*Oct 19 00:03:54.841: HSRP: Gi0/1 IP Redundancy "hsrp-Gi0/1-10" standby, unknown -> local
*Oct 19 00:03:54.841: HSRP: Gi0/1 IP Redundancy "hsrp-Gi0/1-10" update, Speak -> Standby

では、一方Router2はどうなっているのか?見てみましょう。

Router2

DebugログからRouter3でIPSLAがDownになり、IFトラッキングが発動してからActiveに切り替わってることがわかります。

*Oct 19 00:03:44.635: HSRP: Gi0/2 Grp 10 Standby: h/Hello rcvd from lower pri Active router (80/192.168.1.2)
*Oct 19 00:03:44.635: HSRP: Gi0/2 Grp 10 Active router is local, was 192.168.1.2
*Oct 19 00:03:44.635: HSRP: Gi0/2 Nbr 192.168.1.2 no longer active for group 10 (Standby)
*Oct 19 00:03:44.635: HSRP: Gi0/2 Nbr 192.168.1.2 Was active or standby - start passive holddown
*Oct 19 00:03:44.635: HSRP: Gi0/2 Grp 10 Standby router is unknown, was local
*Oct 19 00:03:44.637: HSRP: Gi0/2 Grp 10 Standby -> Active
*Oct 19 00:03:44: %HSRP-5-STATECHANGE: GigabitEthernet0/2 Grp 10 state Standby -> Active
*Oct 19 00:03:44.637: HSRP: Gi0/2 Grp 10 Redundancy "hsrp-Gi0/2-10" state Standby -> Active
*Oct 19 00:03:44.637: HSRP: Gi0/2 Grp 10 Added 192.168.1.5 to ARP (0000.0c07.ac0a)
*Oct 19 00:03:44.637: HSRP: Gi0/2 Grp 10 Activating MAC 0000.0c07.ac0a
*Oct 19 00:03:44.637: HSRP: Gi0/2 Grp 10 Adding 0000.0c07.ac0a to MAC address filter
*Oct 19 00:03:44.637: HSRP: Gi0/2 IP Redundancy "hsrp-Gi0/2-10" standby, local -> unknown
*Oct 19 00:03:44.637: HSRP: Gi0/2 IP Redundancy "hsrp-Gi0/2-10" update, Standby -> Active
*Oct 19 00:03:47.637: HSRP: Gi0/2 IP Redundancy "hsrp-Gi0/2-10" update, Active -> Active
*Oct 19 00:03:54.955: HSRP: Gi0/2 Grp 10 Standby router is 192.168.1.2
*Oct 19 00:03:54.955: HSRP: Gi0/2 Nbr 192.168.1.2 is no longer passive
*Oct 19 00:03:54.955: HSRP: Gi0/2 Nbr 192.168.1.2 standby for group 10
STEP
発動後の状態確認

上記ログからIFトラッキングが発動したことが見て取れたと思います。

最後にshowコマンドによる状態確認を見ていきましょう。

Router2

Router2#show standby gigabitEthernet 0/2
GigabitEthernet0/2 - Group 10
  State is Active
    4 state changes, last state change 00:00:33
  Virtual IP address is 192.168.1.5
  Active virtual MAC address is 0000.0c07.ac0a
    Local virtual MAC address is 0000.0c07.ac0a (v1 default)
  Hello time 3 sec, hold time 10 sec
    Next hello sent in 2.256 secs
  Authentication MD5, key-string
  Preemption enabled
  Active router is local
  Standby router is 192.168.1.2, priority 80 (expires in 8.880 sec)
  Priority 100 (default 100)
    Track object 10 state Up decrement 30
  Group name is "hsrp-Gi0/2-10" (default)

Router3

Router3#show standby gigabitEthernet 0/1
GigabitEthernet0/1 - Group 10
  State is Standby
    4 state changes, last state change 00:00:42
  Virtual IP address is 192.168.1.5
  Active virtual MAC address is 0000.0c07.ac0a
    Local virtual MAC address is 0000.0c07.ac0a (v1 default)
  Hello time 3 sec, hold time 10 sec
    Next hello sent in 0.640 secs
  Authentication MD5, key-string
  Preemption enabled
  Active router is 192.168.1.1, priority 100 (expires in 8.144 sec)
  Standby router is local
  Priority 80 (configured 110)
    Track object 10 state Down decrement 30
  Group name is "hsrp-Gi0/1-10" (default)

最後に

今回は、HSRPについてまとめてみました。

最近、ネットワークの入門関係について深掘りし、復習を進めています。

次回は、他のプロトコルもしくは技術についてまとめていきたいと思います。

関連記事

  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次