DNS

DNS递归的问题

Posted by baalchina on May 17, 2019

问题1:转发?递归?

学校用了两个dns,其中权威dns,对外发布x.edu.cn域名,递归dns,用于大家访问互联网。

原来权威dns做了递归,即有一条参数

allow-recursion {"any";};

前段时间cernet不允许递归了,于是有天晚上就改成了

 acl "intranet" {10.0.0.0/8;172.16.0.0/12;};

allow-recursion {"intranet";};

结果第二天早上,外网一切正常,内网用户纷纷无法上校园网了,提示无法解析,只好暂时关闭。

后来请人过来看,发现递归dns上有一条记录,将edu.cn转发给了101.7.8.9,单独增加一条x.edu.cn指向权威dns,网络就正常了。

结论:

初步怀疑这个转发有点问题,系统把edu.cn的域名解析全部forward到了101.7.8.9,101.7.8.9向我们请求的时候使用的是递归模式(?),所以被禁了,所以内网反而上不了主页了

问题2:acl?view?

然后过了一天,一切正常。第二天开始,外网断断续续提示无法解析,但不是彻底不能,监控宝抽风似的报警。 使用114.114.114.114解析www主页正常,解析一个不常用的域名就server failed

查了一个上午没有结果,最后突然想起来可能是view的问题,检查了下:

  • 原来的配置中,配置了一个view,即上述intranet地址;
  • 但是只有这个一个view,也就是说不在这个地址内的没有匹配了;
  • 解决方法是增加了一个viewmactch-clientany,配置和前面的一样
  • 然后立刻就正常了。

怀疑其实一开始就故障了,外网一会好一会不好,使用的是缓存,这也就是为什么不常用的域名无法解析的问题。

另外,我在内网测试了dig,比如dig +trace @114.114.114.114 www.x.edu.cn,这个是可以解析的。但是用nslookup114上解析,却失败了。

怀疑dig也是用的递归模式?因为我在内网,所以递归没问题,而114在外网,递归失败?

唉,概念还是不清楚,忙了一上午才解决,最后还是蒙的…