今回は Azure と AWS で Site-to-Site VPN を構築します。BGP を使って冗長性を持たせた(複数の IPsec トンネルを持った)構成を実現します。
今回の構成
今回の構成は次のようなになります。AWS と BGP で接続するには APIPA が必要ですが、Azure 側の APIPA 仕様によって利用できない IPsec トンネルが発生します。利用可能なトンネルは最大でも2本までです。
構築手順
Azure:仮想ネットワークの展開
Azure ポータルにて、[リソースの作成] から「仮想ネットワーク」と検索し、[仮想ネットワーク] の [作成] をクリックします。
[基本] タブにて、次のように設定して [次] をクリックします。
- [サブスクリプション]:リソースを作成するサブスクリプションを選択
- [リソースグループ]:リソースを作成するリソースグループを選択
- [名前]:リソースの名前を指定(VPN-LAB-1-VNET)
- [地域]:[東日本]
[IP アドレス] タブで次のように入力し、[次] をクリックします。
- [IPv4 アドレス空間]:仮想ネットワークのプライベートアドレスを指定(172.17.1.0/24)
- [サブネット]
- [サブネット名]:サブネットの名前を指定(PrivateSubnet)
- [サブネットアドレス範囲]:サブネットのアドレス範囲を指定(172.17.1.0/25)
[セキュリティ] タブで次のように設定して [次] をクリックします。
[タグ] タブでそのまま [次] をクリックします。
[確認および作成] タブで [作成] をクリックします。
仮想ネットワークの作成が完了するのを確認します。
Azure:仮想ネットワークゲートウェイの展開
[リソースの作成] から「仮想ネットワーク ゲートウェイ」と検索し、 [仮想ネットワーク ゲートウェイ] の [作成] をクリックします。
[基本] タブで次のように入力して [次] をクリックします。
- [プロジェクトの詳細]
- [サブスクリプション]:リソースを作成するサブスクリプションを選択
- [リソースグループ]:仮想ネットワークに応じて自動選択
- [インスタンスの詳細]
- [名前]:リソースの名前を指定(VPN-LAB-1-VGW)
- [地域]:[東日本]
- [ゲートウェイの種類]:[VPN]
- [VPN の種類]:[ルート ベース]
- [SKU]:[VpnGw1]
- [世代]:[Generation1]
- [仮想ネットワーク]:[VPN-LAB-1-VNET]
- [ゲートウェイ サブネットのアドレス範囲]:GatewaySubnet のアドレス範囲を指定(172.17.1.128/28)
- [パブリック IP アドレス]
- [パブリック IP アドレス名]:パブリック IP アドレスリソースの名前(VPN-LAB-1-VGW-PIP-1)
- [2番目のパブリック IP アドレス]
- [2番目のパブリック IP アドレス名]:パブリック IP アドレスリソースの名前(VPN-LAB-1-VGW-PIP-2)
- [BGP の構成]:[有効]
- [自律システム番号 (ASN)]:仮想ネットワークの AS 番号を指定(645171)
- [カスタムの Azure APIPA BGP IP アドレス]:BGP ピアリングに使う IP アドレスを指定(169.254.21.2)
- [2番目のカスタムの Azure APIPA BGP IP アドレス]:BGP ピアリングに使う IP アドレスを指定(169.254.21.10)
[タグ] タブでそのまま [次] をクリックします。
[確認および作成] タブで [作成] をクリックします。
仮想ネットワークゲートウェイの作成が完了するのを待ちます(30〜40分かかります)。完了したら仮想ネットワークゲートウェイのパブリック IP アドレスを [構成] から確認します。
AWS:VPC の作成
AWS の VPC = 仮想ネットワークです。どちらも同じくサブネットを定義します。
AWS のマネージメントコンソールから [VPC] をクリックします。ナビゲーションバーから [VPC] を選択し、[VPC を作成] をクリックします。
[VPC を作成] にて、次のように入力して [VPC を作成] をクリックします。
- [名前タグ]:VPC の名前を指定(VPN-LAB-1-VPC)
- [IPv4 CIDR ブロック]:VPC のアドレス空間を指定(172.18.1.0/24)
- [IPv6 CIDR ブロック]:[IPv6 CIDR ブロックなし]
- [テナンシー]:[デフォルト]
VPC が作成されたことを確認します。
ナビゲーションバーにて [サブネット] を選択し、[サブネットを作成] をクリックします。[サブネットを作成] にて、次のように入力し [サブネットを作成] をクリックします。
- [VPC]
- [VPC ID]:作成した VPC を選択(VPN-LAB-1-VPC)
- [サブネットの設定]
- [サブネット名]:サブネットの名前を指定(private-subnet)
- [アベイラビリティゾーン]:サブネットのアベイラビリティゾーンを指定(ap-northeast-1a)
- [IPv4 CIDR ブロック]:サブネットのアドレス範囲を指定(172.18.1.0/25)
サブネットの作成が完了することを確認します。
AWS:カスタマーゲートウェイの作成
カスタマーゲートウェイ=ローカルゲートウェイに相当するものです。接続先の IP アドレスごとに定義します。
ナビゲーションバーから [カスタマーゲートウェイ] を選択し、[カスタマーゲートウェイの作成] をクリックします。[カスタマーゲートウェイの作成] にて、次のように入力して [カスタマーゲートウェイの作成] をクリックします。
- [名前]:カスタマーゲートウェイの名前を指定(VPN-LAB-1-Azure-1)
- [ルーティング]:[動的]
- [BGP ASN]:Azure 側の AS 番号を指定(64171)
- [IP アドレス]:接続先のグローバル IP アドレスを指定(Azure 仮想ネットワークゲートウェイのパブリック IP アドレス)
- [Certificate ARN]:空欄のまま
- [Device]:接続先を識別しやすい情報を入力
同様に Azure 仮想ネットワークゲートウェイの2番目のパブリック IP アドレス向けのカスタマーゲートウェイ(VPN-LAB-1-Azure-2)も作成します。
2つのカスタマーゲートウェイが作成されたことを確認します。
AWS:仮想プライベートゲートウェイの作成
ナビゲーションバーで [仮想プライベートゲートウェイ] を選択し、[仮想プライベートゲートウェイの作成] をクリックします。
- [名前タグ]:仮想プライベートゲートウェイの名前を指定(VPN-LAB-1-VGW)
- [ASN]:[カスタム ASN]
- AWS 側の AS 番号を指定(65181)
仮想プライベートゲートウェイの作成が完了することを確認します。作成した仮想プライベートゲートウェイを選択し、[アクション]>[VPC にアタッチ] をクリックします。
[VPC にアタッチ] にて、[VPC] で作成した VPC を選択して [はい、アタッチします] をクリックします。
作成した仮想プライベートゲートウェイの [状態] が [attached] になったことを確認します。
AWS:VPN 接続の作成
ナビゲーションバーから [サイト間の VPN 接続] を選択し、 [VPN 接続の作成] をクリックします。[VPN 接続の作成] にて、次のように入力し [VPN 接続の作成] をクリックします。
- [名前タグ]:VPN 接続の名前を指定(VPN-LAB-1-VGW-to-Azure-1)
- [ターゲットゲートウェイタイプ]:[仮想プラベートゲートウェイ]
- [仮想プライベートゲートウェイ]:作成した仮想プライベートゲートウェイを指定(VPN-LAB-1-VGW)
- [カスタマーゲートウェイ]:[既存]
- [カスタマーゲートウェイ ID]:作成した最初のカスタマーゲートウェイを指定(VPN-LAB-1-Azure-1)
- [ルーティングオプション]:[動的 BGP が必要]
- [トンネル内部 IP バージョン]:[IPv4]
- [ローカル IPv4 ネットワーク Cidr]:空欄
- [リモート IPv4 ネットワーク Cidr]:空欄
- [トンネルオプション]
- [トンネル 1 の内部 IPv4 CIDR]:Azure 仮想ネットワークゲートウェイの1番目のカスタム BGP IP アドレスサブネットを指定(169.254.21.0/30)
- [トンネル 1 の事前共有キー]:Azure 仮想ネットワークゲートウェイの1番目の事前共有キーを指定
- [トンネル 1 の詳細オプション]:空欄
- [トンネル 2 の事前共有キー]:空欄
- [トンネル 1 の詳細オプション]:[デフォルトオプションを使用]
- [トンネル 2 の詳細オプション]:[デフォルトオプションを使用]
同様に2番目のカスタマーゲートウェイの情報でも VPN 接続を作成します。
2本の VPN 接続が作成されたことを確認します。[アクション] から、 VPN の構成情報をダウンロードする事ができます。
AWS:ルートテーブルのルート伝搬設定
ナビゲーションバーから [ルートテーブル] をクリックし、作成した VPC に関連づけられているルートテーブルを選択します。[ルート伝播] タブを選択し、 [ルート伝達の編集] をクリックします。
[ルート伝達の編集] にて、[ルート伝播] で作成した仮想プライベートゲートウェイの [伝播] を有効化して [保存] します。
Azure:ローカルネットワークゲートウェイの展開
Azure ポータルに戻り、[リソースの作成] から「ローカル ネットワーク ゲートウェイ」を検索し、[ローカル ネットワーク ゲートウェイ] で [作成] をクリックします。
[ローカル ネットワーク ゲートウェイの作成] にて、次のように入力して [作成] をクリックします。
- [名前]:ローカルネットワークゲートウェイの名前を指定(VPN-LAB-1-AWS-1)
- [エンドポイント]:[IP アドレス]
- [IP アドレス]:AWS の VPN 接続ののグローバル IP アドレスを指定
- [アドレス空間]:空欄
- [BGP 設定の構成]:[有効]
- [自律システム番号 (ASN)]:AWS の AS 番号を指定(65171)
- [BGP ピアの IP アドレス]:AWS の BGP ピアアドレスを指定(169.254.21.1)
- [サブスクリプション]:ローカルネットワークゲートウェイを展開するサブスクリプションを指定
- [リソース グループ]:ローカルネットワークゲートウェイを展開するリソースグループを指定
- [場所]:ローカルネットワークゲートウェイを展開するリージョンを指定
1 番目のローカルネットワークゲートウェイには 1 番目の AWS の VPN 接続(VPN-LAB-1-VGW-to-Azure-1)の中の1本目の接続情報を入力します。
同様に 2 番目のローカルネットワークゲートウェイも同様に作成します。2 番目のローカルネットワークゲートウェイには 2 番目の AWS の VPN 接続(VPN-LAB-1-VGW-to-Azure-2)の中の1本目の接続情報を入力します。
ローカルネットワークゲートウェイが作成されたことを確認します。
Azure:サイト間接続の展開
[すべてのリソース]>[仮想ネットワーク ゲートウェイ] を選択し、作成した仮想ネットワークゲートウェイ(VPN-LAB-1-VGW)をクリックします。
左メニューから、[接続] をクリックします。上部メニューの [追加] をクリックします。[接続の追加] にて、次のように入力して [OK] をクリックします。
- [名前]:接続の名前を指定(VPN-LAB-1-VGW-to-AWS-1)
- [接続の種類]:[サイト対サイト (IPsec)]
- [仮想ネットワーク ゲートウェイ]:[VPN-LAB-1-VGW]
- [ローカル ネットワーク ゲートウェイ]:[VPN-LAB-1-AWS-1]
- [共有キー (PSK)]:VPN-LAB-1-VGW-to-Azure-1 で指定した事前共有キー
- [Azure プライベート IP アドレスを使用する]:[無効] (未チェック)
- [BGP を有効にする]:[有効] (チェック)
- [IKE プロトコル]:[IKEv2]
2番目の接続も同様に作成します。
2つの接続が作成されたことを確認します。
動作確認
接続状態
Azure の仮想ネットワークゲートウェイで接続の [状態] が両方とも [接続済み] になることを確認します。
AWS の VPN 接続は2つずつあるトンネルのうち一つだけ [ステータス] が [アップ] になります。
ルート広報
Azure では仮想マシンのネットワークインターフェースを選択し、 [有効なルート] から BGP で広報されたルートを確認できます。広報されたルートは次ホップが [仮想ネットワーク ゲートウェイ] になっています。
AWS ではルートテーブルから [ルート] タブを選択することで広報されたルートを確認できます。広報されたルートは [ターゲット] が仮想プライベートゲートウェイになっています。
以上で BGP による Azure と AWS の S2S VPN 接続は完了です。
コメント