VPN(VPNとNAT その1)

 「VPN(基本設定 その1)」~「VPN(基本設定 その4 検証)」では、下のネットワークをインターネットVPNで構築しました。

しかし、インターネットVPNで拠点間の通信を行う場合、IPSecとNATを併用するのが一般的です。

 NATには、スタティックNAT、ダイナミックNAT、PAT(Port Address Translation:ポートアドレス変換)の3種類があります。

 PATは、TCP/UDPのポートを管理することで1つのグローバルIPアドレスでローカルIPアドレスが設定された複数の端末を同時に通信できるようにするします。

ここでは、IPSecとPATを併用した設定例を紹介していきます。

【注意事項】
※Router_BのE0は、便宜上、強制的に「UP」するように「no keepalive」しておきます。
※この構成では、拠点A、拠点Bの両方で、PATを使用するとうまく動作しません。NATは、内部から外部へ出る際にNATテーブルに書き込み管理します。通信が外部から始まる内部へアクセスは、NATテーブル上にまだ存在しないため、うまく通信ができません。今回は、Router_A上だけでPATを実行することにします。

PATにより、以下の変換を行います。

・拠点AのローカルIPアドレスを「200.200.200.1/24」に変換

Router_Aの設定

●初期設定

Rouer#conf t
Router(config)#hostname Router_A
Router_A(config)#enable password cisco
Router_A(config)#line vty 0 4
Router_A(config-line)#password cisco
Router_A(config-line)#login
Router_A(config-line)#exit
Router_A(config)#int e0
Router_A(config-if)#ip address 172.16.0.1 255.255.0.0
Router_A(config-if)#no shutdown
Router_A(config-if)#exit
Router_A(config)#int f0
Router_A(config-if)#ip address 200.200.200.1 255.255.255.0
Router_A(config-if)#no shutdown
Router_A(config-if)#exit

●ACLの定義

 PATが動作する環境で、IPsecを使用する場合は、PATで変換後のIPアドレスでIPSecの対象となるトラフィックを指定する必要があります。Ciscoルータでは、アドレス変換した後にIPSecの処理を行います。

 拠点Aの送信元IPアドレスは、PATによりF0のIPアドレス「200.200.200.1」に変換されるのでACLの定義は次のようになります。

Router_A(config)#access-list 100 permit ip host 200.200.200.1 172.17.0.0 0.0.255.255

●NATの設定

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

Router_A(config)#int e0
Router_A(config-if)#ip nat inside
Router_A(config-if)#exit
Router_A(config)#int f0
Router_A(config-if)#ip nat outside
Router_A(config-if)#exit

●IKEのポリシーを定義

Router_A(config)#crypto isakmp policy 1
Router_A(config-isakmp)#authentication pre-share
Router_A(config-isakmp)#exit

●共通鍵とIPアドレスの関連付け

Router_A(config)#crypto isakmp key cisco address 200.200.200.2

●トランスフォームセットの定義

Router_A(config)#crypto ipsec transform-set TS-IPSEC esp-3des esp-sha-hmac
Router_A(cfg-crypto-trans)#mode tunnel
Router_A(cfg-crypto-trans)#exit

●IPSec SA(フェーズ2)の定義

Router_A(config)#crypto map MAP-IPSEC 1 ipsec-isakmp
Router_A(config-crypto-map)#match address 100
Router_A(config-crypto-map)#set peer 200.200.200.2
Router_A(config-crypto-map)#set transform-set TS-IPSEC
Router_A(config-crypto-map)#exit

●インターフェイスへのIPSecポリシーの適用

Router_A(config)#interface fastEthernet 0
Router_A(config-if)#crypto map MAP-IPSEC
Router_A(config-if)#exit

●デフォルトルートの設定

Router_A(config)#ip route 0.0.0.0 0.0.0.0 200.200.200.2

Router_Bの設定

Router_BのE0は、便宜上、「no shutdown」しておきます。

●初期設定

Rouer#conf t
Router(config)#hostname Router_B
Router_B(config)#enable password cisco
Router_B(config)#line vty 0 4
Router_B(config-line)#password cisco
Router_B(config-line)#login
Router_B(config-line)#exit
Router_B(config)#int e0
Router_B(config-if)#ip address 172.17.0.1 255.255.0.0
Router_B(config-if)#no shutdown
Router_B(config-if)#no keepalive
Router_B(config-if)#exit
Router_B(config)#int f0
Router_B(config-if)#ip address 200.200.200.2 255.255.255.0
Router_B(config-if)#no shutdown
Router_B(config-if)#exit

●ACLの定義

 PATが動作する環境で、IPsecを使用する場合は、PATで変換後のIPアドレスでIPSecの対象となるトラフィックを指定する必要があります。Ciscoルータでは、アドレス変換した後にIPSecの処理を行います。

 拠点Bの送信元IPアドレスは、PATによりF0のIPアドレス「200.200.200.2」に変換されるのでACLの定義は次のようになります。

Router_B(config)#access-list 100 permit ip host 200.200.200.2 172.16.0.0 0.0.255.255

●NATの設定

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

Router_B(config)#int e0
Router_B(config-if)#ip nat inside
Router_B(config-if)#exit
Router_B(config)#int f0
Router_B(config-if)#ip nat outside
Router_B(config-if)#exit

●IKEのポリシーを定義

Router_B(config)#crypto isakmp policy 1
Router_B(config-isakmp)#authentication pre-share
Router_B(config-isakmp)#exit

●共通鍵とIPアドレスの関連付け

Router_B(config)#crypto isakmp key cisco address 200.200.200.1

●トランスフォームセットの定義

Router_B(config)#crypto ipsec transform-set TS-IPSEC esp-3des esp-sha-hmac
Router_B(cfg-crypto-trans)#mode tunnel
Router_B(cfg-crypto-trans)#exit

●IPSec SA(フェーズ2)の定義

Router_B(config)#crypto map MAP-IPSEC 1 ipsec-isakmp
Router_B(config-crypto-map)#match address 100
Router_B(config-crypto-map)#set peer 200.200.200.1
Router_B(config-crypto-map)#set transform-set TS-IPSEC
Router_B(config-crypto-map)#exit

●インターフェイスへのIPSecポリシーの適用

Router_B(config)#interface fastEthernet 0
Router_B(config-if)#crypto map MAP-IPSEC
Router_B(config-if)#exit

●デフォルトルートの設定

Router_B(config)#ip route 0.0.0.0 0.0.0.0 200.200.200.1

次の「VPN(VPNとNAT その2)」では、各ルータのコンフィグを解説します。