| 確認 |
ルーターに複数のHSRPグループを設定することもできます。
すると,端末のデフォルトゲートウエイあてのトラフィックをロードバランスさせることができます。
●インタフェースに複数のHSRPグループを設定する
インタフェース0に,二つ目のHSRPグループであるグループ2を設定します。
すると,「インタフェースのハードウエアは,複数のグループをサポートできない」というメッセージが出ます。
RotuerA(config)#interface ethernet 0
RotuerA(config-if)#standby 2 ip 192.168.1.253
% Interface hardware cannot support multiple groups.
なぜでしょうか。
ルーターは,Ethernetインタフェースで受信すべきMACアドレスを登録します。
ですが,旧型のEthernetチップは,複数のMACアドレスを登録できません。
具体的には,「Lance」や「PQUICC」と呼ばれるEthernetチップを搭載している機器です。
(これについては,シスコのHSRP解説ページの重要な注意事項を参照してください。)
Ethernetインタフェースのチップは,show interfaceで確認することができます。
私が使ったCisco2500で見てみると,「Lance」になっていました。
RotuerA#show interfaces ethernet 0
Ethernet0 is up, line protocol is up
Hardware is Lance, address is 0010.7b3b.eb02 (bia 0010.7b3b.eb02)
Internet address is 192.168.1.1/24
(以下略)
●HSRPグループを複数設定できない場合の解決策
回避方法としては,HSRPグループごとに自動的に割り当てられる仮想IPアドレスを使うのではなく,インタフェースにもともとあるMACアドレスを複数のHSRPグループで共通して使う方法があります。
それが,use-biaコマンドです。
「bia」とはburnt in address(焼き付けアドレス)の略で,つまりMACアドレスのことです。
設定方法は,「standby use-bia」と入力します。
設定後は,インタフェースをいったんshutdownして,再起動する必要があります。
RouterAにHSRPグループ2を設定したのが以下です。
RouterA(config)#interface ethernet 0
RotuerA(config-if)#standby use-bia
RotuerA(config-if)#standby 2 ip 192.168.1.253
% Warning: Interface MAC address filter only supports 1 additional addresses
% and 1 HSRP groups are already configured. The HSRP MAC address may not be
% added to the MAC address filter if the group becomes active.
RotuerA(config-if)#standby 2 preempt
RotuerA(config-if)#shutdown
RotuerA(config-if)#no shutdown
RouterBにも同様に設定します。
RouterBでは,自身がHSRPグループ2のActiveルーターになるように,プライオリティを255に設定します。
入力後に,グループ2がActiveになったメッセージが表示されました。
RouterB(config)#interface ethernet 0
RouterB(config-if)#standby use-bia
RouterB(config-if)#standby 2 ip 192.168.1.253
RouterB(config-if)#standby 2 priority 255
RouterB(config-if)#standby 2 preempt
RotuerB(config-if)#shutdown
RotuerB(config-if)#no shutdown
00:37:31: %HSRP-6-STATECHANGE: Ethernet0 Grp 2 state Standby -> Active
●設定の確認
show standbyコマンドを使って,HSRPの設定を確認してみましょう。
RouterAは以下です。
RotuerA#show standby
Ethernet0 - Group 1
State is Active
5 state changes, last state change 00:04:09
Virtual IP address is 192.168.1.254
Active virtual MAC address is 0010.7b3b.eb02
Local virtual MAC address is 0010.7b3b.eb02 (bia)
Hello time 3 sec, hold time 10 sec
Next hello sent in 2.116 secs
Preemption enabled
Active router is local
Standby router is 192.168.1.2, priority 100 (expires in 9.816 sec)
Priority 255 (configured 255)
IP redundancy name is "hsrp-Et0-1" (default)
Ethernet0 - Group 2
State is Standby
9 state changes, last state change 00:00:32
Virtual IP address is 192.168.1.253
Active virtual MAC address is 0010.7b38.10b2
Local virtual MAC address is 0010.7b3b.eb02 (bia)
Hello time 3 sec, hold time 10 sec
Next hello sent in 0.596 secs
Preemption enabled
Active router is 192.168.1.2, priority 255 (expires in 9.788 sec)
Standby router is local
Priority 100 (default 100)
IP redundancy name is "hsrp-Et0-2" (default)
グループ1とグループ2の二つのHSRPグループが表示されました。
両方の「Local virtual MAC address is〜」に続くアドレスを見ると,「(bia)」という表示があり,仮想MACアドレスではなく,インタフェースのMACアドレスを使っていることがわかります。
show interefaceでRouterAのEthernet0インタフェースのMACアドレスを確認してみましょう。
RotuerA#show interfaces ethernet 0
Ethernet0 is up, line protocol is up
Hardware is Lance, address is 0010.7b3b.eb02 (bia 0010.7b3b.eb02)
Internet address is 192.168.1.1/24
「0010.7b3b.eb02」で,RouterAのshow standbyで表示されているアドレスと一致しています。
このMACアドレスを,RouterAのHSRPグループ1とHSRPグループ2で共有して使っているわけです。
RouterBも同様に確認してみましょう。
RouterB#show standby
Ethernet0 - Group 1
State is Standby
12 state changes, last state change 00:01:30
Virtual IP address is 192.168.1.254
Active virtual MAC address is 0010.7b3b.eb02
Local virtual MAC address is 0010.7b38.10b2 (bia)
Hello time 3 sec, hold time 10 sec
Next hello sent in 2.676 secs
Preemption enabled
Active router is 192.168.1.1, priority 255 (expires in 8.968 sec)
Standby router is local
Priority 100 (default 100)
IP redundancy name is "hsrp-Et0-1" (default)
Ethernet0 - Group 2
State is Active
4 state changes, last state change 00:01:30
Virtual IP address is 192.168.1.253
Active virtual MAC address is 0010.7b38.10b2
Local virtual MAC address is 0010.7b38.10b2 (bia)
Hello time 3 sec, hold time 10 sec
Next hello sent in 2.648 secs
Preemption enabled
Active router is local
Standby router is 192.168.1.1, priority 100 (expires in 9.228 sec)
Priority 255 (configured 255)
HSRPグループ1とHSRPグループ2で使っているMACアドレスは,「0010.7b38.10b2」です。
これは,RouterBのEthernet0インタフェースのMACアドレスを使っているわけです。
RouterB#show interfaces ethernet 0
Ethernet0 is up, line protocol is up
Hardware is Lance, address is 0010.7b38.10b2 (bia 0010.7b38.10b2)
Internet address is 192.168.1.2/24
このように,use-biaコマンドを使うと,複数のHSRPグループで実在するMACアドレスを共有するようになるわけです。
●動作の確認
以上までで,RouterAとRouterBの両方に,HSRPグループ1とHSRPグループ2を設定しました。
念のため,設定の確認をしましょう。
RouterAでは,HSRPグループ1がActiveで,HSRPグループ2がStandbyです。
RotuerA#show standby
Ethernet0 - Group 1
State is Active
6 state changes, last state change 00:15:05
Virtual IP address is 192.168.1.254
Active virtual MAC address is 0010.7b3b.eb02
Local virtual MAC address is 0010.7b3b.eb02 (bia)
Hello time 3 sec, hold time 10 sec
Next hello sent in 0.900 secs
Preemption enabled
Active router is local
Standby router is 192.168.1.2, priority 100 (expires in 9.056 sec)
Priority 255 (configured 255)
IP redundancy name is "hsrp-Et0-1" (default)
Ethernet0 - Group 2
State is Standby
5 state changes, last state change 00:14:46
Virtual IP address is 192.168.1.253
Active virtual MAC address is 0010.7b38.10b2
Local virtual MAC address is 0010.7b3b.eb02 (bia)
Hello time 3 sec, hold time 10 sec
Next hello sent in 1.680 secs
Preemption enabled
Active router is 192.168.1.2, priority 255 (expires in 9.020 sec)
Standby router is local
Priority 100 (default 100)
RouterBは逆に,HSRPグループ1がStandbyで,HSRPグループ2がActiveです。
RouterB#show standby
Ethernet0 - Group 1
State is Standby
9 state changes, last state change 00:15:50
Virtual IP address is 192.168.1.254
Active virtual MAC address is 0010.7b3b.eb02
Local virtual MAC address is 0010.7b38.10b2 (bia)
Hello time 3 sec, hold time 10 sec
Next hello sent in 0.996 secs
Preemption enabled
Active router is 192.168.1.1, priority 255 (expires in 9.828 sec)
Standby router is local
Priority 100 (default 100)
IP redundancy name is "hsrp-Et0-1" (default)
Ethernet0 - Group 2
State is Active
2 state changes, last state change 01:09:40
Virtual IP address is 192.168.1.253
Active virtual MAC address is 0010.7b38.10b2
Local virtual MAC address is 0010.7b38.10b2 (bia)
Hello time 3 sec, hold time 10 sec
Next hello sent in 0.956 secs
Preemption enabled
Active router is local
Standby router is 192.168.1.1, priority 100 (expires in 9.408 sec)
Priority 255 (configured 255)
IP redundancy name is "hsrp-Et0-2" (default)
デフォルトゲートウエイをRouterA(192.168.1.254)に設定したパソコンから192.168.4.1にpingを打つと成功します。
このあとパソコンのARPテーブルを見てみると,RouterAのMACアドレス(00-10-7b-3b-eb-02)を学習していることがわかります。
つまり,このパソコンは,RouterAを経由しているわけです。
C:\>arp -a
Interface: 192.168.1.100 on Interface 0x2
Internet Address Physical Address Type
192.168.1.254 00-10-7b-3b-eb-02 dynamic
もう1台の,デフォルトゲートウエイをRouterB(192.168.1.253)に設定したパソコンはどうでしょうか。
こちらからも,192.168.4.1にpingを打ったあとに,ARPテーブルを表示してみます。
すると,RouterBのMACアドレス(00-10-7b-38-10-b2)を学習しており,こちらはRouterBを経由していることがわかります。
C:\>arp -a
Interface: 192.168.1.200 --- 0x2
Internet Address Physical Address Type
192.168.1.253 00-10-7b-38-10-b2 dynamic
それぞれのパソコンで,経由するデフォルトゲートウエイを分散することにより,ロードバランスを実現できました。
●経路切り替えの確認
障害が発生したときの経路の切り替え動作も見ておきましょう。
RouterAをシャットダウンすると,RouterBがActiveになります。
RotuerA(config-if)#shutdown
00:48:14: %HSRP-6-STATECHANGE: Ethernet0 Grp 1 state Active -> Init
00:48:16: %LINK-5-CHANGED: Interface Ethernet0, changed state to administratively down
00:48:17: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet0, changed state to down
RouterB#
00:42:38: %HSRP-6-STATECHANGE: Ethernet0 Grp 1 state Standby -> Active
逆に,RouterBをシャットダウンすると,RouterAがActiveになります。
RouterB(config-if)#shutdown
00:44:31: %LINK-5-CHANGED: Interface Ethernet0, changed state to administratively down
00:44:32: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet0, changed state to down
RotuerA#
00:50:24: %HSRP-6-STATECHANGE: Ethernet0 Grp 2 state Standby -> Active
ここで通信が途切れるのは数秒くらいです。
でもパソコンのARPテーブルには,古いMACアドレスが記録されているはずです。
Windowsパソコンでは,デフォルトで2分間,ARPテーブルの情報を保持します。
そのため,障害が発生すると,障害が発生したルーターあてにパケットを送り続けることになって,2分間は通信ができなくなるはずです。
それなのに,なぜ数秒で切り替わるのでしょうか?
それは,新たにActiveになったルーターが,「Gratuitous ARP」と呼ばれるパケットを送信するからです。
Gratuitous ARPは,自身のMACアドレスをLAN上のマシンに知らせるためのARPです。
パソコンがこのGratuitous ARPパケットを受け取ると,ARPテーブルの情報をその場で書き換えます。
こうすることでパソコンは,常にActiveルーターのMACアドレスあてにパケットを送るようになるわけです。
●HSRP(Hot Stanby Router Protocol)を使用したロード シェアリング
http://www.cisco.com/japanese/warp/public/3/jp/service/tac/619/7-j.shtml |
|