domain-name-system – 了解DNS解析器之间的区别

前端之家收集整理的这篇文章主要介绍了domain-name-system – 了解DNS解析器之间的区别前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
介绍

在尝试调试内部网本地的网络问题时,很明显curl主机nslookup和dig的行为方式不同. dig和host返回有问题的URL的IP地址,curl和nslookup返回:

curl: (6) Could not resolve host: internal.site.company.com

nslookup: can't resolve 'internal.site.company.com`

上下文

虽然这无关紧要,但本质上是为问题提供了更多的背景,这个问题发生在docker-machine之上和之后(在虚拟​​机和并行上使用docker-machine进行测试确切).它所托管的docker-machine和容器都在/etc/resolv.conf中具有所需内部DNS服务器的正确IP地址.还可以从无法解析名称的计算机访问所需URL的IP地址.如上所述,地址是内部站点,我们的DNS服务器也是内部站点.可以从安装了docker-machine的计算机访问该站点并进行解析.

问题

这让我想到了……

1)在引擎盖下,挖掘和主机的做法与cURL和nslookup有什么不同?

2)什么可能阻止浏览器或卷曲解析URL主机和挖掘成功解析名称的方式?

建立

dig -v:DiG 9.11.1

host -v:host 9.11.1

卷曲-V:卷曲7.49.1

docker version:Version 17.06.0-ce-mac19(18663)频道:稳定

Boot2Docker version 17.06.0-ce,build HEAD : 0672754

解决方法

我希望curl给我们解析器库,它将使用/etc/nsswitch.conf主机规范中列出的名称服务提供程序.如果这不包括DNS,则不会发生DNS解析. nslookup没有记录使用此文件,但根据您的经验,它可能会出现.通常,此数据由名称服务缓存守护程序缓存.如果守护程序失败,即使其他配置正确,您也可能会遇到此类问题.

host和dig是纯DNS查找程序.它们都只通过DNS解析名称.他们不会使用文件或其他非DNS提供程序解析名称.我希望他们直接使用/etc/resolv.conf中的信息.

猜你在找的HTML相关文章