GCE VPNのα版が公開されました。α版のためGoogleに申請し許可制ですが、取り急ぎ性能テストをしてみました。
https://cloud.google.com/compute/docs/vpn
仕様
価格
- α版ではVPNに関する課金はない
- 本稼働後の値段はまだ公開されていない
VPNの種類、制限
- IPsecのESPトンネルモード
- サイト間VPNをサポートし、ポイント対サイトVPNは構築できない
- 鍵交換にはIKEv1とIKEv2をサポート
- IKEフェーズ1ではPSK(Pre-Shared Key)認証方式のみを採用
- ゲートウェイのリージョンは、us-central1,europe-west1,asia-east1のみ
- ゲートウェイにつながる仮想マシンは、ゲートウェイと同じリージョンでないといけない
VPNの構築
今回は以下のようなネットワークを構築し、Windows Serverの共有ファイルにRHELからVPN経由でアクセスできるか試しました。
環境 | リージョン | マシンタイプ | OS |
---|---|---|---|
GCE | asia-east-c | n1-standard-1 | Windows Server 2008 R2 |
EC2 | ap-northeast-1c | m3.medium | RHEL-6.6 |
α版ではサイト間VPNのみに対応しておりVPNゲートウェイには静的IPが必須であるため、NATの背後にあるPCではVPNが構築できません。社内のPCがNATの背後にあり、かつ、VPNゲートウェイの機器をすぐには用意できなかったため、相手側のゲートウェイとしてとりあえずAWSを利用しました。
UIを使った構築手順を以下に示します。
1.事前準備
まず、α版のためGoogleサポートへGCE VPNを利用する許可をもらう必要があります。その際、許可される静的なIPアドレスを予約する必要があり、それがVPNゲートウェイのIPとなります。
次に、相手側のVPNの構築をしておきます。IKEv1またはIKEv2に対応する機器を利用し、設定は下記を参考にして下さい。
設定項目 | 値 |
---|---|
IPsecモード | ESPトンネルモード |
IKEフェーズ1の認証方式 | PSK(Pre-Shared Key) |
PSKの値 | 第三者に知られないよう強固なkeyを設定して下さい。 ※Google側のVPN構築でも同じ値を設定します。 |
開始タイミング | オート(接続が切れた際、ただちに再接続を試みるようにしてください。) |
PFS (Perfect Forward Secrecy) | オン |
DPD (Dead Peer Detection) | オンに設定することを推奨します。 |
INITIAL_CONTACT(uniqueidsとも呼ばれます) | オンに設定することを推奨します。 |
※以下の設定は、IKEv1の機器の場合です。 | |
IKE/ISAKMP | aes128-sha1-modp1024 |
ESP | aes128-sha1 |
PFS Algorithm | Group 2 (MODP_1024) |
2.GCE側のネットワーク作成
Google Developers Consoleを開き、メニューでネットワークを選択します。
相手側のCIDRと範囲が被らないようにGCE側のCIDRを設定してください。
3.VPN作成
Googleから許可を得るとメニューにVPNが表示されるようになります。
ここからVPNを作成します。
重要な項目について説明します。
- ネットワーク
2で作成したネットワークを選んで下さい。 - 地域、IPアドレス
用意した静的IPアドレスを選んで下さい。 - トンネル
相手側のVPNの設定をします。α版では10個まで作成できます。- ピアIPアドレス
相手側のVPNゲートウェイのIPアドレスを設定して下さい。 - IKEバージョン
相手側のVPNが対応しているバージョンを選んで下さい。
GoogleはIKEv2を勧めています。 - SHARED SECRET
相手側のVPN構築時と同じKeyを入力して下さい。 - リモートネットワークIPの範囲
相手側のCIDRを入力して下さい。2で作成したネットワークとは被らないようにして下さい。
- ピアIPアドレス
作成後、VPNの一覧画面に追加されます。
自動的に相手側と接続しようと試み、上手く接続できると、ピアIPアドレスの左側に成功のマークが表示されます。
4.Windows Serverインスタンスの構築
こちらの記事を参考にインスタンスを構築して下さい。
ただし、ネットワークは2で作成したものを設定する必要があります。
また今回は性能テストでsambaを使いますので、ファイアウォールにはRDPのtcp:3389だけでなく、sambaに必要なプロトコルも許可します。
5.VPN接続確認
まずRDPで接続し、Windows Serverに共有ファイルを作成します。
次に相手側のクライアントPCにおいて、sambaを使いWindows Serverのsharedフォルダをマウントします。
sudo mount -t cifs -o username=[username],password=[password] //[server]/shared /mnt/win
上手くマウントできれば完了です。
CIFS性能テスト
性能テストとして、VPN経由と直接WAN上のIPを指定してマウントした2つの場合において、10KB?10MBのファイルをviコマンドを使い開くのにかかった時間を計測しました。
どちらもマウント直後にviを使い、キャッシュや一時保存の影響を受けないようにしています。
結果は以下のようになりました。
ファイルサイズ | VPN経由 | WAN上のIP指定 |
---|---|---|
10KB | 1秒弱 | 1秒弱 |
100KB | 1秒 | 1秒 |
1MB | 1秒強 | 1秒強 |
10MB | 5秒 | 7秒 |
100MB | 75秒 | 101秒 |
WAN上のIP指定の方が時間がかかっている事象については原因不明ですが、1?2MB/sec程度と思われますので概ね問題の無い速度かと思います。
まとめ
慣れれば15分位でVPNの環境を構築できます。削除もマウスでボタンクリックするだけでできます。実機だと気軽にVPN構築して試行錯誤するなんてできませんが、クラウドだとパソコンの前に座ってるだけで出来てしまいます。学ぶ素材としてもIaaSは優れているのではないかと思います。
もうすぐWindows Server 2003のサポートが切れます。GCE VPNを使って、GCE上に移行してはいかがでしょうか?構築から保守までマネジメントするクラウドエースというサービスもありますので、よろしくお願いします。