コンシューマー向けのハイエンドルーターでVPNを利用してみた

Router

海外からだと一部のサイトが閲覧できないケースがあります。有名な例をあげれば、中国だとFacebookにアクセスできなかったりします。こうした場合、IT系のエンジニアは考えます。VPNを張ろうって。今回は実家のネットワーク環境の改善をした際に、ハイエンドルーターを導入し、VPNを利用できるようにしてみたので、その時に実施したことをつらつらとまとめてみます。

VPNは、Virtual Private Networkの略です。

Virtualという言葉を「仮想」としてしまうとわかりづらくなってしまうのですが、一言で言ってしまえば、「細かな違いはあるけれども気にしなくてOK。実質的には同じだから」みたいな意味と捉えるといいかと思っています。

Private Networkというのは、「専用線」というやつです。要するに、糸電話みたいに、通信するときに、特定の二者間だけのために専用に線を引いたものを指しています。こうすると、断線しない限り確実に通信できるし、通信品質も自分達以外に利用している人がいないため、一定の水準が保証されます。

まとめると、VPNというのは、実質的には専用線と同じように機能する仕組みとなります。

VPNを利用すると、接続先のVPNサーバーからインターネットに接続することができます。つまり、自分がどこにいようとも、VPNサーバーさえ日本にあれば、VPNサーバーを経由することで日本からアクセスしていることにできるのです。海外からアクセスすると、海外のネットワーク上にあるファイアーウォールで接続をブロックされることがあります:

foreign_network

これではアクセス出来ないので、日本にあるVPNサーバーに接続してあげることで、こんな感じで接続できるようになります:

vpn_connection

海外のネットワークでブロックされるところを、うまいこと回避できてしまうわけです。Virtualな部分を強調すると、本当は上の画像の経路で接続しているのですが、こんな風にあたかも接続しているように振る舞います:

vpn_connection2

ハイエンドルーターを導入する前はこのようなネットワーク図でした。よく考えたら、ADSLルーターだから、ここを普通のルーターに置き換えることはできませんでした。。。:

before_001

導入後はこのような形になりました:

after_001

基本的にはほとんどやることはありません。買ってきたルーターでVPN機能を有効にしてあげました。

考慮しなければいけなかったのは以下の点です:

problems

①については、プロバイダーと契約するときに固定IPアドレスを取得していなければ、不定期に外部からアクセスするときのIPアドレスが変更されてしまいます。勝手に変更されてしまうと、外部からアクセスできなくなってしまうので、DDNSという仕組みを利用してあげます。DDNSというのは簡単に言うと、IPアドレスに名前をつけてあげて(例えば www.google.com とかね)、IPアドレスの変更を検知したら、名前に紐づくIPアドレスを変更してあげる仕組みです。名前は常に同じだけれども、紐づくIPアドレスは常に更新されるため、一見固定IPアドレスにしているように見せる仕組みです。PCが起動した時に更新するようにしておきました。詳細はDDNSとか、DiCEでググってください。

②については、ADSLルーターのDHCPサーバーの設定を変更してあげて、購入したルーターに常に同じIPアドレスを割り振るようにしました。

最後に、ADSLルーターのインターネット側からVPN関連のアクセスが有った際に、購入したルーターにNAT(=転送)する設定を入れてあげて、設定を終えました。

problems_002

手元のiPhoneで接続確認してみました。まずはVPN接続する前のグローバルIPアドレスを確認します:

Recently Added-28

この状態でVPN接続してみます:

All Photos-56

つながりました。小さく「VPN」と表示されてることに注目:

All Photos-58

この状態でグローバルIPアドレスを確認します:

Recently Added-27

実家から接続している状態になっているわけですから、当然ながらグローバルIPアドレスが変わっています!