在尝试调试内部网本地的网络问题时,很明显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中的信息.
总结以上是内存溢出为你收集整理的domain-name-system – 了解DNS解析器之间的区别全部内容,希望文章能够帮你解决domain-name-system – 了解DNS解析器之间的区别所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)