TOP>コラム一覧>AWS-Azureのサイト間接続を試してみた(動的ルーティング編)

AWS-Azureのサイト間接続を試してみた(動的ルーティング編)

はじめに

こんにちは。CTCの朴木です。
クラウド化が進み、マルチクラウドな環境構築の需要が増えつつあります。今回はAWSとAzureの環境接続ということで、Site to Site VPNを用いて2つのクラウド環境をつないでみようと思います。
VPN 接続には、仮想プライベートゲートウェイまたはトランジットゲートウェイが必要となります。今回、AWS側ではトランジットゲートウェイを利用して構築します。
また、前提として今回は動的ルーティングでの接続を想定しています。

事前準備

事前準備としてAWS、AzureともにVPCやサブネット等の作成は済ませた状態とさせていただきます。

AWS側

・VPCのCIDR:10.1.0.0/16

サブネット名 AZ CIDR ルートテーブル名
subnet-private01-2a 2a 10.1.1.0/24 rtb-private01-2a
subnet-private01-2c 2c 10.1.101.0/24 rtb-private01-2c
subnet-transit-2a 2a 10.1.5.0/28 rtb-transit-2a
subnet-transit-2c 2c 10.1.105.0/28 rtb-transit-2c

Azure側

・リソースグループ名:honoki-test01
・仮想ネットワークのCIDR:172.17.0.0/16

サブネット名 CIDR
GatewaySubnet 172.17.0.0/24
subnet-private 172.17.1.0/24

それでは以下よりSite to Site VPNの構築していきます!

Azure:仮想ネットワークゲートウェイの作成

まずは仮想ネットワークゲートウェイの作成になります。パブリックIP仮想ネットワークゲートウェイの作成で設定したパラメータは下記になります。
ASNは今回65000としましたがサポートしている範囲であれば問題ないです。このあとAWSのカスタマーゲートウェイでもASNを設定しますが、同じ番号を指定する必要があることはあらかじめご認識ください。

名前:vpn-gw-honoki
ゲートウェイの種類:VPN
仮想ネットワーク:vnet-honoki(作成した仮想ネットワークを指定)
パブリックIPアドレス:新規作成
パブリックIPアドレス名: vpn-gw-ip-honoki
アクティブ/アクティブ モードの有効:無効
BGPの構成:有効
自律システム番号(ASN):65000

仮想ネットワークゲートウェイが作成されるとパブリックIPアドレスが発行されます。
このIPはAWSのカスタマーゲートウェイを作成する際に必要になります。

カスタマーゲートウェイの作成

続いて、AWS側の設定に入ります。
AWSコンソールへログインし、検索画面からVPCサービスを検索してサービス画面へ遷移します。
左ペインの「仮想プライベートネットワーク(VPN)」より「カスタマーゲートウェイ」を選択し「カスタマーゲートウェイ」の作成をクリックします。
カスタマーゲートウェイの名前を入力し、IPアドレスの欄には先ほどAzureで設定したBGP ARNと仮想ネットワークゲートウェイのパブリックIPアドレスを入力します。
「カスタマーゲートウェイを作成」ボタンをクリックし、カスタマーゲートウェイを作成します。

トランジットゲートウェイの作成

左ペインの「Transit Gateway」を選択し「Transit Gatewayを作成」ボタンをクリックします。
トランジットゲートウェイの名前を入力し、「Transit Gatewayを作成」ボタンをクリックします。

作成するとAWS側の自律システム番号(ASN)が自動的に設定されます。このASNはあとでAzure側の設定に必要となります。

Site to Site VPNの作成

左ペインの「仮想プライベートネットワーク(VPN)」より「Site to Site VPN接続」を選択し「VPN接続を作成する」ボタンをクリックします。
Site to Site VPNの名前を入力し、ターゲットゲートウェイのタイプに「Transit Gateway」を選択して上記で作成したトランジットゲートウェイを指定します。
カスタマーゲートウェイは既存を選択し、同様に上記で作成したカスタマーゲートウェイを指定します。
ルーティングオプションは「動的」を選択します。

今回はトンネルオプションからトンネルの内部IP CIDRを下記のように指定します。

トンネル1の内部IP CIDR:169.254.21.0/30
トンネル2の内部IP CIDR:169.254.22.0/30

内部IP CIDRを入力したら「VPN接続を作成する」ボタンをクリックします。

VPNを作成できたら「設定をダウンロードする」ボタンより、設定情報を取得します。
ベンターは「Generic」を選択し、IKEバージョンに「ikev2」を選択したら「ダウンロード」ボタンをクリックします。

ダウンロードしたファイルの内容を下記に一部抜粋します。
下記情報の①は後で利用しますので手元で確認できるようにしておきましょう。

設定情報の一部抜粋

IPSec Tunnel #1
  ================================================================================
  #1: Internet Key Exchange Configuration
  
  〈中略〉
  
    - IKE version              : IKEv2
    - Authentication Method    : Pre-Shared Key
    - Pre-Shared Key           : xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx   (①)
    - Authentication Algorithm : sha1
    - Encryption Algorithm     : aes-128-cbc
    - Lifetime                 : 28800 seconds
    - Phase 1 Negotiation Mode : main
    - Diffie-Hellman           : Group 2
  

AWS側の接続設定は以上になります。次は再びAzure側の設定になります。

ローカルネットワークゲートウェイの作成

Site to Site VPN設定が完了すると2つのトンネルが作成されます。まずはIPSec Tunnel #1の接続を確立させてみましょう。
Azureにて「ローカルネットワークゲートウェイ」のサービス画面に遷移し、「+作成」をクリックします。
名前を入力し、IPアドレスを設定します。ここでのIPアドレスは先ほど作成したSite to Site VPNの外部IPアドレスになります。また、IPアドレスはAWSでダウンロードしたVPNの設定情報にも記載されています。

BGP設定の構成は無効にします。
アドレス空間は設定せず詳細設定に進みます。

BGPの構成は「はい」にし、ASNにはTransitGatewayに設定されている番号を入力します。
BGPピアのIPアドレスは169.254.21.1を入力します。

BGPピアのIPアドレスはトンネル1の内部IP CIDRによって決まります。
今回、トンネル1の内部IP CIDRは169.254.21.0/30です。
この場合AWS BGP ピア IP アドレスは169.254.21.1となります。
また、カスタム Azure APIPA BGP IP アドレスは169.254.21.2となります。

続いてカスタム Azure APIPA BGP IP アドレスも設定しましょう。これは作成した仮想ネットワークゲートウェイの構成から更新することが可能です。上記に記載した通り、カスタム Azure APIPA BGP IP アドレスは169.254.21.2になりますので、IPアドレスを入力して設定を保存してください。

さて、ローカルネットワークゲートウェイのサービス画面に戻り、左ペインの「接続」よりSite to Site VPNの接続設定に移りましょう。
設定内容は以下になります。

接続の種類:サイト対サイト
名前:azure-aws-bgp01-honoki
仮想ネットワークゲートウェイ:作成した仮想ネットワークを指定
ローカルネットワークゲートウェイ:作成したローカルネットワークゲートウェイを指定
共有キー:AWS側のSite to Site VPNの設定ダウンロードで取得した①を入力
IKEプロトコル:IKEv2
Azure プライベート IP アドレスを使用する:無効
BGPを有効にする:有効
カスタムBGPアドレスを有効にする:有効
      →カスタム Azure APIPA BGP IP アドレス(169.254.21.2)を指定

(そのほかはデフォルトの設定)

これで設定は終わりです!

状態確認

では、それぞれの状態を確認してみましょう。
AWS側では下記の通りトンネル1のステータスがアップになり接続ができているようです。

また、Azure側でも状態が「接続済み」となっています。

ここまでできたらあとは同じようにトンネル2についても設定するだけです!
もう一方のトンネルの設定も完了したら両方のステータスがアップの状態となりSite to Site VPNの接続が確立されます。

おわりに

いかがでしたでしょうか。
あとはルートテーブルやインスタンスのセキュリティグループを最適なものに設定しておけば通信が可能かと思います。
今回、Site to Site VPNの接続をするにあたり引っかかったポイントは、トンネルの内部IP CIDRの設定でした。AWS側では指定しなくてもSite to Site VPNを作成するのは可能ですが、その内部IP CIDRは自動的に設定されます。一方で Azure APIPA BGP IP アドレスは169.254.21.0~169.254.22.255の範囲で指定する必要があります。そのため自動的に内部IP CIDRが割り当てられた場合、Azure側のBGP IPアドレス範囲外になってしまう可能性があります。なのであらかじめ169.254.21.0~169.254.22.255の範囲でSite to Site VPNのトンネルの内部IP CIDRを決めておくと良いでしょう。
次のコラムでは、別のAWSアカウントを加えてRAMで今回のTransit Gatewayを共有してAzureからそのアカウントへの通信を可能にするような環境構築を記事にしたいと考えてます。
今回の記事が誰かの参考になれば嬉しいです。

CTCは、AWSのビジネス利活用に向けて、お客様のステージに合わせた幅広い構築・運用支援サービスを提供しています。
経験豊富なエンジニアが、ワンストップかつ柔軟にご支援します。
ぜひ、お気軽にお問い合わせください。

お問い合わせ



【著者プロフィール】

朴木 瞳(ほうのき ひとみ)

伊藤忠テクノソリューションズ株式会社 クラウドエンジニア

AWSのインフラ構築や技術QAを経験し、現在はアカウント管理に従事。従量削減のためのRIのコストシミュレーションにおいてお客様を支援中。

TOP>コラム一覧>AWS-Azureのサイト間接続を試してみた(動的ルーティング編)

pagetop