0
1

Azure仮想マシンから外部に通信するときのグローバルIPアドレスを固定したい

Posted at

概要

Azureのルーティングを設定して、外部への通信をAzureFW経由にしていたのだが、これをすると外部通信の際の接続元グローバルIPアドレスがAzureFWに紐づけたグローバルIPアドレスからランダムに選出され、固定ができないという問題に直面したので解決メモ。

外部に接続する際、グローバルIPアドレスを固定できないと、外部サービス連携時のIPアドレス制限ができない(設定が大変)なこともあり、これを固定したかったお話。

前提

  • 仮想ネットワークのルーティングでデフォルトルートをAzureFWに向けている

やりたいこと

  • Azure仮想マシンが外部に接続する際のグローバルIPアドレスを固定したい
  • でも外部から仮想マシンへの接続にはAzureFWを噛ませたい

方法

以下の2点を設定すればOK

  • AzureネットワークのデフォルトルートをInternetに向ける
    • 独自にルーティング設定をしていなければ、基本的にはこの設定になってます。
  • 仮想マシンのNICにパブリックIPアドレスを紐づける

ざっと調べてみた感じ、Azure仮想マシンの送信元グローバルIPアドレスの選出は以下のようになっている模様。

仮想マシンへのPIP付与 デフォルトルート 送信元PIP
なし Internet ランダムで決定(再起動するまでは固定)
あり Internet 仮想マシンのPIPで固定
なし AzureFW AzureF/WのPIPからランダム決定
あり AzureFW AzureF/WのPIPからランダム決定

※ PIP -> パブリックIPアドレス

固定したい場合はデフォルトルート->Internet + 仮想マシンへのPIP付与

デフォルトルートがインターネットを向いていれば、仮想マシンにPIPを付与することで、外部に接続する際のグローバルIPアドレスもそれに固定が可能。
ただし、この場合は外部への通信フィルタリングがNSG依存になるため、正しくNSGを設定しましょう。初期設定では仮想マシン->Internetへの接続は全OPENになっています。

必要な通信のみをOPENにしたい場合、既定ルールのAllowInternetOutBondを別のルールで上書きして拒否するように設定する必要があります。
image.png

AzureFW経由にすると現実的に固定できない

デフォルトルートをAzureFWに向けている場合、仮想マシンに付与されたPIPは無視され、AzureFWでSNAT変換が行われる。その際に選出されるグローバルIPアドレスは、AzureFWに紐づけられたPIPからランダムで選出されます。

image.png

AzureFWに紐づけられたPIPが1つの場合は疑似的に固定できるが、外部からのDNAT設定のため複数紐づけが必要な場合が多いため、そうなるとランダム選出になってしまう。また、ランダムになってしまうことで、どの仮想マシンからの通信か?が判別できなくなってしまいます。

逆に言えば、Azureネットワークから出る通信も含めてすべてAzureF/Wで管理したい、ということになると送信元グローバルIPアドレスの固定や、特定ができなくなってしまいます。

終わり

わかってしまえば簡単な話ですが、できればAzureF/Wを経由する状態でも特定のIPアドレスでSNATできるようにしてほしい・・・ MSさんなんとかなりませんかね!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1