HSRP 基礎編:(13) HSRP ルーターのBIA(Burnt In Address)

HSRP のスタンバイ・グループは、ひとつのインターフェイス上に複数作成することもできます。

a

一台のルーターが参加している複数のスタンバイ・グループで同時にアクティブ・ルーターとなると、そのインターフェイスは、複数のバーチャルMAC アドレス宛のパケットを同時に処理する必要があります。

ルーターに限らず、ネットワークに接続された機器のイーサネット・インターフェイスは、自身が受信しなければならないMAC アドレスの一覧をMAC アドレス・フィルターに設定します。同時に複数のスタンバイ・グループのアクティブ・ルーターとなるインターフェイスは、複数のバーチャルMAC アドレスをMAC アドレス・フィルターに登録します。

比較的旧式なCisco ルーターのイーサネット・インターフェイスには、MAC アドレス・フィルターにひとつしかMAC アドレスを登録できないものがあります。

※ Cisco800、1000、1600、2500、3000、4000、4500 など、イーサネット・コントローラーにLance またはPQUICC を使用している機器が該当します。

ルーターが使用しているイーサネット・コントローラーはshow interface で確認できます。

Router#show interfaces e0/0
Ethernet0/0 is administratively down, line protocol is down
Hardware is Lance, address is 0000.0cxx.xxxx (bia 0000.0cxx.xxxx)
Internet address is 192.168.1.101/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:00, output 00:11:48, output hang never
Last clearing of "show interface" counters never
Queueing strategy: fifo
Output queue 0/40, 16913 drops; input queue 0/75, 1920 drops, 0 flushes
5 minute input rate 0 bits/sec, 0 packets/sec
5 minute output rate 0 bits/sec, 0 packets/sec
37690 packets input, 2339316 bytes, 0 no buffer
Received 37663 broadcasts, 0 runts, 0 giants, 1920 throttles
3825 input errors, 0 CRC, 0 frame, 0 overrun, 3825 ignored
0 input packets with dribble condition detected
30532 packets output, 1876942 bytes, 0 underruns
0 output errors, 0 collisions, 3852 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#

そのようなルーターで複数のスタンバイ・グループを設定しようとすると、インターフェイスのハードウェア(=イーサネット・コントローラー)が複数のスタンバイ・グループに対応していないことを意味するメッセージが表示されます。

Router#standby 20 ip 192.168.1.2
% Interface hardware cannot support multiple groups.
Router#

そのようなインターフェイスに複数のスタンバイ・グループを作成するための回避策として、BIA (Burnt In Address)を使う方法があります。

BIA は、インターフェイスが本来持っているMAC アドレスです。バーチャルMAC アドレスの代わりに、このMAC アドレスをバーチャルIP アドレスに関連付けます。

バーチャルMAC アドレスを用いる場合は、スタンバイ・グループ毎に異なるMAC アドレスが生成されましたが、BIA を使うと、すべてのスタンバイ・グループで同じMAC アドレスが使われます。

BIA は、standby use-bia コマンドで設定します。
use-bia を設定後、インターフェイスを一度shutdown し、改めてno shutdown すると有効になります。

Router#show standby
Ethernet0/0 - Group 10
Local state is Active, priority 100, may preempt, use bia
Hellotime 3 sec, holdtime 10 sec
Next hello sent in 0.226
Virtual IP address is 192.168.1.1 configured
Active router is local
Standby router is unknown
Virtual mac address is 0000.0cxx.xxxx <<--- インターフェイスのMAC アドレスに変わった
12 state changes, last state change 00:04:30
Router#

hsrp-a13-1.png
ゲートウェイのMAC アドレスが変わったことを端末に知らせる手段がないと、端末は古いMAC アドレスを宛先としたままパケットを送信し続けるので、新しいアクティブ・ルーターに破棄されてしまいます。

hsrp-a13-2.png
そのような状況を回避するため、Gratuitous ARP が使われます。
新しくアクティブ・ルーターとなったルーターは、Gratuitous ARP をブロードキャストし、デフォルト・ゲートウェイのMAC アドレスが変わったことを端末に通知します。

hsrp-a13-3.png
BIA を使うと、スタンバイ・グループのMAC アドレスにルーター固有のMAC アドレスを使うことができます。
しかし、端末の視点から見ると、アクティブ・ルーターが切り替わるたびにデフォルト・ゲートウェイのMAC アドレスが変わる事になり、「透過的」という利点が失われてしまいます。