朝晩はだいぶ過ごしやすくまだ快適ですが、昼間は暑く少々つらいなと感じているhatです。
今回は別リージョンのVPC間のVPN接続設定について書きたいと思います。
はじめに
同じリージョン内のVPCであればVPC PeeringにてVPN接続が可能となりますが、別リージョン間では利用することができません。今回の環境利用する手法としては、AWS VPCの機能にあるVPN接続を利用します。またVPN接続用のソフトウェアルータとしてはVyattaがありますが、今回はWindowsServer2008 R2を準備し設定を進めていきます。環境構成については次の項目で記載します。
環境構成
[東京リージョン]
- デフォルトのVPC(172.31.0.0/16)とサブネット(172.31.0.0/20)を利用
- カスタマーゲートウェイには、WindowsServer2008 R2のEC2インスタンスを作成
- 接続確認用インスタンスに、WindowsのEC2インスタンスを作成
[シドニーリージョン]
- VPC(10.0.0.0/16)を作成し、プライベートサブネット(10.0.150.0/24)を作成
- VPCにはInternetGatewayは作成しない。
- 接続確認用インスタンスに、WindowsのEC2インスタンスを作成
- [概要構成図]
①カスタマーゲートウェイ(cgw)
VPN接続ルーターとして利用。シドニーリージョンの仮想プライベートゲートウェイからの接続先となります。
②仮想プライベートゲートウェイ(vgw)
AWS VPCの機能として存在しており、シドニーリージョン側にて設定します。
作業概要
東京リージョンとシドニーリージョンを交互に作業していく形となります。
以降に詳細手順を記載していきますが、作業リージョンにはご注意ください。
また詳細手順のキャプチャ画面ですが英語版インスタンスを利用しているため、キャプチャは英語表示となっています。
1. カスタマーゲートウェイとなるWindowsサーバ設定(東京リージョン)
1-1.EC2インスタンスのインターフェース設定
1-2.Windowsアダプタの設定の更新
1-3.Windows Server にルーティングとリモートアクセスサービスのインストール
1-4.ルーティングおよびリモートアクセスサービスの設定と有効化
2. VPN接続設定(シドニーリージョン)
2-1.カスタマーゲートウェイの作成
2-2.仮想プライベートゲートウェイの作成
2-3.VPN接続ルーティング設定
2-4.VPN接続の作成
2-5.VPN接続設定ファイルのダウンロード
3. VPN接続設定(東京リージョン)
3-1.カスタマーゲートウェイにて接続設定の反映
3-2.Windowsファイアウォールの設定
3-3.停止しているゲートウェイの検出のため設定
4.接続確認用のWindowsのEC2インスタンスの作成
作成するタイミングは最後としていますが、最初に作成しても問題ありません。
このインスタンスの作成の手順については割愛いたします。
それでは、実際に作業内容を順に記載していきます。
1.カスタマーゲートウェイとなるWindowsサーバ設定(作業リージョン:東京)
1-1.EC2インスタンスのインターフェース設定
・WindowsServer2008 R2インスタンスを作成し起動します。
・起動したらインスタンスにEIPを割り当てます。
・インスタンスを立ち上げたら、インスタンスを右クリックし、「ネットワーキング」→「送信元 / 送信先の変更チェック」を選択
・無効化するをクリックします。
1-2.Windowsアダプタの設定の更新
・リモートデスクトップにてインスタンスに接続
・[コントロールパネル] を開き、[デバイスマネージャー] を起動
・[ネットワークアダプター] ノードを展開
・[Citrix network adapter] を右クリックし、[Properties] をクリック
・[Advanced] タブで、[IPv4 Checksum Offload]、[TCP Checksum Offload (IPv4)]、および [UDP Checksum Offload (IPv4)] プロパティを無効にし、[OK] をクリック
1-3.Windows Server にルーティングとリモートアクセスサービスのインストール
・[Server Manager] を開き、[役割] を選択して、[役割の追加] をクリック
・[サーバーの役割の選択] ページで、[ネットワークポリシーとアクセスサービス] をチェックして、[次へ] をクリック
・[役割サービスの選択] ページで [ルーティングとリモート アクセス サービス] をチェック
・[インストールオプションの確認] ページで、[インストール] をクリック
1-4.ルーティングおよびリモートアクセスサービスの設定と有効化
・サーバーマネージャーで [役割] を展開して、次に[ネットワーク ポリシーとアクセス サービス]を展開
・[ルーティングとリモート アクセス サーバー]を右クリックして、[ルーティングとリモート アクセスの構成と有効化] を選択
・[ルーティングとリモート アクセス サーバーのセットアップウィザード] の [ルーティングとリモート アクセス サーバーのセットアップ ウィザードの開始] ページで、[次へ] をクリック
・[構成] ページで、[カスタム構成] をチェックし、[次へ] をクリック
・[LAN ルーティング] をチェックし、[次へ] をクリック
・[ルーティングとリモート アクセス サーバーのセットアップ ウィザードの完了] ページで、[完了] をクリック
・[ルーティングとリモート アクセス] のダイアログボックスが表示されるので、[サービスの開始] をクリック
2.VPN接続設定 (作業リージョン:シドニー)
2-1.カスタマーゲートウェイの作成
・AWSコンソールよりVPCを開き、左側ペインのカスタマーゲートウェイを選択
・カスタマーゲートウェイをの作成をクリック
ネームタグ:任意
ルーティング:動的
IPアドレス:東京リージョンのWindowsServerのEIP
2-2.仮想プライベートゲートウェイの作成
・AWSコンソールのVPCを開き、左側ペインの仮想プライベートゲートウェイを選択し、仮想プライベートゲートウェイの作成をクリック
・VPCにアタッチをクリック
接続したいVPCをアタッチ
2-3.VPN接続ルーティング設定
・ルートテーブルにルートを追加する。
送信先:172.31.0.0/16
ターゲット:作成した仮想プライベートゲートウェイ
・完了後、ルート伝達のタブをクリックし、編集をクリックし伝達にチェックをつけ保存。
2-4.VPN接続の作成
・AWSコンソールのVPCを開き、左側ペインのVPN接続をクリックし、VPN接続の作成をクリック
仮想プライベートゲートウェイ:作成したvgw
カスタマーゲートウェイ:作成したcgw
ルーティングオプション:静的
IPプレフィックス:172.31.0.0/16
2-5.VPN接続設定ファイルのダウンロード
・Microsoft Windows2008 R2を選択しダウンロード
・ダウンロードしたファイルの中身を修正します。
修正箇所はダウンロードしたファイルの下のほうにあります。
以下部分のパラメータを置き換えて利用します。
[Windows_Server_Private_IP_address]
└Windows Server のプライベート IP アドレスで置き換え
[Your_Static_Route_IP_Prefix]
└Windows Server が存在するネットワークの CIDR で置き換え
[Your_VPC_CIDR_Block]
└ シドニーリージョンのVPC の CIDR で置き換え
~中略~ ! Script for Tunnel 1: netsh advfirewall consec add rule Name="vgw-050****** Tunnel 1" ^ Enable=Yes Profile=any Type=Static Mode=Tunnel ^ LocalTunnelEndpoint=[Windows_Server_Private_IP_address] ^ RemoteTunnelEndpoint=52.63.230.211 Endpoint1=[Your_Static_Route_IP_Prefix] ^ Endpoint2=[Your_VPC_CIDR_Block] Protocol=Any Action=RequireInClearOut ^ Auth1=ComputerPSK Auth1PSK=************************************ ^ QMSecMethods=ESP:SHA1-AES128+60min+100000kb ^ ExemptIPsecProtectedConnections=No ApplyAuthz=No QMPFS=dhgroup2 ! Script for Tunnel 2: netsh advfirewall consec add rule Name="vgw-050****** Tunnel 2" ^ Enable=Yes Profile=any Type=Static Mode=Tunnel ^ LocalTunnelEndpoint=[Windows_Server_Private_IP_address] ^ RemoteTunnelEndpoint=54.66.221.68 Endpoint1=[Your_Static_Route_IP_Prefix] ^ Endpoint2=[Your_VPC_CIDR_Block] Protocol=Any Action=RequireInClearOut ^ Auth1=ComputerPSK Auth1PSK=************************************ ^ QMSecMethods=ESP:SHA1-AES128+60min+100000kb ^ ExemptIPsecProtectedConnections=No ApplyAuthz=No QMPFS=dhgroup2 ~以下省略~
3.VPN接続設定 (作業リージョン:東京)
3-1.カスタマーゲートウェイにて接続設定の反映
・シドニーリージョンでダウンロード取得し書き換えた内容を、リモートデスクトップにて接続しWindowsサーバのコマンドプロンプトにて実行する。
・ダウンロードファイルを利用して接続設定を実施しましたが、手動にて設定していくことも可能です。手動設定については割愛させていただきます。
3-2.Windowsファイアウォールの設定
・[サーバーマネージャー] を開き、[構成]、[セキュリティが強化された Windows ファイアウォール]、[プロパティ] を選択
・[IP sec の設定] タブで [IP sec 既定] の項目の [カスタマイズ] をクリック
・[キー交換 (メイン モード)] の項目の [詳細設定] にチェックを入れて [カスタマイズ] をクリック
・[キー交換オプション] の [Diffie-Hellman を使用してセキュリティを強化する] をチェックして、[OK] をクリック
・[データ保護 クイックモード)] の項目の [詳細設定] にチェックを入れて、[カスタマイズ] をクリック
・[この設定を使用するすべての接続セキュリティ規則に暗号化を要求する] にチェックを入れて、[OK] をクリック
3-3.停止しているゲートウェイの検出のため設定
・サーバーで、[スタート] をクリックし、regedit と入力して [レジストリエディタ] を起動
・[HKEY_LOCAL_MACHINE]、[SYSTEM]、[CurrentControlSet]、[Service]、[Tcpip]、[Paremeters] と展開
・右側のペインで右クリックし、[新規]、[DWORD (32-bit) Value]
・名前は [EnableDeadWDetect]と入力
・[値のデータ] に [1] を入力し、[OK] をクリック
・完了後エディタを終了し、WindowsServerを再起動する。
設定作業はここまでとなります。
VPN接続確認テスト
ここからは設定後の確認となります。
お互いのVPC上のホストからPingが通るかどうかにより確認していきます。
・確認その1: シドニーリージョンVPC から 東京リージョンVPC
・シドニーのwindowsホスト(10.0.150.165)から東京のWindowsホスト(172.31.13.2)へpingにて疎通確認
C:\Users\Administrator>ipconfig Windows IP Configuration Ethernet adapter Ethernet: Connection-specific DNS Suffix . : ap-southeast-2.compute.internal Link-local IPv6 Address . . . . . : fe80::c1db:3156:****:***** IPv4 Address. . . . . . . . . . . : 10.0.150.165 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : 10.0.150.1 Tunnel adapter isatap.ap-southeast-2.compute.internal: Media State . . . . . . . . . . . : Media disconnected Connection-specific DNS Suffix . : ap-southeast-2.compute.internal Tunnel adapter Local Area Connection* 11: Media State . . . . . . . . . . . : Media disconnected Connection-specific DNS Suffix . : C:\Users\Administrator>ping 172.31.13.2 Pinging 172.31.13.2 with 32 bytes of data: Reply from 172.31.13.2: bytes=32 time=106ms TTL=127 Reply from 172.31.13.2: bytes=32 time=106ms TTL=127 Reply from 172.31.13.2: bytes=32 time=106ms TTL=127 Reply from 172.31.13.2: bytes=32 time=106ms TTL=127 Ping statistics for 172.31.13.2: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 106ms, Maximum = 106ms, Average = 106ms
・確認その2: 東京リージョンVPC から シドニーリージョンVPC
・東京のwindowsホスト(172.31.13.2)からシドニーのWindowsホスト(10.0.150.165)へpingにて疎通確認
C:\Users\Administrator>ipconfig Windows IP Configuration Ethernet adapter Local Area Connection: Connection-specific DNS Suffix . : ap-northeast-1.compute.internal IPv4 Address. . . . . . . . . . . : 172.31.13.2 Subnet Mask . . . . . . . . . . . : 255.255.240.0 Default Gateway . . . . . . . . . : 172.31.0.1 Tunnel adapter isatap.ap-northeast-1.compute.internal: Media State . . . . . . . . . . . : Media disconnected Connection-specific DNS Suffix . : ap-northeast-1.compute.internal Tunnel adapter Local Area Connection* 11: Media State . . . . . . . . . . . : Media disconnected Connection-specific DNS Suffix . : C:\Users\Administrator>ping 10.0.150.165 Pinging 10.0.150.165 with 32 bytes of data: Reply from 10.0.150.165: bytes=32 time=106ms TTL=127 Reply from 10.0.150.165: bytes=32 time=106ms TTL=127 Reply from 10.0.150.165: bytes=32 time=106ms TTL=127 Reply from 10.0.150.165: bytes=32 time=106ms TTL=127 Ping statistics for 10.0.150.165: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 106ms, Maximum = 106ms, Average = 106ms
さいごに
AWSのサービスのみを組み合わせるだけで、別リージョンVPC間の接続を実現することができました。AWS VPCはVPN接続を作成した時点から課金(1時間あたり0.05 USD)が発生しますのでご注意ください。インターネット経由では接続できず別リージョン間VPCにてアクセスを実現したいことは意外とあると思いますので、参考になれば幸いです。
参考サイト:http://docs.aws.amazon.com/ja_jp/AmazonVPC/latest/NetworkAdminGuide/CustomerGateway-Windows.html#CreateVPNConnection