Amazon VPC編 ~1時間でリージョン間VPN~

今回はVPCのリージョン間接続についてご紹介いたします。

リージョン間VPN接続について

同一リージョン間ではVPCピアリング接続によってVPC間接続が可能です。しかし、別リージョンとの接続を行う場合には使用することができません。

その際構築する必要があるのがVPN接続です。

今回は実際にVPN接続を構築する手順をご説明します。

VPN接続手順

1、 接続元リージョンのEC2メニューからインスタンスを作成する際、「コミュニティAMI」から「VyOS (HVM) 1.1.7」を選択して作成します。

2、 作成したインスタンスにEIPを紐づけ、固定パブリックIPを付与します。

3、 接続先のリージョンのVPCサービスを開きます。

4、 「VPN接続」の「カスタマーゲートウェイ」から「カスタマーゲートウェイの作成」を

選択します。

5、 カスタマーゲートウェイ作成画面で「ルーティング」には動的、「IPアドレス」には先ほどvyosインスタンスに紐づけたEIP、「BGP ASN」には65000を入力します。

6、 仮想プライベートゲートウェイが無い場合作成します。既存のものがある場合は既存のものを使用します。

7、 「VPN接続」で「VPN接続の作成」を開きます。「仮想プライベートゲートウェイ」「カスタマーゲートウェイ」を先ほど作成したものを選択します。「ルーティングオプション」では動的を選択します。

8、 接続を作成後、作成したVPN接続を選択し、「設定のダウンロード」を開きます。「ベンダー」で「Vyatta」、「ベンドフォーム」で「Vyatta Network OS」、「ソフトウェア」で「Vyatta Network OS 6.5+」を選択します。

9、 ダウンロードした設定書を元にvyosインスタンスの設定を行います。

ダウンロードした設定書で一部変更する箇所があるため変更して入力します。

set vpn ipsec site-to-site peer xx.xxx.xx.xxx local-address ‘[カスタマーゲートウェイIP]’

行を

set vpn ipsec site-to-site peer xx.xxx.xx.xxx local-address ‘[vyosプライベートIP]’

のように2か所変更します。

次に

set protocols bgp 65000 network 0.0.0.0/0

行を

set protocols bgp 65000 network [接続元VPCレンジ]

に変更します。

10、vyosにログインします。ログインユーザはvyosになります。

ログイン後、以下のコマンドを実行し、編集モードに入ります。

1# configure

編集モード変更後、先ほどの設定書の!マークがついていない行をコピーしてvyos画面

に入力します。

1set protocols static route [接続元VPCレンジ] next-hop [vyosインスタンスのデフォルトゲートウェイIP] distance '100'

上記コマンドを入力後、以下のコマンドを入力して設定登録し、再起動します。

1# commit23# save45# sudo su67# reboot

11、EC2のインスタンスメニュー一覧でvyosの説明タブの「ネットワークインターフェース」部分をクリックし、ポップアップ画面から対象ネットワークインターフェース画面に移動します。

12、対象ネットワークインターフェースの設定画面に遷移後、ネットワークインターフェースを右クリックし、「送信元/送信先の変更チェック」を選択します。

「送信元/送信先 チェック」を無効にして保存します。

13、接続元リージョンのVPCメニューを開いて「ルートテーブル」を開きます。

接続先リージョンに接続するサブネットが所属するルートテーブルを開き以下の設定を追加します。

[接続先 VPCレンジ]、[vyosインスタンスeni]

14、13までの設定完了後、接続先リージョンのVPCメニューを開き「VPN接続」から先ほど作成したVPN接続を選択し、下の情報画面から「トンネル詳細」を確認します。

「状況」がUP、「詳細」が1 BGP ROUTESと表示を確認し、設定完了です。

15、実際に疎通確認を行ってみます。

VPNを通した側のサーバからpingを送ってみると疎通確認できました。

これにより双方向通信が確認できます。

これでVPN設定は完了です。

いかがでしたでしょうか。

今回はリージョン間VPN接続についてご紹介いたしました。

両方向接続する場合は逆の手順で設定を行います。

次回をお楽しみに!

この記事を書いた人

aws-recipe-user