L2TP/IPsec
自宅パソコンなどから会社へのVPN接続に向いているL2TP/IPsecについて説明しています。
L2TP/IPsecとは
L2TP/IPsecは、自宅パソコンなどからリモート接続する時に使われます。
このリモート接続は、リモートアクセスVPNと呼ばれています。
L2TPは、PPTPのようにPPPにトンネリング機能を追加しており、IPsecと組み合わせることで暗号化できます。
認証とアドレス配布
L2TP/IPsecは、PPTPのように暗号化がないGREで通信を始めるのではなく、IPsecで暗号化された中で通信を開始します。このため、最初はIKEによる認証や鍵作成が行われます。つまり、パソコンに事前に共有鍵を設定しておくか、デジタル証明書をインストールしておく必要があります。ここまでは、IPsecで説明した手順と同じです。
IPsecで通信できるようになると、PPTPで説明した手順と同様に制御信号を使ってユーザー認証、つまりユーザーIDやパスワードでの認証を行い、IPアドレスの配布やDNSサーバーの設定などを行います。
また、ESPヘッダーはパケットの途中に挟み込まれています。パケット全体をカプセル化するトンネルモードに対して、これをトランスポートモードと呼びます。トンネル自体はL2TPで構築するため、IPsecではトンネルが不要という訳です。このため、L2TPでカプセル化する時にグローバルアドレスが付与されています。
なお、ワンタイムパスワードを応用したマトリクス認証と連携できる機種もあります。マトリクス認証はパスワードを文字ではなく、形で覚えます。この形をパスワードとして登録します。
その形上の文字をパスワードとして入力することで認証されます。
チャレンジコードを基に、1回1回表示される文字の配置を変えることで毎回入力する文字が変わり、ワンタイムパスワードを実現可能です。
パスワードが長くなると忘れやすくなりますが、形であれば覚えやすく、忘れにくいのが特徴です。
ESPトランスポートモードでの通信
認証などが終わるとIPパケットをL2TPでカプセル化し、ESPのトランスポートモードで暗号化して通信を行います。
L2TPはWindowsでサポートされているため、パソコンの設定を行うことで利用可能になる一方、留意点としてパソコン側がファイアウォールなどに守られている場合に透過できるようにしたり特殊な設定が必要なことがあります。
L2TP/IPsecを自宅で使う場合の課題
自宅パソコンからVPN接続時、割り当てられるIPアドレスは接続先で使えるIPアドレスです。
例えば、イントラネット内部で172.16.0.0のネットワークアドレスを使っていた場合、172.16.2.2などが割り当てられます。
このアドレスを、パソコン内部でカプセル化してグローバルアドレスにしますが、自宅パソコンがグローバルアドレスを持っていることはほとんどないと思います。フレッツを使っていて、レンタルルーターがグローバルアドレスでパソコンはプライベートアドレスが設定されているというパターンが多いと思いますが、その場合でも動作は同じです。トンネル構築のため、自宅内で使っているプライベートアドレスでカプセル化します。
その後、インターネットに送信する時に、レンタルルーターがNAPTでグローバルアドレスに変換します。しかし、NAPTはポート番号まで変換することで通信が成立しますが、L2TP/IPsecの場合はポート番号含めて暗号化されているため通信が成立しません。
つまり、NAPTが介在するとこのままではリモートVPN接続できません。
IPsecパススルー
NAPTが介在する時に、L2TP/IPsecで接続する方法の1つがIPsecパススルーです。レンタルルーターでIPsecパススルーをサポートしていた場合、ESPの通信であればポート番号の変換を行わずスルーさせます。
これによって、L2TP/IPsecの通信が成立します。
IPsecパススルーは、レンタルルーターでサポートしていれば、パソコンやVPNサーバーでNAPTを意識した設定が不要です。つまり、あまりこの問題を意識せずに使えます。
NATトラバーサル
IPsecパススルーが使えない時の、もう1つの対策がNATトラバーサルです。
NATトラバーサルは、IPsecをUDPでさらにカプセル化し、ポート番号まで含めた変換を可能にします。
これで、途中でNAPTされてもポート番号まで含めて変換が可能なので、通信が成立します。
NATトラバーサルは、レンタルルーター側でIPsecパススルーのような機能は必要ありませんが、パソコンとVPNサーバーでともにNATトラバーサル機能を有効にする必要があります。例えば、VPNサーバーでNATトラバーサルをサポートしていれば、パソコン向けの設定アプリなどが提供されていることがあるため、それを使って有効化したりします。