解答

R1
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
access-list 100 permit ip 192.168.3.0 0.0.0.255 192.168.2.0 0.0.0.255
access-list 101 permit ip 192.168.2.0 0.0.0.255 192.168.3.0 0.0.0.255
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

ワンポイント

ハブ&スポークでIPSec VPNを構築するときはハブルータでの暗号ACLに要注意

解説

ハブ&スポーク構成でIPSec VPNを構築するときには暗号ACLの設定に注意が必要です。特にハブとなるルータでの暗号ACLに注意が必要です。ネットワーク構成を再度確認しておきましょう。

IPSec04.jpg
図 IPSec-VPN ネットワーク構成

このネットワーク構成において、本社のR1を中心としてハブ&スポークでIPSec VPNを構築します。つまり、SAはR1-R2間、R1-R3間で確立します。それぞれのSAで転送するIPパケットをまとめると、次のようになります。

R1-R2間のSA
192.168.1.0/24 ←→ 192.168.2.0/24 (本社LANと支社1LAN間)
192.168.3.0/24 → 192.168.2.0/24 (支社2LANから支社1LAN)

R1-R3間のSA
192.168.1.0/24 ←→ 192.168.3.0/24 (本社LANと支社2LAN間)
192.168.2.0/24 → 192.168.3.0/24 (支社1LANから支社2LAN)

ここで、要注意なのが支社1と支社2間の通信です。たとえば、支社1から支社2への通信を考えます。支社1から支社2へのIPパケットのIPアドレス情報は、次のようになります。

送信先IPアドレス:192.168.3.3
送信元IPアドレス:192.168.2.2

このIPパケットがIPSecで暗号化されR1-R2間のSAを通じて、R1へ転送されます。R1は、いったん受信したパケットを復号します。そして、再度IPSecで暗号化してR1-R3間のSAを通じてR3へ転送します。

IPSec05.jpg
図 支社1から支社2への通信

このような通信フローを踏まえて、暗号ACLの設定をしなければいけません。R2とR3では暗号ACLの設定は問題ありません。しかし、R1で上記の通信フローを考慮した暗号ACLの設定になっていません。R1の暗号ACLは次のようになっています。

R1 show access-list
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
R1#show access-lists
Extended IP access list 100
10 permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255
Extended IP access list 101
10 permit ip 192.168.1.0 0.0.0.255 192.168.3.0 0.0.0.255
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

R1の暗号ACLはACL100とACL101です。ACL100はR1-R2間のSAに通すIPパケットを指定し、ACL101はR1-R3間のSAに通すIPパケットを指定しています。それぞれ本社から支社あてのIPパケットが一致するように条件が設定されています。ですが、支社間の通信を指定する条件はありません。これが支社間で通信できない原因です。
支社間の通信をR1を経由して行うためには、R1-R2間のSAに通すIPパケットを指定するACL100に送信元IPアドレスが支社2LAN、送信先IPアドレスが支社1LANの条件を追加します。同様に、R1-R3間のSAに通すIPパケットを指定するACL101に送信元IPアドレスが支社1LAN、送信元IPアドレスが支社2LANの条件を追加します。

R1 暗号ACLの追加
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
access-list 100 permit ip 192.168.3.0 0.0.0.255 192.168.2.0 0.0.0.255
access-list 101 permit ip 192.168.2.0 0.0.0.255 192.168.3.0 0.0.0.255
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

R1で暗号ACLの条件を追加した後、支社1から支社2への通信を行います。すると、正常に通信できるようになります。

R2 R3へPing
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
R2#ping 192.168.3.3 source 192.168.2.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.3.3, timeout is 2 seconds:
Packet sent with a source address of 192.168.2.2
..!!!
Success rate is 60 percent (3/5), round-trip min/avg/max = 76/100/140 ms
R2#ping 192.168.3.3 source 192.168.2.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.3.3, timeout is 2 seconds:
Packet sent with a source address of 192.168.2.2
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 24/72/124 ms
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

※最初のPingの2回分のタイムアウトは、IPSec SAを確立するために時間がかかっているためです。