Azure Firewall DNATルールを構成し複数のプライベート仮想マシンへリモートデスクトップ接続させてみた

2022.04.25

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

いわさです。

Azure Firewall DNATを使うと次のようにインバウンドトラフィックのフィルタリングやルーティングを制御することが出来ます。

今回、これを使ってプライベートサブネット内のWindows Serverへのリモートデスクトップ接続を試してみるシーンがあったのですが、複数のプライベート仮想マシンを紐付けるとうまく接続出来ないシーンがありました。
原因は、単に宛先IPアドレスと宛先ポートの組み合わせが複数の仮想マシンに紐付いてしまっていたからなのですが、ポート変更時の動作を確認したかったので試してみることにしました。

通常の設定

仮想マシンはパブリックIPアドレスなしでプライベートサブネットに作成します。
そして、同一VNETにはAzure Firewallをパブリックサブネットにデプロイ済みです。

以下、ファイアウォールの情報です。

  • パブリックIP: 20.210.12.197
  • プライベートIP: 10.0.1.4

以下は、仮想マシン(2台)の情報です。

  • vm1プライベートIP: 10.0.0.4
  • vm2プライベートIP: 10.0.0.5

まずは、Azure FirewallのNATルールにVM1へのRDPポート変換ルールを設定してみます。

RDP接続してみると、問題なく接続が出来ます。

複数台の設定

ここで、VM2へのルールを追加します。
ダメそうなのはわかりますが、VM1と同じ宛先アドレス・ポートを指定してみます。

設定自体は出来ますね。
入力形式でエラーになるかもと思ったのですが。

この状態でリモートデスクトップ接続をしてみると失敗しました。
VM1にしか接続出来ない、という状態も可能性として考えていたのですが、接続に失敗しました。

なお、この記事ではmacOSのMicrosoft Remote Deskptopを使用しています。

VM1とVM2で宛先ポートを分ける

ここで、Azure Firewallへの宛先ポートを分けてみました。 Firewallの13389ポートの場合はVM1の3389へ、23389ポートの場合はVM2の3389を設定しました。

20.210.12.197:13389へRDP接続してみると、VM1へ接続することができました。

20.210.12.197:23389へRDP接続してみると、VM2へも接続することができました。

さいごに

本日はAzure Firewall DNATのインバウンドトラフィック制御で、異なるポートで別々の仮想マシンへの転送を行ってみました。
Azure Firewallを触ってる中で気づいたことだったので実際にこういうケースがあるのかは不明ですが、インバウンドトラフィックのDNATの挙動を確認するために試してみました。