dig 使用
背景
example.com 是一个公网注册的域名,在阿里云配置权威DNS解析,本地内网服务器也搭建了一个bind server同样配置了example.com的zone解析该域名,本地所有ECS的/etc/resolv.conf 配置的 nameserver为 10.10.1.1也就是内网bind server
dig asdf.example.com 域名解析
情况一,内网DNS server 配置了域名A记录
如果此DNS server 配置了example.com 的zone也就是说它是内网的权威DNS,解析以它为准,直接返回结果
情况二 ,内网DNS server没有配置A记录,公网权威DNS配置了该记录
2.1 内网DNS server 没有配置针对该域名asdf.example.com 的定向forward类似如下,那么直接返回无该记录,认为它自己就是权威DNS
zone "asdf.example.com" IN {type forward;forwarders { 10.5.1.1; 10.5.1.2; };forward only;
2.1 内网DSN sever配置了该域名的forward如上,会进一步向上查询10.5.1.1/2
dig +trace asdf.example.com
无视本地nameserver配置,直接从根>顶级>权威DNS 递归查询,直接从阿里云权威DNS获取到IP记录
ping asdf.example.com
与dig asdf.example.com 类似,会直接查询配置的nameserver服务器
/etc/resolv.conf 说明
如果配置了多个 nameserver 会让会使用第一个,只有第一个地址故障或网络无法访问才会顺序使用第二个,如果第一个解析返回无记录,也不会再去第二个查询了
解决方案
通过 systemd-resolved服务配置多个DNS server 轮询使用