HSRP (Hot Standby Routing Protocol)の設定方法

以下の設定にてR1,R2においてHSRPを有効にすることができます。

R1(config)#interface fa0/0
R1(config-if)#standby 1 ip 192.168.1.3
R2(config)#interface fa0/0
R2(config-if)#standby 1 ip 192.168.1.3

HSRPを設定するためにはstandbyコマンドを使用します。192.168.1.3は仮想ゲートウェイ IPアドレスです。”1”は、HSRPのグループ番号で、R1,R2の両方のデバイスで同一である必要があります。

R1#
%HSRP-5-STATECHANGE: FastEthernet0/0 Grp 1 state Speak -> Standby
%HSRP-5-STATECHANGE: FastEthernet0/0 Grp 1 state Standby -> Active
R2#
%HSRP-5-STATECHANGE: FastEthernet0/0 Grp 1 state Speak -> Standby

どちらのスイッチを最初に設定したかによって、これらのメッセージが表示されます。
スイッチの1つがアクティブゲートウェイになります。 PC-1から、VIP(192.168.1.3)に到達できるかどうかを見てみましょう。

C:>ipconfig
イーサネット アダプター イーサネット:
IPv4 アドレス . . . . . . . . . . . .: 192.168.1.10
サブネット マスク . . . . . . . . . .: 255.255.255.0
デフォルト ゲートウェイ . . . . . . .: 192.168.1.3

PC-1のデフォルトゲートウェイを仮想IPアドレス192.168.1.3に設定します。 pingしてみましょう。

C:>ping 192.168.1.3
192.168.1.3 に ping を送信しています 32 バイトのデータ:
192.168.1.3 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.1.3 からの応答: バイト数 =32 時間 =1ms TTL=64
192.168.1.3 からの応答: バイト数 =32 時間 =1ms TTL=64
192.168.1.3 からの応答: バイト数 =32 時間 =1ms TTL=64
192.168.1.3 の ping 統計:
パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
最小 = 0ms、最大 = 1ms、平均 = 0ms

ご覧のとおり、仮想ゲートウェイのIPアドレスに正常に到達できます。

仮想IPアドレスとして192.168.1.3を使用していますが、どのMACアドレスを使用しているでしょうか?

R1#show ip arp
Protocol Address Age (min) Hardware Addr Type Interface
Internet 192.168.1.1 – ca01.4534.0000 ARPA FastEthernet0/0
Internet 192.168.1.3 – 0000.0c07.ac01 ARPA FastEthernet0/0

ARPテーブルで192.168.1.3のMACアドレスを確認できますが、このMACアドレスはどこから来たのでしょうか?

HSRPは0000.0c07.acXX MACアドレスを使用します。XXはHSRPグループ番号です。
この例では、HSRPグループ番号1を設定しました。

他にも興味深いものがいくつかあります。以下をご覧ください。

R1#show standby
FastEthernet0/0 – Group 1
State is Active
2 state changes, last state change 00:00:03
Virtual IP address is 192.168.1.3
Active virtual MAC address is 0000.0c07.ac01 (MAC In Use)
Local virtual MAC address is 0000.0c07.ac01 (v1 default)

Hello time 3 sec, hold time 10 sec
Next hello sent in 1.648 secs
Preemption enabled
Active router is local
Standby router is unknown
Priority 120 (configured 120)
Track object 2 state Up decrement 50
Group name is “hsrp-Fa0/0-1” (default)
R2#show standby
FastEthernet0/0 – Group 1
State is Standby
1 state change, last state change 00:08:23
Virtual IP address is 192.168.1.3
Active virtual MAC address is 0000.0c07.ac01 (MAC Not In Use)
Local virtual MAC address is 0000.0c07.ac01 (v1 default)

Hello time 3 sec, hold time 10 sec
Next hello sent in 2.144 secs
Preemption enabled
Active router is 192.168.1.1, priority 120 (expires in 10.704 sec)
Standby router is local
Priority 90 (configured 90)
Group name is “hsrp-Fa0/0-1” (default)

設定を確認するには、show standbyコマンドを使用します。 以下の点が確認できます。

・ここで仮想IPアドレスを確認できます(192.168.1.3)。
・また、仮想MACアドレス(0000.0c07.ac01)も表示されます。
・どのルーターがアクティブまたはスタンバイモードになっているかを確認できます。
・ハロータイムは3秒で、ホールドタイムは10秒です。
・プリエンプションは有効です。

アクティブルーターはコンピューターからのARP要求に応答し、コンピューターからのパケットをアクティブに転送します。 スタンバイモードのルーターにhelloメッセージを送信します。 スタンバイモードのルーターは、helloメッセージをリッスンします。アクティブなルーターから何も受信しない場合、引き継ぐ前にホールドタイムが切れるのを待ちます。 保持時間はデフォルトでは10秒ですが、かなり遅いです。 これを少し高速化する方法を見ていきます。

各HSRPルーターは、アクティブルーターまたはスタンバイルーターになる前にいくつかの状態を遷移します。

状態説明
Initial これは、HSRPが起動する最初の状態です。 これは、HSRPを構成した直後、またはインターフェイスが有効になった直後に表示されます。
Listen ルーターは仮想IPアドレスを認識しており、他のHSRPルーターからのhelloメッセージをリッスンします。
Speak ルーターはhelloメッセージを送信し、選択に参加して、アクティブまたはスタンバイになるルーターを確認します。
Standby ルーターはアクティブルーターになりませんでしたが、helloメッセージを送信し続けます。 アクティブなルーターに障害が発生すると、引き継ぎます。
Active ルーターはクライアントからのパケットを積極的に転送し、helloメッセージを送信します。

これらすべての手順は、debugコマンドで確認できます。 見てみましょう。 

R1(config)#interface fastEthernet 0/0
R1(config-if)#shutdown
R2(config)#interface fastEthernet 0/0
R2(config-if)#shutdown

インターフェイスをShutdownして、HSRPのすべての状態を最初から確認できるようにします。

R1#debug standby events
HSRP Events debugging is on

debug standby eventsコマンドを使用して、見てみましょう。

EIGRPの認証方法

ここではEIGPRの認証方法を説明します。

EIGRPはMD5の認証のみを提供します。平文の認証はありません。

EIGRP認証を設定するために、以下が必要です。

・key-chainを設定する
 key-chainの下にkey IDを設定する
 key IDのパスワードを指定する

2つのルータを使って、EIGRP MD5認証を設定してみましょう。

R1(config)#interface fastEthernet 0/0
R1(config-if)#ip address 192.168.1.1 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#router eigrp 100
R1(config-router)#network 192.168.1.0
R2(config)#interface fastEthernet 0/0
R2(config-if)#ip address 192.168.1.2 255.255.255.0
R2(config-if)#no shutdown
R2(config-if)#exit
R2(config)#router eigrp 100
R2(config-router)#network 192.168.1.0

最初に必要な設定は、key-chainです。 R1,R2の両方でTokyoと名付けましたが、両方のルータで異なった名前を付けることができます。
Key IDは、両方のルータで一致しなくてはいけない値です。そして、key-stringも両方のルータで一致しないといけないパスワードです。

R1(config)#key chain Tokyo
R1(config-keychain)#key 1
R1(config-keychain-key)#key-string Tamago
R1(config)#interface fastEthernet 0/0
R1(config-if)#ip authentication mode eigrp 100 md5
R1(config-if)#ip authentication key-chain eigrp 100 Tokyo

最初に、keychainを作成して、インターフェースでそれを有効化する必要があります。
100は、EIGRPのAS番号です。ルータR2の設定は全く同じです。

R2#debug eigrp packets
(UPDATE, REQUEST, QUERY, REPLY, HELLO, UNKNOWN, PROBE, ACK, STUB, SIAQUERY, SIAREPLY)
EIGRP Packet debugging is on
R2#
*Oct 1 18:44:12.611: EIGRP: Sending HELLO on Fa0/0 – paklen 20
*Oct 1 18:44:12.611: AS 100, Flags 0x0:(NULL), Seq 0/0 interfaceQ 0/0 iidbQ un/rely 0/0
R2#
*Oct 1 18:44:13.923: EIGRP: Fa0/0: ignored packet from 192.168.1.1, opcode = 5 (authentication off or key-chain missing)

debug eigrp packetsを使用することによって、設定が正しいかどうか確認できます。
MD5認証を持ったパケットを受信したが、ルータR2でまだMD5認証を有効にしていないという
ことが分かります。

修正しましょう。

R2(config)#key chain Tokyo
R2(config-keychain)#key 1
R2(config-keychain-key)#key-string Tamago
R2(config)#interface fastEthernet 0/0
R2(config-if)#ip authentication mode eigrp 100 md5
R2(config-if)#ip authentication key-chain eigrp 100 Tokyo

即座に、EIGRPのネイバーがUPしたことが確認できます。

R2(config-if)#
*Oct 1 18:55:52.819: %DUAL-5-NBRCHANGE: EIGRP-IPv4 100: Neighbor 192.168.1.1 (FastEthernet0/0) is up: new adjacency

Private Private VANの設定

・プライベートVLAN番号は200です。
・セカンダリコミュニティVLAN番号は101です。
・セカンダリ隔離VLAN番号は102です。
・任意のVLAN番号を使用することができます。
・コミュニティVLANのPC-AとPC-Bはお互いに疎通が
できます。また、混合ポートに 接続されたサーバにも接続できます。
・隔離VLANのPC-CとPC-Dは混合ポートのサーバとしか通信できません。
・サーバはすべてのポートと通信できます。

Switch(config)#vtp mode transparent
Device mode already VTP TRANSPARENT.
Switch#show vtp status
VTP Version : 2
Configuration Revision : 0
Maximum VLANs supported locally : 1005
Number of existing VLANs : 11
VTP Operating Mode : Transparent
VTP Domain Name : CISCO
VTP Pruning Mode : Disabled
VTP V2 Mode : Disabled
VTP Traps Generation : Disabled
MD5 digest : 0x02 0x3A 0xC2 0xD5 0xF8 0x6B 0xE9 0x99
Configuration last modified by 0.0.0.0 at 0-0-00 00:00:00

プライベートVLANの設定には、VTPモードをTransparentに変更が必要です。

Switch(config)#vlan 101
Switch(config-vlan)#private-vlan community
Switch(config-vlan)#vlan 200
Switch(config-vlan)#private-vlan primary
Switch(config-vlan)#private-vlan association add 101

コミュニティVLANの設定を始めます。最初に、VLAN101を作り、 private-vlan communityのコマンドで、これがコミュニティVLANであると認識させ、また、vlan200を作成して、private-vlan primary のコマンドでプライマリVLANとして設定します。

最後に、VLAN101がセカンダリVLANであるということをprivate-vlan associationコマンドで設定します。

Switch#show vlan private-vlan
Primary Secondary Type Ports

200 101 community

※200はプライマリVLAN番号
※101はセカンダリVLAn番号
※CommunityはVLANのタイプ
Switch(config)#interface range fastEthernet 0/1-2
Switch(config-if-range)#switchport mode private-vlan host
Switch(config-if-range)#switchport private-vlan host-association 200 101

インターフェース fa0/1とfa0/2はPC-AとPC-Bに接続されており、VLAN101に所属しています。switchport mode private-vlan hostコマンドを発行することによって、これらがホストポートであるということをインターフェースレベルでスイッチに伝える必要があります。また、switchport private-vlan host-associationコマンドでVLAN200がプライマリVLANでVLAN101がセカンダリVLANであることをスイッチに認識させます。

Switch(config)#interface fastEthernet 0/10
Switch(config-if)#switchport mode private-vlan promiscuous
Switch(config-if)#switchport private-vlan mapping 200 101

これが混合ポートを作成する方法です。switchport mode private-vlan promiscuous コマンドを入力することによって、fa0/10が混合ポートであるということを設定します。
また、switchport private-vlan mappingコマンドによって、VLANをマッピングする必要があります。

Switch#show interfaces fa0/1 switchport
Name: Fa0/1
Switchport: Enabled
Administrative Mode: private-vlan host
Operational Mode: private-vlan host
Administrative Trunking Encapsulation: negotiate
Operational Trunking Encapsulation: native
Negotiation of Trunking: Off
Access Mode VLAN: 1 (default)
Trunking Native Mode VLAN: 1 (default)
Administrative Native VLAN tagging: enabled
Voice VLAN: none
Administrative private-vlan host-association: 200 (VLAN0200) 101 (VLAN0101)
Administrative private-vlan mapping: none
Administrative private-vlan trunk native VLAN: none
Administrative private-vlan trunk Native VLAN tagging: enabled
Administrative private-vlan trunk encapsulation: dot1q
Administrative private-vlan trunk normal VLANs: none
Administrative private-vlan trunk private VLANs: none
Operational private-vlan:
200 (VLAN0200) 101 (VLAN0101)
Trunking VLANs Enabled: ALL
Pruning VLANs Enabled: 2-1001
Capture Mode Disabled
Capture VLANs Allowed: ALL
Protected: false
Unknown unicast blocked: disabled
Unknown multicast blocked: disabled
Appliance trust: none

switchport情報を見ることで設定を確認できます。
interface fa0/2も、fa0/1と同じ設定です。

Switch#show interfaces fa0/10 switchport
Name: Fa0/10
Switchport: Enabled
Administrative Mode: private-vlan promiscuous
Operational Mode: down
Administrative Trunking Encapsulation: negotiate
Negotiation of Trunking: Off
Access Mode VLAN: 1 (default)
Trunking Native Mode VLAN: 1 (default)
Administrative Native VLAN tagging: enabled
Voice VLAN: none
Administrative private-vlan host-association: none
Administrative private-vlan mapping: 200 (VLAN0200) 101 (VLAN0101)
Administrative private-vlan trunk native VLAN: none
Administrative private-vlan trunk Native VLAN tagging: enabled
Administrative private-vlan trunk encapsulation: dot1q
Administrative private-vlan trunk normal VLANs: none
Administrative private-vlan trunk private VLANs: none
Operational private-vlan: none
Trunking VLANs Enabled: ALL
Pruning VLANs Enabled: 2-1001
Capture Mode Disabled
Capture VLANs Allowed: ALL
Protected: false
Unknown unicast blocked: disabled
Unknown multicast blocked: disabled
Appliance trust: none

fa0/10(混合ポート)のswitchport情報です。マッピング情報が確認できます。

Switch#show vlan private-vlan
Primary Secondary Type Ports

200 101 community Fa0/1, Fa0/2, Fa0/10

show vlan private-vlanコマンドで、VLAN200がプライマリVLAN、VLAN101がセカンダリVLANであると分かります。また、VLANがコミュニティVLANポートであるのか隔離VLANポートであるのかが分かります。

Switch#show vlan private-vlan type
Vlan Type

101 community
200 primary

それでは設定の結果を確認してみましょう。

C:\PC-A>ping 192.168.1.102
Pinging 192.168.1.102 with 32 bytes of data:
Reply from 192.168.1.102: bytes=32 time<1ms TTL=128
Reply from 192.168.1.102: bytes=32 time<1ms TTL=128
Reply from 192.168.1.102: bytes=32 time<1ms TTL=128

PC-Aは、PC-Bに接続できます。

C:\PC-A>ping 192.168.1.200
Pinging 192.168.1.200 with 32 bytes of data:
Reply from 192.168.1.200: bytes=32 time<1ms TTL=128
Reply from 192.168.1.200: bytes=32 time<1ms TTL=128
Reply from 192.168.1.200: bytes=32 time<1ms TTL=128

PC-Aは混合ポートの背後にあるサーバにも接続できます。

コミュニティVLANは正常に動作しているので、それでは次に、
隔離VLANの設定を行います。

Switch(config)#vlan 102
Switch(config-vlan)#private-vlan isolated
Switch(config-vlan)#vlan 200
Switch(config-vlan)#private-vlan primary
Switch(config-vlan)#private-vlan association add 102

設定はコミュニティVLANと同じです。しかし、今回、private vlan isolatedコマンドを使用しています。private-vlan association addコマンドを使用して、プライマリVLANと
セカンダリVLAN間の関連を忘れずに追加してください。

Switch(config)#interface range fastEthernet 0/3-4
Switch(config-if-range)#switchport mode private-vlan host
Switch(config-if-range)#switchport private-vlan host
Switch(config-if-range)#switchport private-vlan host-association 200 102

上記コマンドは、コミュニティVLANの設定と同じです。

Switch(config)#interface fastEthernet 0/10
Switch(config-if)#switchport mode private-vlan promiscuous
Switch(config-if)#switchport private-vlan mapping 200 102

VLAN200(プライマリ)とVLAN102(セカンダリ)間のマッピングを追加で作成することが必要です。

Switch#show interfaces fa0/3 switchport
Name: Fa0/3
Switchport: Enabled
Administrative Mode: private-vlan host
Operational Mode: down
Administrative Trunking Encapsulation: negotiate
Negotiation of Trunking: Off
Access Mode VLAN: 1 (default)
Trunking Native Mode VLAN: 1 (default)
Administrative Native VLAN tagging: enabled
Voice VLAN: none
Administrative private-vlan host-association: 200 (VLAN0200) 102 (VLAN0102)
Administrative private-vlan mapping: none
Administrative private-vlan trunk native VLAN: none
Administrative private-vlan trunk Native VLAN tagging: enabled
Administrative private-vlan trunk encapsulation: dot1q
Administrative private-vlan trunk normal VLANs: none
Administrative private-vlan trunk private VLANs: none
Operational private-vlan: none
Trunking VLANs Enabled: ALL
Pruning VLANs Enabled: 2-1001
Capture Mode Disabled
Capture VLANs Allowed: ALL
Protected: false
Unknown unicast blocked: disabled
Unknown multicast blocked: disabled
Appliance trust: none

VLAN200と102間のhost-associationが確認できます。

Switch#show interfaces fa0/4 switchport
Name: Fa0/4
Switchport: Enabled
Administrative Mode: private-vlan host
Operational Mode: down
Administrative Trunking Encapsulation: negotiate
Negotiation of Trunking: Off
Access Mode VLAN: 1 (default)
Trunking Native Mode VLAN: 1 (default)
Administrative Native VLAN tagging: enabled
Voice VLAN: none
Administrative private-vlan host-association: 200 (VLAN0200) 102 (VLAN0102)
Administrative private-vlan mapping: none
Administrative private-vlan trunk native VLAN: none
Administrative private-vlan trunk Native VLAN tagging: enabled
Administrative private-vlan trunk encapsulation: dot1q
Administrative private-vlan trunk normal VLANs: none
Administrative private-vlan trunk private VLANs: none
Operational private-vlan: none
Trunking VLANs Enabled: ALL
Pruning VLANs Enabled: 2-1001
Capture Mode Disabled
Capture VLANs Allowed: ALL
Protected: false
Unknown unicast blocked: disabled
Unknown multicast blocked: disabled
Appliance trust: none

fa0/3と同じ出力結果です。

Switch#show interfaces fa0/10 switchport
Name: Fa0/10
Switchport: Enabled
Administrative Mode: private-vlan promiscuous
Operational Mode: private-vlan promiscuous
Administrative Trunking Encapsulation: negotiate
Operational Trunking Encapsulation: native
Negotiation of Trunking: Off
Access Mode VLAN: 1 (default)
Trunking Native Mode VLAN: 1 (default)
Administrative Native VLAN tagging: enabled
Voice VLAN: none
Administrative private-vlan host-association: none
Administrative private-vlan mapping: 200 (VLAN0200) 101 (VLAN0101) 102 (VLAN0102)
Administrative private-vlan trunk native VLAN: none
Administrative private-vlan trunk Native VLAN tagging: enabled
Administrative private-vlan trunk encapsulation: dot1q
Administrative private-vlan trunk normal VLANs: none
Administrative private-vlan trunk private VLANs: none
Operational private-vlan:
200 (VLAN0200) 101 (VLAN0101) 102 (VLAN0102)
Trunking VLANs Enabled: ALL
Pruning VLANs Enabled: 2-1001
Capture Mode Disabled
Capture VLANs Allowed: ALL
Protected: false
Unknown unicast blocked: disabled
Unknown multicast blocked: disabled
Appliance trust: none

VLAN101とVLAN102がプライマリVLAN200にマッピングされていることが分かります。

Switch#show vlan private-vlan
Primary Secondary Type Ports

200 101 community Fa0/1, Fa0/2, Fa0/10
200 102 isolated Fa0/3, Fa0/4, Fa0/10
Switch#show vlan private-vlan type
Vlan Type

101 community
102 isolated
200 primary

それでは、設定の結果を確認してみましょう。

C:PC-3>ping 192.168.1.200
Pinging 192.168.1.254 with 32 bytes of data:
Reply from 192.168.1.200: bytes=32 time<1ms TTL=128
Reply from 192.168.1.200: bytes=32 time<1ms TTL=128
Reply from 192.168.1.200: bytes=32 time<1ms TTL=128

PC-3は混合ポートの背後のサーバに接続できます。

C:PC-3>ping 192.168.1.104
192.168.1.104 に ping を送信しています 32 バイトのデータ:
192.168.1.103 からの応答: 宛先ホストに到達できません。
192.168.1.103 からの応答: 宛先ホストに到達できません。
192.168.1.103 からの応答: 宛先ホストに到達できません。
192.168.1.103 からの応答: 宛先ホストに到達できません。
192.168.1.104 の ping 統計:
パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、

PC-3とPC-4間では接続できません。これは、PC-3とPC-4が隔離VLANだからです。