免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5510 | 回复: 2
打印 上一主题 下一主题

[DNS] 如何禁止客户端进行ipv6解析的查询 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-05-29 17:41 |只看该作者 |倒序浏览
今天遇到一个很头疼的问题,dns服务器用的是bind9.2.4,没有配置ipv6,突然出现个别网站不能访问的现象,此时在客户端用host指令测试:
[root@linux-proxy ~]# host aaa.sd.cmcc
Host aaa.sd.cmcc not found: 3(NXDOMAIN)
察看bind的日志文件,可以看到:
May 29 15:20:15.037 queries: client 134.40.103.64#1025: query: aaa.sd.cmcc IN AAAA
的记录,从微软网站上可以查到原因如下:

应用程序无法解析某些域名

症状
应用程序(如 Microsoft Internet Explorer)无法解析来自某些域名系统 (DNS) 服务器的域名。因此,您可能无法访问某些 Web 站点。例如,在您尝试访问一个 Web 站点时,可能会在 Internet Explorer 中收到下面的错误信息:
The page cannot be displayed
The page you are looking for is currently unavailable.The Web site might be experiencing technical difficulties, or you may need to adjust your browser settings...
Cannot find server or DNS Error

原因
如果向 DNS 服务器查询非“A”记录,而该服务器作出返回 NXDOMAIN 或 NAME_ERROR(响应代码或 RCODE 3)的授权响应,此时便可能发生此问题,即使该 DNS 服务器上确实存在所查询名称的“A”(或 Internet 协议版本 4 或 IPv4 的主机)记录也如此。响应中的 NXDOMAIN 或者 NAME_ERROR 说明“没有符合该名称的任何类型记录。”Microsoft 发现某些 DNS 服务器软件不支持“AAAA”(Internet 协议版本 6 或 IPv6)记录并且错误地以 NXDOMAIN 响应,即使那个站点存在一条“A”记录也如此。

例如,当一台运行 IPv6 的 Windows 客户端计算机尝试访问 Web 站点时,便可能发生此问题。Windows 客户端会同时代表支持 IPv6 和支持 IPv4 的应用程序解析主机名(例如,www.example.com)。为此,Windows 客户端既查询“AAAA”记录又查询“A”记录,除非该应用程序指明了要使用的协议。如果 DNS 服务器作出返回 NXDOMAIN 或 NAME_ERROR 的授权响应,Windows 会将此响应返回给应用程序,如 Internet Explorer。因此,该应用程序将无法解析主机名,也无法访问该站点。请注意,Windows 客户端还将对此否定响应进行缓存。这将阻止后续的对此名称的询问,直到客户端缓存被清除为止。

重要说明:在本例中,如果 Windows IPv6 客户端使用的 DNS 服务器缓存了否定响应,当其他客户端计算机使用缓存的同一 DNS 服务器时,这些客户端计算机的名称解析也将失败。无论后续查询是何种类型,也无论这些客户端计算机是否仅在运行 IPv6 或 IPv4,都会发生此问题。

解决方案
要解决此问题,请与产生问题的站点的管理员联系。

该站点的 DNS 管理员应该联系他们的 DNS 产品的生产商,以寻求此问题的解决办法。这可能会需要升级 DNS 服务器产品或更改 DNS 服务器的配置。

更多信息
根据 RFC 1034 的 6.2.4 小节(请参见“参考”),如果 DNS 服务器上存在“A”记录,则当查询“AAAA”记录(或任何非“A”记录)时,DNS 服务器不应返回 NXDOMAIN 或 NAME_ERROR 响应。如果 DNS 服务器没有识别出“AAAA”名称查询,它应该返回 NODATA 或返回无错误 (RCODE 0) 以及一个空的回复部分。


那么各位大侠能不能提供个解决方案,比如禁止客户端进行ipv6地址解析的查询。或者配置bind9,能实现上述RFC 1034 的 6.2.4 小节的规范描述。谢谢!

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
2 [报告]
发表于 2007-05-30 11:08 |只看该作者
這個問題沒人回過...
dual-stack 的 ipv6 和 ipv4 在做名稱解析時會先查 AAAA (v6 Address) 若無則改查 A (v4)
所以即使 AAAA 不存在也沒有關係
你沒辨法限制別人不查 AAAA, 因為只要查詢端有 IPv6 Enable, 那它就會先查 名稱的 AAAA 記錄
(即使你的 dns 只有 v4, v6 來人來查時也是先查 AAAA)
這是 RFC 所規定的

论坛徽章:
0
3 [报告]
发表于 2007-05-30 11:51 |只看该作者
看来还是无解。

晕~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP