背景
今日は検証環境を構築する際、不思議な現象が行いました。Web AppをVnet統合に設定したら、
SAへの名前解決が失敗し始めました。
その原因について研究しました。
事象再現:
1.Web appをVnet統合に設定しました。
2.そしてVnetにはSAのblob private dns zoneが設定されていますが、名前解決対象のSAは別のVnetにあり、特にprivate IPじゃなくて、Web appからpublic IPでアクセスしたいです。
VnetのDNSサーバは既定でAzure DNSをしています。
3.Web appのコンソールに入ってnslookupを実施してみたら以下のエラーが出ました。

分析
DNS名前解決の流れ
1.DNS名前解決の流れからみると、Web appのdns request→→Azure DNS→→ cname (tansatest124.privatelink.blob.core.windows.net)→→privatelinkのcnameが存在しない、public のcnameに行きます→→public IP A recordが返される。のはずですが、でも[privatelinkのcnameが存在しない]のところで止まって、次に進みませんでした。
参考blog:
https://jpaztech.github.io/blog/network/private-dns-zone-faq/
2.private DNS zoneが関連付けていないFQNDなら、問題ないです。正常にpublic IPに解決されました。

つまり、Vnetについてるblob のprivte dns zone限定で、xxx.privatelink.blob.core.windows.netが失敗します。
3.原因見つけました!Fallback to internetの設定はdisable になっています。

早速それをenableしたら、名前解決がprivatelinkのcnameのrecordが存在しない場合、public のcnameにfallbackしてくれたので、正常にpublic IPに解決されました。

感想
private dns zoneが設定された場合、fallback to internnetの設定の確認が大事です!
既定ではdisableになっています。
https://learn.microsoft.com/ja-jp/azure/dns/private-dns-fallback


