さて、海外に住んでいると避けては通れない話題である VPN ですが、色々な要素があって一言で説明するのがちょっと難しく、ちょっくら記事にして解説してみます。
海外あるある
よく TVer や日本版 Hulu などの動画サイトを海外から視ると、「日本国内じゃないと見られませんよ!」等の警告が出て動画が視聴できないことがままあります。これらのサイトは、訪れるユーザーの IP アドレスが海外のものだと日本国内にいないと見做してブロックするようです。ということは日本国内からアクセスすればよいわけで、それを海外にいながら実現する技術の1つが VPN です。
VPN とは
誤解を恐れずに短くまとめてみると「インターネット上の2つのコンピューターを仮想的な専用回線で結ぶ技術の総称」でしょうか。
盗み見されないようにする対策の1つは、色々な端末を経由してしまうインターネットでなく、専用回線を使って端末同士を直に結んでデータをやりとりすることです。これならデータを盗み見されませんが、その代わりつなぐ端末や拠点の数だけ専用回線を引く必要があり、お金も時間もかかります。
なんとかインターネットを使って、専用回線と同じような秘匿性を確保できないものか。それを実現する通信技術の1つが VPN です。
VPN のしくみ
VPN とは基本的には、プロトコル(通信する際の手順)のことです。2つのコンピューターの間で VPN を設定すると、そのコンピューター同士は定められた手順に沿って通信を暗号化し、インターネット経由でデータを送受信します。
封筒の書式や暗号化の手順を定めた VPN のプロトコルには様々な種類があります。パケットの中身は「暗号化して封筒に入れた端末」とそれを受信して「封筒から出して復号化」した端末にしか見えないことになっています。
よく使われる VPN
世間でよく使われる VPN は、用途別にざっくり分類すると次の3種類です。
- リモートアクセス VPN
- 拠点間 VPN
- メッシュ VPN
Tailscale のようにリモートアクセス・拠点間風に使えるように設定できるものもありますが、基本的には端末同士で1:1にアクセスする用途に使います。
VPN のレイヤー
また VPN には、 OSI 参照モデルの第2層 ( データリンク層=レイヤー2 ) を扱えるものと、第3層 ( ネットワーク層=レイヤー3 ) を扱えるものがあります。
レイヤー2のプロトコルは Ethernet / AppleTalk / ATM などがあります。レイヤー2 VPN では Ethernet のフレームをそのまま VPN 経由で送受信できるので、 Ethernet が扱えるプロトコルならなんでも、例えばマルチキャスト、 AirPlay / Bonjour 、 DLNA / SSDP 、なんかも送受信できます。
ただしこの Ethernet を丸ごと送るためには VPN インターフェースと端末の Ethernet インターフェースをブリッジ接続する必要があります。ブリッジ接続しないで使うと、単なるレイヤー3 VPN になってしまいます。
ちなみにレイヤー2のプロトコルを扱うハードウェアは、スイッチングハブです。
ちなみにレイヤー3のプロトコルを扱うハードウェアは、ルーターです。
VPN のプロトコル
VPN には様々なプロトコルがあります。ここで主なものを挙げてみます。
iPhone ではテーブルがスクロールできます
プロトコル | レイヤー | リモート アクセス |
拠点間 | メッシュ | 暗号化 |
---|---|---|---|---|---|
L2TP | 大体3 | 可能 | しない | なし | なし |
PPTP | 3 | 可能 | しない | なし | なし |
OpenVPN | 2・3 | 可能 | 可能 | なし | あり |
IPsec | 3 | IKEv2 | 可能 | なし | あり |
GRE | 大体3 | なし | 可能 | なし | なし |
L2TPv3 | 2・3 | なし | 可能 | なし | なし |
SoftEther | 2・3 | 可能 | 可能 | なし | あり |
WireGuard | 3 | 可能 | 可能 | なし | あり |
Zerotier | 2 | なし | なし | メッシュ | あり |
Tailscale | 3 | 可能 | 可能 | メッシュ | あり |
Nebula | 3 | ? | ? | メッシュ | あり |
わりとレイヤー2対応のものが多く見えますが、実装がレイヤー2対応になっていない(つまりブリッジ接続を使っていない)と送受信できるのはレイヤー3のみになってしまいます。
我々がよく目にする VPN は殆どの場合レイヤー3のリモートアクセス VPN です。外出先から、家のパソコンに置いてあるファイルを見たり、また地域制限のかかったサイトにリモートアクセス先からアクセスすることで、他の地域から観られないコンテンツを観たりするのに使います。
一度 VPN で接続すると、あたかもその会社にいるかのように会社内のネットワークの他の端末と通信できるようになります。実際にはインターネット経由の通信なんですが、まるで自分の iPhone から会社まで仮想的な専用回線が引かれ、会社のネットワークが自分の iPhone まで延長したかのようです。これが VPN = Virtual Private Network と呼ばれる所以です。
ここからは基本的にリモートアクセス VPN についてお話しします。
リモートアクセス 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 クライアントは大抵の Mac や iPhone に内蔵されています。なので VPN クライアントに困ることはないでしょう。
また Apple TV や PS4 など VPN クライアントを内蔵していない端末で VPN を使いたい場合は、 Mac で VPN に接続しそれをインターネット共有する、ルーターで拠点間 VPN を設定し自宅内 LAN 端末すべてから VPN が使えるようにする、等の必要があります。
VPN サーバー
我々一般人に使える VPN サーバーは、以下のようなものがあります。
L2TP/IPsec と無料の DDNS に両対応しているのはアイ・オー・データかバッファローのようです。もちろん EdgeRouter X も VPN サーバー内蔵です。
ちなみにどれくらい簡単かセットアップ試してみました。
Amplifi を試してみた
「 SoftEther 」という独自のプロトコルだけでなく、 L2TP や OpenVPN 、 SSTP 等にも対応しています。 DDNS は内蔵していますが、実家のルーターでポート転送を設定する必要があります。
自宅PCにL2TP/IPSecでアクセスする「SoftEther VPN」(1) インストール編
最近は Netflix や Hulu はこういう商用 VPN サーバーを軒並みブロックしています。なので、日本の Netflix や Hulu が観たい場合には使えません。ただし、インターリンクのマイ IP SoftEther 版は 2019 年4月時点ではまだブロックされてませんでした。
あ、ちなみにこれ以外の無料 VPN サービスはほぼすべてユーザーデータを売って商売していると思ってもらって間違い無いと思います。
実家 VPN サーバーに必要なこと
さて VPN サーバーを実家に置いて使うにはいくつか設定しなければならないことがあります。ここが商用 VPN サーバーに比べて面倒ですが、1回設定してしまえば終わりです。
インターネットでのパケットの送受信は 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 DNS や CloudFlare です。
VPN 内蔵ルーターでは対応しているものが多いですが、有料のものと無料のものがあります。また SoftEther は 無料 DDNS を内蔵しています。 AmpliFi はアプリでペアリングするため必要ないです。
例えば L2TP / IPsec であれば下記のポート転送が必要です。
UDP 1701 (L2TP)
UDP 500 (IPsec ISAKMP)
UDP 4500 (IPsec NAT-T)
SoftEther では内蔵の VPN Azure を使えば不要です。 AmpliFi はUPnP などを駆使するので大抵の場合不要です。
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 »