YAMAHA RTX-1200を使ってAWSのVPCに複数VPN接続を構築

鈴木です。

AWSのアップデートで、カスタマーゲートウェイIPアドレスの再利用ができるようになったので、YAMAHA RTX-1200を使って複数のVPN接続を張ってみました。aws.typepad.com


設定手順

設定手順としては簡単です。1本のVPN接続については、以下の記事を見ながらやればうまくいくと思いますので、この記事では省略します。
Amazon VPCとの接続 « 設定例

2本目のVPN接続では、
「カスタマーゲートウェイ」「プライベートゲートウェイ」「VPN接続」を新しく作成し、VPN接続の「設定のダウンロード」から、Yamaha, RTX Routers, Rev.10.01.16+ の設定をダウンロードします。
ダウンロードした設定ファイルを開きます。

とりあえずダウンロードした設定ファイルのコメント行をすべて削除して…
(読めば理解は深まります)

1本目のVPN接続時にすでに設定済みの行を削除します。
以下の行くらいでしょうか。

 bgp use on
 bgp autonomous-system 65000
 bgp import filter 1 equal 0.0.0.0/0
 bgp import 10124 static filter 1

次にトンネル設定を変更します。
1本目のVPN接続で、tunnel 1と2 は、設定済みなので、
その部分をすべて 3と4 に変更しています。

こんな感じでしょうか。

tunnel select 3
 tunnel name dev03
 ipsec tunnel 203
  ipsec sa policy 203 3 esp aes-cbc sha-hmac
  ipsec ike duration ipsec-sa 3 3600
  ipsec ike encryption 3 aes-cbc
  ipsec ike group 3 modp1024
  ipsec ike hash 3 sha
  ipsec ike keepalive use 3 on icmp-echo <*> 10 3
  ipsec ike local address 3 <*>
  ipsec ike pfs 3 on
  ipsec ike pre-shared-key 3 text <*>
  ipsec ike remote address 3 <*>
 ipsec tunnel outer df-bit clear
 ip tunnel address <*>
 ip tunnel remote address <*>
 ip tunnel tcp mss limit auto
 tunnel enable 3

tunnel select 4
 tunnel name dev04
 ipsec tunnel 204
  ipsec sa policy 204 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 icmp-echo <*> 3
  ipsec ike local address 4 <*>
  ipsec ike pfs 4 on
  ipsec ike pre-shared-key 4 text <*>
  ipsec ike remote address 4 <*>
 ipsec tunnel outer df-bit clear
 ip tunnel address <*>
 ip tunnel remote address <*>
 ip tunnel tcp mss limit auto
 tunnel enable 4

<*>は隠してありますが、ダウンロードしたファイルの設定を
そのまま利用すれば問題ないと思います。

ダウンロードしたコンフィグファイル設定のままだと、
弊社の環境では、
過去にVPNアップダウンを繰り返してしまう事象が発生したため、
SAキープアライブにIPSec DPD を使わずに ICMP Echo を使うように変更してあります。

当時の調査結果は、たけはらさんが以下の記事で書いてくれています。
お楽しみはこれからだ!: Amazon VPCをYAMAHA RTX-1200で落ち着かせる

ルーターの設定は以上です。
出来上がったコンフィグをルーターに流し込んで、
最後に、BGP設定のリフレッシュを忘れずに実施します。

bgp configure refresh

動作確認

ルーター側の動作確認では、
# show ipsec sa コマンドを実行してIPsecの動作を確認します。
SAが何も表示されない場合には、設定を見直してください。

次に、# show status bgp neighbor コマンドを実行してBGPの動作を確認します。

BGP neighbor is <*>, remote AS 10124, local AS 65000, external link
  BGP version 4, remote router ID <*>
  BGP state = Established, up for 17:28:38
  Last read 00:00:09, hold time is 30, keepalive interval is 10 seconds
  Received 6284 messages, 0 notifications, 0 in queue
  Sent 6294 messages, 0 notifications, 0 in queue
  Connection established 1; dropped 0
  Last reset never
Local host: <*>, Local port: 179
Foreign host: <*>, Foreign port: 44276

4つの接続が起動していて、すべての接続が

BGP state = Established

になっていればよさそうです。
こちらもなにも表示されない場合は、設定を見直してください…。

BGPの設定を変更した場合には、
# bgp configure refresh コマンドを必ず実行する必要があるそうなので、お忘れなく。

AWS側の確認では、
「VPCダッシュボード」の「VPN接続」ステータスが「アップ」になっていれば問題ないと思います。

f:id:su-zuki:20151027103622p:plain

後は実際にEC2のインスタンスから、VPN経由でpingが通るか試してみましょう。
試してみました、通りました!

設定が漏れやすいのは以下でしょうか。

  • AWSのセキュリティゾーン設定
  • AWSのルートテーブル設定
  • ルーターのfilter設定
  • ルーターのroute設定
  • インスタンスのファイアウォール設定

さいごに

実は1年ほど前にチャレンジして
カスタマーゲートウェイIPアドレスの再利用ができないことに気付いたため、
悔しい思いをしつつ諦めていたのですが…(ほかにも手はありますが…)
今回のアップデートで、気軽に設定できるようになっていたので良かったです!