NATを使ったIPsec
・ルーター間でIPsec通信をする
・RouterAでNAT(IPマスカレード)も動作させる
ネットワーク構成(画像を別ウインドウで表示)
RouterAのコンフィグ
!
version 12.2
no service single-slot-reload-enable
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname RouterA
!
crypto isakmp policy 1              ←ISAKMPポリシーを設定
authentication pre-share
crypto isakmp key ciscovpn address 1.1.1.2

!
crypto ipsec transform-set TS-Basic esp-des esp-sha-hmac
!          ↑IPsecポリシー(トランスフォームセット)を「TS-Basic」に定義
crypto map MAP-Basic 1 ipsec-isakmp ←crypt map「MAP-Basic」を定義
set peer 1.1.1.2
set transform-set TS-Basic
match address 150

!
!
interface Ethernet0
ip address 10.1.1.254 255.255.255.0
ip nat inside ←NATの内側インタフェースに指定
!
interface Serial0
ip address 1.1.1.1 255.255.255.0
serial restart-delay 0
ip nat outside ←NATの外側インタフェースに指定
clockrate 64000
crypto map MAP-Basic ←インタフェースにcrypt mapを適用
!
ip nat inside source list 1 interface Serial0 overload ←IPマスカレードを設定
ip route 0.0.0.0 0.0.0.0 1.1.1.2
!
access-list 1 permit any ←IPマスカレードの対象マシン(すべて)
access-list 150 permit ip host 1.1.1.1 10.1.2.0 0.0.0.255 ←IPsec対象トラフィック(送信元が1.1.1.1)

!
!
line con 0
transport input none
stopbits 1
line aux 0
line vty 0 4
login
!
end
RouterBのコンフィグ
!
version 12.2
no service single-slot-reload-enable
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname RouterB
!
crypto isakmp policy 1              ←ISAKMPポリシーを設定
authentication pre-share
crypto isakmp key ciscovpn address 1.1.1.1

!
crypto ipsec transform-set TS-Basic esp-des esp-sha-hmac
!          ↑IPsecポリシー(トランスフォームセット)を「TS-Basic」に定義
crypto map MAP-Basic 1 ipsec-isakmp ←crypt map「MAP-Basic」を定義
set peer 1.1.1.1
set transform-set TS-Basic
match address 150

!
!
interface Loopback0
ip address 10.1.2.1 255.255.255.0
!
interface Serial0
ip address 1.1.1.2 255.255.255.0
crypto map MAP-Basic ←インタフェースにcrypt mapを適用
!
ip kerberos source-interface any
ip route 0.0.0.0 0.0.0.0 1.1.1.1
!
access-list 150 permit ip 10.1.2.0 0.0.0.255 host 1.1.1.1 ←IPsec対象トラフィック(あて先は1.1.1.1)
!
!
line con 0
transport input none
stopbits 1
line aux 0
line vty 0 4
login
!
end
確認
IPsecで拠点間通信をするときは,NAT(アドレス変換)も同時に利用するのが一般的です。
1台のルーターでIPsecとNATを同時に動かすときは,注意が必要です。

●IPsecの設定の確認
IPsecに関する設定は,「IPsecの基本」のラボ・シナリオの設定と同じです。
念のため,主な設定項目を書き出しておきます。

■ISAKMPの設定(ISAKMPフェーズ1で決める)
・ルーターの認証方式:pre-share(キーはciscovpnに設定)
・暗号アルゴリズム:DES(デフォルト設定を利用)
・ハッシュアルゴリズム:SHA-1(デフォルト設定を利用)
 それ以外はデフォルト値を使用

■IPsecによる暗号通信の設定(ISAKMPフェーズ2で決める)
・暗号アルゴリズム:esp-des(DESに設定。暗号通信のプロトコルはESP)
・ハッシュアルゴリズム:esp-sha-mac(SHA-1に設定。暗号通信のプロトコルはESP)
 それ以外はデフォルト値を使用

●NATの設定の確認
このラボで付け加わっているのは,NATの設定です。
IPマスカレードを利用し,RouterAより左側にあるパソコンの送信元アドレスを,Serial0のIPアドレス(1.1.1.1)に変換します。
NATの設定部分を見てみます。

Ethernet0をNATの内側インタフェースに指定します。

RouterA(config)#interface ethernet 0
RouterA(config-if)#ip nat inside


Serial0をNATの外側インタフェースに指定します。

RouterA(config)#interface serial 0
RouterA(config-if)#ip nat outside


IPマスカレードを設定します。

RouterA(config)#ip nat inside source list 1 interface serial 0 overload
RouterA(config)#access-list 1 permit any

以上で,Ethernet0からSerial0へ出る全てのパケットの送信元アドレスがSerial0のアドレス(1.1.1.1)に変換されます。

さて,ここからが大切なところです。
IPsecが動作する環境でNATを使うときは,変換後のアドレスを使ってIPsec通信の対象となるトラフィックを定義する必要があります。
というのもシスコ・ルーターでは,アドレス変換処理をした後に,IPsecの処理を開始します。
そのため,アドレス変換後のアドレスを使って,IPsecの対象となるトラフィックを定義してやる必要があるのです。
つまりこのケースの場合なら,IPsec通信の対象となるトラフィックの送信元アドレスを,Serial0のアドレス(1.1.1.1)に定義してやります(以下の赤字)。

RouterA(config)#access-list 150 permit ip host 1.1.1.1 10.1.2.0 0.0.0.255

RouterBも同様に,IPsecの対象となるあて先アドレスを,アドレス変換後の1.1.1.1に定義します(以下の赤字)。

RouterB(config)#access-list 150 permit ip 10.1.2.0 0.0.0.255 host 1.1.1.1

以上で設定は完了です。

●動作の確認
以上の設定をした状態で,パソコンから10.1.2.1へpingを打つと,応答が返って来ます。
RouterAのNATの状態を確認してみましょう。

RouterA#show ip nat translations
Pro Inside global   Inside local    Outside local   Outside global
icmp 1.1.1.1:768    10.1.1.1:768    10.1.2.1:768    10.1.2.1:768


送信元アドレスが,10.1.1.1から1.1.1.1に変換されたことがわかります(上の赤字)。

次に,RouterAのIPsecの状態を確認してみましょう。

RouterA#show crypto ipsec sa

interface: Serial0
  Crypto map tag: MAP-Basic, local addr. 1.1.1.1

  local ident (addr/mask/prot/port): (1.1.1.1/255.255.255.255/0/0)
  remote ident (addr/mask/prot/port): (10.1.2.0/255.255.255.0/0/0)
  current_peer: 1.1.1.2
   PERMIT, flags={origin_is_acl,}
  #pkts encaps: 10, #pkts encrypt: 10, #pkts digest 10
  #pkts decaps: 10, #pkts decrypt: 10, #pkts verify 10
  #pkts compressed: 0, #pkts decompressed: 0
  #pkts not compressed: 0, #pkts compr. failed: 0, #pkts decompress failed: 0
  #send errors 10, #recv errors 0

   local crypto endpt.: 1.1.1.1, remote crypto endpt.: 1.1.1.2
   path mtu 1500, media mtu 1500
   current outbound spi: 16F00C02

   inbound esp sas:
   spi: 0x69D827B4(1775773620)
    transform: esp-des esp-sha-hmac ,
    in use settings ={Tunnel, }
    slot: 0, conn id: 2002, flow_id: 3, crypto map: MAP-Basic
    sa timing: remaining key lifetime (k/sec): (4607998/2016)
    IV size: 8 bytes
    replay detection support: Y


   inbound ah sas:

   inbound pcp sas:

   outbound esp sas:
   spi: 0x16F00C02(384830466)
    transform: esp-des esp-sha-hmac ,
    in use settings ={Tunnel, }
    slot: 0, conn id: 2003, flow_id: 4, crypto map: MAP-Basic
    sa timing: remaining key lifetime (k/sec): (4607999/2016)
    IV size: 8 bytes
    replay detection support: Y


   outbound ah sas:

   outbound pcp sas:


表示上の「local ident」の部分が「1.1.1.1/255.255.255.255」になっており,IPsec通信の対象トラフィックが1.1.1.1になっていることがわかります。
また,表示下の「inbound esp sas」と「inbound esp sas」に情報が表示され,上り通信と下り通信の二つのIPsec SA(IPsecトンネル)が確立していることがわかります。

IPsec通信でNATを使うときは,「変換後のアドレスを使ってIPsec通信の対象となるトラフィックを定義する」ということを覚えておきましょう。

IPsecラボ
IPsecの基本
NATを使ったIPsec
GREトンネルを使ってOSPFをIPsec内に流す
トンネル・エンドポイント・ディスカバリ(TED)