IPsecでのNATの設定について


1. はじめに

この文書では、IPsecを使うときのNATの設定について説明します。 このトピックについては、 設定のガイドダイヤルアップVPNの設定ガイドでも 取り上げていますが、この文書では特にフォーカスを絞って説明します。

一般にNATとIPsecの併用は難しいものと考えられています。しかしながら、 プロバイダから割り当てられるアドレスの数で場合分けすると、 簡単に設定の方針を知ることができます。

そこで、この文書では、プロバイダから割り当てられるアドレスの数によって、 固定で複数固定で1つ不定で1つというの3つのケースに場合分けし、 IPsecやNATの設定の作り方を説明します。なお、説明の都合上、 途中を飛ばさないで、順に読み進められることをお奨めします。

例題として考えるネットワーク構成は以下のとおりです。

[ネットワーク構成]

          インターネットへ                                  インターネットへ
                ||                                                ||
                || PPPoE            暗号トンネル                  ||
                ||                                                ||
                ||        ##################    ||
                ||        #                                #    ||
                ||        #                                #    || 172.17.100.1
        ┌――――――――――――――┐            ┌――――――――――――――┐
        |                            |            |                            |
        |          ルータ            |            |          ルータ            |
        |          (自分側)          |            |          (相手側)          |
        |                            |            |                            |
        └――――――――――――――┘            └――――――――――――――┘
                      |192.168.0.1                               |192.168.1.1
                      |                                          |
              ――――┴―――― 192.168.0.0/24           ――――┴―――― 192.168.1.0/24

2. アドレスの数による分類

2.1. アドレスが固定で複数のとき

プロバイダから割り当てられたアドレスが固定で複数のときには、 これらの中から1つを選んで、ルータのWAN側インタフェースに設定します。 また、このアドレスをルータの専用のアドレスとして扱い、 NATでは使わないようにします。 こうすると、ルータは1つのアドレスを占有できるため、 IPsecとNATの設定の兼ね合いが簡単になります。

例えば、プロバイダから172.16.100.0/29を割り当てられたときに、 ルータが172.16.100.1を占有するならば、 次のようにアドレスを共有することになります。

       172.16.100.1     172.16.100.2-172.16.100.6 (5個)
            :                       :
            : NAT不要               : NATで共有
            :                       :
       ルータ(占有)     192.168.0.1-192.168.0.254 (254個)

これに対応するNATの設定は次のようになります。

# nat descriptor type 1 nat-masquerade
# nat descriptor address outer 1 172.16.100.2-172.16.100.6
# nat descriptor address inner 1 192.168.0.1-192.168.0.254

nat descriptor typeコマンドは、アドレスの共有の方法を設定するものです。 nat-masqueradeは、 基本的にはNAT(1対1のアドレス変換)ですが、 グローバルアドレスの残りが1つしかないときには、NAPT(IPマスカレード)に 切り替えるというものです。

nat descriptor address outerコマンドは、NATの外側のアドレス、つまり、 割り当てられたグローバルアドレスを設定します。172.16.100.1は、 ルータが占有するので、このコマンドで除外されていることに注意してください。

nat descriptor address innerコマンドは、NATの内側のアドレス、つまり、 LAN側のプライベートアドレスを設定します。

次に、IPsecの設定を考えます。 IPsecでは自分側のアドレスを明確にする必要があります。 なぜならば、ルータは相手を識別するためにアドレスを見るからです。 このケースでは、自分側のアドレスとして、172.16.100.1を選ぶべきです。 仮に、192.168.0.1や172.16.100.2〜172.16.100.6を選ぶとすると、 NATが絡んで話が複雑になってしまいます。

これに対応するIPsecの設定は次のようになります。

# ipsec ike local address 1 172.16.100.1

全体の設定は次のようになります。

;
; LAN1 interface
;
ip lan1 address 192.168.0.1/24
;
; PP interface
;
pp select 1
pppoe use lan2
pp always-on on
ppp lcp mru on 1454
ip pp mtu 1454
ip route default gateway pp 1
ppp ccp type none
pp auth accept pap chap
pp auth myname NAME PASSWORD
ip pp address 172.16.100.1
ip pp nat descriptor 1
pp enable 1
;
; IKE
;
ipsec auto refresh on
ipsec ike local address 1 172.16.100.1
ipsec ike remote address 1 172.17.100.1
ipsec ike pre-shared-key 1 text himitsu
ipsec sa policy 101 1 esp des-cbc
;
; TUNNEL interface
;
tunnel select 1
ipsec tunnel 101
ip route 192.168.1.0/24 gateway tunnel 1
tunnel enable 1
;
; NAT descriptor
;
nat descriptor type 1 nat-masquerade
nat descriptor address outer 1 172.16.100.2-172.16.100.6
nat descriptor address inner 1 192.168.0.1-192.168.0.254

2.2. アドレスが固定で1つのとき

プロバイダから割り当てられたアドレスが固定で1つのときには、 そのアドレスをルータのWAN側インタフェースに設定します。 ただし、このアドレスはルータとすべての端末で共有する必要があるので、 ルータが占有できるわけではありません。

プロバイダが172.16.100.1を割り当てたとすると、 アドレスを次のように共有する必要があります。

              172.16.100.1 (1個)
                   :
                   : NATで共有
                   :
       172.16.100.1, 192.168.0.1-192.168.0.254 (1 + 254個)

この割り当てで、172.16.100.1を下に書いていることに注意してください。 172.16.100.1は唯一のグローバルアドレスですから、 すべてのアドレスが172.16.100.1を共有する必要があります。 したがって、 下にはすべてのアドレス(172.16.100.1も含む)を書くべきです。

これに対応するNATの設定は次のようになります。

# nat descriptor type 1 masquerade
# nat descriptor address outer 1 172.16.100.1
# nat descriptor address inner 1 172.16.100.1 192.168.0.1-192.168.0.254

次に、IPsecの設定を考えます。 先ほどと同様に自分側のアドレスを明確にします。 ここでは、自分側のアドレスとして172.16.100.1を選びます。

これに対応するIPsecの設定は次のようになります。

# ipsec ike local address 1 172.16.100.1

最後に、NATとIPsecの調整をします。このケースでは、 ルータとすべての端末が172.16.100.1を共有しますが、 IPsecの通信に関する限り、 ルータが172.16.100.1を占有しなければなりません。そこで、 以下の設定を追加します。

# nat descriptor masquerade static 1 1 172.16.100.1 udp 500
# nat descriptor masquerade static 1 2 172.16.100.1 esp *

1行目は鍵交換プロトコルIKEの通信をルータが占有する設定です。 IKEは、UDPの500番ポートを使うので、このような設定になります。 2行目はルータがESPの暗号通信を占有する設定です。 IPsecのVPNでは、 暗号通信はルータ間で行われるのでルータがESPを占有すればよいのです。

重要なポイントは、 以下の4つのコマンドで同じアドレスを設定していることです。 この点はとても重要で、この約束を守っていないとうまく動作しません。

ipsec ike local address 1 172.16.100.1
nat descriptor address inner 1 172.16.100.1 192.168.0.1-192.168.0.254
nat descriptor masquerade static 1 1 172.16.100.1 udp 500
nat descriptor masquerade static 1 2 172.16.100.1 esp *

このことさえ守れば、自分側のアドレスとして、 LAN側のアドレスを使うこともできます。 この場合には、4つのコマンドで192.168.0.1を設定します。

ipsec ike local address 1 192.168.0.1
nat descriptor address inner 1 192.168.0.1-192.168.0.254
nat descriptor masquerade static 1 1 192.168.0.1 udp 500
nat descriptor masquerade static 1 2 192.168.0.1 esp *

どちらの設定を使うかは好みの問題ですが、 前者の設定に比べて、 後者の設定の方がすっきりして分かりやすいかもしれません。

最後に全体の設定例を示しておきます。

;
; LAN1 interface
;
ip lan1 address 192.168.0.1/24
;
; PP interface
;
pp select 1
pppoe use lan2
pp always-on on
ppp lcp mru on 1454
ip pp mtu 1454
ip route default gateway pp 1
ppp ccp type none
pp auth accept pap chap
pp auth myname NAME PASSWORD
ip pp address 172.16.100.1
ip pp nat descriptor 1
pp enable 1
;
; IKE
;
ipsec auto refresh on
ipsec ike local address 1 172.16.100.1
ipsec ike remote address 1 172.17.100.1
ipsec ike pre-shared-key 1 text himitsu
ipsec sa policy 101 1 esp des-cbc
;
; TUNNEL interface
;
tunnel select 1
ipsec tunnel 101
ip route 192.168.1.0/24 gateway tunnel 1
tunnel enable 1
;
; NAT descriptor
;
nat descriptor type 1 masquerade
nat descriptor address outer 1 172.16.100.1
nat descriptor address inner 1 172.16.100.1 192.168.0.1-192.168.0.254
nat descriptor masquerade static 1 1 172.16.100.1 udp 500
nat descriptor masquerade static 1 2 172.16.100.1 esp *

ip pp address 172.16.100.1という設定を忘れないようにしてください。 nat descriptor address outerコマンドでアドレスを指定したときには、 同じアドレスをPPインタフェースに設定する必要があるからです。

2.3. アドレスが不定のとき

プロバイダから固定のアドレスを割り当てられていないときには、 グローバルアドレスはIPCPによって動的に変化します。RTシリーズでは、 このような構成を「ダイアルアップVPN」とよんでいます。 ダイアルアップVPNの詳細は、 ダイアルアップVPNの設定ガイドを 参照してください。

アドレスの共有は次のようになります。

         不定のグローバルアドレス (1個) ... IPCPで割り当てられる
                   :
                   : NATで共有
                   :
         192.168.0.1-192.168.0.254 (254個)

これに対応するNATの設定は次のようになります。

# nat descriptor type 1 masquerade
# nat descriptor address outer 1 ipcp
# nat descriptor address inner 1 192.168.0.1-192.168.0.254

次に、IPsecの設定を考えます。 グローバルアドレスが不定であり、WAN側に決まったアドレスがないため、 IPsecの自分側のアドレスとして、192.168.0.1を選びます。

これに対応するIPsecの設定は次のようになります。

# ipsec ike local address 1 192.168.0.1

それから、ダイアルアップVPNでは、 ルータの名前を設定する必要があります。このためには、 以下のようにコマンドを追加します。

# ipsec ike local name 1 my-router

また、2.2.のケースと同様にNATとIPsecの調整が必要です。 IPsecの通信に関する限りは、ルータがグローバルアドレスを 占有しなければならないので、以下の設定を追加します。

# nat descriptor masquerade static 1 1 192.168.0.1 udp 500
# nat descriptor masquerade static 1 2 192.168.0.1 esp *

2.2.と同様に、 4つのコマンドで同じアドレスを設定することに着目してください。

ipsec ike local address 1 192.168.0.1
nat descriptor address inner 1 192.168.0.1-192.168.0.254
nat descriptor masquerade static 1 1 192.168.0.1 udp 500
nat descriptor masquerade static 1 2 192.168.0.1 esp *

最後に全体の設定例を示しておきます。

;
; LAN1 interface
;
ip lan1 address 192.168.0.1/24
;
; PP interface
;
pp select 1
pppoe use lan2
pp always-on on
ppp lcp mru on 1454
ip pp mtu 1454
ip route default gateway pp 1
ppp ccp type none
pp auth accept pap chap
pp auth myname NAME PASSWORD
ppp ipcp ipaddress on
ip pp nat descriptor 1
pp enable 1
;
; IKE
;
ipsec auto refresh on
ipsec ike local address 1 192.168.0.1/24
ipsec ike local name 1 router1
ipsec ike remote address 1 172.17.100.1
ipsec ike pre-shared-key 1 text himitsu
ipsec sa policy 101 1 esp des-cbc
;
; TUNNEL interface
;
tunnel select 1
ipsec tunnel 101
ip route 192.168.1.0/24 gateway tunnel 1
tunnel enable 1
;
; NAT descriptor
;
nat descriptor type 1 masquerade
nat descriptor address outer 1 ipcp
nat descriptor address inner 1 192.168.0.1-192.168.0.254
nat descriptor masquerade static 1 1 192.168.0.1 udp 500
nat descriptor masquerade static 1 2 192.168.0.1 esp *

IPsec機能のトップページへ

[関連ドキュメント]


[ YAMAHA RT / ネットボランチ / 検索 / RFC / 技術資料 / 設定例集 / RT's FAQ ]

Copyright (C) 1995〜2006, YAMAHA Corporation.