目次
概要
IPSecで暗号化する対象パケットを決める暗号ACLについて、設定ミスの切り分けと修正を行います。
ネットワーク構成
次のネットワーク構成で、IPSec-VPNにより拠点間の通信を行いたいと考えています。
R1の拠点内には192.168.1.0/24のネットワークがあります。また、R2の拠点内には192.168.2.0/24のネットワークがあります。R1、R2をVPNゲートウェイとして拠点間の通信のパケットをIPSecで暗号化します。また、インターネットへ接続するためにR1、R2でNATによって拠点内のプライベートアドレスをISPに接続しているグローバルアドレスに変換できるようにしています。なお、インターネットへ通信確認は150.1.1.100のIPアドレスで行うものとします。
設定概要
R1、R2で下記の設定を行っています。
R1
crypto isakmp policy 1 encr 3des hash md5 authentication pre-share group 2 crypto isakmp key cisco address 100.2.2.2 crypto isakmp keepalive 30 periodic ! crypto ipsec transform-set myset esp-3des esp-sha-hmac ! crypto map IPSEC 10 ipsec-isakmp set peer 100.2.2.2 set transform-set myset match address 100 ! interface Loopback0 ip address 192.168.1.1 255.255.255.0 ip nat inside ! interface FastEthernet0/0.101 encapsulation dot1Q 101 ip address 100.1.1.1 255.255.255.0 ip nat outside crypto map IPSEC ! ip route 0.0.0.0 0.0.0.0 100.1.1.100 ! ip nat inside source route-map NO_NAT interface FastEthernet0/0.101 overload ! access-list 100 permit ip 192.168.1.0 0.0.0.255 192.168.0.0 0.0.255.255 ! route-map NO_NAT deny 10 match ip address 100 ! route-map NO_NAT permit 100
R2
crypto isakmp policy 1 encr 3des hash md5 authentication pre-share group 2 crypto isakmp key cisco address 100.1.1.1 crypto isakmp keepalive 30 periodic ! crypto ipsec transform-set myset esp-3des esp-sha-hmac ! crypto map IPSEC 10 ipsec-isakmp set peer 100.1.1.1 set transform-set myset match address 100 ! interface Loopback0 ip address 192.168.2.2 255.255.255.0 ip nat inside ! interface FastEthernet0/0.102 encapsulation dot1Q 102 ip address 100.2.2.2 255.255.255.0 ip nat outside crypto map IPSEC ! ip route 0.0.0.0 0.0.0.0 100.2.2.100 ! ip nat inside source route-map NO_NAT interface FastEthernet0/0.102 overload ! access-list 100 permit ip 192.168.2.0 0.0.0.255 192.168.1.0 0.0.0.255 ! route-map NO_NAT deny 10 match ip address 100 ! route-map NO_NAT permit 100
トラブルの症状
R1やR2からはインターネットへの接続は問題なく行うことができます。R1からインターネット(150.1.1.100)へPingすると次のように成功します。
R1 インターネット(150.1.1.100)への通信
R1#ping 150.1.1.100 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 150.1.1.100, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 4/23/56 ms
ところが、R1とR2の拠点間のIPSecの通信ができません。
R1 拠点間の通信
R1#ping 192.168.2.2 source 192.168.1.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.2.2, timeout is 2 seconds: Packet sent with a source address of 192.168.1.1 ..... Success rate is 0 percent (0/5)
IPSec SAを確認すると、R1とR2間でIPSec SAが確立できていないようです。
R1 show crypto ipsec sa
R1#show crypto ipsec sa interface: FastEthernet0/0.101 Crypto map tag: IPSEC, local addr 100.1.1.1 protected vrf: (none) local ident (addr/mask/prot/port): (192.168.1.0/255.255.255.0/0/0) remote ident (addr/mask/prot/port): (192.168.0.0/255.255.0.0/0/0) current_peer 100.2.2.2 port 500 PERMIT, flags={origin_is_acl,} #pkts encaps: 0, #pkts encrypt: 0, #pkts digest: 0 #pkts decaps: 0, #pkts decrypt: 0, #pkts verify: 0 #pkts compressed: 0, #pkts decompressed: 0 #pkts not compressed: 0, #pkts compr. failed: 0 #pkts not decompressed: 0, #pkts decompress failed: 0 #send errors 10, #recv errors 0 local crypto endpt.: 100.1.1.1, remote crypto endpt.: 100.2.2.2 path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0.101 current outbound spi: 0x0(0) inbound esp sas: inbound ah sas: inbound pcp sas: outbound esp sas: outbound ah sas: outbound pcp sas:
IPSec SAは確立できていないのですが、ISAKAMP SAは確立できています。
R1 show crypto isakmp sa
R1#show crypto isakmp sa dst src state conn-id slot status 100.2.2.2 100.1.1.1 QM_IDLE 3 0 ACTIVE
問題
- 拠点間の通信ができない原因はなんですか?
- これを解決するためには、R1でどのように設定を変更すればよいですか?
解答
拠点間の通信ができない原因はなんですか?
R1のIPSecで暗号化する対象パケットを決める暗号ACLの設定が間違っているため。
これを解決するためには、R1でどのように設定を変更すればよいですか?
R1
no access-list 100 access-list 100 permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255
ワンポイント
- IPSecで暗号化する対象パケットを指定するアクセスリストは、ミラーACLになることに注意!
解説
IPSecで暗号化する対象パケットは、拡張アクセスリストで指定します。このアクセスリストを特に暗号ACLと呼びます。暗号ACLは、対向のVPNゲートウェイ同士で送信元アドレスと送信先アドレスが反転したアクセスリストになります。
具体的に今回のネットワーク構成で考えてみましょう。
R1から見るとIPSecで暗号化するパケットは、以下のアドレスです。
送信先IPアドレス:192.168.2.0/24
送信元IPアドレス:192.168.1.0/24
一方、R2から見るとIPSecで暗号化するパケットは、以下のアドレスです。
送信先IPアドレス:192.168.1.0/24
送信元IPアドレス:192.168.2.0/24
これを拡張アクセスで指定します。R1とR2で指定するべき拡張アクセスリストは、次のようになります。
R1
access-list 100 permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255
R2
access-list 100 permit ip 192.168.2.0 0.0.0.255 192.168.1.0 0.0.0.255
このように暗号ACLは、対向のVPNゲートウェイで送信先と送信元を入れ替えたものになっていることが分かります。こういった送信先と送信元を入れ替えた関係のアクセスリストを「ミラーACL」と呼びます。
注意しなければいけないことは、正しくIPSec SAを確立するためにはミラーACLになっていなければいけないということです。R1の暗号ACLとして、次のように設定しています。
R1
access-list 100 permit ip 192.168.1.0 0.0.0.255 192.168.0.0 0.0.255.255
送信先アドレス部分のワイルドカードマスクを変更してより広いIPアドレスの範囲を指定しています。これでも192.168.1.0/24から192.168.2.0/24あてのパケットはIPSecで暗号化する対象パケットとなりますが、R2で設定している暗号ACLとミラーACLになっていません。ISAKMP SAの確立には問題ありませんが、暗号ACLがミラーACLになっていないので、R1-R2間でIPSec SAを正常に確立することができなくなっています。
解答のようにR1とR2の暗号ACLをミラーACLになるように設定を行えば、IPSec SAを正常に確立して拠点間の通信ができるようになります。
インターネットVPN
- インターネットVPNの概要
- インターネットへの接続形態
- VPNサービスとは?
- NordVPN ~セキュアなVPNサービスを手軽に利用しよう~
- IPSecの概要
- IKE ~SAの生成と管理~
- IPSec サイト間VPNの動作
- IPSec サイト間VPNの設定 ~crypto mapによる設定~
- IPSec サイト間VPNの設定例
- [演習]サイトツーサイトIPSec-VPN(crypto map)
- [演習]サイトツーサイトIPSec-VPN(VTI)
- [演習]サイトツーサイトIPSec-VPN(VTI) トラブルシューティング
- IPSec 設定ミスの切り分けと修正 Part1
- IPSec 設定ミスの切り分けと修正 Part2
- IPSec 設定ミスの切り分けと修正 Part3
- DMVPNの設定例
- DMVPN設定演習[Cisco] NHRP Phase1
- DMVPN設定演習[Cisco] NHRP Phase2
- DMVPN設定演習[Cisco] NHRP Phase3
- SSL-VPNの実現方式
- SSL-VPN(クライアントレス)の設定例 (Cisco)