Amazon Virtual Private Cloud (Amazon VPC) 設定例

1. 概要

ヤマハルーターをAmazon Virtual Private Cloud(Amazon VPC)に接続するための設定例です。

Amazon VPCは、企業のイントラネットをAmazon Web Services(AWS)に接続するためのVPNの機能を提供しています。詳細はWebで提供されている技術資料をご覧ください。

検証の環境は次の通りです。

※この文書は、2011年8月5日現在の仕様に基づいています。今後の仕様変更の内容によっては、この文書の方法では接続できない可能性があります。

2. Amazon VPCの設定

下記の文書にしたがってAmazon VPCを設定します。

http://docs.amazonwebservices.com/AmazonVPC/latest/GettingStartedGuide/

以下、主要な設定画面について説明していきます。

2.1. ウィザードの開始

「Amazon VPC Console Dashboard」にある「Get started creating a VPC」というボタンを押します。

ウィザードの開始

2.2. ネットワーク構成の選択

「VPC with a Private Subnet Only and Hardware VPN Access」を選び、「Continue」ボタンを押します。

ネットワーク構成の選択

2.3. ルーターのIPアドレスの設定

お客様の実際の環境に合わせて、ルーターのWAN側のIPアドレスを入力します。入力したら「Continue」ボタンを押します。

ルーターのIPアドレスの設定

2.4. 設定の確認

図のように、VPNの設定が表示されます。問題があれば項目を修正します。

今回はデフォルトの設定にしたがい、この表示のままで設定を進めていきます。複数のサブネットを登録することもできますが、今回の検証では1つのサブネットでテストしています。

設定を確認したら「Create VPC」ボタンを押します。

設定の確認

2.5. VPCの生成

VPCの生成処理が完了すると、図のような画面が表示されますので、「Download Configuration」のボタンを押してください。

VPCの生成

2.6. 設定のダウンロード

設定が済んだら、対応するルーターの設定例をダウンロードしてください。Vendorは「Yamaha」を選択し、「Yes, Download」ボタンを押します。

設定のダウンロード

3. ルーターの設定

先ほどダウンロードした設定例をルーターに投入し、セーブします。

# save

回線の設定などを含めた全体の設定例は、ここからダウンロードできます。

4. 動作確認

4.1. IPsecの動作確認

まず、IPsecの動作を確認します。show ipsec saコマンドを実行してください。

# show ipsec sa
Total: isakmp:2 send:2 recv:2

sa   sgw isakmp connection   dir  life[s] remote-id
-----------------------------------------------------------------------------
1     1    -    isakmp       -    28559   27.0.1.16
2     1    1    tun[001]esp  send 3359    27.0.1.16
3     1    1    tun[001]esp  recv 3359    27.0.1.16
4     2    -    isakmp       -    28618   27.0.1.144
5     2    4    tun[002]esp  send 3418    27.0.1.144
6     2    4    tun[002]esp  recv 3418    27.0.1.144

SAが何も表示されない場合には、設定を見直してください。

4.2. BGPの動作確認

show status bgp neighborコマンドで、2つの接続が起動していることを確認してください。正常に動作していれば、下線部のように状態が「Established」という表示になります。

# show status bgp neighbor
BGP neighbor is 169.254.252.17, remote AS 10124, local AS 65000, external link
  BGP version 4, remote router ID 169.254.252.17
  BGP state = Established, up for 00:03:34
  Last read 00:00:04, hold time is 30, keepalive interval is 10 seconds
  Received 25 messages, 0 notifications, 0 in queue
  Sent 27 messages, 1 notifications, 0 in queue
  Connection established 1; dropped 0
  Last reset never
Local host: 169.254.252.18, Local port: 1026
Foreign host: 169.254.252.17, Foreign port: 179

BGP neighbor is 169.254.252.21, remote AS 10124, local AS 65000, external link
  BGP version 4, remote router ID 169.254.252.21
  BGP state = Established, up for 00:03:29
  Last read 00:00:07, hold time is 30, keepalive interval is 10 seconds
  Received 26 messages, 0 notifications, 0 in queue
  Sent 26 messages, 1 notifications, 0 in queue
  Connection established 1; dropped 0
  Last reset never
Local host: 169.254.252.22, Local port: 1027
Foreign host: 169.254.252.21, Foreign port: 179

表示されない場合は、設定を確認してください。BGPの設定を変更したときには、bgp configure refreshコマンドを必ず実行する必要があります。

4.3. 経路表の確認

show ip routeコマンドで経路を確認してください。 BGPで受信した経路は、下線部のように「BGP」と表示されます。

# show ip route
宛先ネットワーク    ゲートウェイ     インタフェース  種別  付加情報
default             -                    PP[01]    static
10.0.0.0/16         169.254.252.17    TUNNEL[1]       BGP  path=10124
169.254.252.16/30   -                 TUNNEL[1]  implicit
169.254.252.20/30   -                 TUNNEL[2]  implicit
192.168.100.0/24    192.168.100.1          LAN1  implicit

4.4. 通信の確認

Amazon VPC上のインスタンスに対して、通信できることを確認します。インスタンスの作り方については、Amazon VPCの技術資料を参照してください。インスタンスのIPアドレスに対して、pingコマンドを実行して導通性を確認します。

pingが通らない場合は、Amazon VPCの「Security Group」の設定で、ICMPの通信を許可していない可能性がありますので、確認してみてください。

# ping 10.0.1.78
10.0.1.78から受信: シーケンス番号=0 ttl=61 時間=38.611ミリ秒
10.0.1.78から受信: シーケンス番号=1 ttl=61 時間=36.528ミリ秒
10.0.1.78から受信: シーケンス番号=2 ttl=61 時間=34.814ミリ秒
10.0.1.78から受信: シーケンス番号=3 ttl=61 時間=35.432ミリ秒
10.0.1.78から受信: シーケンス番号=4 ttl=61 時間=35.583ミリ秒

5個のパケットを送信し、5個のパケットを受信しました。0.0%パケットロス
往復遅延 最低/平均/最大 = 34.814/36.193/38.611 ミリ秒

4.5. 冗長化の動作確認

Amazon VPCのゲートウェイがダウンしたときに冗長化が機能するかどうかをチェックします。実際にゲートウェイがダウンするのを待つことはできないので、BGPのパケットを強制的にフィルタリングすることで障害をシミュレートします。

# ip filter 1 reject 169.254.252.17 * tcp bgp *
# ip filter 2 pass * * * * *
# tunnel select 1
# ip tunnel secure filter in 1 2

しばらく待つとBGPのコネクションが切れて、経路が変化します。show ip routeコマンドで経路の変化を確認してください。下線部のように、10.0.0.0/16のゲートウェイが169.254.252.21に変化しました。

tunnel1# show ip route
宛先ネットワーク    ゲートウェイ     インタフェース  種別  付加情報
default             -                    PP[01]    static
10.0.0.0/16         169.254.252.21    TUNNEL[2]       BGP  path=10124
169.254.252.16/30   -                 TUNNEL[1]  implicit
169.254.252.20/30   -                 TUNNEL[2]  implicit
192.168.100.0/24    192.168.100.1          LAN1  implicit

この状態で、インスタンスに対してpingが通ることを確認します。

tunnel1# ping 10.0.1.78
10.0.1.78から受信: シーケンス番号=0 ttl=61 時間=37.238ミリ秒
10.0.1.78から受信: シーケンス番号=1 ttl=61 時間=36.805ミリ秒
10.0.1.78から受信: シーケンス番号=2 ttl=61 時間=37.314ミリ秒
10.0.1.78から受信: シーケンス番号=3 ttl=61 時間=36.844ミリ秒
10.0.1.78から受信: シーケンス番号=4 ttl=61 時間=37.459ミリ秒

5個のパケットを送信し、5個のパケットを受信しました。0.0%パケットロス
往復遅延 最低/平均/最大 = 36.805/37.132/37.459 ミリ秒

確認したら、先ほどのフィルタリングの設定を消しておきます。

# no ip filter 1
# no ip filter 2
# tunnel select 1
# no ip tunnel secure filter in
# save

Copyright (C) 2010-2011, Yamaha Corporation.