SoftEtherのススメ その壱 インターネットVPNって?

インターネットVPNって?

「SoftEther」は、VPNを構築するためのソフトウェアです。VPNと一口に言ってもいろんな種類がありますが、SoftEtherは手軽にインターネットVPNを構築するソフトウェアです。

※SoftEtherはインターネットVPNだけに特化しているわけじゃないのですが、一番多い用途だろうと思われるので、インターネットVPNを中心に話を進めていきます。

じゃ、

「インターネットVPN」

って何でしょう???

まず、インターネットVPNについて解説します。インターネットVPNとは、インターネット上でパケットを暗号化して、仮想的な専用線環境を構築する技術、および構築されたネットワークそのものを意味します。

仮想的な専用線環境を構築するために、インターネット上にトンネルを作ります。トンネルといっても、これはあくまでもたとえ話であり、実際に穴を掘るわけじゃありませんが・・・
トンネルを作るには、本来転送するパケットに別のプロトコルのヘッダをつけて、ネットワーク上に送信します。トンネルを作ることをトンネリングといったりします。別のプロトコルのヘッダをつけたパケットの通り道が、トンネルになるわけです。トンネリングするために、他のプロトコルのヘッダをつけることを「カプセル化」ともいいます。
「xxxのパケットをyyyでカプセル化して、トンネリングする」なんて表現が使われます。

ただ、「カプセル化」して、トンネルの中で本来のパケットを転送するようにしても、このままでは第3者に本来のパケットの中身をのぞかれてしまう恐れがあります。カプセル化はあくまでも別のプロトコルのヘッダをつけるだけなので、本来のパケットの中身は暗号化されていません。第3者がカプセル化されたパケットをキャプチャしてしまえば、本来のパケットの中身も全部わかります。また、下手をするとパケットの中身を改ざんされてしまう恐れもあります。
こういったパケットの盗聴、改ざんを防止するために、本来のパケットを暗号化してからカプセル化することが一般的です。

上記をまとめると、インターネットVPNは、

転送したいパケットを暗号化して、インターネット上で転送するための別のヘッダをつけてトンネリングすることによって作られたインターネット上の仮想的な専用線

です。

インターネットVPNのプロトコル

こうしたインターネットVPNを実現するためのトンネリング、暗号化のプロトコルとして代表的なものが

  • IPSec
  • PPTP

です。

IPSecはレイヤ3においてIPパケットを暗号化して、安全な通信を行うためのプロトコルです。個人・SOHOユーザ向けのブロードバンドルータでもIPSecによるインターネットVPNが可能な製品が出てくるようになりました。一番使われているのがIPSecです。IPSecによるVPNをIPSec-VPNと呼ぶことにしますが、一般的に、インターネットVPN=IPSec-VPNと思ってもよいぐらい普及しています。

ただし、IPSec-VPNはNATによるアドレス変換を扱うのが難しいというデメリットがあります。NATを越えられないわけではありませんが、NATを越えるのは難しいのです。また、IPSec-VPNには、クライアント側に専用のソフトウェアをインストールしなければいけないという制限もあります。数台のクライアントしかなければ特に問題にはなりませんが、企業ユースで何百台ものクライアントが存在すれば、クライアントに専用ソフトウェアをインストールするのはかなり大変です。

こうしたNAT越え、クライアントソフトウェアの必要性といった制限を解決するために2003年の半ばぐらいからSSL-VPNが話題に上るようになりました。SSL-VPNは、Webサイトで買い物をするときなどによくみかけるSSL(Secure Socket Layer)によって暗号化して安全な通信を行います。
IPSec-VPNがレイヤ3でIPパケット自体を暗号化しているのに対して、SSL-VPNはSocket通信(トランスポート層)でアプリケーションのメッセージを暗号化しています。SSL-VPNでは、IPヘッダを変更しないのでNATの影響はありません。そして、いまどのクライアントコンピュータにもインストールされているSSL対応のWebブラウザさえあればいいのです。

ただし、SSL-VPNを通じて通信が可能なアプリケーションプロトコルに柔軟性がないというデメリットがあります。一般的なHTTPやSMTP、FTPなどには対応していますが、カスタムアプリケーションのデータをSSL-VPN上で転送できない場合があります。

SoftEtherの登場

SSL-VPNとは逆の発想で、レイヤを下げたのがSoftEtherでのVPN(SoftEther-VPNと勝手に呼ぶことにします)のコンセプトです。

SSL-VPNではレイヤをあげることによってNATとクライアントソフトの問題点を解決したのですが、その反面、VPN上に転送するアプリケーションプロトコルに柔軟性がなくなってしまいました。一般にレイヤが上がれば扱えるプロトコルの柔軟性は低くなり、レイヤが下がれば扱えるプロトコルの柔軟性が高くなります。

SoftEther-VPNは、レイヤを下げてイーサネットフレーム自体をカプセル化することによって、扱うプロトコルの柔軟性を高くしています。イーサネット自体、上位のレイヤ3プロトコルを自由に転送することができるので、イーサネットフレームをカプセル化すれば、レイヤ3以上のプロトコルはIPでも、IPXでも、SNAでもIPv6でも何でも流せるようになるわけです。(ただし、実際にパケットを転送するIPネットワークは必要)

ただし、SoftEther-VPNはクライアントソフトウェアが必要であるという制限は解決できません。SoftEther-VPNを構築するには、専用ソフトウェアをインストールしなければいけません。だからといって、SoftEther-VPNが使えないわけじゃなくて、イーサネットフレーム自体をカプセル化する柔軟性はとても魅力的でしょう。
唯一絶対のソリューションなんてありません。利用する人が目的に応じて、さまざまなソリューションを組み合わせていけばよいですから。SoftEther-VPNが最適なネットワークもあれば、IPSec-VPNやSSL-VPNの方が適しているネットワークもあるでしょう。
ただ、どのソリューションがいいのかを判断し、それらを組み合わせて利用するためには、仕組みやメリット、デメリットをしっかりと把握しておく必要があります。

「ネットワークのおべんきょしませんか?」では、これからしばらく「SoftEther」の特徴をお伝えしていきたいと思います。

Follow me!