IPsec 設定ガイド

はじめに

この文書では、下図のような基本的なVPNの構成について、設定の流れを説明します。この構成に当てはまらない場合でも基本的な設定は変わりませんので、設定例で他の構成を探す前に一読されることをおすすめします。

          インターネットへ                         インターネットへ
             |                                           |
             | 128kbit/s 専用線                          | 1.5Mbit/s 専用線
             |                                           |
             | 172.16.253.100                            | 172.17.254.16-31/28
        +----+----+                                 +----+----+
        |   RT 1  | <*****************************> |   RT 2  |
        +----+----+           IPsecトンネル         +----+----+
             | 192.168.0.1                               | 192.168.1.1
             |                                           |
        -----+--------- 192.168.0.0/24           --------+------ 192.168.1.0/24

※1 この文書ではプロバイダから割り当てられるグローバルアドレスを表すために、172.16.0.0/12の範囲のIPアドレスをつかいます。
※2 この文書ではRev.6.02.16というファームウェアに基づいて説明します。古いファームウェアではコマンドの書式が異なる場合がありますので、ご了承ください。

この構成の要件は次のとおりです。

  • RT 1は、固定のグローバルアドレスとして、172.16.253.100を持つ。
  • RT 2は、固定のグローバルアドレスとして、172.17.254.16-31を持つ。
  • 192.168.0.0/24と192.168.1.0/24の端末は、インターネットに接続できる。
  • 192.168.0.0/24と192.168.1.0/24の端末が、IPsecで安全に通信できる。

ルーターのIPアドレスの設定

まず、ルーターのIPアドレスを設定します。ルーターのIPアドレスとは、双方のルーターを識別するためのグローバルアドレスのことです。RT 1は1つしかグローバルアドレスを持っていないので、それがルーターのIPアドレスになります。RT 2は複数のグローバルアドレスを持っているので、この中から1つを選びます。今回の例では、172.17.254.30を選ぶことにします。

自分側のルーターのIPアドレスを設定するには、ipsec ike local addressコマンドを、相手側のルーターのIPアドレスを設定するには、ipsec ike remote addressコマンドを使用します。

[RT 1の設定]
# ipsec ike local address 1 172.16.253.100
# ipsec ike remote address 1 172.17.254.30
[RT 2の設定]
# ipsec ike local address 1 172.17.254.30
# ipsec ike remote address 1 172.16.253.100

ここで、1というパラメータは、複数の相手とVPNを構成するときに、相手を区別するために必要になるものです。今回の例では、相手は1つしかないので意味はありませんが、1を指定することにします。

[補足]

NATを使う場合には、ipsec ike local addressコマンドでプライベートアドレスを設定することができます。しかし、この場合でも、ipsec ike remote addressは必ずグローバルアドレスを設定しなければなりません。詳しいことは「その他の設定 (RT 1)」で説明しますが、記憶の片隅に残しておいてください。

IKEのパラメータの設定

次に、IKEに関するパラメータを設定します。設定するコマンドはたくさんありますが、必須の設定は1つしかありません。それは、事前共有鍵(pre-shared key)とよばれるパスワードです。このパスワードを設定するためには、ipsec ike pre-shared-keyコマンドをつかいます。

[RT 1の設定]
# ipsec ike pre-shared-key 1 text himitsu
[RT 2の設定]
# ipsec ike pre-shared-key 1 text himitsu

ここで、1というパラメータは、先のコマンドと同様、相手のルーターを識別する番号です。textは、テキスト形式のパスワードであることを指定し、himitsuという部分がパスワードになります。パスワードは32文字まで登録できますので、実際には、もっと複雑なものを設定してください。

パスワードはIPsecの通信を始めるときに、相手を認証するためにつかいます。したがって、パスワードの設定は、双方のルーターで一致する必要があります。1文字でも設定が異なると、通信できませんので注意して設定してください。

それから、必須ではありませんが、鍵の有効期限(寿命)の設定があります。

(急ぎの方は次へ)

IPsecでは、鍵を自動で生成し、鍵の寿命が切れそうになれば、新しい鍵を作って置き換えます。寿命は次のように設定します。

[RT 1の設定]
# ipsec ike duration isakmp-sa 1 24000
# ipsec ike duration ipsec-sa 1 24000
[RT 2の設定]
# ipsec ike duration isakmp-sa 1 24000
# ipsec ike duration ipsec-sa 1 24000

SAにはISAKMP SAとIPsec SAの2種類がありますが(※)、それぞれに異なる寿命を設定することができます。寿命の単位は「秒」です。双方のルーターで同じ値を設定しなくても動作しますが、特別な事情がなければ、同じ値に揃えることをおすすめします。なお、このコマンドを設定しないときには、28800秒(8時間)で動作します。

※ 詳しくはRFC2409を参照してください。ここでは説明を省略します。

トンネルインターフェイスの設定

トンネルインターフェイスについては、IPsec機能の仕様に説明がありますので、そちらを確認してください。トンネルインターフェイスは、相手のルーターとの間をつなぐ仮想的な回線のインターフェイスです。

まず、トンネルインターフェイスで使用する暗号の方式を選択します。方式はいくつかありますが、ここでは、ESPのDES-CBCという方式を選択します。

[RT 1の設定]
ipsec sa policy 101 1 esp des-cbc

RT 2の設定は後回しにして、先にコマンドの説明を進めます。
101は単なる登録番号で、1はこれまでのコマンドと同様の「相手の識別番号」です。
espはESPを示し、des-cbcはDES-CBCを示します。

次に、以下のようなコマンドで、トンネルインターフェイスをつくります。

[RT 1の設定]
# tunnel select 1
# ipsec tunnel 101
# tunnel enable 1

tunnel selecttunnel enableコマンドの1というパラメータはトンネルインターフェイスの登録番号で、1以上の整数を指定します。
また、ipsec tunnelコマンドで、先に登録したipsec sa policyコマンドの登録番号を指定します。

最後に、トンネルインターフェイスに対する経路を設定します。ここでは、スタティックに経路を登録することにします。

[RT 1の設定]
# ip route 192.168.1.0/24 gateway tunnel 1

すなわち、相手のLANである192.168.1.0/24宛てのIPパケットを、定義したトンネルインターフェイスに送信します。

ここまで、RT 1の設定しか説明していませんが、RT 2の設定についても、RT 1とほとんど同じ設定になります。唯一の違いは、経路の設定で、ネットワークアドレスが異なることです。まとめると以下のようになります。

[RT 2の設定]
# ipsec sa policy 101 1 esp des-cbc

# tunnel select 1
# ipsec tunnel 101
# tunnel enable 1

# ip route 192.168.0.0/24 gateway tunnel 1

その他の設定 (RT 1)

これまでの説明で、IPsecに関するほとんどの設定が終わっています。そこで、回線まわりの設定も追加し、全体の設定を眺めてみることにします。まず、RT 1の設定から見ていきます。

[RT 1の設定]
; LAN

ip lan1 address 192.168.0.1/24

; WAN

line type bri1 l128
pp select 1
pp bind bri1
ip pp address 172.16.253.100
pp enable 1
ip route default gateway pp 1

; IPsec

ipsec ike local address 1 172.16.253.100
ipsec ike remote address 1 172.17.254.30
ipsec ike pre-shared-key 1 text himitsu

; TUNNEL

ipsec sa policy 101 1 esp des-cbc
tunnel select 1
ipsec tunnel 101
tunnel enable 1
ip route 192.168.1.0/24 gateway tunnel 1

さらにLANの端末がインターネットに接続するためには、NATの設定が必要です。そこで、以下の設定を追加します。

nat descriptor type 1 masquerade
nat descriptor address outer 1 172.16.253.100
nat descriptor address inner 1 172.16.253.100 192.168.0.1-192.168.0.254
nat descriptor masquerade static 1 1 172.16.253.100 udp 500
nat descriptor masquerade static 1 2 172.16.253.100 esp *

pp select 1
ip pp nat descriptor 1
pp enable 1

3行目が重要なポイントで、NATの内側のアドレスとして、ルーターのIPアドレス(172.16.253.100)を含むことに注意してください。このアドレスは、NATの外側のアドレスでもあり、同時に内側のアドレスでもあります。なぜなら、端末と同様にルーターも172.16.253.100を使うからです。(RT 1は1つしかグローバルアドレスを持っていないことに注意してください。)

4行目ではIKEのためにUDPの500番ポートをルーターに割り当てます。この設定により、ルーターがIKEのパケットを送受信できるようになります。同様に5行目でESPをルーターに割り当てます。この設定により、ルーターがESPのパケットを送受信できるようになります。

NATの設定で注意すべきポイントは、以下のように、4つのコマンドで同じIPアドレスを設定することです。

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

このことさえ守れば、ルーターのIPアドレスとして、他のアドレスを選ぶこともできます。例えば、LAN1インターフェイスのアドレスである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 *

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

[補足]

RT 1で、ipsec ike local addressコマンドでプライベートアドレスを設定する場合でも、RT 2の設定を変更する必要はありません(下記の設定)。つまり、双方のルーターが設定するアドレスは必ずしも一致しません。

[RT 1の設定]
# ipsec ike local address 1 192.168.0.1
# ipsec ike remote address 1 172.17.254.30
[RT 2の設定]
# ipsec ike local address 1 172.17.254.30
# ipsec ike remote address 1 172.16.253.100

その他の設定 (RT 2)

次にRT 2について説明します。RT 1と同様に回線まわりの設定を追加します。

[RT 2の設定]
; LAN

ip lan1 address 192.168.1.1/24

; WAN

line type pri1 leased
pri leased channel 1/1 1 24
pp select 1
pp bind pri1/1
ip pp address 172.17.254.30
pp enable 1
ip route default gateway pp 1

; IPsec

ipsec ike local address 1 172.17.254.30
ipsec ike remote address 1 172.16.253.100

; TUNNEL

ipsec sa policy 101 1 esp des-cbc
tunnel select 1
ipsec tunnel 101
tunnel enable 1
ip route 192.168.0.0/24 gateway tunnel 1

さらにLANの端末がインターネットに接続するためには、NATの設定が必要です。そこで、以下の設定を追加します。

nat descriptor type 1 nat-masquerade
nat descriptor address outer 1 172.17.254.17-172.17.254.29
nat descriptor address inner 1 192.168.1.1-192.168.1.254

pp select 1
ip pp nat descriptor 1
pp enable 1

RT 1と違って、グローバルアドレスがたくさんあるので、IPsecで使うアドレス(172.17.254.30)をルーターに専用で割り当てることにしました。したがって、RT 1のような静的IPマスカレードの設定は不要になります。

動作確認

ここまで、意図的に説明していませんでしたが、IPsecを動作させるためには、双方のルーターに以下の設定を追加する必要があります。

[RT 1の設定]
# ipsec auto refresh on
[RT 2の設定]
# ipsec auto refresh on

これで問題なければ、IPsecの通信が可能になります。状態を確認するためには、show ipsec saコマンドを実行します。

# show ipsec sa
SA[4] 寿命: 124秒
相手ホスト: 192.168.111.218, 送受信方向: 送受信
プロトコル: IKE
SPI: b9 2c 6f e9 56 4b 66 97 52 8f 0d e1 60 e2 33 95
鍵 : eb fc 81 25 04 ee b7 e8
----------------------------------------------------
SA[5] 寿命: 126秒
相手ホスト: 192.168.111.218, 送受信方向: 送信
プロトコル: ESP (モード: tunnel)
アルゴリズム: DES-CBC (認証: none)
SPI: b3 84 c6 02
鍵 : 85 78 23 e0 2f 89 37 49 4a 69 17 ac 88 92 df ca
----------------------------------------------------

この実行例のように、SAの情報が表示されれば、正常に動作しています。

関連文書

ページトップへ戻る