GCPでCloud VPNを設定する
はじめに
Google Cloud Platform(GCP)をはじめとしたパブリッククラウドサービスは、最小の構成で始めた場合、すべてインターネット越しでのアクセスとなります。
通信を暗号化しないと盗聴される恐れがあり、 認証やファイアウォールの設定を忘れると攻撃を受ける可能性があります。
インターネットに公開する必要のない、社内利用限定のシステムをいくつか稼働させる場合、一つ一つに設定を施したとしても、どこかしら漏れがあるかもしれません。
このような社内利用限定のシステムならば、限定公開なサブネットを持つVirtual Private Cloud(VPC)と専用線サービスであるCloud Interconnectを組み合わせることで、リスクを軽減することができます。
(限定公開なサブネットについてはまたの機会にご紹介する予定です。)
試しにGCPを使ってみるという場合、専用線を引く代わりにVirtual Private Network(VPN)を利用することもできます。
今回はこのVPNの設定について説明します。
設定例
以下のように1台のヤマハVPNルーターと2本のトンネルからなるVPNを構築します。
トンネルを2本張ることで、GCPのメンテナンスやトラブルなどでもVPNが切れない、安定した接続が可能となります。
用意するもの
・ヤマハVPNルーター(RTX1200およびRTX1210で動作確認済み)を1台
・固定グローバルIPアドレスを1個(以下の例では「N.N.N.N」と表記)
GCPの設定
GCPのVPN設定ウィザードに従って進めることで簡単に設定できます。
以下のようにGCPでVPNを設定していきます。
- GCPにログインしているブラウザで以下を開きます。
https://console.cloud.google.com/hybrid/vpn
初めて設定する場合など、以下が表示されることがありますので『VPN接続を作成』をクリックします。
もしくは以下において『VPN設定ウィザード』をクリックします。 - VPNオプションは、今回は『高可用性(HA)VPN』を選択します。
- VPNゲートウェイの名前、VPCネットワーク、リージョンには任意のものを設定します。
- ピアVPNゲートウェイは『オンプレミス』を選択します。
A(以降「X.X.X.X」と表記)とB(以降「Y.Y.Y.Y」と表記)のIPアドレスは後ほど必要になります。 - ここで新しいピアVPNゲートウェイを作成します。
- 名前は任意のものを設定し、IPアドレスにはあらかじめ用意しておいた固定グローバルIPアドレス「N.N.N.N」を入力します。
- 続けてクラウドルーターも作成します。
- 名前は任意のものを設定し、Global ASNには「64999」を入力します。
- 戻ってトンネルに 任意の名前を設定し、1つ目のIKE事前共有キー (以降、IKE事前共有キーDと表記) を生成します。
- BGPの構成を開きます。
- 名前は任意のものを設定し、ピアASNには「65000」、MEDには「1000」、Cloud RouterのBGP IPには「169.254.0.1」、 BGPピアIPには「169.254.0.2」を入力します。
- VPNトンネルの1本目の設定はこれで完了ですが、2本目の設定を続けます。
- 戻って新しいVPNトンネルを作成します。
- 先ほど作成したVPNゲートウェイを選択します。
- ピアVPNゲートウェイとクラウドルーターには先ほど作成したものを選択します。
- Cloud VPNゲートウェイインターフェースは B「Y.Y.Y.Y」に変更したうえで、トンネルに先ほどと異なる任意の名前を設定し、2つ目のIKE事前共有キー(以降、IKE事前共有キーDと表記)を生成します。
- BGPの構成を開きます。
- ピアASNには先ほどと同じ「65000」を入力し、 名前は先ほどと異なる任意のもの 、MEDには「1010」、Cloud RouterのBGP IPには「169.254.1.1」、 BGPピアIPには「169.254.1.2」を入力します。
- これでGCPの設定は完了です。
ヤマハVPNルーターの設定
設定内容については、詳細を省きますが、以下に示すコンフィグをヤマハVPNルーターに設定します。用意しておいた固定グローバルIPアドレス「N.N.N.N」と、GCPの設定で取得したIPアドレス「X.X.X.X」「Y.Y.Y.Y」、IKE事前共有キーC,Dをコンフィグに埋め込んでください。
なお、本例ではNATが無効な環境を前提としています。NATをご利用中の場合、パラメーターの変更やコンフィグの追加などが必要となることがあります。
tunnel select 1
ipsec tunnel 1
ipsec sa policy 1 1 esp aes-cbc sha-hmac anti-replay-check=off
ipsec ike version 1 2
ipsec ike duration ipsec-sa 1 10800
ipsec ike duration ike-sa 1 36000
ipsec ike encryption 1 aes-cbc
ipsec ike group 1 modp1024
ipsec ike hash 1 sha
ipsec ike keepalive use 1 auto
ipsec ike local address 1 N.N.N.N
ipsec ike local name 1 N.N.N.N ipv4-addr
ipsec ike pfs 1 on
ipsec ike pre-shared-key 1 text IKE事前共有キーC
ipsec ike remote address 1 X.X.X.X
ipsec ike remote name 1 X.X.X.X ipv4-addr
ip tunnel address 169.254.0.2/30
ip tunnel remote address 169.254.0.1
ip tunnel tcp mss limit auto
tunnel enable 1
tunnel select 2
ipsec tunnel 2
ipsec sa policy 2 2 esp aes-cbc sha-hmac anti-replay-check=off
ipsec ike version 2 2
ipsec ike duration ipsec-sa 2 10800
ipsec ike duration ike-sa 2 36000
ipsec ike encryption 2 aes-cbc
ipsec ike group 2 modp1024
ipsec ike hash 2 sha
ipsec ike keepalive use 2 auto
ipsec ike local address 2 N.N.N.N
ipsec ike local name 2 N.N.N.N ipv4-addr
ipsec ike pfs 2 on
ipsec ike pre-shared-key 2 text IKE事前共有キーD
ipsec ike remote address 2 Y.Y.Y.Y
ipsec ike remote name 2 Y.Y.Y.Y ipv4-addr
ip tunnel address 169.254.1.2/30
ip tunnel remote address 169.254.1.1
ip tunnel tcp mss limit auto
tunnel enable 2
tunnel select none
ipsec auto refresh on
bgp use on
bgp autonomous-system 65000
bgp neighbor 1 64999 169.254.0.1 hold-time=60 metric=1000 local-address=169.254.0.2
bgp neighbor 2 64999 169.254.1.1 hold-time=60 metric=1010 local-address=169.254.1.2
bgp import filter 1 equal 0.0.0.0/0
bgp import 64999 static filter 1
bgp configure refresh
設定を流し込むとVPNが確立します。
GCPの確認
以上で設定は完了です。
以下のようにVPNトンネルのステータスが『確立済み』、BGPセッションのステータスが『BGPが確立されました』となっていることを確認します。