我在 serverfault(和其他地方)上看到过多次这个问题,但没有找到解决方案。
我正在使用 Squid 版本 3.1.19 标准 Ubuntu 12.04 包。
我在浏览器中收到以下错误:
The following error was encountered while trying to retrieve the URL: http://www.standardandpoors.com/home/en/us
Unable to determine IP address from host name www.standardandpoors.com
The DNS server returned:
Name Error: The domain name does not exist.
This means that the cache was not able to resolve the hostname presented in the URL. Check if the address is correct.
从代理服务器我可以很好地解析地址。
access.log 错误:1361372441.048 216 10.0.0.5 TCP_MISS/503 4907 GEThttp://www.standardandpoors.com/home/en/us- DIRECT/www.standardandpoors.com 文本/html
由于某种原因,它似乎没有解析,并且 DIRECT 对等代码显示主机名而不是 IP。IP 确实显示在所有其他请求中。log_ip_on_direct 处于开启状态
我尝试禁用缓存,明确使用 dns_nameservers 指令,甚至将主机放入 /etc/hosts。任何帮助都非常感谢!
我发现当我使用带有 dns_nameservers 的公共 DNS(我尝试使用 8.8.8.8)时,IP 可以解析,并且不会出现 squid 错误。我无法将公共 DNS 用于内部网等,所以这不是解决方案。此外,正如我之前提到的,它使用 nslookup 进行解析。
另一件奇怪的事情是,尝试使用不通过代理的服务器上的浏览器浏览时,数据包捕获显示:
DNS 标准查询响应,没有此名称
从同一服务器执行 nslookup 时的捕获显示:DNS 标准查询响应 A 204.8.132.217
编辑使用 WinGate 代理和相同的本地 DNS 服务器可以工作。
答案1
区域“www.standardandpoors.com”(请注意,区域以 www 开头)的委派已损坏。
standardandpoors.com 的服务器显示 www 有两个名称服务器。
这两个服务器负责处理 A 请求,但不负责处理“NS”请求或其他请求 - 尽管它们声称是 BIND 9.4.3-P3。它们负责处理父域的 SOA 请求。
我认为要么是某种负载平衡器(我以前见过它们像这样损坏),要么就是许多 DNS 委派的正常故障性质。BIND 9 似乎可以充分处理这种形式的故障委派。
正如其他人所问的 - 哪些名称服务器不能很好地处理这个问题?您是否在内部干扰转发、从属区域或类似操作?