😺

proxy に hosts は効かない

2023/10/11に公開

TL;DR

  • proxy を利用したときに名前解決はどこで行われるか
  • Private Endpoint との組合せで proxy がネックになる場合には、proxy の除外設定をする

はじめに

なぜ外部公開されていない FQDN の Web Apps に Application Gateway でのヘッダ書換えが必要なのか にも関連する話として書いてみますが、hosts は proxy には効かないという話を書いてみます。

proxy を使った時に名前解決はどこでなされるか

いきなり結論なのですが、proxy を使った際の名前解決は proxy で行われます。
クライアントからの Web のトラフィックは proxy に委任されるような形になるためです。

Web traffic using proxy
web traffic using proxy

ということは、クライアント PC に hosts を設定しても、proxy には効かないということがわかるかと思います。
proxy に hosts を書けば、、というアイデアもあるかもしれませんがあまりいい手とは考えられないので、AD DS の条件付きフォワーダを使うなど DNS の通常の名前解決の仕組みを使うことになります。

オンプレミスのクライアントと proxy との組合せを考えると、以下のような方法が考えられます。

  • AD DS の条件付きフォワーダ と Azure Firewall の DNS proxy 機能の組合せ
  • AD DS の条件付きフォワーダ と Azure DNS Private Resolver の組合せ
  • AD DS の条件付きフォワーダ と VNet 内に配置した AD DS の組合せ

参考リンクとして、こちらでさまざまなパターンについて解説されています。

https://qiita.com/Isato-Hiyama/items/6c61a65f12c9e7042bb2

Private Endpoint との組合せ

歴史のあるエンタープライズだと一般的に proxy を使うことが多いかと思います。
その場合、Private Endpoint を検証用途で利用しようと思うと、proxy を含めた名前解決の仕組みを変更するまでの権限や承認が得られず、結果つながらない、というケースも見ることがあります。
そういった場合には、proxy の除外設定に該当の FQDN を追加し、proxy を経由せずに通信できるようにすることで解決が望めます。
proxy を使わない場合であればクライアントの hosts が利用できるので、検証用途の Private Endpoint への名前解決が可能となります。

proxy settings
proxy settings

Discussion