VPN についてざっくり説明してみる

さて、海外に住んでいると避けては通れない話題である VPN ですが、色々な要素があって一言で説明するのがちょっと難しく、ちょっくら記事にして解説してみます。

海外あるある

よく TVer や日本版 Hulu などの動画サイトを海外から視ると、「日本国内じゃないと見られませんよ!」等の警告が出て動画が視聴できないことがままあります。これらのサイトは、訪れるユーザーの IP アドレスが海外のものだと日本国内にいないと見做してブロックするようです。ということは日本国内からアクセスすればよいわけで、それを海外にいながら実現する技術の1つが VPN です。

VPN とは

誤解を恐れずに短くまとめてみると「インターネット上の2つのコンピューターを仮想的な専用回線で結ぶ技術の総称」でしょうか。

インターネットは基本的に誰でも参加自由なネットワークで、いろいろな端末が相互につながり、その端末同士がつながったネットワーク上をパケットと呼ばれるデータが行き来しています。その経路の途中にある端末ではパケットの中身を見ることができます。つまり、基本的にインターネット上での通信は盗み見放題ということになります。

盗み見されないようにする対策の1つは、色々な端末を経由してしまうインターネットでなく、専用回線を使って端末同士を直に結んでデータをやりとりすることです。これならデータを盗み見されませんが、その代わりつなぐ端末や拠点の数だけ専用回線を引く必要があり、お金も時間もかかります。

なんとかインターネットを使って、専用回線と同じような秘匿性を確保できないものか。それを実現する通信技術の1つが VPN です。

VPN のしくみ

VPN とは基本的には、プロトコル(通信する際の手順)のことです。2つのコンピューターの間で VPN を設定すると、そのコンピューター同士は定められた手順に沿って通信を暗号化し、インターネット経由でデータを送受信します。

パケットを中身丸見えのハガキだとすると、 VPN はパケットを封筒で包み込んだり(カプセル化)、文章を読めなくしたり(暗号化)して中身を見られないようにデータを届けます。

封筒の書式や暗号化の手順を定めた VPN のプロトコルには様々な種類があります。パケットの中身は「暗号化して封筒に入れた端末」とそれを受信して「封筒から出して復号化」した端末にしか見えないことになっています。

よく使われる VPN

世間でよく使われる VPN は、用途別にざっくり分類すると次の3種類です。

  • リモートアクセス VPN
  • 拠点間 VPN
  • メッシュ VPN
リモートアクセス VPN
iPhone や MacBook にをクライアントとして、会社や自宅にある VPN サーバーに接続し、その接続先のネットワークにリモートアクセスするための VPN です。インターネットへの接続方法を VPN 接続先からにすることができ、そのため地域制限がかかっていて観られないサイトを観られるようにすることもできます。
拠点間 VPN
自宅や会社のルーターや VPN サーバー同士をつなぎ、離れたネットワーク同士が相互にアクセスできるようにする VPN です。ネットワーク内にいる iPhone や MacBook は何の設定をしなくてもルーターの設定によって VPN 経由で離れたネットーワークにアクセスしたり、地域制限のかかったサイトを離れたネーとワーク経由で観られるようにしたりできます。
メッシュ VPN
iPhone や MacBook やルーターにインストールし、その端末同士が相互にアクセスできるメッシュネットワークをつくる VPN です。複雑なファイアウォールやルーティングの設定をせず、ソフトウェアをインストールするだけで、様々な端末が同一のネットワークにいるかのように使えます。

Tailscale のようにリモートアクセス・拠点間風に使えるように設定できるものもありますが、基本的には端末同士で1:1にアクセスする用途に使います。

VPN のレイヤー

また VPN には、 OSI 参照モデルの第2層 ( データリンク層=レイヤー2 ) を扱えるものと、第3層 ( ネットワーク層=レイヤー3 ) を扱えるものがあります。

レイヤー2 VPN
レイヤー2のプロトコルを送受信できる VPN です。

レイヤー2のプロトコルは Ethernet / AppleTalk / ATM などがあります。レイヤー2 VPN では Ethernet のフレームをそのまま VPN 経由で送受信できるので、 Ethernet が扱えるプロトコルならなんでも、例えばマルチキャスト、 AirPlay / Bonjour 、 DLNA / SSDP 、なんかも送受信できます。

ただしこの Ethernet を丸ごと送るためには VPN インターフェースと端末の Ethernet インターフェースをブリッジ接続する必要があります。ブリッジ接続しないで使うと、単なるレイヤー3 VPN になってしまいます。

ちなみにレイヤー2のプロトコルを扱うハードウェアは、スイッチングハブです。

レイヤー3 VPN
レイヤー3のプロトコルを送受信できる VPN です。レイヤー3のプロトコルは IPv4 / IPv6 などが挙げられます。つまりレイヤー3 VPN は IPv4 / IPv6 ベースのパケットを送受信します。逆に言えば、 IP アドレスベースでないプロトコルは送受信することができません。

ちなみにレイヤー3のプロトコルを扱うハードウェアは、ルーターです。

レイヤー5 VPN
俗に SSL-VPN と呼ばれる VPN で、いくつかの方式がありますが、乱暴に言うと大体が SSL を使って http / https を送受信する VPN です。企業のイントラネット等にアクセスする用途が殆どなので、この記事では取り上げません。

VPN のプロトコル

VPN には様々なプロトコルがあります。ここで主なものを挙げてみます。

iPhone ではテーブルがスクロールできます

プロトコル レイヤー リモート
アクセス
拠点間 メッシュ 暗号化
L2TP 大体3 可能 しない なし なし
PPTP 可能 しない なし なし
OpenVPN 2・3 可能 可能 なし あり
IPsec IKEv2 可能 なし あり
GRE 大体3 なし 可能 なし なし
L2TPv3 2・3 なし 可能 なし なし
SoftEther 2・3 可能 可能 なし あり
WireGuard 可能 可能 なし あり
Zerotier なし なし メッシュ あり
Tailscale 可能 可能 メッシュ あり
Nebula メッシュ あり

わりとレイヤー2対応のものが多く見えますが、実装がレイヤー2対応になっていない(つまりブリッジ接続を使っていない)と送受信できるのはレイヤー3のみになってしまいます。

我々がよく目にする VPN は殆どの場合レイヤー3のリモートアクセス VPN です。外出先から、家のパソコンに置いてあるファイルを見たり、また地域制限のかかったサイトにリモートアクセス先からアクセスすることで、他の地域から観られないコンテンツを観たりするのに使います。

この場合の会社や家には VPN サーバーと呼ばれる VPN 接続を受け付ける端末があり、そこに VPN プロトコルを使える VPN クライアントがインストールされた端末、つまりは我々が使う iPhone や MacBook が接続します。

一度 VPN で接続すると、あたかもその会社にいるかのように会社内のネットワークの他の端末と通信できるようになります。実際にはインターネット経由の通信なんですが、まるで自分の iPhone から会社まで仮想的な専用回線が引かれ、会社のネットワークが自分の iPhone まで延長したかのようです。これが VPN = Virtual Private Network と呼ばれる所以です。

ここからは基本的にリモートアクセス VPN についてお話しします。

リモートアクセス VPN でできること

VPN を使うと様々なことができます。

リモートアクセス
先ほど述べた、会社や家庭内ネットワークに外からアクセスすることです。そりゃリモートアクセス VPN なんだからリモートアクセスできてなんぼですよね。会社内からしかアクセスできないファイルサーバーやメールサーバー、はたまた自宅のパソコンに保存してあるデータにアクセスできたりします。
フリー WiFi での通信の暗号化
空港やカフェによくあるパスワードのないフリー WiFi は、その WiFi につながっている人なら誰でも通信が盗み見できてしまいます。フリー WiFi に接続したあと VPN を接続して通信を暗号化することで、盗み見されないようになります。ちなみにフリー WiFi を使っていても、たとえばアクセスしてるサイトが https:// で始まるサイトであればそのサイトとの通信は暗号化しているので大丈夫ではあります。ただしサイトが http:// で始まる場合は丸見えです。
地域制限のあるサイトにアクセス
VPN 経由で Web サイトにアクセスすると、その Web サイトからは VPN サーバーのある端末からアクセスされているように見えます。なので、 VPN サーバーが日本にあれば、日本でしか見られないような地域制限のあるサイトも、 VPN 経由で他の国からアクセスできようになります。海外に住んでいると重宝します。
中国から Twitter を使う
中国では国営の大規模なファイアーウォールによって、欧米の Google や Twitter 等のサイトが遮断されています。が、 VPN を使うことによって、 VPN サーバー経由でそれらのサイトにアクセスできるようになります。ファイアーウォールを通過するパケットは暗号化されており、 Twitter 宛の通信とはわからないため、通信が遮断されないのです。ただ中国では商用 VPN サービスも遮断されいるので、実家や自宅に VPN サーバーを置いて使う方がオススメです。

よく使われるプロトコル

Mac や iPhone で使えるもっとも一般的なリモートアクセス VPN プロトコルは L2TP / IPsec です。 L2TP はパケットのカプセル化、 IPsec はパケットの暗号化を行いますが、大抵両方組み合わせて使います。家庭用の WiFi ルーターで「 L2TP 対応」と書いてある場合は、 L2TP / IPsec 対応です。 L2TP と一緒に使う場合の IPsec は Transport Mode で、 L2TP トンネルを暗号化します。

ちなみに L2TP は Layer 2 Tunneling Protocol の略ですが、さっきレイヤー3 VPN だって言ってたのに何でレイヤー2って名前なの?と思ったアナタ、鋭いです。実は L2TP はレイヤー2対応の VPN プロトコルです。しかし大体の場合 VPN サーバーでの実装がブリッジ接続を使わないものになっています。ブリッジ接続がない場合、その VPN トンネルは Ethernet フレームを送受信できず、送受信できるのはレイヤー3ベースの IP プロトコルになります。なので大抵の場合、 L2TP で送受信できるのは IP ベースの通信になります。

ちなみに VPN プロトコルは他にも色々あります。

参考:様々なVPNの比較(IPsec-VPN,SSL-VPN)

リモートアクセス VPN の始め方

さて色々種類があって難しそうに見える VPN ですが、始めるのはそんなに難しくありません。たった2つのもの、つまり VPN サーバーと VPN クライアントがあればオーケーです。そしてきょうび無料のオプションがたくさんあります。

VPN クライアント

VPN クライアントは大抵の MaciPhone に内蔵されています。なので VPN クライアントに困ることはないでしょう。

ちなみに VPN を使用している時は、インターネットへのアクセスがすべて VPN サーバー経由となるので、通信速度が遅くなります。なので必要ない場合は VPN はオフにしておいたほうがよいです。

また Apple TV や PS4 など VPN クライアントを内蔵していない端末で VPN を使いたい場合は、 Mac で VPN に接続しそれをインターネット共有する、ルーターで拠点間 VPN を設定し自宅内 LAN 端末すべてから VPN が使えるようにする、等の必要があります。

VPN サーバー

我々一般人に使える VPN サーバーは、以下のようなものがあります。

VPN 機能つき WiFi ルーター ふつう
家電量販店で買える WiFi ルーターですが、 VPN サーバーが備わっているものがたくさんあります。日本の実家に置けばそれだけで 24 時間使える自分専用の VPN サーバーができあがりです。もちろん WiFi ルーター代はかかりますが、実家に置いてあるルーターが VPN サーバーなので、 VPN を使うにあたって月額料金はかかりません。

L2TP/IPsec と無料の DDNS に両対応しているのはアイ・オー・データかバッファローのようです。もちろん EdgeRouter X も VPN サーバー内蔵です。

これも WiFi ルーターですが、 Teleport という設定が簡単な VPN クライアントアプリが使えます。 DDNS やポート転送等の設定が不要で、たぶん 2019 年でもっとも簡単に VPN が使えるルーターです。
ちなみにどれくらい簡単かセットアップ試してみました。
Amplifi を試してみた
Softether VPN ふつう
無料の超高機能ソフトウェア VPN サーバーです。実家に置いてあるパソコンにインストールすれば、そのパソコンが VPN サーバーになります。どんな環境下でも絶対に VPN を接続するという強い意志のもと接続を容易にするあらゆる機能を搭載し、すべて無料という恐ろしいソフトウェアです。 Windows でサーバーを設定する場合の簡単さとつながり易さは他の追従を許しません。

「 SoftEther 」という独自のプロトコルだけでなく、 L2TP や OpenVPN 、 SSTP 等にも対応しています。 DDNS は内蔵していますが、実家のルーターでポート転送を設定する必要があります。
自宅PCにL2TP/IPSecでアクセスする「SoftEther VPN」(1) インストール編

お金を払って VPN サーバーを使わせてもらうサービスです。サーバーは世界中に置いてあり、もちろん日本のサーバーを選ぶこともできます。ポート転送や DDNS を機にする必要もなく、サイトの説明の通りクライアントを設定するか、アプリをインストールすれば大抵すんなりつながります。

最近は Netflix や Hulu はこういう商用 VPN サーバーを軒並みブロックしています。なので、日本の Netflix や Hulu が観たい場合には使えません。ただし、インターリンクのマイ IP SoftEther 版は 2019 年4月時点ではまだブロックされてませんでした。

筑波大学と SoftEther が学術目的で公開している無料 VPN サーバーです。速度は遅く混んでいることが多いようです。たぶん Netflix や Hulu はブロックされていると思います。クライアントの設定をするだけですぐ使えるので、ともかくすぐに VPN を試してみたい人にはオススメです。

あ、ちなみにこれ以外の無料 VPN サービスはほぼすべてユーザーデータを売って商売していると思ってもらって間違い無いと思います。

VPS にインストール むずかしい
AWSGCP などの VPS に VPN サーバーをインストールして使います。ちなみに SoftEtherAlgo 等いろんなソフトウェアがあり、ネット上にノウハウもたくさんあります。ただ主要 VPS は Netflix などにはブロックされてます。そして毎月 VPS の維持費がかかります。
Raspberry Pi むずかしい
ラズパイに VPN サーバーをインストールして実家に置いて使います。上級者向けですし、基本的には VPN 内蔵ルーターを実家に置いた方がいいと思います。

実家 VPN サーバーに必要なこと

さて VPN サーバーを実家に置いて使うにはいくつか設定しなければならないことがあります。ここが商用 VPN サーバーに比べて面倒ですが、1回設定してしまえば終わりです。

ダイナミック DNS の略です。

インターネットでのパケットの送受信は IP アドレスという住所に基づいて行われます。 VPN の設定を行うときも、基本的には VPN のサーバーの IP アドレスが必要です。ただ IP アドレスは数字の羅列で覚えにくいので、インターネットでは DNS という仕組みを利用して、「 www.google.com = 217.160.0.201 」というように、 IP アドレスをもう少し覚えやすい文字列に紐づけています。

家庭用のインターネットでは、 IP アドレスはプロバイダーから動的に割り当てられることが多く、ルーターの再起動等で変わってしまいます。 VPN サーバーの IP アドレスが変わると VPN の設定を変えなければいけません。

これを解決するのが DDNS で、プロバイダーから割り当てられる IP アドレスを特定のドメイン名(123456.ddns.com 等)として登録し、 IP アドレスが変わると自動的にドメイン名に紐つけられた IP アドレスを更新します。

私がよく使うのは、 Duck DNSCloudFlare です。

VPN 内蔵ルーターでは対応しているものが多いですが、有料のものと無料のものがあります。また SoftEther は 無料 DDNS を内蔵しています。 AmpliFi はアプリでペアリングするため必要ないです。

ポート転送
SoftEther を PC にインストールして使う場合など、ルーターと VPS サーバーが別な時に必要な設定です。インターネットからルーターに届いたパケットを、プロトコル(ポート番号)に応じて、ルーターの配下にいる VPN サーバーがインストールされている端末(の IP アドレス)に転送します。

例えば L2TP / IPsec であれば下記のポート転送が必要です。

UDP 1701 (L2TP)
UDP 500 (IPsec ISAKMP)
UDP 4500 (IPsec NAT-T)

SoftEther では内蔵の VPN Azure を使えば不要です。 AmpliFi はUPnP などを駆使するので大抵の場合不要です。

ルーターのファイアウォールで、先ほどのポート番号を解放します。家電量販店で買える VPN 内蔵 WiFi ルーターは多分自動で設定してくれるんではないかと思いますが、マニュアルをご確認ください。

SoftEther では内蔵の VPN Azure を使えば不要です。 AmpliFi はUPnP などを駆使するので大抵の場合不要です。

比べてみると

というわけで恒例の機能比較してみます。インターネットの回線品質の影響とか細かいことは考えずに見てください。

iPhone ではテーブルがスクロールできます

初期
投資
月額 設定 DDNS ポート
転送
速度 Netflix デザイン
VPN 内蔵ルーター あり なし 普通 あり 不要 遅め OK ダサい
EdgeRouter あり なし 難しい あり 不要 速め OK 普通
AmpliFi あり なし 簡単 不要 不要 速め OK 良い
SoftEther なし なし 普通 内蔵 内蔵 速め OK ダサい
商用サーバー なし あり 簡単 不要 不要 速め ダメ 普通
無料公開サーバー なし なし 簡単 不要 不要 遅め ダメ
VPS なし あり 難しい 不要 不要 速め ダメ
Pi あり なし 難しい あり 必要 遅め OK 普通

まったくお金をかけたくない場合は SoftEther 、簡単なのがよければ AmpliFi 、入手性が重要であれば家庭用 VPN 内蔵 WiFi ルーターがおすすめかなと思います。

おわりに

いかがでしたでしょうか。微に入り細を穿ってマニアックな説明をしたくなるのをグッと堪え、なるべく平易な文章を心がけたつもりですが、少しでもお役に立てれば幸いです。

一番言いたかったのは、商用 VPN サービスなんかにお金を払わずとも、もっと簡単に無料でできる方法がたくさんありますよ、ということです。


yabe.jp » Thoughts » VPN についてざっくり説明してみる