この文書では、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
プロバイダから割り当てられたアドレスが固定で複数のときには、 これらの中から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
プロバイダから割り当てられたアドレスが固定で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インタフェースに設定する必要があるからです。
プロバイダから固定のアドレスを割り当てられていないときには、 グローバルアドレスは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 *
[関連ドキュメント]
|