「拠点間で IP アドレスが重複して VPN 接続ができない」なんて、困ったことはないでしょうか。
今回は Azure VPN Gateway を使用して IPアドレスが重複しても NAT を構成することで、 VPN 接続を利用できる方法を用例を用いてご紹介いたします。

Azure VPN Gateway とは

Azure VPN Gateway はパブリックインターネット経由で Azure 仮想ネットワークとオンプレミスの間で暗号化されたセキュアな通信をサポートするサービスになります。
一般的に、この VPN 接続を行うためには、Azure 仮想ネットワークとオンプレミスのアドレス範囲で重複がないことが前提となり、重複がある場合、 VPN 接続は構成できません。

下図のような、拠点間で IPセグメントが重複した場合を考えます。

それぞれの拠点(Branch)で <172.16.0.0/24> でアドレス空間が重なっています。
Azure ではこのような構成は既定により不可能である上、たとえ構成できたとしても、アドレス競合による障害は避けられません。

また、この問題を解決するためには、単にそれぞれの拠点でアドレス範囲をずらす必要がありますが、各拠点で作業を実施する必要があるため、管理者にとっては大きな負担となります。
このような事態に対し、 NAT 機能は有効に働くと考えられます。

NAT 機能を使って事態を解決

上図では、アドレス空間が重複した Branch 1・2 に対し NAT を構成し、 Vnet から Branch 1・2 は外部のアドレス空間として扱うことにより、 VPN 接続上の IPアドレスの重複を回避しています。

NAT 規則ごとに、変換前と変換後のアドレス空間をマッピングします。
それぞれのアドレス空間は変換前 : 内部、変換後 : 外部と定義されます。
・内部マッピング
変換前のアドレス空間。
上図の場合、このフィールドは、 Branch 1・2 の元のアドレス空間に対応します。
・外部マッピング
変換後のアドレス空間。
上図の場合、このフィールドは、 Branch 1・2の元のアドレス空間から NAT によって変換されたアドレス空間を示します。

Azure VPN GatewayでNATを使用する時の注意点

Azure VPN Gateway で NAT を構成する際には以下のポイントに注意する必要があります。

  • NAT がサポートされるのは、VPN Gateway 第2世代( Generation 2 ) からになります。
  • NAT は、IPsec/IKE クロスプレミス接続でのみサポートされます VNet 間接続や P2S 接続はサポートされません。
  • 動的NAT を使用される場合、トラフィックは一方向になります。双方向のトラフィックが必要な場合は静的NATを使用する必要があります。
  • 動的NAT でサポートされる外部マッピングサブネットの最大範囲は /26 になります。

以上、拠点間で IPアドレスが重複しても NAT を構成することで VPN 接続を利用できる用例をご紹介させていただきました。