GCP BGPを使用してGCPとAWSをIPsecでVPN接続する

BGP(Border Gateway Protocol)を利用せずに静的ルーティングでVPNを接続してしまうと、ネットワーク構成が変更になった時にマニュアルで設定変更が必要になるという欠点があるので、BGPを利用したVPN接続を試みることにした。

スポンサーリンク

全体の流れは以下の通り。
#1. GCP側で外部IPアドレス(静的)の予約
#2. AWS側でVPCウィザードからVPN接続の作成(#1.で予約した外部IPアドレスが必要)
#3. GCP側でクラウドルータの作成(#2.で作成したVPNコンフィグレーション情報が必要)
#4. GCP側でVPN接続の作成(#2.で作成したVPNコンフィグレーション情報が必要)
#5. AWS側でEC2(VMインスタンス)の立上げ & ICMPの許可設定追加
#6. GCP側でGCE(VMインスタンス)の立上げ & Pingの疎通確認

#1. GCP側で外部IPアドレス(静的)を予約

GCPの管理メニューから「ネットワーキング」→「相互接続」→「VPN」で「VPN接続を新規作成」。「IPアドレス」で「IPアドレスを作成」をクリックして下図のように名前を入力して予約。予約した後、AWS側で得られる情報なしではこれ以上進めないので一旦ここでストップ。「VPCネットワーク」の「外部IPアドレス」からでも予約ができるっぽいけど、#4で引き続きVPN接続の作成を行うので、このような方法で予約した。(ここでは、35.x.x.xのIPが取得できたと仮定)

#2. AWS側でVPCウィザードからVPN接続の作成

AWSの管理メニューから「VPC」→「VPCウィザードの開始」。

bitFlyer ビットコインを始めるなら安心・安全な取引所で

Step1:「プライベートのサブネットのみで、ハードウェアVPNアクセスを持つVPC」を選択。


Step2: VPC名とサブネット名を入力。プライベートネットワークとして割り当てるサブネットは10.0.0.0/16の中の10.0.1.0/24でデフォルトのままとした。

Step3:「カスタマーゲートウェイIP」に#1で予約したIPアドレス(35.x.x.x)を入力。「VPCの作成」をクリック。

VPN接続にインスタンスが出来上がるので選択して「設定のダウンロード」をクリック。ダウンロードしたファイルをWordpadで開く。


AWSは冗長化の為にトンネルを2個作ってくれる。GCP側で必要な設定情報は以下の通りでメモにコピペしておく。今回のテストではTunnel#1のみ使用。

Tunnel#1 & Tunnel#2
– Pre-Shared Key : abcdefg

Outside IP Addresses:
– Virtual Private Gateway : 13.x.x.x

Inside IP Addresses
– Customer Gateway : 169.x.x.150/30
– Virtual Private Gateway : 169.x.x.149/30

BGP Configuration Options:
– Customer Gateway ASN : 65000
– Virtual Private Gateway ASN : 10124

#3. GCP側でクラウドルータの作成

BGPを利用したVPN接続の場合はクラウドルーターが必要。
GCPの管理メニューから「相互接続」→「クラウドルーター」で以下を入力し、ルーターを作成。

名前:gcp-aws-test-cloudrouter
ネットワーク:default
リージョン:asia-northeast1 (東京:10.146.0.0/20)
Google ASN:65000(#2で得たBGP設定情報のCustomer Gateway ASN )

#4. GCP側でVPN接続の作成

GCPの管理メニューから「相互接続」→「VPN」で以下の値を入力し、VPNを作成。

名前:gcp-aws
ネットワーク:default
リージョン:asia-northeast1 (東京:10.146.0.0/20)
IPアドレス:35.x.x.x(#1で予約したIP)
リモートピアIPアドレス:13.x.x.x(#2で得たOutside IP address情報)
IKEバージョン:IKEv1(AWS側に合わせて)
共有シークレット:abcdefg(#2で得たPre-Shared Key)
ルーティングオプション:動的(BGP)
クラウドルーター:gcp-aws-test-cloudrouter(#3で作成)
・BGPセッション
名前:gcp-aws-test-bgp
ピアASN:10124(#2で得たBGP情報の Virtual Private Gateway ASN)
Google BGP IPアドレス:169.x.x.150(#2で得たInside IP address情報のCustomerGW)
ピア BGP IPアドレス:169.x.x.149(#2で得たInside IP address情報のVP-GW)


#5. AWS側でEC2(VMインスタンス)の立上げ & ICMPの許可設定追加

AWSの管理メニューから「EC2」→「インスタンスの作成」。インスタンスタイプとかはお任せします。ポイントはインスタンスの設定のところで#1で作成したネットワークとサブネットを指定して、今回VPN接続したVPC内にVMインスタンスを立てること。
作成したインスタンスに割り当てられているセキュリティグループで「インバウンドのルールの編集」から追加。これでGCPからVPNトンネルを通ってpingが届くように。
タイプ:すべてのICMP – IPv4
ソース:0.0.0.0/0

#6. GCP側でGCE(VMインスタンス)の立上げ & Pingの疎通確認

GCPの管理メニューから「Compute Engine」→「VMインスタンス」のインスタンス作成でリージョンをasia-northeast1(東京:10.146.0.0/20)にしてVMインスタンスを立ち上げる。立上げ後、インスタンスにSSH接続して、AWSで立上げたVMインスタンス(10.0.1.34)にpingを打つと、応答があり。AWS側からGCP側にもpingが通るはずです。
お疲れ様でした!

広告1
スポンサードリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする