kikumotoのメモ帳

インフラ・ミドル周りを中心に、興味をもったことを適当な感じで。twitter : @takakiku

Amazon VPCに接続するためのVyatta向け設定ファイルを作成するWebツールを作ってみました

さくらのクラウド(β)とAmazon VPCをつなげるテストをいろいろやっているのだけど、毎度Vyattaの設定ファイルとかを書くのが面倒なので、Amazon VPCからダウンロードする設定情報をVyatta向けに変換するツールを作成してみました。

ローカルで使うのであればrubyで多分書くのですが、需要があるか不明ですが他の方にも使いやすいように、Webツールという感じで公開してみました。

http://gen-vyatta-conf.fluxflex.com/
http://gen-vyatta-conf.peachbeach.info/

Javascript のみで完結していて、通信は一切しないのでPSKなどを抜くようなことは一切していません。ちなみに、Javascript はまだ勉強不足なので、いたらないところは多々あると思います、、、ご容赦を!

想定環境

とりあえず自分で試したときの環境は以下のようなイメージです。さくらのクラウド(β)で、Vyatta(6.3)をたてて、プライベートネットワーク(192.168.1.0/24)内にサーバを起動している感じです。このサーバのデフォルトゲートウェイは、Vyattaを向くように設定しておきます。
AWS では、VPC を構築して、その中に EC2 Instance を起動しているという感じとなります。

VPCの構築は以前の記事(さくらのVPSにVyattaを入れて、Amazon VPCにVPN接続 - kikumotoのメモ帳)を参照してください。

使い方

http://gen-vyatta-conf.peachbeach.info/ の使い方を簡単に説明します。

VyattaでIPSecを利用するネットワークインターフェイス」には、Vyattaがインターネットに接しているネットワークインターフェイスを入力します。上記の図では eth0 となります。

ローカルネットワーク情報」には、VPNで接続したいローカルネットワークを入力します。上記の図では 192.168.1.0/24 となります。

Amazon VPC のネットワーク情報」には、Amazon VPCを構築する時に設定したVPC IP CIDR Blockを入力します。上記の図では、10.0.0.0/16 となります。

Amazon VPCからダウンロードした設定情報」では、Amazon VPCを構築するときに Vendor を Generic としてダウンロードしたIPSec VPNの設定ファイルの内容をそのままコピペします。

以上4つのすべてを入力したら、「作成」ボタンを押します。

そうすると、下側に「Vyatta設定」と「Vyattaパケット転送スクリプト」が出力されます。これらの内容を持つファイルをVyatta内に作成します。ここでは、Vyatta設定を vpc_config.txt、Vyattaパケット転送スクリプトvpc_setup.sh として保存したとして話を進めます。

Vyatta にて以下のように実行して設定をマージします。(警告の原因はよくわかってません)

$ configure
# merge /path/to/vpc_config.txt
Warning: file does NOT appear to be a valid config file.
Do you want to continue? [no] Y
# commit
# save
# exit

次に、vpc_setup.sh を実行します。

$ sudo sh /path/to/vpc_setup.sh

以上で、VPNで2つのネットワークが接続されるので、例えばさくらのサーバ側から

$ ping 10.0.1.101
PING 10.0.1.101 (10.0.1.101) 56(84) bytes of data.
64 bytes from 10.0.1.101: icmp_req=1 ttl=62 time=10.9 ms
64 bytes from 10.0.1.101: icmp_req=2 ttl=62 time=10.7 ms

とすれば、接続されていることが確認できます。

もちろん、EC2 Instance にもログインできます。

公開サイトについて

http://gen-vyatta-conf.fluxflex.com/ ですが、URLからわかるように fluxflexを使っています。
ソース自体は https://github.com/kikumoto/gen-vyatta-conf-for-vpc にあります。fluxflex の github 連携を使うようにしました。

この fluxflex の github 連携はとっても便利ですね。git pushしたらすぐデプロイされて、サイトが更新されるのでよけいなコマンドの実行が減ってとてもいいです。

2012/06/30 に fluxflex が終了なので DotCloud に移行しました。(2012/06/17)

さいごに

需要あるのか疑わしいですが、使ってもらえるとうれしいです。