HSRP

目的

複数の物理ルータを使用して仮想ルータを構築する。
アクティブルータに障害が発生した場合、スタンバイルータに切り替わり通信ができることを確認する。

接続構成

HSRP

 

緑色の線は、シリアル接続です。(RouterA:DTE ⇔ RouterC:DCE ⇔ RouterB:DTE)
青色の線は、イーサネット接続です。

コンフィグはこちら・・・Config

 

 

設定

RouterA(config)#int fa0/0
RouterA(config-if)#ip add 192.168.1.2 255.255.255.0
RouterA(config-if)#no shut

 

RouterA(config-if)#int s0/0
RouterA(config-if)#ip add 192.168.2.1 255.255.255.0
RouterA(config-if)#no shut

 

RouterA(config-if)#int fa0/0
RouterA(config-if)#standby 10 ip 192.168.1.1 ←仮想IPアドレスを設定する
RouterA(config-if)#standby 10 priority 200 ←プライオリティを設定する(RouterAをアクティブルータにしたいのでプライオリティを高くする。デフォルトは100)
RouterA(config-if)#standby 10 preempt ←プライオリティの高いルータが常にアクティブになるようにする。

 

RouterA(config)#router ospf 10
RouterA(config-router)#net 192.168.1.2 0.0.0.0 area 0
RouterA(config-router)#net 192.168.2.1 0.0.0.0 area 0
ルーティングプロトコルはOSPFを使用していますが、その他、RIPやEIGRPなどでもOK。ルーティングの設定は、最後の通信確認用に入れている。

 

 

RouterB(config)#int e0/0
RouterB(config-if)#ip add 192.168.1.3 255.255.255.0
RouterB(config-if)#no shut

 

RouterB(config-if)#int s0/0
RouterB(config-if)#ip add 192.168.3.1 255.255.255.0
RouterB(config-if)#no shut

 

RouterB(config-if)#int e0/0
RouterB(config-if)#standby 10 ip 192.168.1.1

 

RouterB(config)#router ospf 10
RouterB(config-router)#net 192.168.1.3 0.0.0.0 area 0
RouterB(config-router)#net 192.168.3.1 0.0.0.0 area 0

 

 

RouterC(config)#int e0
RouterC(config-if)#ip add 192.168.1.4 255.255.255.0
RouterC(config-if)#no shut

 

RouterC(config-if)#int s0
RouterC(config-if)#ip add 192.168.2.2 255.255.255.0
RouterC(config-if)#no shut
RouterC(config-if)#clockrate 64000

 

RouterC(config-if)#int s1
RouterC(config-if)#ip add 192.168.3.2 255.255.255.0
RouterC(config-if)#no shut
RouterC(config-if)#clockrate 64000t

 

RouterC(config)#router ospf 10
RouterC(config-router)#net 192.168.2.2 0.0.0.0 area 0
RouterC(config-router)#net 192.168.3.2 0.0.0.0 area 0
RouterC(config-router)#net 192.168.4.1 0.0.0.0 area 0

設定確認

RouterA#sh standby
FastEthernet0/0 - Group 10 ←HSRPが有効なインターフェースはFa0/0で、グループ番号は10。
Local state is Active, priority 200, may preempt ←ローカル(自分自身)はアクティブルータでプライオリティは200、プリエンプトが有効。

 

RouterBのプライオリティは100なので、プライオリティが高いRouterAがアクティブルータになる。またプリエンプトの設定により、障害から復旧した場合、プライオリティの高いルータが常にアクティブルータになる。なお、プリエンプトの設定はすべてのルータに設定しておいても問題はありません。

 

Hellotime 3 sec, holdtime 10 sec ←Helloメッセージの送信間隔は3秒、Helloメッセージが届かなくなってからアクティブに切り替えるまで10秒。
Next hello sent in 2.690
Virtual IP address is 192.168.1.1 configured ←仮想IPアドレス
Active router is local
Standby router is 192.168.1.3, priority 100 expires in 9.168
Virtual mac address is 0000.0c07.ac0a ←仮想MACアドレス
HSRPの仮想MACアドレス=0000.0c07.acXX HSRPグループ番号(16進数)
5 state changes, last state change 00:41:16
IP redundancy name is "hsrp-Fa0/0-10" (default)
RouterA#

 

RouterB#sh standby
Ethernet0/0 - Group 10 ←HSRPが有効なインターフェースはE0/0で、グループ番号は10
State is Standby ←スタンバイルータ
4 state changes, last state change 00:40:46
Virtual IP address is 192.168.1.1 ←仮想IPアドレス
Active virtual MAC address is 0000.0c07.ac0a
Local virtual MAC address is 0000.0c07.ac0a (default)
Hello time 3 sec, hold time 10 sec ←Helloメッセージの送信間隔は3秒、Helloメッセージが届かなくなってからアクティブに切り替えるまで10秒。
Next hello sent in 2.379 secs
Preemption enabled ←プリエンプトの状態。disabled:無効、enabled:有効。
Active router is 192.168.1.2, priority 200 (expires in 9.299 sec) ←アクティブルータは192.168.1.2で、プライオリティは200
Standby router is local ←ローカル(自分自身)はスタンバイルータ
Priority 100 (default 100) ←プライオリティは100
IP redundancy name is "hsrp-Et0/0-10" (default)
RouterB#

 

ルータの経路情報を確認します。
下記のネットワークを追加したので、4つ確認できれば問題ありません。
・192.168.1.0/24
・192.168.2.0/24
・192.168.3.0/24
・192.168.4.0/24

 

RouterA#sh ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route

 

Gateway of last resort is not set

 

O 192.168.4.0/24 [110/74] via 192.168.2.2, 02:59:04, Serial0/0
C 192.168.1.0/24 is directly connected, FastEthernet0/0
C 192.168.2.0/24 is directly connected, Serial0/0
O 192.168.3.0/24 [110/65] via 192.168.1.3, 02:59:04, FastEthernet0/0
RouterA#

動作確認

動作確認は下記の手順で実施します。

 

1.①のPCから②のPCにPingを打って通信できることを確認。

 

2.RouterAのFa0/0に繋がっているケーブルを抜いた後、下記を確認。
 ・Pingの状況。
 ・RouterAのshow standbyコマンドの結果。
 ・RouterBのshow standbyコマンドの結果。

 

3.2.で抜いたケーブルを再度繋いだ後、下記を確認。
 ・Pingの状況。
 ・RouterAのshow standbyコマンドの結果。
 ・RouterBのshow standbyコマンドの結果。

 

1.の結果

c:\>ping 192.168.4.100

 

192.168.4.100 に ping を送信しています 32 バイトのデータ:
192.168.4.100 からの応答: バイト数 =32 時間 =18ms TTL=30
192.168.4.100 からの応答: バイト数 =32 時間 =18ms TTL=30
192.168.4.100 からの応答: バイト数 =32 時間 =18ms TTL=30
192.168.4.100 からの応答: バイト数 =32 時間 =18ms TTL=30

 

2.の結果

Ping

c:\>ping 192.168.4.100 -t

 

192.168.4.100 に ping を送信しています 32 バイトのデータ:
192.168.4.100 からの応答: バイト数 =32 時間 =18ms TTL=30
192.168.4.100 からの応答: バイト数 =32 時間 =18ms TTL=30
要求がタイムアウトしました。
要求がタイムアウトしました。
192.168.4.100 からの応答: バイト数 =32 時間 =18ms TTL=30
192.168.4.100 からの応答: バイト数 =32 時間 =18ms TTL=30
・・・

 

RouterAのshow standbyコマンド

RouterA#sh standby
FastEthernet0/0 - Group 10
Local state is Init (interface down), priority 200, may preempt ←インターフェースがダウンしてInit状態になっている。
Hellotime 3 sec, holdtime 10 sec
Virtual IP address is 192.168.1.1 configured
Active router is unknown
Standby router is unknown
11 state changes, last state change 00:17:53
IP redundancy name is "hsrp-Fa0/0-10" (default)
RouterA#

 

RouterBのshow standbyコマンド

RouterB#sh standby
Ethernet0/0 - Group 10
State is Active ←RouterBがアクティブルータになっている。
11 state changes, last state change 00:18:27
Virtual IP address is 192.168.1.1
Active virtual MAC address is 0000.0c07.ac0a
Local virtual MAC address is 0000.0c07.ac0a (default)
Hello time 3 sec, hold time 10 sec
Next hello sent in 2.967 secs
Preemption enabled
Active router is local
Standby router is unknown
Priority 100 (default 100)
IP redundancy name is "hsrp-Et0/0-10" (default)
RouterB#

 

3.の結果

Ping

c:\>ping 192.168.4.100 -t

 

192.168.4.100 に ping を送信しています 32 バイトのデータ:
192.168.4.100 からの応答: バイト数 =32 時間 =18ms TTL=30
192.168.4.100 からの応答: バイト数 =32 時間 =18ms TTL=30
要求がタイムアウトしました。
要求がタイムアウトしました。
要求がタイムアウトしました。
要求がタイムアウトしました。
192.168.4.100 からの応答: バイト数 =32 時間 =18ms TTL=30
192.168.4.100 からの応答: バイト数 =32 時間 =18ms TTL=30
・・・

 

RouterAのshow standbyコマンド

RouterA#sh standby
FastEthernet0/0 - Group 10
Local state is Active, priority 200, may preempt ←RouterAがアクティブルータになっている。
Hellotime 3 sec, holdtime 10 sec
Next hello sent in 0.460
Virtual IP address is 192.168.1.1 configured
Active router is local
Standby router is 192.168.1.3, priority 100 expires in 9.256
Virtual mac address is 0000.0c07.ac0a
13 state changes, last state change 00:00:28
IP redundancy name is "hsrp-Fa0/0-10" (default)
RouterA#

 

RouterBのshow standbyコマンド

RouterB#sh standby
Ethernet0/0 - Group 10
State is Standby ←RouterBがスタンバイルータになっている。
13 state changes, last state change 00:00:35
Virtual IP address is 192.168.1.1
Active virtual MAC address is 0000.0c07.ac0a
Local virtual MAC address is 0000.0c07.ac0a (default)
Hello time 3 sec, hold time 10 sec
Next hello sent in 0.892 secs
Preemption enabled
Active router is 192.168.1.2, priority 200 (expires in 8.609 sec)
Standby router is local
Priority 100 (default 100)
IP redundancy name is "hsrp-Et0/0-10" (default)
RouterB#