Azure私有DNS Zone解析咨询:外部正常,内部访问异常排查请求
Azure内部DNS解析问题排查指南
先对齐下你的环境背景,确保我理解的没错:
已为
project.local区域配置Azure私有DNS Zone,App Service Environment(ASE)中的各App Service实例都有指向其前端负载均衡器的独立DNS记录(所有记录对应同一IP);同时部署了关联公网IP的App Gateway,外部访问正常,但内部访问出现DNS解析相关问题。
下面是按优先级排序的排查步骤,你可以一步步来验证:
1. 确认私有DNS Zone与VNet的关联是否正确
Azure私有DNS Zone必须和内部访问源所在的VNet(比如ASE所在VNet、发起内部访问的VM/服务所在VNet)建立关联,才能让这些VNet内的资源解析Zone里的记录。
- 登录Azure门户,找到你的
project.local私有DNS Zone,进入「虚拟网络链接」页面:- 检查是否已经关联了ASE所在的VNet,以及内部访问发起者所在的VNet(比如内部办公VM的VNet)
- 如果你的App Service DNS记录是依赖自动注册生成的,还要确认关联时是否勾选了「自动注册」选项;如果是手动添加的记录,这一项可以忽略。
2. 测试内部客户端的DNS查询结果
不同的内部客户端使用的DNS服务可能不一样,得针对性测试:
针对VNet内的VM:
- 登录VM,打开命令提示符(Windows)或终端(Linux),执行:
nslookup <你的App Service实例域名>.project.local- 如果返回的不是预期的ASE前端LB IP,先检查VM的DNS服务器配置:
- Windows:执行
ipconfig /all,看「DNS服务器」是否是Azure默认的168.63.129.16 - Linux:执行
cat /etc/resolv.conf,确认nameserver配置
如果是自定义DNS服务器,需要确保它能把project.local的查询请求转发到Azure私有DNS服务。
- Windows:执行
- 直接指定Azure DNS服务器测试:
如果这次能正确解析,说明VM的默认DNS服务器配置有问题;如果还是不行,那大概率是私有DNS Zone的记录或关联出了问题。nslookup <你的App Service实例域名>.project.local 168.63.129.16
- 如果返回的不是预期的ASE前端LB IP,先检查VM的DNS服务器配置:
针对ASE内的App Service:
- 你可以在App Service里加个简单的测试接口,用
Dns.GetHostEntryAsync()方法解析目标域名并返回结果;或者通过Kudu控制台执行上面的nslookup命令。 - ASE内的App Service默认用Azure DNS服务,但前提是ASE所在的VNet已经关联到
project.local私有DNS Zone。
3. 检查私有DNS Zone的记录集配置
- 进入
project.local的「记录集」页面,确认所有App Service实例的DNS记录:- 如果是A记录,检查IP地址是否和ASE前端LB的私有IP一致(注意不是App Gateway的公网IP)
- 确认记录的TTL值是否合理,避免缓存导致的解析延迟(默认300秒一般没问题,但如果之前修改过可以检查)
4. 排查跨VNet场景的DNS转发(如果有)
如果内部访问源和ASE不在同一个VNet,是通过VNet对等连接或VPN连接的:
- 对于VNet对等连接,确认双方的「允许转发虚拟网络 DNS」选项是否开启
- 对于VPN连接,确认本地DNS服务器是否配置了转发
project.local的查询到Azure私有DNS服务
5. 验证App Gateway的私网访问配置(如果内部走App Gateway)
如果内部访问是通过App Gateway的私网IP/域名来访问的,还要额外检查:
- App Gateway是否和ASE在同一个VNet,或者通过对等连接打通了VNet
- App Gateway的私网域名是否在私有DNS Zone里配置了正确的A记录(指向App Gateway的私有IP)
内容的提问来源于stack exchange,提问作者Jasper
相关产品推荐
相关产品推荐

