プリエンプト
・HSRPのpreempt機能を使って,ダウンから復帰したルーターをActiveにする
・プライオリティの高いルーターが常にActiveになっていることを確認する
ネットワーク構成(画像を別ウインドウで表示)
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に設定する
standby 1 preempt ←ダウンから復旧した後に,他よりプライオリティが高ければActiveにする

!
interface Serial0
ip address 192.168.2.1 255.255.255.0
!
router ospf 1
log-adjacency-changes
passive-interface Ethernet0
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
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
確認
HSRPのデフォルトの動作では,Activeルーターがダウンしたあとに復旧しても,Activeにならない。
復旧したルーターを再びActiveにしたいときは,preempt(プリエンプト)という機能を使う必要があります。

●preemptの設定
今回は,RouterAでpreemptを有効にします。
RouterAで,以下のコマンドを1行追加してやるだけでOKです(赤字の部分)。

RotuerA(config)#interface ethernet 0
RotuerA(config-if)#standby 1 preempt

ちなみに,「HSRPの基本」のラボ・シナリオとの違いは,このコマンドの有無だけです。

●設定の確認
RouterAでpreemptの機能が動作しているか確認してみましょう。
HSRPの状態を確認するshow standbyコマンドを使います。

RotuerA#show standby
Ethernet0 - Group 1
 State is Active
  5 state changes, last state change 00:01:05
 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.276 secs
 Preemption enabled
 Active router is local
 Standby router is 192.168.1.2, priority 100 (expires in 8.264 sec)
 Priority 255 (configured 255)
 IP redundancy name is "hsrp-Et0-1" (default)


「Preemption enabled」という表示があります。
RouterAでは,確かにpreemptが有効になっているのがわかります。
また,「State is Active」となっており,現在このルーター(RouterA)が使われていることわかります。

一方,RouterBは,「State is Standby」となっており,待機中であることがわかります。

RouterB#show standby
Ethernet0 - Group 1
 State is Standby
  4 state changes, last state change 00:01:18
 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.344 secs
 Preemption disabled
 Active router is 192.168.1.1, priority 255 (expires in 8.348 sec)
 Standby router is local
 Priority 100 (default 100)
 IP redundancy name is "hsrp-Et0-1" (default)


●動作の確認(RouterA手前のケーブルを抜いて,その後戻してみる)
RouterAのケーブルを抜き差ししたときに,両ルーターに表示されるメッセージを見てみましょう。

最初に,RouterAの手前のケーブルを抜きます。

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


RouterAのEthernet0がダウンし,HSRPのステートもActiveではなくなりました(上)。
一方のRouterBには,StandbyからActiveになったことを示すメッセージが出ました(下)。

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


次に,先ほど抜いたRouterA手前のケーブルを戻してみて,preemptの動作を確かめてみましょう。

RouterA#
00:33:56: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet0, changed state to up
00:33:58: %HSRP-6-STATECHANGE: Ethernet0 Grp 1 state Listen -> Active


RouterAのEthernet0がアップし,HSRPのステートがActiveになりました(上)。
一方のRouterBには,Activeではなくなったことを示すメッセージが出ました(下)。

RouterB#
00:33:34: %HSRP-6-STATECHANGE: Ethernet0 Grp 1 state Active -> Speak


これで,RouterAのEthernet0が稼働しているときは,必ずRouterAを使うようになりました。
これが,preemptの機能というわけです。

●HSRPでやりとりするメッセージを確認
ケーブルを戻したときにRouterAの様子の詳細をdebugコマンドで観察してみましょう。
debug standbyコマンドを使います。

RotuerA#debug standby
HSRP debugging is on
RotuerA#
00:35:02: HSRP: Et0 Grp 1 Hello in 192.168.1.2 Active pri 100 vIP 192.168.1.254
00:35:02: HSRP: Et0 Grp 1 Active router is 192.168.1.2
00:35:03: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet0, changed state to up
00:35:03: HSRP: Et0 API Software interface coming up
00:35:03: HSRP: Et0 Interface up ←@
00:35:03: HSRP: Et0 Starting minimum interface delay (1 secs)
00:35:04: HSRP: Et0 Interface min delay expired
00:35:04: HSRP: Et0 Grp 1 Init: a/HSRP enabled
00:35:04: HSRP: Et0 Grp 1 Init -> Listen
00:35:04: HSRP: Et0 Grp 1 Redundancy "hsrp-Et0-1" state Init -> Backup
00:35:04: HSRP: Et0 Redirect adv out, Passive, active 0 passive 1
00:35:05: HSRP: Et0 Grp 1 Hello in 192.168.1.2 Active pri 100 vIP 192.168.1.254 ←A
00:35:05: HSRP: Et0 Grp 1 Listen: h/Hello rcvd from lower pri Active router (100/192.168.1.2) ←B

00:35:05: HSRP: Et0 Grp 1 Active router is local, was 192.168.1.2
00:35:05: HSRP: Et0 Redirect adv out, Active, active 1 passive 2
00:35:05: HSRP: Et0 Grp 1 Coup  out 192.168.1.1 Listen pri 255 vIP 192.168.1.254 ←C
00:35:05: HSRP: Et0 Grp 1 Listen -> Active ←D

00:35:05: %HSRP-6-STATECHANGE: Ethernet0 Grp 1 state Listen -> Active
00:35:05: HSRP: Et0 Grp 1 Redundancy "hsrp-Et0-1" state Backup -> Active
00:35:05: HSRP: Et0 Redirect adv out, Active, active 1 passive 1
00:35:05: HSRP: Et0 Grp 1 Hello out 192.168.1.1 Active pri 255 vIP 192.168.1.254
00:35:05: HSRP: Et0 API MAC address update
00:35:05: HSRP: Et0 REDIRECT adv in, Passive, active 0, passive 1, from 192.168.1.2
00:35:05: HSRP: Et0 Grp 1 Hello in 192.168.1.2 Speak  pri 100 vIP 192.168.1.254
00:35:05: HSRP: Et0 API Add active HSRP addresses to ARP table
00:35:08: HSRP: Et0 Grp 1 Hello in 192.168.1.2 Speak  pri 100 vIP 192.168.1.254
00:35:08: HSRP: Et0 Grp 1 Hello out 192.168.1.1 Active pri 255 vIP 192.168.1.254
00:35:11: HSRP: Et0 Grp 1 Hello in 192.168.1.2 Speak  pri 100 vIP 192.168.1.254
00:35:11: HSRP: Et0 Grp 1 Hello out 192.168.1.1 Active pri 255 vIP 192.168.1.254
00:35:14: HSRP: Et0 Grp 1 Hello in 192.168.1.2 Speak  pri 100 vIP 192.168.1.254
00:35:14: HSRP: Et0 Grp 1 Hello out 192.168.1.1 Active pri 255 vIP 192.168.1.254
00:35:15: HSRP: Et0 Grp 1 Hello in 192.168.1.2 Standby pri 100 vIP 192.168.1.254
00:35:15: HSRP: Et0 Grp 1 Standby router is 192.168.1.2 ←E
00:35:17: HSRP: Et0 Grp 1 Hello out 192.168.1.1 Active pri 255 vIP 192.168.1.254
00:35:18: HSRP: Et0 Grp 1 Hello in 192.168.1.2 Standby pri 100 vIP 192.168.1.254


表示が多いので,注目部分をピックアップしてみます(赤字の部分)。

@Ethernet0インタフェースがアップした。
A192.168.1.2というActiveルーター(プライオリティ値は100)からHelloが来た。
B自分よりプライオリティ値の低いActiveルーターからHelloを受信した。
CCoupメッセージを送出して,自分がActiveになることを知らせる。
D自身をActiveに変更する。
E192.168.1.2(ルーターB)をStandbyに変更する。

HSRPのメッセージは,Hello,Coup,Resignの3種類があります。
そのうちのCoupは,自身がActiveになりたい旨を宣言するメッセージです(Helloは定常通知,ResignはActiveの放棄)。
Activeルーターの復旧時は,Coupメッセージをやりとりすることで,ActiveとStandbyを決めているわけです。

●standby preemptおよびstandby trackコマンドの使用法
http://www.cisco.com/japanese/warp/public/3/jp/service/tac/619/6-j.html

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