HSRPの基本設定
・RouterAとRouterBでHSRPを動かし,パソコンのデフォルトゲートウエイを2重化する
・RouterAのEthernet0側のケーブルを抜いたときに,デフォルトゲートウエイがRouterBに移ることを確認する
ネットワーク構成(画像を別ウインドウで表示)
RouterAのコンフィグ
!
version 12.3
service timestamps debug uptime
service timestamps log uptime
no service password-encryption
!
hostname RotuerA
!
interface Ethernet0
ip address 192.168.1.1 255.255.255.0
standby 1 ip 192.168.1.254 ←仮想IPアドレスを設定する
standby 1 priority 255 ←このルーターのプライオリティを255に設定する
!
interface Serial0
ip address 192.168.2.1 255.255.255.0
!
router ospf 1
log-adjacency-changes
passive-interface Ethernet0 ←ルーターでOSPFを動かし,パソコン側はpassive-interfaceにしておく
network 0.0.0.0 255.255.255.255 area 0
!
line con 0
line aux 0
line vty 0 4
login
!
!
end
RouterBのコンフィグ
!
version 12.3
service timestamps debug uptime
service timestamps log uptime
no service password-encryption
!
hostname RouterB
!
interface Ethernet0
ip address 192.168.1.2 255.255.255.0
standby 1 ip 192.168.1.254 ←仮想IPアドレスを設定する
!
interface Serial0
ip address 192.168.3.1 255.255.255.0
no fair-queue
!
router ospf 1
log-adjacency-changes
passive-interface Ethernet0 ←ルーターでOSPFを動かし,パソコン側はpassive-interfaceにしておく
network 0.0.0.0 255.255.255.255 area 0
!
line con 0
line aux 0
line vty 0 4
login
!
!
end
RouterCのコンフィグ
!
version 12.3
service timestamps debug uptime
service timestamps log uptime
no service password-encryption
!
hostname RouterC
!
interface Loopback0
ip address 192.168.4.1 255.255.255.0
ip ospf network point-to-point ←Loopbackアドレスを設定のマスク長で送信するようにする
!
interface Serial0
ip address 192.168.2.2 255.255.255.0
no fair-queue
!
interface Serial1
ip address 192.168.3.2 255.255.255.0
no fair-queue
!
router ospf 1
log-adjacency-changes
network 0.0.0.0 255.255.255.255 area 0
!
line con 0
line aux 0
line vty 0 4
login
!
!
end
確認
LAN上のパソコンのデフォルト・ゲートウエイを冗長化するプロトコルがHSRPです。
複数台のルーターを1台に見せかけて,1台が故障しても他のルーターが処理を引き継ぎます。
パソコン側の設定を変更することなく,デフォルト・ゲートウエイを変更できます。

●HSRPのしくみ
HSRPは,シスコ・ルーターが装備するルーター冗長化プロトコルです。
同じグループに属する複数台のルーターが情報をやりとりして,共通のIPアドレスとMACアドレスを持ちます。
その中の1台がActiveルーターになり, ARP応答やルーティングといった処理を実行します。
その他のルーターはStandbyルーターになり,Activeルーターあての経路がなくなったときに1台が処理を引き継ぎます。
デフォルトでは,ルーター同士が3秒間隔でHelloパケットをやりとりし(Hello time),相手からのHelloが10秒間来なくなったら相手がダウンしたとみなします(hold time)。
このしくみを使うと,LAN上のパソコンが,デフォルトゲートウエイのアドレスを変更せずに,障害回避ができるようになります。

●設定の確認
このラボ・シナリオでは,RouterAとRouterBの2台を,1台のアドレスを持つルーターに見立てます。
HSRPの設定は,インタフェースの設定モードでstandbyコマンドを使います。

RouterAのHSRPの設定は以下です。
HSRPグループが1で,仮想IPアドレスを192.168.1.254にしています。
さらに,プライオリティを255に設定しています。
このプライオリティ値が大きいルーターが,Activeルーターに選出されます。

RouterA(config)#interface ethernet 0
RouterA(config-if)#standby 1 ip 192.168.1.254
RouterA(config-if)#standby 1 priority 255


RouterBの設定が以下です。
RouterAと同様に,HSRPグループが1で仮想IPアドレスを192.168.1.254にしています。
プライオリティは設定していません。
プライオリティを設定しない場合は,デフォルトのプライオリティ値である100が適用されます。

RouterB(config)#interface ethernet 0
RouterB(config-if)#standby 1 ip 192.168.1.254


ちなみに,プライオリティ値が両ルーターで同じ場合は,IPアドレスが一番大きいルーターがActiveルーターになります。
設定は以上です。

●設定の確認
以上の設定をすると,お互いのEthernet0ポート同士でHelloメッセージをやりとりして,ActiveルータとStandbyルーターが決まります。
show standbyコマンドを使ってHSRPの様子を確認してみましょう。
RouterAの表示結果は以下です。

RotuerA#show standby
Ethernet0 - Group 1
 State is Active
  2 state changes, last state change 00:01:09
 Virtual IP address is 192.168.1.254
 Active virtual MAC address is 0000.0c07.ac01
  Local virtual MAC address is 0000.0c07.ac01 (bia)
 Hello time 3 sec, hold time 10 sec
  Next hello sent in 2.324 secs
 Preemption disabled
 Active router is local
 Standby router is 192.168.1.2, priority 100 (expires in 9.504 sec)
 Priority 255 (configured 255)
 IP redundancy name is "hsrp-Et0-1" (default)


「State is Active」とあり,Activeルーターになっていることがわかります。
つまり,現在はこのルーターがデフォルトゲートウエイとして動作しているわけですね。
そして「Virtual IP address is 192.168.1.254」とあり,仮想IPアドレスが192.168.1.254になっています。
プライオリティが,255になっていることもわかります。

RouterBのHSRPの様子も見てみましょう。

RouterB#show standby
Ethernet0 - Group 1
 State is Standby
  1 state change, last state change 00:01:06
 Virtual IP address is 192.168.1.254
 Active virtual MAC address is 0000.0c07.ac01
  Local virtual MAC address is 0000.0c07.ac01 (default)
 Hello time 3 sec, hold time 10 sec
  Next hello sent in 2.952 secs
 Preemption disabled
 Active router is 192.168.1.1, priority 255 (expires in 9.600 sec)
 Standby router is local
 Priority 100 (default 100)
 IP redundancy name is "hsrp-Et0-1" (default)


「State is Standby」とあり,Standbyルーターになっていることがわかります。
このルーターは待機中で,RouterAへの経路がなくなったときの予備経路というわけです。
プライオリティは,デフォルトの100が適用されています。
RouterAのプライオリティ(255)の方が値が大きいので,RouterAがActiveになったわけです。

RouterAとRouterB共に,Hello間隔(Hello time)が3秒で,Heloが来なくなったときにダウンとみなすまでの時間(hold time)が10秒であることもわかります。

●パソコンの設定を確認
この状態でパソコンから192.168.4.1へpingを打つと,pingが返ってきます。
パソコンの状態を確認してみましょう。
アドレスの設定は以下です。
デフォルト・ゲートウエイは,HSRPの仮想IPアドレスである192.168.1.254を指定します。

C:\>ipconfig

Windows IP Configuration

Ethernet adapter ローカル エリア接続:

    Connection-specific DNS Suffix . :
    IP Address. . . . . . . . . . . . . . : 192.168.1.100
    Subnet Mask . . . . . . . . . . . . : 255.255.255.0
    Default Gateway . . . . . . . . . : 192.168.1.254


192.168.4.1へpingを打った後に,パソコンのARPテーブルを見てみます。

C:\>arp -a

Interface: 192.168.1.100 --- 0x10004
 Internet Address   Physical Address     Type
 192.168.1.254     00-00-0c-07-ac-01   dynamic


すると,192.168.1.254のMACアドレスを00-00-0c-07-ac-01と記録しています。
これは,RouterAがARPで返答した,仮想IPアドレス(192.168.1.254)に対応する仮想MACアドレスです。
HSRPでは,「00-00-0c-07-ac-**」という仮想MACアドレスを使います。
「**」の部分には,HSRPのグループ番号が入ります。
今回は,グループ1を指定したので「01」になったわけですね。

●動作の確認(RouterA手前のケーブルを抜いてみる)
では,実際にHSRPによる経路切り替えの動作を確認してみましょう。
RouterAのEthernet0につながっているケーブルを抜いてみます。

RouterA#
00:28:21: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet0, changed state to down
00:28:21: %HSRP-6-STATECHANGE: Ethernet0 Grp 1 state Active -> Init


HSRPのステートが「Active」から「Init」になったことを示すメッセージが出ました。
RouterAはActiveルーターではなくなったわけです。

RouterB#
00:28:03: %HSRP-6-STATECHANGE: Ethernet0 Grp 1 state Standby -> Active


一方RouterBには,HSRPのステートが「Standby」から「Active」になったことを示すメッセージが出ました。
Standby状態だったルーターが,Activeルーターに昇格したわけです。
この間,パソコンから192.168.4.0へのpingは数秒くらい途切れますが,再び通るようになります。

RouterAとRouterBのHSRPの状態がどう変わったか見てみましょう。
RouterAは,インタフェースがダウンして,Initステートになったことがわかります(下の赤字の部分)。

RotuerA#show standby
Ethernet0 - Group 1
 State is Init (interface down)
  3 state changes, last state change 00:00:46
 Virtual IP address is 192.168.1.254
 Active virtual MAC address is unknown
  Local virtual MAC address is 0000.0c07.ac01 (default)
 Hello time 3 sec, hold time 10 sec
 Preemption disabled
 Active router is unknown
 Standby router is unknown
 Priority 255 (configured 255)
 IP redundancy name is "hsrp-Et0-1" (default)


一方のRouterBを見てみると,こちらがActiveルーターになったことがわかります(下の赤字の部分)。

RouterB#show standby
Ethernet0 - Group 1
 State is Active
  2 state changes, last state change 00:01:02
 Virtual IP address is 192.168.1.254
 Active virtual MAC address is 0000.0c07.ac01
  Local virtual MAC address is 0000.0c07.ac01 (bia)
 Hello time 3 sec, hold time 10 sec
  Next hello sent in 0.416 secs
 Preemption disabled
 Active router is local
 Standby router is unknown
 Priority 100 (default 100)
 IP redundancy name is "hsrp-Et0-1" (default)


つまりパソコンは,RouterBの方の経路を使うようになったわけです。
このとき,RouterBも,RouterAと同じ仮想IPアドレス(192.168.1.254)と仮想MACアドレス(00-00-0c-07-ac-01)を使うので,パソコン側の設定変更は必要ありません。

●RouterAのケーブルを戻してもActiveはRouterBのまま
ただしHSRPで注意が必要なのは,RouterAが障害から復帰してもRouterAがActiveに戻らない点です。
試しに,抜いていたRouterAのEthernet0ポートのケーブルを再びつないでみます。

RouterAのHSRPの様子を見てみると,Standbyのままです。

RotuerA#
00:36:09: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet0, changed state to up
00:36:19: %OSPF-5-ADJCHG: Process 1, Nbr 192.168.3.1 on Ethernet0 from LOADING to FULL, Loading Done
RotuerA#show standby
Ethernet0 - Group 1
 State is Standby
  4 state changes, last state change 00:00:14
 Virtual IP address is 192.168.1.254
 Active virtual MAC address is 0000.0c07.ac01
  Local virtual MAC address is 0000.0c07.ac01 (default)
 Hello time 3 sec, hold time 10 sec
  Next hello sent in 0.656 secs
 Preemption disabled
 Active router is 192.168.1.2, priority 100 (expires in 9.644 sec)
 Standby router is local
 Priority 255 (configured 255)
 IP redundancy name is "hsrp-Et0-1" (default)


RouterBもActiveのままです。

RouterB#
00:36:19: %OSPF-5-ADJCHG: Process 1, Nbr 192.168.2.1 on Ethernet0 from LOADING to FULL, Loading Done
RouterB#show standby
Ethernet0 - Group 1
 State is Active
  2 state changes, last state change 00:03: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 (bia)
 Hello time 3 sec, hold time 10 sec
  Next hello sent in 2.584 secs
 Preemption disabled
 Active router is local
 Standby router is 192.168.1.1, priority 255 (expires in 7.584 sec)
 Priority 100 (default 100)
 IP redundancy name is "hsrp-Et0-1" (default)


RouterBのEthernet0ポートがダウンすると,RouterAが再びActiveルーターになります。
ただ,「通常は常にRouterAを使うようしたい」という場合もあります。
そこでHSRPには,障害から復帰したときなどでも常にプライオリティの高いルーターをActiveルーターにする「preempt」(プリエンプト)という機能があります。


●ホットスタンバイ ルータ プロトコル(HSRP)の特長と機能
http://www.cisco.com/japanese/warp/public/3/jp/service/tac/619/hsrpguidetoc-j.html
●ホットスタンバイ ルータ プロトコル(HSRP): FAQ
http://www.cisco.com/japanese/warp/public/3/jp/service/tac/619/3-j.shtml

HSRPラボ
HSRPの基本
プリエンプト
インタフェース・トラッキング
HSRPを使ったロードバランシング
VRRP