今回は Azure と Google Cloud を VPN 接続してみます。Google Cloud も AWS と同様に BGP ネイバーを確立するために APIPA を利用する必要があります。
今回の構成
Azure の仮想ネットワークゲートウェイと Google Cloud の Cloud Router を接続します。Cloud Router では Google Cloud 側ネットワークの AS 番号などを指定しますが、グローバル IP は接続ごとに払い出されます。したがって、斜めの襷掛け線はリンクアップしない接続となります。
構築手順
Azure:仮想ネットワークの展開
Azure ポータルにて、[リソースの作成] から「仮想ネットワーク」と検索し、[仮想ネットワーク] の [作成] をクリックします。
[基本] タブにて、次のように設定して [次] をクリックします。
- [サブスクリプション]:リソースを作成するサブスクリプションを選択
- [リソースグループ]:リソースを作成するリソースグループを選択
- [名前]:リソースの名前を指定(VPN-LAB-2-VNET)
- [地域]:[東日本]
[IP アドレス] タブで次のように入力し、[次] をクリックします。
- [IPv4 アドレス空間]:仮想ネットワークのプライベートアドレスを指定(172.17.2.0/24)
- [サブネット]
- [サブネット名]:サブネットの名前を指定(PrivateSubnet)
- [サブネットアドレス範囲]:サブネットのアドレス範囲を指定(172.17.2.0/25)
[セキュリティ] タブで次のように設定して [次] をクリックします。
- [BastionHost]:[無効化]
- [DDoS Protection Standard]:[無効化]
- [ファイアウォール]:[無効化]
[タグ] タブでそのまま [次] をクリックします。
[確認および作成] タブで [作成] をクリックします。
仮想ネットワークの作成が完了するのを確認します。
Azure:仮想ネットワークゲートウェイの展開
[リソースの作成] から「仮想ネットワーク ゲートウェイ」と検索し、 [仮想ネットワーク ゲートウェイ] の [作成] をクリックします。
[基本] タブで次のように入力して [次] をクリックします。
- [プロジェクトの詳細]
- [サブスクリプション]:リソースを作成するサブスクリプションを選択
- [リソースグループ]:仮想ネットワークに応じて自動選択
- [インスタンスの詳細]
- [名前]:リソースの名前を指定(VPN-LAB-2-VGW)
- [地域]:[東日本]
- [ゲートウェイの種類]:[VPN]
- [VPN の種類]:[ルート ベース]
- [SKU]:[VpnGw1]
- [世代]:[Generation1]
- [仮想ネットワーク]:[VPN-LAB-2-VNET]
- [ゲートウェイ サブネットのアドレス範囲]:GatewaySubnet のアドレス範囲を指定(172.17.2.128/28)
- [パブリック IP アドレス]
- [パブリック IP アドレス名]:パブリック IP アドレスリソースの名前(VPN-LAB-2-VGW-PIP-1)
- [2番目のパブリック IP アドレス]
- [2番目のパブリック IP アドレス名]:パブリック IP アドレスリソースの名前(VPN-LAB-2-VGW-PIP-2)
- [BGP の構成]:[有効]
- [自律システム番号 (ASN)]:仮想ネットワークの AS 番号を指定(64172)
- [カスタムの Azure APIPA BGP IP アドレス]:BGP ピアリングに使う IP アドレスを指定(169.254.22.2)
- [2番目のカスタムの Azure APIPA BGP IP アドレス]:BGP ピアリングに使う IP アドレスを指定(169.254.22.10)
[タグ] タブでそのまま [次] をクリックします。
[確認および作成] タブで [作成] をクリックします。
仮想ネットワークゲートウェイの作成が完了するのを待ちます(30〜40分かかります)。完了したら仮想ネットワークゲートウェイのパブリック IP アドレスを [構成] から確認します。
GC:VPC ネットワークの作成
Cloud Console にて、[VPC ネットワーク]>[VPC ネットワーク] をクリックし、上部の [VPC ネットワークを作成] をクリックします。
[VPC ネットワークの作成] にて、次のように入力して [作成] をクリックします。
- [名前]:VPC ネットワークの名前を指定(vpn-lab-2-vpc)
- [サブネット作成モード]:[カスタム]
- [名前]:サブネットの名前を指定(lab-2-private-subnet)
- [リージョン]:[asia-northeast1]
- [IP アドレス範囲]:サブネットのアドレス範囲を指定(172.19.2.0/24)
- [限定公開の Google アクセス]:[オフ]
- [フローログ]:[オフ]
- [動的ルーティング モード]:[リージョン]
- [Maximum Transmission Unit]:1460
VPC ネットワークが作成されたことを確認します。
GC:クラウドルーターの作成
[ハイブリッド接続]>[クラウド ルーター] を選択し、上部の [ルーターを作成] をクリックします。
[Cloud Router の作成] にて、次のように入力して [作成] をクリックします。
- [名前]:クラウド ルーターの名前を指定(vpn-lab-2-cr)
- [ネットワーク]:[vpn-lab-2-vpc]
- [リージョン]:[asia-northeast1]
- [Google ASN]:Google Cloud 側の AS 番号を指定(65192)
- [アドバタイズさえれたルート]
- [ルート]:[Cloud Route に表示されるすべてのサブネットにアドバタイズ]
クラウドルーターが作成されたことを核にします。
GC:VPN 接続の作成
[ハイブリッド接続]>[VPN] を選択し、[VPN 接続を作成] をクリックします。
[VPN の作成] にて、[高可用性 (HA) VPN] を選択して [続行] をクリックします。
[Cloud HA VPN ゲートウェイの作成] にて、次のように入力し、[作成して続行] をクリックします。
- [VPN ゲートウェイの名前]:VPN ゲートウェイの名前を指定(vpn-lab-2-vgw)
- [ネットワーク]:[vpn-lab-2-vpc]
- [リージョン]:[asia-northeast1]
[VPN トンネルの追加] にて、[ピア VPN ゲートウェイ] で [オンプレミスまたは非 Google Cloud] を選択します。その後、[ピア VPN ゲートウェイの名前] で [新しいピア VPN ゲートウェイを作成する] をクリックします。
[ピア VPN ゲートウェイの追加] にて、次のように設定し [作成] をクリックします。
- [名前]:ピア VPN ゲートウェイの名前を指定(vpn-lab-2-pgw-azure)
- [ピア VPN ゲートウェイ インタフェース]:[2 つのインターフェース]
- [インターフェース 0 の IP アドレス]:Azure 仮想ネットワークゲートウェイの 1 番目のパブリック IP アドレスを入力
- [インターフェース 1 の IP アドレス]:Azure 仮想ネットワークゲートウェイの 2 番目のパブリック IP アドレスを入力
再び [VPN トンネルの追加] にて、次のように入力した後で [VPN トンネル (未構成)] をクリックします。
- [高可用性]:[VPN トンネルのペアを作成する]
- [Cloud Route]:[vpn-lab-2-cr]
[VPN トンネル] にて、次のように入力して [完了] をクリックします。
- [関連づけられている Cloud VPN ゲートウェイ インタフェース]:Cloud VPN ゲートウェイの 1 番目の IP アドレスが自動選択
- [関連づけられているピア VPN ゲートウェイ インタフェース]:Azure 仮想ネットワークゲートウェイの 1 番目のパブリック IP アドレスを選択
- [名前]:1 番目の VPN トンネルの名前を指定(vpn-lab-2-vgw-to-azure-1)
- [IKE バージョン]:[IKEv2]
- [IKE 事前共有キー]: 1 番目の VPN トンネルの共有キーを指定
同様に 2 番目の VPN トンネルの情報を入力します。
- [関連づけられている Cloud VPN ゲートウェイ インタフェース]:Cloud VPN ゲートウェイの 2 番目の IP アドレスが自動選択
- [関連づけられているピア VPN ゲートウェイ インタフェース]:Azure 仮想ネットワークゲートウェイの 2 番目のパブリック IP アドレスを選択
- [名前]:2 番目の VPN トンネルの名前を指定(vpn-lab-2-vgw-to-azure-2)
- [IKE バージョン]:[IKEv2]
- [IKE 事前共有キー]: 2 番目の VPN トンネルの共有キーを指定
VPN トンネルを作成したら [作成して続行] をクリックします。
[BGP セッションの構成] にて、[BGP セッションを構成] をクリックします。
[BGP セッションの作成] にて、次のように入力して [作成] をクリックします。
- [名前]:BGP セッションの名前(vpn-lab-2-bgp-azure-1)
- [ピア ASN]:Azure 仮想ネットワークゲートウェイの AS 番号(64172)
- [アドバタイズされたルートの優先度 (MED)]:空欄
- [Cloud Router の BGP IP]:Cloud Router の BGP IP アドレス(169.254.22.1)
- [BGP ピア IP]:Azure 仮想ネットワークゲートウェイの BGP ピア IP アドレス(169.254.22.2)
BGP セッションの構成を入力し終えたら [BGP 構成を保存] をクリックします。
[まとめとリマインダー] にて、設定内容を確認して [OK] をクリックします。
Azure:ローカルネットワークゲートウェイの展開
Azure ポータルに戻り、[リソースの作成] から「ローカル ネットワーク ゲートウェイ」を検索し、[ローカル ネットワーク ゲートウェイ] で [作成] をクリックします。
[ローカル ネットワーク ゲートウェイの作成] にて、次のように入力して [作成] をクリックします。
1 番目のローカルネットワークゲートウェイには 1 番目の Google Cloud の VPN 接続(vpn-lab-2-vgw-to-azure-1)の接続情報を入力します。
- [名前]:ローカルネットワークゲートウェイの名前を指定(VPN-LAB-2-GC-1)
- [エンドポイント]:[IP アドレス]
- [IP アドレス]:Google Cloud の VPN 接続ののグローバル IP アドレスを指定
- [アドレス空間]:空欄
- [BGP 設定の構成]:[有効]
- [自律システム番号 (ASN)]:Google Cloud の AS 番号を指定(65192)
- [BGP ピアの IP アドレス]:Google Cloud の BGP ピア IP アドレスを指定(169.254.22.1)
- [サブスクリプション]:ローカルネットワークゲートウェイを展開するサブスクリプションを指定
- [リソース グループ]:ローカルネットワークゲートウェイを展開するリソースグループを指定
- [場所]:ローカルネットワークゲートウェイを展開するリージョンを指定
同様に 2 番目のローカルネットワークゲートウェイも同様に作成します。2 番目のローカルネットワークゲートウェイには 2 番目の Google Cloud の VPN 接続(vpn-lab-2-vgw-to-azure-2)の接続情報を入力します。
- [名前]:ローカルネットワークゲートウェイの名前を指定(VPN-LAB-2-GC-2)
- [エンドポイント]:[IP アドレス]
- [IP アドレス]:Google Cloud の VPN 接続ののグローバル IP アドレスを指定
- [アドレス空間]:空欄
- [BGP 設定の構成]:[有効]
- [自律システム番号 (ASN)]:Google Cloud の AS 番号を指定(65192)
- [BGP ピアの IP アドレス]:Google Cloud の BGP ピア IP アドレスを指定(169.254.22.2)
- [サブスクリプション]:ローカルネットワークゲートウェイを展開するサブスクリプションを指定
- [リソース グループ]:ローカルネットワークゲートウェイを展開するリソースグループを指定
- [場所]:ローカルネットワークゲートウェイを展開するリージョンを指定
ローカルネットワークゲートウェイが作成されたことを確認します。
Azure:サイト間接続の展開
[すべてのリソース]>[仮想ネットワーク ゲートウェイ] を選択し、作成した仮想ネットワークゲートウェイ(VPN-LAB-2-VGW)をクリックします。
左メニューから、[接続] をクリックします。上部メニューの [追加] をクリックします。[接続の追加] にて、次のように入力して [OK] をクリックします。
- [名前]:接続の名前を指定(VPN-LAB-2-VGW-to-GC-1)
- [接続の種類]:[サイト対サイト (IPsec)]
- [仮想ネットワーク ゲートウェイ]:[VPN-LAB-2-VGW]
- [ローカル ネットワーク ゲートウェイ]:[VPN-LAB-2-GC-1]
- [共有キー (PSK)]:vpn-lab-2-vgw-to-azure-1 で指定した事前共有キー
- [Azure プライベート IP アドレスを使用する]:[無効] (未チェック)
- [BGP を有効にする]:[有効] (チェック)
- [IKE プロトコル]:[IKEv2]
2番目の接続も同様に作成します。
- [名前]:接続の名前を指定(VPN-LAB-2-VGW-to-GC-2)
- [接続の種類]:[サイト対サイト (IPsec)]
- [仮想ネットワーク ゲートウェイ]:[VPN-LAB-2-VGW]
- [ローカル ネットワーク ゲートウェイ]:[VPN-LAB-2-GC-2]
- [共有キー (PSK)]:vpn-lab-2-vgw-to-azure-2 で指定した事前共有キー
- [Azure プライベート IP アドレスを使用する]:[無効] (未チェック)
- [BGP を有効にする]:[有効] (チェック)
- [IKE プロトコル]:[IKEv2]
2つの接続が作成されたことを確認します。
動作確認
接続状態
Azure の仮想ネットワークゲートウェイで接続の [状態] が両方とも [接続済み] になることを確認します。
Google Cloud の VPN 接続は 2 つのトンネルで [VPN トンネルのステータス] が [確立済み]、[BGP セッションのステータス] が [BGP が確立されました] になります。
ルート広報
Azure では仮想マシンのネットワークインターフェースを選択し、 [有効なルート] から BGP で広報されたルートを確認できます。広報されたルートは次ホップが [仮想ネットワーク ゲートウェイ] になっています。
Google Cloud では VPC の [ルート] タブを選択することで広報されたルートを確認できます。広報されたルートは [ネクストホップ] が仮想プライベートゲートウェイの BGP アドレスになっています。
以上で BGP による Azure と Google Cloud の S2S VPN 接続は完了です。といきたいところですが、どうにも接続が不安定です。両方の接続が綺麗にアップしませんでした。BGP ネイバーが、片方はアップするけどもう片方がダウンしている、という状態が数時間おきに入れ替わるような感じです。どちらの接続もアップはするので設定値に問題はなさそうですが、少し不可解でした。
コメント