本地访问Azure私有终结点首次返回私网IP后续返回公网IP原因咨询
Azure私有链路DNS解析首次返回私有IP后续返回公网IP的成因
核心原因
该现象由本地DNS服务器的CNAME缓存机制与现有DNS转发规则不匹配导致,你猜测的解析流程完全符合实际运行逻辑:
- 首次查询时,
[xxx].blob.core.windows.net请求匹配到privatelink.blob.core.windows.net的转发规则,请求被发送到中心Azure防火墙的DNS代理,经Azure私有DNS区域解析后返回私有IP,同时本地DNS服务器会缓存完整的CNAME链路:[xxx].blob.core.windows.net→[xxx].privatelink.blob.core.windows.net→blob.[yyy].store.core.windows.net→ 私有IP - 后续查询时,本地DNS服务器会直接复用缓存中
[xxx].blob.core.windows.net指向blob.[yyy].store.core.windows.net的CNAME记录,由于你当前仅配置了privatelink.core.windows.net后缀的请求转发到Azure防火墙,blob.[yyy].store.core.windows.net后缀不匹配转发规则,本地DNS直接通过公网递归解析该域名,最终得到公网IP。
修复方案
- 调整本地DNS转发规则,将
store.core.windows.net后缀的所有DNS请求也转发至中心Azure防火墙DNS代理,保证存储底层域名也能通过Azure私有DNS解析得到私有IP - 若不需要全量转发
store.core.windows.net,可在本地DNS服务器新增对应存储账户的域名解析记录,直接指向私有终结点IP,或配置本地DNS禁用对应域名的CNAME独立解析逻辑,强制所有存储域名请求完整转发到Azure侧DNS - 清理本地DNS服务器现有存储相关域名的缓存,避免错误的公网解析记录继续生效
内容的提问来源于stack exchange,提问作者Flavi
相关产品推荐
相关产品推荐

