特に Azure Update などで公式にアナウンスはされていないようですが、Azure Application Gateway で同一ポート番号を持つパブリック リスナーおよびプライベート リスナーで使用できる機能がパブリック プレビューとして公開されていました。
パブリック側のリスナーとプライベート側のリスナーの両方に同じポートを使用することはできますか?
はい。パブリッククライアントとプライベートクライアントの両方を同時にサポートするために、同じポート番号を持つパブリックおよびプライベート向けリスナーを使用できます(プレビューの機能)。 ネットワーク セキュリティ グループ (NSG) がアプリケーション ゲートウェイのサブネットに関連付けられている場合は、その構成によっては特定の受信規則が必要になる場合があることに注意してください。 詳細については、以下を参照してください。
恐らく、先日このブログでも紹介したプライベート Application Gateway v2 がパブリック プレビューとして公開されたのと合わせて、公開された機能だと思われます。
以前、Microsoft Q&A でも質問があったように、同一ポートの使用は Azure Application Gateway の挙動として許可されておらず、エラーとなっていました。
この機能について、ドキュメントでは明言されていませんが Azure Application Gateway v2 のみの機能となっており、v1 で使用することはできません。
試しに v1 で同一ポートの使用ができるかどうかを確認しましたが、ApplicationGatewayHttpListenersUsingSameFrontendPort エラーで作成することができませんでした。
v2 で作成する場合、注意喚起のメッセージが表示されますが、作成する分には問題ありませんでした。
※以下は、Azure Application Gateway デプロイ時の画面となります。
なお、リスナー設定画面で、プライベート リスナーとパブリック リスナーの両方で同一ポートを使用してリスナーが作成できていることも確認できています。
最後になりますが、ドキュメントに記載があるように、ネットワーク セキュリティ グループでアクセス制限を行っている場合には、プライベート リスナーおよびパブリック リスナーを考慮した受信規則の設定を考慮する必要がある点に注意が必要です。
注意
同じポート番号のプライベート リスナーとパブリック リスナーを使用する場合、アプリケーション ゲートウェイは、受信フローの “宛先” をゲートウェイのフロントエンド IP に変更します。 そのため、ネットワーク セキュリティ グループの構成によっては、アプリケーション ゲートウェイのパブリックおよびプライベート フロントエンド IP として 宛先 IP アドレス を含む受信規則が必要になる場合があります。
受信規則:
- ソース: (要件に従って)
- 宛先 IP アドレス: アプリケーション ゲートウェイのパブリックおよびプライベート フロントエンド IP。
- 宛先ポート: (リスナー構成に従って)
- プロトコル:TCP
送信規則: (特定の要件なし)