ネットワーク構成

次の図のようなシンプルなネットワーク構成におけるサイト間IPSec VPNの設定例を考えましょう。インターネットを介して、2つの拠点のLAN1、LAN2を接続するサイト間IPSec VPNです。IPSecの設定は、crypto mapを利用しています。

図 サイト間IPSec VPNの設定例 構成
図 サイト間IPSec VPNの設定例 構成

IPSec サイト間VPNの設定コマンドについては、以下の記事を参照してください。


ISAKMPポリシーの設定

まずは、IKEフェーズ1、すなわちISAKMPポリシーを設定し。今回、ISAKMPポリシーのパラメータは次の通りとします。

  • ピア認証:PSK(Pre Shared Key)
  • キー:「password」
  • ハッシュアルゴリズム:SHA
  • 暗号化アルゴリズム:AES128ビット
  • Diffie-Hellman交換:グループ2

このポリシーに基づいたVPNGW1の設定は次のようになります。

【VPNGW1】

crypto isakmp policy 10
  authentication pre-shared
  hash sha
  encryption aes 128
  group 2

crypto isakmp key password address 100.2.2.2

VPNGW2の設定は、ピアのアドレスが変わるだけでVPNGW1とほとんど同じです。

【VPNGW2】

crypto isakmp policy 10
  authentication pre-shared
  hash sha
  encryption aes 128
  group 2

crypto isakmp key password address 100.1.1.1

IPSecトランスフォームセットの設定

次にIPSec SAでどのような暗号化、ハッシュアルゴリズムを利用するかというIPSecトランスフォームセットの設定を考えます。今回の設定例では、次の通りとします。

  • 暗号化アルゴリズム:AES128ビット
  • ハッシュアルゴリズム:SHA
  • トランスフォームセット名:「aes-sha」

上記に基づいたVPNGW1/VPNGW2のトランスフォームセットの設定はどちらも同じで、次のようになります。

【VPNGW1/VPNGW2】

crypto ipsec transform-set aes-sha esp-aes 128 esp-sha-hmac

なお、ESPのカプセル化はデフォルトのトンネルモードとなります。

暗号ACLの設定

IPSecによって暗号化する対象パケットを指定するための暗号ACLを設定します。IPSec化するパケットは、それぞれの拠点のLAN間通信すべてとしま
す。VPNGW1、VPNGW2それぞれで考えると次のようになります。

【VPNGW1】
送信元IPアドレス:192.168.1.0/24
送信先IPアドレス:192.168.2.0/24

【VPNGW2】
送信元IPアドレス:192.168.2.0/24
送信先IPアドレス:192.168.1.0/24

VPNGW1とVPNGW2では、アドレスの情報が反転することに注意してください。この辺が設定ミスが多いところです。暗号ACLの設定は次のようになります。

【VPNGW1】

access-list 100 permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255

【VPNGW2】

access-list 100 permit ip 192.168.2.0 0.0.0.255 192.168.1.0 0.0.0.255

暗号マップ(crypto map)の設定

IPSec SAの管理方法やIPSecピア、IPSec化対象パケット、トランスフォームセットの情報をまとめる暗号マップを設定します。

【VPNGW1】

crypto map VPN_TO_GW2 10 ipsec-isakmp
  set peer 100.2.2.2
  match address 100
  set transform-set aes-sha

【VPNGW2】

crypto map VPN_TO_GW1 10 ipsec-isakmp
  set peer 100.1.1.1
  match address 100
  set transform-set aes-sha

crypto mapの中の「ipsec-isakmp」は、IPSec SAの管理にISAKMPを利用することを表しています。

暗号マップの適用

暗号マップは、定義しただけでは全く意味がありません。適切なインタフェースに適用する必要があります。暗号マップを適用するのは、インターネットに接続される方向のインタフェースです。今回の例では、VPNGW1/VPNGW2ともにSe0/0です。

【VPNGW1】

interface serial 0/0
  crypto map VPN_TO_GW2

【VPNGW2】

interface serial 0/0
  crypto map VPN_TO_GW1

暗号マップの適用には方向はありません。適用したインタフェースから出力するときに暗号マップの内容にしたがって、パケットをIPSec化します。

また、大事なポイントはルーティングがきちんとできていないとダメだということです。お互いのLANあてのパケットをルーティングできるようにSerial0/0から出力できるようにしておかないとIPSec化できません。多くの場合、スタティックルートの設定を行います。今回の構成例では、次のようなスタティックルートを設定するといいでしょう。

【VPNGW1】

ip route 192.168.2.0 255.255.255.0 100.2.2.2

【VPNGW2】

ip route 192.168.1.0 255.255.255.0 100.1.1.1

インターネット宛てのパケットをルーティングするためのデフォルトルートを設定しておけば、上記のスタティックルートは特になくても大丈夫です。ですが、IPSec VPNの通信はインターネット宛てのパケットとは別物だということはきちんと意識しておいてください。

ACLの設定

インターネットに接続するインタフェースは、セキュリティのため、通常のACLによるパケットフィルタを行っていることがほとんどです。インターネットを介してIPSec化したパケットを送受信するためには、ACLに条件を追加しなければいけません。今回の例で、追加するACLの条件の例は次の通りです。

【VPNGW1】

access-list 101 permit ahp host 100.2.2.2 host 100.1.1.1
access-list 101 permit esp host 100.2.2.2 host 100.1.1.1
access-list 101 permit udp host 100.2.2.2 host 100.1.1.1 eq isakmp

interface serial 0/0
  ip access-group 101 in

【VPNGW2】

access-list 101 permit ahp host 100.1.1.1 host 100.2.2.2
access-list 101 permit esp host 100.1.1.1 host 100.2.2.2
access-list 101 permit udp host 100.1.1.1 host 100.2.2.2 eq isakmp

interface serial 0/0
  ip access-group 101 in

このACLは、インターネット接続のインタフェースのインで適用し、ピアのIPアドレスから自分のIPアドレスあてのAH、ESPおよびISAKMP(UDP500)をpermitしているものです。

設定のまとめ

ここまでのサイト間IPSec VPNの設定を図にまとめます。

図 サイト間IPSec VPNの設定例 まとめ