Amazon EC2 Tips (3) ヤマハルーターをAmazon Virtual Private Cloud(VPC)に接続するための設定例 (Windows編)

17 8月, 2011 (10:25) | YAMAHAルーター, クラウド | By: ohishi

VPCを試してみたので、そのテスト結果を記載します。

◆構成

・ルーター機種:RTX1100

・VPCの構成:シナリオ3 パブリック・プライベートサブネットとハードウェア VPN アクセスを持つVPC
      (VPC with Public and Private Subnets and Hardware VPN Access)

EC2の仮想サーバーには、NICは1枚しか無い為、VPN接続したサーバーを外部に公開することはできません。

そこで、公開用サーバーと社内用サーバーの2台のサーバーをVPC内に作成し、外部に公開できる構成にします。
もちろん、2台のサーバーはセグメントは異なりますが、通信できます。

この状態だと、社内用サーバーは、インターネットへアクセスできません。これでは、ソフトウェアのアップデート等が出来ない為、かなり不便です。
そこで、3台目のサーバーとして、「NATインスタンス」を作成し、社内用のサーバーもインターネットへアクセスできるようにしてやります。

・かんたん構成図

◆設定の流れ

・VPC作成
・EC2作成
・Elastic IPの取得と割り当て
・RTX1100設定
・接続テスト
・NATインスタンス作成
・RouteTableの変更
・接続テスト

◆設定

1)VPC作成

AWS管理コンソールのVPCタブを開きます。
Get started creating a VPC ボタンをクリックします。

ここで、3番目のVPC with Public and Private Subnets and Hardware VPN Accessを選択し、Continueボタンをクリックします。

VPCと接続するヤマハルータのWAN側のIPアドレスを指定し、Continueボタンをクリックします。

VPCの設定情報が表示されるので、Create VPCボタンをクリックします。

VPC作成中の表示が出ます。

ルータの設定の雛形がダウンロードできます。このファイルを参考に、RTX1100のconfigを修正します。

設定ファイルの雛形が提供されているメーカーはヤマハを含めて4社のようです。(ヤマハルータを使ってて良かった...)
ここで、ヤマハを選択してファイルをダウンロードします。

これで、VPCの設定は終了です。

2)EC2作成

次は、VPCで立ち上げるサーバー2台を作成します。

EC2のインスタンスを作成する際に、好みのAMIを選択し、次の画面で、3番目のLaunch Instances Into Your Virtual Private Cloudを選択してやります。
その際、パブリックとプライベートの2つあるサブネットを選択できるようになっていますが、今回は、両方のサブネットに1づつのインスタンスを作成します。

画面コピーを忘れてしまったんですが、IPアドレスを各インスタンスに設定することができます。
次のステップで疎通確認できるように、IPアドレスを設定することをお勧めします。
例)公開用:10.0.0.200 プライベート用:10.0.1.200

3)Elastic IPの取得と割り当て

次は外部公開用のIPアドレスを取得して、外部公開用のEC2インスタンスに割り当てます。

IPアドレスを取得する際に、VPCを指定します。
Elastic IPは、EC2用とVPC用に用途が決まっているようです。
EC2を指定したElastic IPはVPC内のインスタンスには割り当てできません。
VPC用に取得したIPアドレスを、外部公開用のEC2インスタンスに割り当てます。

このタイミングで、EC2インスタンスのパスワードを取得し、インターネット経由で、公開用インスタンスにリモートデスクトップでアクセスできるか確認することをお勧めします。
公開用のインスタンスに入ったら、プライベート用インスタンスにもリモートデスクトップでアクセスできるか確認してしまいます。
プライベート用のインスタンスでは、インターネットへはアクセスできません。(IEか、ping yahoo.co.jp などで試してみてください)
この時点では、これが正常です。

この作業を行っておけば、VPC側の設定は、ほぼ大丈夫ですので、RTX1100側の設定に進みます。

4)RTX1100設定

ダウンロードした雛形をもとに、RTX1100に登録した設定内容を記載しますので参考にしてください。

詳しくはわかりませんが、雛形を見ると、2つのトンネルを登録する必要があるようです。
また、普通は「IP route 10.0.1.0/24 gateway tunnel 4」みたいにgatewayを指定するんですが、必要ないみたいで、その代わりにbgpの設定が必要みたいです。

tunnel select 4
ipsec tunnel 4
ipsec sa policy 4 4 esp aes-cbc sha-hmac
ipsec ike duration ipsec-sa 4 3600
ipsec ike encryption 4 aes-cbc
ipsec ike group 4 modp1024
ipsec ike hash 4 sha
ipsec ike keepalive use 4 on dpd 10 3
ipsec ike local address 4 118.xxx.xxx.xxx
ipsec ike pre-shared-key 4 text WI5oNAanxteVeQwHGePeUQm0R_Winqg4
ipsec ike remote address 4 27.0.1.16
ipsec ike pfs 4 on
ipsec auto refresh 4 on
ipsec tunnel outer df-bit clear
ip tunnel address 169.254.252.2/30
ip tunnel remote address 169.254.252.1
ip tunnel tcp mss limit 1396
tunnel enable 4

tunnel select 5
ipsec tunnel 5
ipsec sa policy 5 5 esp aes-cbc sha-hmac
ipsec ike duration ipsec-sa 5 3600
ipsec ike encryption 5 aes-cbc
ipsec ike group 5 modp1024
ipsec ike hash 5 sha
ipsec ike keepalive use 5 on dpd 10 3
ipsec ike local address 5 118.xxx.xxx.xxx
ipsec ike pre-shared-key 5 text p4rcbpIac.fq1f60oOn1gULgIeVEBkc9
ipsec ike remote address 5 27.0.1.144
ipsec ike pfs 5 on
ipsec auto refresh 5 on
ipsec tunnel outer df-bit clear
ip tunnel address 169.254.252.6/30
ip tunnel remote address 169.254.252.5
ip tunnel tcp mss limit 1396
tunnel enable 5

bgp use on
bgp autonomous-system 65000
bgp neighbor 1 10124 169.254.252.1 hold-time=30 local-address=169.254.252.2
bgp neighbor 2 10124 169.254.252.5 hold-time=30 local-address=169.254.252.6
bgp import filter 1 equal 0.0.0.0/0
bgp import 10124 static filter 1
bgp configure refresh

5)接続テスト

RTX1100の設定を反映すると、VPN Connection が UP になります。
社内から各インスタンスにping、リモートデスクトップ接続を行ってみます。
社内用はOKで、公開用はNGとなります。この状態が正常です。

6)NATインスタンス作成

プライベート・サブネット内のインスタンスは、インターネットに直接アクセスできません。
そこで、公開用サブネット内に、NATインスタンスというAmazon提供のLinuxのサーバーを作成し、このサーバーを経由してインターネットにアクセスさせるようにできます。

公開用のサブネットにEC2インスタンスを作成します。
amazon/ami-vpc-natでAMIを検索すると、2つヒットしますが、私はamazon/ami-vpc-nat-1.0.0-beta.i386-ebsの方を試してみました。

VPC内に作成することを指定し、公開用のサブネットを指定し、インスタンスを作成します。
LOGINする必要はなく、作りっぱなしてOKのようです。

出来上がったインスタンスを選択して Source / Dest Check をDisabledにします。
これをおこなうと、次のRouteTableの設定の際に、パケット転送先としてNATインスタンスを指定できるようになります。

そして、Elastic IPを取得して、割り当てます。外部と通信するためには、必須です。

7)RouteTableの変更

RouteTableは2個作成されています。そのうちのvgw-xxxxxxxx(バーチャル・プライベートゲートウェイ)が指定されているのが、プライベートサブネット用のRoute Table(ルーティングの設定)になります。
この設定を変更して、インターネット向けのパケットをNATインスタンスに転送できれば、社内用のサーバーは、インターネットにアクセスできるようになります。

実際の設定ですが、vgw-xxxxxxxx向けのアドレスが0.0.0.0/0になっていますが、これを社内ネットワークのアドレスに変更します。
私の環境では192.168.xxx.xxxを使っているので、192.168.0.0/16を指定しました。

それ以外のパケットは、インターネット向けですので、0.0.0.0/0 を i-xxxxxxx(NATインスタンス)を指定してやります。

8)接続テスト

社内用のサーバーから、インターネットへアクセスできるか、IEかPing yahoo.co.jpなどで試します。

これで、シナリオ3での構成は完了です。

忘れてましたが、セキュリティ・グループについては一切触れませんでしたが、私の場合、全てDefaultを指定しました。
http(80)以外は通さないなどの制限を加えたいときは、新規のセキュリティ・グループを作成し、EC2インスタンスでセキュリティ・グループの変更を行えば、反映できますので、お試しください。

本当なら、VPN接続で使用できて、NIC 2枚挿しの仮想サーバーが1台あれば良いのですが、結果的に3台も借りないといけなくなってしまいました。VPCの場合、マイクロタイプのインスタンスは作成できないので、最少でもスモールタイプになってしまいます。3台を常時稼働させると、スモールの場合、月259.2ドル、約2万円。月2万出すんなら、NTT-COM、IBMのクラウドの方が安いかも。(カタログしか見てませんので、間違ったらごめんなさい)

転送スピードや、課金などについて整理したらまた、記載したいと思います。

つづく...

Write a comment