Site to Site VPN 接続したオンプレミスを経由して AWS VPC と Azure VNet の通信を実現する

2020.06.16

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、菊池です。

AzureのSite to Site VPNで遊んでます。先の記事にて、Azure とオンプレミスを VPN接続し、動的ルーティング(BGP)によるルーティングで通信する環境を構築しました。

今回はさらに拡張して、AWSのVPCとも接続し、Azure VNet <- オンプレ -> AWS VPC のような経路での通信を試してみました。

AWSのVPCとAzureのVNetを直接接続する構成は下記の記事にて紹介しております。

今回はAzureの経路制御の動作を確認する意図もあり、直接ではなくオンプレを経由するように接続しています。

AWS との VPN 接続を追加

前述のブログのように、Azure VNetとの接続はできているところからスタートです。

AWS側にVPN接続を作成していきます。こちらもあらかじめ、VPCと仮想プライベートゲートウェイ(VGW)、カスタマーゲートウェイは作成済みです。

カスタマーゲートウェイはこのようになっています。IPアドレス、BGP ASNはAzure側のローカルネットワークゲートウェイで設定したものと同じにします。

VGWの設定です。こちらのASNは、オンプレおよびAzureとは異なる値を設定しましょう。

続いて、VPN接続を作成します。

作成済みのVGW、カスタマーゲートウェイを選択します。ルーティングオプションは [動的] を選択します。

接続ができましたので、設定をダウンロードします。

ベンダー/プラットフォーム/バージョンを選択してダウンロード。

また、BGPで受け取ったルートをVPCルーティングに反映するため、ルートテーブルで [ルート伝搬] を有効化しておきます。

ルータへのVPNの設定は以下の記事を参考にしてください。

最終的に、ルータのBGP設定は以下のようになっています。

router bgp 65000
 bgp log-neighbor-changes
 neighbor 169.254.47.77 remote-as 64512
 neighbor 169.254.47.77 timers 10 30 30
 neighbor 169.254.198.17 remote-as 64512
 neighbor 169.254.198.17 timers 10 30 30
 neighbor 172.16.1.254 remote-as 65515
 neighbor 172.16.1.254 ebgp-multihop 255
 neighbor 172.16.1.254 update-source Tunnel100
 !
 address-family ipv4
  network 10.10.10.0 mask 255.255.255.0
  network 10.212.134.0 mask 255.255.255.0
  neighbor 169.254.47.77 activate
  neighbor 169.254.47.77 soft-reconfiguration inbound
  neighbor 169.254.198.17 activate
  neighbor 169.254.198.17 soft-reconfiguration inbound
  neighbor 172.16.1.254 activate
 exit-address-family

経路の確認

AWSへのVPN接続が確立したら、各ポイントでのルートテーブルを確認します。

まず、オンプレのVPNルータの状態です。Azure(172.16.0.0/16)、AWS(172.31.0.0/16)双方の経路を受け取っています。

#show ip bgp
BGP table version is 9, local router ID is 192.168.255.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>  10.10.10.0/24    0.0.0.0                  0         32768 i
 *>  10.212.134.0/24  10.10.10.253             0         32768 i
 *>  172.16.0.0       172.16.1.254                           0 65515 i
 *   172.31.0.0       169.254.198.17         200             0 64512 i
 *>                   169.254.47.77          100             0 64512 i

続いて、Azureのルートです。オンプレミスの10.10.10.0/2410.212.134.0/24に加えて、AWS VPCのCIDRである、172.31.0.0/16が反映されていることがわかります。

AWS側のルートテーブルです。オンプレミスの10.10.10.0/2410.212.134.0/24に加えて、AWS VPCのCIDRである、172.16.0.0/16が反映されています。

これで、双方に経路情報が反映できました。あとはSecurity Groupで適切に通信を許可することで、双方向の通信が確認できました。

まとめ

オンプレを中継したAWS - Azureの疎通を試しました。BGPを使うことで簡単に経路情報を伝搬して、必要なルーティングを設定することができます。