VPN – PPTP と L2TP over IPSec

先日、Mac OS Xで常時VPN接続を実現するAppleScriptを紹介してみました。(こちらのエントリー

その後暫くシンガポールと日本のMac mini同士の接続状況(日本側がMac mini ServerでMac OS X ServerのVPNサーバーを利用)を監視してみましたが、引っ越した先のWiFiネットワークが非常に不安定で、30分〜1時間に1度ネットワーク接続が途切れてVPNも切断されてしまっている事が分かってきました。大きなファイルをrsyncコマンドで転送しているとVPNが切断されたタイミングで転送も停止してしまい、rsyncでのファイル転送を再開する別のAppleScriptがcrontabのスケジュールで動作するまで転送が止まってしまいます。あまりにも効率が悪く、折角(なるべく)常時VPN接続が保たれる様に工夫した効果を得られずにいました。

何か工夫出来ないかとシステム環境設定のネットワークVPN設定を見ていて、何気なく現在のPPTPからL2TP over IPSecに変更したら変化があるか気になり試してみました。

Mac OS X - VPN configuration Mac OS X - VPN configuration

 

ネットワークの画面で新しい接続を作成する際(+ボタンを押した際)にVPNを選択するとプロトコルが選べるので、L2TP over IPSecで新たに接続を作成して試してみました。

その結果、明らかに改善が認められました。WiFi接続(メインのアクセスポイントからLinksys RE1000 WiFi Range Expanderまでの接続)が切断されたときに、PPTPの場合は数秒でVPN接続も切断されていましたが、L2TPの場合は10秒〜数十秒通信出来ていない状態が続いても切断される事が無い様です。PPTPを用いていた時は1時間接続状態が保たれていれば良い方でしたが、L2TPに変更してから既に2時間以上切断されなくなりました。

この設定で暫く様子を見てみようと思います。

参考リンク:

AppleScript で VPN の常時接続を実現

ウチは以前からシンガポールに置いてあるMac miniと日本の実家に置いてあるMac mini server間でVPN接続を張り、ファイル転送やサーバーの管理を行っています。

引っ越す前は時々CATVインターネット接続が不安定で数日に一度程度、そして引っ越し後はCATVモデム(WiFiアクセスポイント)からウチの部屋に設置したLinksys RE1000までの接続がまだ時々不安定で時々、VPN接続が切れてしまいます。必ず常時接続されていないと困る訳でもないのですが比較的大きなファイルのやり取りをしている為、転送中にVPNが切断されるとやり直しになったり、期待していたファイルが同期されていなかったりと些か不便を感じていました。

という事で少し調べてみたところ、AppleScriptを使って常にVPNの接続状態を監視、接続されていなかった場合は接続するというスクリプトがありましたので試してみました。紹介してみます。

スクリプト本体

on idle
tell application "System Events"
tell current location of network preferences
set myConnection to the service "VPN_Connection"
if myConnection is not null then
if current configuration of myConnection is not connected then
connect myConnection
end if
end if
end tell
return 30
end tell
end idle

AppleScript Editorを起動してスクリプトを記述します。
なお、4行目の”VPN_Connection”の部分の””でくくられた中は、その環境に設定したVPN接続の名称で置き換えます。
そして最後から3行目のreturn 30は、何秒毎に接続状態を監視するかの設定です。

保存する際はFile FormatをApplication、そしてOptionのStay open after run handlerのチェックを入れておきます。
こうする事で、保存されたファイルをダブルクリックするとアプリケーションとして動作し且つ常に動作し続ける様になります。

VPN connection AppleScriptVPN connection AppleScript

早速起動してみるとVPN接続が切断されていれば自動的に再接続する事が分かります。
意図的にVPN接続を切断してみると約30秒以内に再接続が始まります。

VPN connection AppleScript VPN connection AppleScript

 

このままだとDockにアプリケーションアイコンが表示されてしまい少し邪魔と感じるかもしれません。
そんな場合は保存したアプリケーションアイコンを右クリック、Show Package ContentsをクリックしContentsフォルダ内のInfo.plistをXcode等で開きます。

VPN connection AppleScript VPN connection AppleScript

 

そしてXcodeのEditorメニューからAddを選択して「Application is agent (UIElement)」Keyを追加した上で値をYESに設定します。

VPN connection AppleScript VPN connection AppleScript

 

この設定を済ませる事でアプリケーションが起動していてもDockにアイコンが表示されなくなります。
後はログイン時の起動項目にこのアプリケーションを追加しておけば、Mac OS Xの起動とともにVPNに自動的に接続され、その接続状態を監視、切断時には自動的に再接続してくれる様になります。

参考リンク:

Google Voiceへの招待状

随分前に申し込んだGoogle Voice。今日、突然Googleからのメールが来たので見てみるとSubjectが

You’ve been invited to Google Voice

ですって。なんとGoogle Voiceが日本でもサービス提供開始かと思い、早速開いてみると。

なるほど、一応「招待状」という事になっている訳で、招待を受けるにはメールに記述されているURLへアクセスせよとの事。では早速アクセスしてみると…

ダメじゃないですか。

そもそもGoogle Voiceが日本でサービスを始めたというニュースを一度も見た事が無い訳で、まだアメリカ合衆国内だけでのサービス提供の状態。ちょっと残念だったので、アメリカの無料VPNサービスを経由してアクセスしてセットアップし、Google numberも入手しましたがアメリカ国内の電話番号を持っていないとセットアップを完了出来ないため結局頓挫。

興味本位で申し込んだGoogle Voice、申し込んだ事すら忘れていた位なので重要性は低いのですが、いずれ日本国内でサービス提供が開始されたら試してみたいものです。

それ以上に今気になっているのはSkypeの3Gネットワーク上での通話。先日のSkype for iPhoneバージョンアップ以来、3G接続時であっても音声通話が出来る様になりました。2010年8月末までは無料でその後は有料になる様ですが、価格によってはとても魅力的です。iOS 4がリリースされればマルチタスクがサポートされ、Skypeの着信を待つ事が出来る様になればかなり使い道が広がる気がします。