HSRP 実践編:(9) HSRP のスタンバイ・グループを追加する

これまで、三台のルータにスタンバイ・グループを設定して、バーチャル・ルーターによるゲートウェイの冗長化を端末に提供してきました。

a
今のネットワークは、下図のようになっています。

hsrp-b9-1.png

どのルーターにも不具合がない場合、アクティブ・ルーターはRouter-A の一台だけです。

PC-1~3からサーバーへ送られるパケットはすべて、Router-A によって処理され、Router-B とC は待機しているだけです。

このままでは、待機しているだけのルーターとシリアル回線が使われないままになります。

三台のルーターがそれぞれアクティブ・ルーターとなれるよう、三つのスタンバイ・グループを作成して、三台の端末がそれぞれ異なるバーチャル・ルーターをデフォルト・ゲートウェイとすれば負荷も分散でき、リソースの有効利用にもなります。

まずは、Router-A にスタンバイ・グループ20 と30 を追加します。

Router-A#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router-A(config)#interface ethernet0/0
Router-A(config-if)#standby 20 ip 192.168.1.2
Router-A(config-if)#standby 20 preempt
Router-A(config-if)#standby 20 track serial 2/0 10
Router-A(config-if)#standby 20 authentication test
Router-A(config-if)#
Router-A(config-if)#standby 30 ip 192.168.1.3
Router-A(config-if)#standby 30 preempt
Router-A(config-if)#standby 30 track serial 2/0
Router-A(config-if)#standby 30 authentication test
Router-A(config-if)#^Z
Router-A#

同じ設定をRouter-B とC にもします。

Router-B には問題なく設定できますが、Router-C にはできません。

Router-C#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router-C(config)#interface ethernet0/0
Router-C(config-if)#standby 20 ip 192.168.1.2
% Interface hardware cannot support multiple groups.
Router-C(config-if)#

複数のスタンバイ・グループはサポートされていない、というメッセージです。
show interface を確認してみます。

Router-C#show interface ethernet0/0
Ethernet0/0 is up, line protocol is up
Hardware is Lance, address is aabb.cc00.6700 (bia aabb.cc00.6700)
Internet address is 192.168.1.103/24
MTU 1500 bytes, BW 10000 Kbit, DLY 1000 usec, rely 255/255, load 1/255
Encapsulation ARPA, loopback not set
Keepalive set (10 sec)
ARP type: ARPA, ARP Timeout 04:00:00
Last input 00:00:01, output 00:00:00, output hang never
Last clearing of "show interface" counters never
Queueing strategy: fifo
Output queue 0/40, 19 drops; input queue 0/75, 0 drops, 0 flushes
5 minute input rate 1000 bits/sec, 2 packets/sec
5 minute output rate 0 bits/sec, 0 packets/sec
201691 packets input, 22145528 bytes, 0 no buffer
Received 23124 broadcasts, 0 runts, 0 giants, 0 throttles
70 input errors, 0 CRC, 0 frame, 0 overrun, 70 ignored
0 input packets with dribble condition detected
187226 packets output, 20958872 bytes, 0 underruns
0 output errors, 0 collisions, 12 interface resets
0 babbles, 0 late collision, 0 deferred
0 lost carrier, 0 no carrier
0 output buffer failures, 0 output buffers swapped out
Router-C#

イーサネット・コントローラーがLance でした。

イーサネット・コントローラーにLance またはPQUICC を採用しているルーターは、複数のMAC アドレス(バーチャルMAC アドレス)を使用することができません。

※ Lance、PQUICC については、『HSRPを究める:基礎編(13) HSRP ルーターのBIA(Burnt In Address)』を参照してください。

Router-C で複数のスタンバイ・グループを作成するため、バーチャルMAC アドレスではなくBIA(Burnt In Address)を使うことにします。

Router-C#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router-C(config)#interface ethernet0/0
Router-C(config-if)#standby use-bia
Router-C(config-if)# standby 20 ip 192.168.1.2
Router-C(config-if)# standby 20 preempt
Router-C(config-if)# standby 20 authentication smartnet
Router-C(config-if)# standby 20 track Serial2/0
Router-C(config-if)# standby 30 ip 192.168.1.3
Router-C(config-if)# standby 30 preempt
Router-C(config-if)# standby 30 authentication smartnet
Router-C(config-if)# standby 30 track Serial2/0
Router-C(config-if)#^Z
Router-C#

これで三台のルーターに三つのスタンバイ・グループを作成できました。端末のデフォルト・ゲートウェイを次のように変更します。

PC-1 → 192.168.1.1 (スタンバイ・グループ10)

PC-2 → 192.168.1.2 (スタンバイ・グループ20)

PC-3 → 192.168.1.3 (スタンバイ・グループ30)

hsrp-b9-2.png

追加したスタンバイ・グループ20 と30 のアクティブ・ルーターが、Router-C に偏っています。グループ20 と30 にプライオリティが設定されていないからです。

プライオリティが同じなので、ルーターのリアルIP アドレスが比較され、一番大きいRouter-C がアクティブ・ルーターとなっています(グループ10 はプライオリティが105 のRouter-A がアクティブ・ルーターです)。

三台のルーターが、それぞれ別なスタンバイ・グループのアクティブ・ルーターとなるよう、プライオリティを操作する必要があります。


Router-A → スタンバイ・グループ10 のアクティブ・ルーター、グループ20 のスタンバイ・ルーター

Router-B → スタンバイ・グループ20 のアクティブ・ルーター、グループ30 のスタンバイ・ルーター

Router-C → スタンバイ・グループ30 のアクティブ・ルーター、グループ10 のスタンバイ・ルーター


アクティブ・ルーターとなるスタンバイ・グループにはプライオリティを105 に、スタンバイ・ルーターとなるグループには100、Listen となるグループには95 と設定します。同時に、インターフェイス・トラッキングによるプライオリティの下げ幅を15 にします。

Router-A#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router-A(config)#interface ethernet0/0
Router-A(config-if)#standby 10 priority 105
Router-A(config-if)#standby 20 priority 100
Router-A(config-if)#standby 30 priority 95
Router-A(config-if)#standby 10 track serial 2/0 15
Router-A(config-if)#standby 20 track serial 2/0 15
Router-A(config-if)#standby 30 track serial 2/0 15
Router-A(config-if)#^Z
Router-A#

Router-B#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router-B(config)#interface ethernet0/0
Router-B(config-if)#standby 10 priority 95
Router-B(config-if)#standby 20 priority 105
Router-B(config-if)#standby 30 priority 100
Router-B(config-if)#standby 10 track serial 2/0 15
Router-B(config-if)#standby 20 track serial 2/0 15
Router-B(config-if)#standby 30 track serial 2/0 15
Router-B(config-if)#^Z
Router-B#

Router-C#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router-C(config)#interface ethernet 0/0
Router-C(config-if)#standby 10 priority 100
Router-C(config-if)#standby 20 priority 95
Router-C(config-if)#standby 30 priority 105
Router-C(config-if)#standby 10 track serial 2/0 15
Router-C(config-if)#standby 20 track serial 2/0 15
Router-C(config-if)#standby 30 track serial 2/0 15
Router-C(config-if)#^Z
Router-C#

下図のように構成が変わりました。
これで、三台のルーターが無駄なく利用されるようになります。

hsrp-b9-3.png
各ルーターでshow standby brief を確認します。

Router-A#show standby brief
P indicates configured to preempt.
|
Interface Grp Prio P State Active Standby Virtual IP
Et0/0 10 105 P Active local 192.168.1.103 192.168.1.1
Et0/0 20 100 P Standby 192.168.1.102 local 192.168.1.2
Et0/0 30 95 P Listen 192.168.1.103 192.168.1.102 192.168.1.3
Router-A#

Router-B#show standby brief
P indicates configured to preempt.
|
Interface Grp Prio P State Active Standby Virtual IP
Et0/0 10 95 P Listen 192.168.1.101 192.168.1.103 192.168.1.1
Et0/0 20 105 P Active local 192.168.1.101 192.168.1.2
Et0/0 30 100 P Standby 192.168.1.103 local 192.168.1.3
Router-B#

Router-C#show standby brief
P indicates configured to preempt.
|
Interface Grp Prio P State Active addr Standby addr Group addr
Et0/0 10 100 P Standby 192.168.1.101 local 192.168.1.1
Et0/0 20 95 P Listen 192.168.1.102 192.168.1.101 192.168.1.2
Et0/0 30 105 P Active local 192.168.1.102 192.168.1.3
Router-C#