[AWS] VPCにYAMAHA RTX1100で接続する

AWS(Amazon Web Service)のVPC(Virtual Private Cloud)は、AWS上に仮想ネットワークを構築することができます。VPCを使うことで以下のようなことが可能となります。

  • 一つまたは複数の仮想ネットワークを構成し、インターネットと接続する。
    インターネットおよびネットワーク間のネットワークレベルでアクセス制限を行う事が可能となる。
  • VPCを既存ネットワークをVPN接続し、社内のネットワーク拡張として利用する事が可能となる。
  • 上記の組み合わせで、インターネットに接続した一つまたは複数の仮想ネットワークと、既存ネットワーク間をVPN接続し、そのネットワーク間でアクセス制限を行う事が可能となる。

今回は、YAMAHA RTX1100を使用してAWS VPCをプライベートのデータセンタとして使用する構成をイメージして構築しました。使用したYAMAHA RTX1100は1世代前の機種で実勢価格は3万円台後半ですが、中古では7000円前後で取引されていますので、試すには使いやすいと思います。

内容

  1. ネットワーク構成図
  2. 事前準備
  3. AWSの設定手順
  4. RTX1100の設定手順
  5. RTX1100の接続確認
  6. AWSの接続確認
  7. まとめ
  8. 追記

【ネットワーク構成図】

今回の構成図は以下のようになります。
ネットワーク構成図「YAMAHA RTX1100とAWS VPC」

【事前準備】

準備した機材、サービスは次のとおりです。

ネットワーク構成は次のとおりです。

  • LAN側ネットワーク 192.168.2.0/24
  • RTX1100のLAN側IP 192.168.2.254/24
  • PPPoEで接続するPP PP 1
  • WAN側IP w.x.y.z
  • VPCネットワーク 10.0.0.0/16
  • VPCサブネット 10.0.1.0/24

【AWSの設定手順】

AWS側は以下の手順で構築します。

  1. AWSマネージメントコンソールよりVPCをクリックすると以下の画面に遷移します。
    VPC 管理画面
  2. 「Get started creating a VPC」をクリックすると以下の画面が表示されます
    VPC VPC構成の選択画面
  3. ネットワーク構成が表示されますので、一番下にある「VPC with a Private Subnet Only and Hardware VPN Access」をクリックします。
    VPC VPC構成の選択画面
  4. Continueをクリックすると以下の画面が表示されます。IP Assress: にインターネット接続時のIPアドレスを入力します。Specify the routing for the VPN Connectionは「Use Dynamic routing(require BGP)」を選択し、「Continue」をクリックします。
    VPC VPN接続先設定画面
  5. VPCとして構築される構成が表示されます。 One VPC(VPC全体のネットワークアドレス) 「10.0.0.0/16」
    One Subnet(VPCサブネット。実際に使用するネットワークアドレス) 「10.0.1.0/24」
    One VPN Connection(VPN接続の設定)
    Customer Gatewayに先ほど入力したこちらがインターネット接続する時のIP
    RoutingがDynamic (require BGP)
    上記であることを確認して「Create VPC」をクリックします。
    VPC 設定内容確認画面
  6. 以下の画面が表示されればVPCが構築中です。少し待つと構築が完了します。
  7. 「Your VPC has been created.」と表示されればVPCが構築完了です。このあと「Download Configuration」をクリックし、ルータ(ゲートウェイ)の構成をダウンロードします。
    VPC ルータ(ゲートウェイ)のダウンロード選択画面
  8. 対応しているルータ(ゲートウェイ)から、Vender: YAMAHAを選択し、「Yes, Download」をクリックし、設定ファイルをダウンロードします。
  9. VPCの管理画面に戻ります
    VPC 管理画面

【RTX1100の設定手順】

  1. 固定IPの接続設定を行います。今回はフレッツを使用したIP1のメニューを使用しましたのでIPはIPCPで付与されます。通常のフレッツへの接続と同様の設定を行います(以下のconfigではフィルタは省略しています)。
    ip route default gateway pp 1
    ip lan1 address 192.168.2.254/24
    pp select 1
    pp always-on on
    pppoe use lan1
    pppoe auto connect on
    pppoe auto disconnect on
    pp auth accept pap chap
    pp auth myname ID PW (インターリンクのID/PW)
    ppp lcp mru on 1454
    ppp ipcp ipaddress on
    ppp ipcp msext on
    ppp ccp type none
    ip pp mtu 1454
    ip pp nat descriptor 1
    pp enable 1
    nat descriptor type 1 masquerade
    nat descriptor address outer 1 ipcp
    nat descriptor address inner 1 192.168.2.1-192.168.2.254
  2. VPCとVPNで接続する際に使用するIPSecで使用するプロトコル(upd 500およびesp)を、RTX1100のLAN側IPにNATするよう、nat descriptor masquerade staticコマンドで以下の通り設定します。
    nat descriptor masquerade static 1 1 192.168.2.254 udp 500
    nat descriptor masquerade static 1 2 192.168.2.254 esp
  3. AWS設定の8でダウンロードしたファイルを開いて、コメント以外の部分をコピーアンドペーストします
    IPSec Tunnel #1の設定

    tunnel select 1
    ipsec ike encryption 1 aes-cbc
    ipsec ike group 1 modp1024
    ipsec ike hash 1 sha
    ipsec ike pre-shared-key 1 text 共有鍵パスフレーズ
    ipsec tunnel 201
    ipsec sa policy 201 1 esp aes-cbc sha-hmac
    ipsec ike duration ipsec-sa 1 3600
    ipsec ike pfs 1 on
    ipsec tunnel outer df-bit clear
    ipsec ike keepalive use 1 on dpd 10 3
    ipsec ike local address 1 w.x.y.z
    ipsec ike remote address 1 27.0.1.16
    ip tunnel address 169.254.252.2/30
    ip tunnel remote address 169.254.252.1
    ip tunnel tcp mss limit 1387
    tunnel enable 1
    tunnel select none

    IPSec Tunnel #2の設定

    tunnel select 2
    ipsec ike encryption 2 aes-cbc
    ipsec ike group 2 modp1024
    ipsec ike hash 2 sha
    ipsec ike pre-shared-key 2 text 共有鍵パスフレーズ
    ipsec tunnel 202
    ipsec sa policy 202 2 esp aes-cbc sha-hmac
    ipsec ike duration ipsec-sa 2 3600
    ipsec ike pfs 2 on
    ipsec tunnel outer df-bit clear
    ipsec ike keepalive use 2 on dpd 10 3
    ipsec ike local address 2 w.x.y.z
    ipsec ike remote address 2 27.0.1.144
    ip tunnel address 169.254.252.6/30
    ip tunnel remote address 169.254.252.5
    ip tunnel tcp mss limit 1387
    tunnel enable 2
    tunnel select none

    BGPの設定

    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 import filter 1 equal 0.0.0.0/0
    bgp import 10124 static filter 1

    IPSec設定の有効化

    ipsec auto refresh on

    BGPの設定の有効化

    bgp configure refresh

    以上でRTX1100の設定は完了です

【RTX1100の接続確認】

  1. インターネットに接続できていることを、show status pp 1を使用して確認します。
    # show status pp 1
    PP[01]:
    説明:
    PPPoEセッションは接続されています
    接続相手: brasa06xxxxx012
    通信時間: 3日2時間4分34秒
    受信: 1885578 パケット [2324895489 オクテット]  負荷: 0.0%
    送信: 1001911 パケット [96222388 オクテット]  負荷: 0.0%
    PPPオプション
    LCP Local: Magic-Number MRU, Remote: CHAP Magic-Number MRU
    IPCP Local: IP-Address Primary-DNS(210.150.255.66) Secondary-DNS(203.138.71.154), Remote: IP-Address
    PP IP Address Local: w.x.y.z, Remote: 210.153.255.165
    CCP: None
    #
  2. IPSecの状態を、show ipsec saコマンドで確認します。正常動作している場合、以下のように鍵交換が行われることが確認できます。
    # show ipsec sa
    sa sgw connection dir life[s] remote-id
    --------------------------------------------------------------------------
    1 1 isakmp - 28795 27.0.1.16
    2 2 isakmp - 28796 27.0.1.144
    3 1 tun[001]esp send 3597 27.0.1.16
    4 1 tun[001]esp recv 3597 27.0.1.16
    5 2 tun[002]esp send 3598 27.0.1.144
    6 2 tun[002]esp recv 3598 27.0.1.144
    SA[1] 寿命: 28795秒
    自分側の識別子: w.x.y.z
    相手側の識別子: 27.0.1.16
    プロトコル: IKE
    SPI: 8c fb b3 56 c8 a8 ae cb 6a 6f 79 f0 67 56 3c ab
    鍵 : ** ** ** ** ** (confidential) ** ** ** ** **
    ----------------------------------------------------
    SA[2] 寿命: 28796秒
    自分側の識別子: w.x.y.z
    相手側の識別子: 27.0.1.144
    プロトコル: IKE
    SPI: c0 d7 83 62 4f cb 79 af 46 5d 83 cc e8 63 2a bd
    鍵 : ** ** ** ** ** (confidential) ** ** ** ** **
    ----------------------------------------------------
    SA[3] 寿命: 3597秒
    自分側の識別子: w.x.y.z
    相手側の識別子: 27.0.1.16
    送受信方向: 送信
    プロトコル: ESP (モード: tunnel)
    アルゴリズム: AES-CBC (認証: HMAC-SHA)
    SPI: 7f 2c 68 b6
    鍵 : ** ** ** ** ** (confidential) ** ** ** ** **
    ----------------------------------------------------
    SA[4] 寿命: 3597秒
    自分側の識別子: w.x.y.z
    相手側の識別子: 27.0.1.16
    送受信方向: 受信
    プロトコル: ESP (モード: tunnel)
    アルゴリズム: AES-CBC (認証: HMAC-SHA)
    SPI: cb e4 e7 3f
    鍵 : ** ** ** ** ** (confidential) ** ** ** ** **
    ----------------------------------------------------
    SA[5] 寿命: 3598秒
    自分側の識別子: w.x.y.z
    相手側の識別子: 27.0.1.144
    送受信方向: 送信
    プロトコル: ESP (モード: tunnel)
    アルゴリズム: AES-CBC (認証: HMAC-SHA)
    SPI: db 44 7e 99
    鍵 : ** ** ** ** ** (confidential) ** ** ** ** **
    ----------------------------------------------------
    SA[6] 寿命: 3598秒
    自分側の識別子: w.x.y.z
    相手側の識別子: 27.0.1.144
    送受信方向: 受信
    プロトコル: ESP (モード: tunnel)
    アルゴリズム: AES-CBC (認証: HMAC-SHA)
    SPI: f9 f6 30 a6
    鍵 : ** ** ** ** ** (confidential) ** ** ** ** **
    ----------------------------------------------------
    #
  3. Tunnelインターフェースの状態を、show status tunnel 1、show status tunnel 2コマンドで確認します。正常に動作していると以下のように表示されます。
    # show status tunnel 1
    TUNNEL[1]:
    説明:
      インタフェースの種類: IPsec
      トンネルインタフェースは接続されています
      開始: 2013/03/07 00:18:18
      通信時間: 1分19秒
      受信: (IPv4) 663 パケット [42280 オクテット]
            (IPv6) 0 パケット [0 オクテット]
      送信: (IPv4) 779 パケット [38730 オクテット]
            (IPv6) 0 パケット [0 オクテット]
    # show status tunnel 2
    TUNNEL[2]:
    説明:
      インタフェースの種類: IPsec
      トンネルインタフェースは接続されています
      開始: 2013/03/07 00:19:28
      通信時間: 11秒
      受信: (IPv4) 660 パケット [42704 オクテット]
            (IPv6) 0 パケット [0 オクテット]
      送信: (IPv4) 794 パケット [40324 オクテット]
            (IPv6) 0 パケット [0 オクテット]
    #
    
  4. Tunnnelインターフェースの終端にpingが通ることを確認します。
    Tunnel 1 ping 169.254.252.1
    Tunnel 2 ping 169.254.252.5
  5. BGPの状態を、show status bgp neighbor コマンドで確認します。正常に動作していると以下のように表示されます。
    # show status bgp neighbor
    BGP neighbor is 169.254.252.1, remote AS 10124, local AS 65000, external link
    BGP version 4, remote router ID 169.254.252.1
    BGP state = Established, up for 00:02:04
    Last read 00:00:08, hold time is 30, keepalive interval is 10 seconds
    Received 76 messages, 1 notifications, 0 in queue
    Sent 77 messages, 0 notifications, 0 in queue
    Connection established 2; dropped 1
    Last reset 40:09:18
    Local host: 169.254.252.2, Local port: 1050
    Foreign host: 169.254.252.1, Foreign port: 179BGP neighbor is 169.254.252.5, remote AS 10124, local AS 65000, external link
    BGP version 4, remote router ID 169.254.252.5
    BGP state = Established, up for 00:00:54
    Last read 00:00:06, hold time is 30, keepalive interval is 10 seconds
    Received 19 messages, 0 notifications, 0 in queue
    Sent 20 messages, 1 notifications, 0 in queue
    Connection established 3; dropped 2
    Last reset 00:01:07
    Local host: 169.254.252.6, Local port: 1051
    Foreign host: 169.254.252.5, Foreign port: 179
    #
  6. ルーティングテーブルの状態を、show ip routeで確認します。正常に動作しているとVPC側ネットワークがルーティングテーブルにのります
    # show ip route
    宛先ネットワーク ゲートウェイ インタフェース 種別 付加情報
    default - PP[01] static
    10.0.0.0/16 169.254.252.1 TUNNEL[1] BGP path=10124
    169.254.252.0/30 - TUNNEL[1] implicit
    169.254.252.4/30 - TUNNEL[2] implicit
    192.168.2.0/24 192.168.2.254 LAN2 implicit
    203.138.71.154/32 - PP[01] temporary
    210.150.255.66/32 - PP[01] temporary
    210.153.255.165/32 - PP[01] temporary
    #

 

【AWSの接続確認】

  1. IPSecが接続できていない状態では、VPN ConnectionのStatusに「DOWN」が、Detailに「IPSEC IS DOWN」が表示されます
    VPC VPNconnections IPSec Down
  2. IPSecが接続できたもののBGPでの経路情報の交換ができていない場合には、VPN ConnectionのStatusに「DOWN」が、Detailに「IPSEC IS UP」が表示されます
    VPC VPNconnections IPSec UP/BGP Down
  3. BGPでの経路情報の交換が完了すると、VPN ConnectionのStatusに「UP」が、Detailに「1 BGP ROUTES」が表示されます
    VPC VPNconnections IPSec UP/BGP UP
  4. VPCの管理画面上のYour VPN Connectionsに状態が表示されます。
    VPC 管理画面(IPSec UP/BGP UP)

【まとめ】

RTX1100とVPC間で以下のような構成でVPN接続されます。

【追記】

YAMAHA RT1100で構築する以前に、RTX1000(Rev 8.01.29)で試してみましたが、こちらでも構築は可能でした。しかし一部コマンドのオプションが未対応でしたので追記として残しておきます。

  • RTX1000ではipsec ike keepalive useコマンドのdpdのオプションが未対応です。以下のようにheartbeatで代用が可能です。

    RTX1100以降の設定内容

    ipsec ike keepalive use 1 on dpd 10 3
    ipsec ike keepalive use 1 on dpd 10 3

    RTX1000での設定内容

    ipsec ike keepalive use 1 on heartbeat 10 3
    ipsec ike keepalive use 2 on heartbeat 10 3
  • RTX1000ではbgp neighborコマンドのlocal-addressオプションが未対応です。以下のようにlocal-addressを削除して設定を行います。

    RTX1100以降の設定内容

    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

    RTX1000での設定内容

    bgp neighbor 1 10124 169.254.252.1 hold-time=30
    bgp neighbor 2 10124 169.254.252.5 hold-time=30