LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: RichardGv

根据目标域名选择DNS服务器?

[复制链接]
 楼主| 发表于 2011-5-14 20:50:50 | 显示全部楼层
Post by darrenlee;2139099
我之前从pdnsd转到了maradns 又转到了unbound
没用bind
为什么用ISP dns?我直接用的ICANN服务器,isp的dns不也是请求它们再返回结果么
关键是cache性能和dnssec验证
还有个好处是可以使用alternative dns service,如opennic,有.geek .null 等域名可以玩儿 :)

嗯,多谢指教。

我选用bind是因为不知道其他DNS服务器软件... 刚刚安装了unbound,经过一些配置后,资源占用明显比bind少(14MB -> 4MB)。maradns的最新版本发布3个月后,仍然没有ebuild...

似乎Google Public DNS对DNSSEC支持不善,或者是我配置不正确,unbound开启auto-trust-anchor-file之后立即就会SERVFAIL。

不过,unbound的配置也不十分尽如人意...
  1. # Blah blah blah...
  2. forward-zone:
  3.         name: "."
  4.         forward-addr: 8.8.8.8
  5.         forward-addr: 8.8.4.4
  6. forward-zone:
  7.         name: "cctv.com"
  8.         forward-addr: 219.149.135.188
  9.         forward-addr: 219.150.32.132
  10. forward-zone:
  11.         name: "cntv.cn"
  12.         forward-addr: 219.149.135.188
  13.         forward-addr: 219.150.32.132
  14. forward-zone:
  15.         name: "tudou.com"
  16.         forward-addr: 219.149.135.188
  17.         forward-addr: 219.150.32.132
  18. forward-zone:
  19.         name: "tudouui.com"
  20.         forward-addr: 219.149.135.188
  21.         forward-addr: 219.150.32.132
  22. forward-zone:
  23.         name: "tdimg.com"
  24.         forward-addr: 219.149.135.188
  25.         forward-addr: 219.150.32.132
复制代码
回复 支持 反对

使用道具 举报

发表于 2011-5-14 23:34:37 | 显示全部楼层
  1. /** the forward zone definitions, linked list */                                                                                         
  2. struct config_stub* forwards;
  3. struct config_stub {                                                                                                                             
  4.         /** next in list */                                                                                                                     
  5.         struct config_stub* next;                                                                                                               
  6.         /** domain name (in text) of the stub apex domain */                                                                                    
  7.         char* name;                                                                                                                              
  8.         /** list of stub nameserver hosts (domain name) */                                                                                       
  9.         struct config_strlist* hosts;                                                                                                            
  10.         /** list of stub nameserver addresses (IP address) */                                                                                    
  11.         struct config_strlist* addrs;                                                                                                            
  12.         /** if stub-prime is set */                                                                                                              
  13.         int isprime;                                                                                                                             
  14. };
  15. /**                                                                                                                                             
  16. * List of strings for config options                                                                                                            
  17. */                                                                                                                                             
  18. struct config_strlist {                                                                                                                          
  19.         /** next item in list */                                                                                                                 
  20.         struct config_strlist* next;                                                                                                            
  21.         /** config option string */                                                                                                              
  22.         char* str;                                                                                                                              
  23. };
复制代码

看这数据结构,也只能这么写配置了.........:yun:

@RichardGv, 我不太明白为什么你一定要用 非 ICANN的root server.
不管用unbound还是maradns,我使用ICANN的root server 访问 cctv.com都是直接进入的中文版.
我推测不知道是否正确,请指正)
国内的某些网站会根据请求authoritative server的ip是哪个国家的来返回服务器ip,如果使用opendns或google dns,因由在国外的服务器向国内网站的authoritative server发起查询,国内网站的authoritative server就返回英文版ip,如果使用本地dns软件,则是由(国内)本地直接向国内网站的authoritative server发起查询,返回的就是中文版ip
回复 支持 反对

使用道具 举报

发表于 2011-5-14 23:41:22 | 显示全部楼层
我一用8888解释DNS就非常慢,被GFW了。
回复 支持 反对

使用道具 举报

发表于 2011-5-14 23:49:46 | 显示全部楼层
似乎Google Public DNS对DNSSEC支持不善,或者是我配置不正确,unbound开启auto-trust-anchor-file之后立即就会SERVFAIL


你是不是安装的包?net-dns/dnssec-root
如果是的话,需要更改 /etc/dnssec的owner为unbound
回复 支持 反对

使用道具 举报

发表于 2011-5-15 09:45:16 | 显示全部楼层
大清早的dig了一下,
opendns/google dns : tudou.com 返回221.12.89.120
山西电信/ICANN root server : tudou.com 返回114.80.121.166
而cctv.com 这几个name server都是返回同一个ip202.108.8.82
========================================
另,dnssec确实解决了目前dns劫持与污染的问题
查询144.223.234.234
使用山西电信dns: 有应答
使用maradns(ICANN root server):有应答.同山西电信
使用unbound(ICANN root server + dnssec):无应答

才想起来,当初转到unbound的原因就是某GXX技术评论里推荐unbound
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-5-15 21:51:46 | 显示全部楼层
Post by darrenlee;2139156

@RichardGv, 我不太明白为什么你一定要用 非 ICANN的root server.
不管用unbound还是maradns,我使用ICANN的root server 访问 cctv.com都是直接进入的中文版.
我推测不知道是否正确,请指正)
国内的某些网站会根据请求authoritative server的ip是哪个国家的来返回服务器ip,如果使用opendns或google dns,因由在国外的服务器向国内网站的authoritative server发起查询,国内网站的authoritative server就返回英文版ip,如果使用本地dns软件,则是由(国内)本地直接向国内网站的authoritative server发起查询,返回的就是中文版ip

嗯,多谢了。我重新测试了一下,发现昨天DNSSEC错误的原因是我针对"."的那个forward-zone,将其comment out之后就好了。

我的/etc/dnssec/root-anchors.txt没有改owner/group,除了syslog中如下的error之外,似乎没有什么副作用:
  1. error: Could not open autotrust file for writing, /etc/dnssec/root-anchors.txt: Permission denied
复制代码

recursive query的机理与您所说相同。缺陷是对每个query要发送多个UDP包,每个DNS query现在要花1.5秒左右...

还有一点我没有提到:我的openvpn(+chnroutes)是设在runlevel default中的(为了找到直接与美帝接轨的感觉...),所以直接query authoritative nameservers的结果可能会是个美国的IP(主要取决于authoritative nameservers的位置),这就是我执意要将DNS请求forward到ISP的DNS服务器的原因。
回复 支持 反对

使用道具 举报

发表于 2011-5-17 09:54:42 | 显示全部楼层
@RichardGv, I see.Thanks for the clarification.

都在体验"网络移民"的感觉~   
回复 支持 反对

使用道具 举报

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

本版积分规则

快速回复 返回顶部 返回列表