2011年8月8日月曜日

海外のVPNとかVPSとか

いろいろと思うところあって、海外のVPSを借りてVPNを張ってみようとこころみてみました。

ちなみにこの似ている二つの用語、VPSはVirtual Private Serverの略で、仮想的なサーバとなります。ウェブホスティングとことなるのは、OSまるっと借りれるので、構成は大幅に自由になります。(もちろん、リアルではないためにはまった点もあるのですが、こちらは後述)

VPNはVirtual Private Networkでインターネット網の中にトンネルを掘るように専用のネットワークを構築できる技術。例えば家のネットワークに外出先からアクセスしてファイルを取り出そうとしてもいまは困難。また、接続経路のが不安だったりしますが、VPNだといちおう暗号化して、あたかもローカルネットの一台のマシンのように見える技術だったりします。

今回の思うところは、国ごとに異なるサービスの挙動を調べるにあたって、海外のネットワーク経由でアクセスする必要がある、と勝手に考えた訳です。
この場合、もう一つの技術として、proxyという概念がありますが、proxyサーバはなんだか不安でいっぱいでござる、ということで、これに似た構成で、VPNを張ったVPSからネットワークに出て行くようにしました。

1)借りたVPS
海外のVPSサービスというのはいろいろあって、その選定からちょっとどうしたものか、と思ったのですが、ググってみたところ、比較的新しいサービスで、かつ、安価、それにデザインがなんかウケる、ということで、Alian VPSというのを借りました。
http://alienvps.com/
単一目的で使うのでハイスペックなのはいらないし、VZ UFO1という5ドルのプランに。仮想化技術にもいろいろあるのらしいのですが、VZベースで国内サービスを使っていたので、コレでいいやと。でも管理パネルとかわかりやすいし、構成もたくさん選べるので、オススメです。ちなみに、最初は欲張ってメールツールなんかが乗っている構成にしたのですが、yum updateかけただけでメモリ足りまへん、と言い出す始末だったので、素のCentOS5にしました。

2)VPNサービスのインストール
VPNのサービスもいくつが技術があるのですが、いろいろやってみた結果、PPTPに落ち着きました。詳細はいろいろなサイトに乗っていますので割愛しますが、
こちらや
http://dev.halhal.info/archives/158
こちらや
http://d.hatena.ne.jp/nori_no/20100905/1283707909
こちら
http://network.station.ez-net.jp/server/linux/vpn/poptop.asp
をそのままコピペで進めました。感謝です!

ちなみに、個人的に設定を変えたのは、今回のVPSの場所が米国なので 、DNSをgoogle public DNSに向けました。
具体的には、/etc/ppp/options.pptpdにある設定個所で
ms-dns 8.8.8.8
ms-dns 8.8.4.4
としました。今回、VPNで外にでるだけなので、サーバ自体でDNSを走らせる必要はなくなります。(たぶん)

3)iptablesの設定変更

で、ここまで設定して、クライアントにも設定を行ったところ、IPマスカレードなる設定をする必要があるのですが、

iptables -t nat -A POSTROUTING -s 192.168.xxx.xxx/24 -j MASQUERADE


といったことができない。なんでだろうと調べてみますと、VZベースの仮想化の場合、MASQUERADEが使えないらしい、ということ。
そこでググってみますと、

-A POSTROUTING -o venet0 -j SNAT --to-source XXX.XXX.XXX.XXX(VPSのグローバルIPアドレス)

という事で代用できるらしい。とうことで、こちらを設定。

4)iPhoneとiPadがどうもへん
さらに自宅の中の無線LANルーターがVPNパススルーになって無くてつながらなかったりなどがあったのですが、どうにかこうにかつながるようになりました、と。
しかしながら、やっぱり謎が挙動が残っており、iPhoneやiPadだと、単独でつながることができない。MacやAndroidであれば、単独でつながりにいって問題ないのですがiPhoenやiPadの場合、同じWifi環境下のMacがつながった状態からでないと、つながらない。3G回線も同様の挙動。Androidは3G回線下で問題ない。

とはいえ、海外のアクセスポイントからネットの挙動を確認するという所期の目標は達する事ができたので、よしとしています。ググってみると、どうもiPhoneやiPadが悪いんじゃないか説もあるみたいなので、ちょっと様子を見たいとおもいます。動きがあったら再度チャレンジ。さて、CBSのドラマでも、、、


※追記
ちなみに、なんですが、サーバが海外にあるにも関わらず、どうやらgoogleの検索は日本で使うよりも早いかも、とも思います。というのも、ブラウザはSafariを使っていて、google検索がどうしても英語でしかできなくてそのままにしているんですが、海外のサーバを参照しにいく場合、いちいち日本から聞きにいくよりも、VPNで直で張ったところからgoogleDNSを解した方が名前解決と検索クエリの戻りが早いんではなかろうかと推察できます。当然、そっから先きは遅いんですがね。


※追記 2011/11/05
ふと思い出して、iOS5にしたiPad, iPhone4sで接続してみました。基本、前と同じ設定でやってみましたが、なんとするりと接続できました。なんだろう、謎。
androidはもともとちゃんとつながっていたので、iOS4 のばぐたったんでしょうかねぇ?

0 件のコメント:

コメントを投稿