mac os下如何配置可正常使用dns server?


问题重点在“正常”两个字上面。

之前其实问过这个问题,但是似乎没说清楚,所以没引起大家兴趣。

我在named里面配置了google.com.zone,目的在于使用北京的ip上google.com防止google搜索抽风(你们懂的)
我的配置文件很正常

1 $TTL  86400 
  2 $ORIGIN google.com.
  3 @     1D IN SOA @ root (
  4           42    ; serial (d. adams)
  5           3H    ; refresh
  6           15M   ; retry
  7           1W    ; expiry
  8           1D )    ; minimum
  9 
 10       1D IN NS  @
 11       1D IN A   203.208.46.146
 12 *     1D IN A   203.208.46.146

但是奇怪得是,google.com.的配置却影响了google.cn的访问,导致ping都ping不通,我查阅了很多资料,还是TM不明白我设置google.com域名关google.cn鸡毛事了。

然后我nslookup了一下google.com和google.cn两个站点。google.cn依然报timeout

无奈之下我将mac os的网络链接的dns设置为127.0.0.1以及8.8.4.4,127.0.0.1放在最上面,这儿也有一个匪夷所思的事情发生了,mac的网络链接好像直接忽略了127.0.0.1而直接使用了8.8.4.4。无论我怎么换顺序都不行,无奈我只能把8.8.4.4去掉了。

后来我将resovle.conf改成了(没改前就是默认的配置,只有第一排)

nameserver 127.0.0.1
nameserver 8.8.4.4

然后nslookup两个站点倒是好用了,从反馈的信息可以发现google.com用了127.0.0.1来解析,然后google.cn用了8.8.4.4来解析,而且还都能给出最后的ip地址,但是google.cn还是TM的ping不通。

而且我发现如果我nslookup segmentfault.com等named里面根本没有配置的站点,还是告知是127.0.0.1解析的,这个时候我的世界观又受到冲击,我都没提到这些网站,为什么是我本机解析的呢?当然如果说named有默认配置也好理解,但为什么google.cn又不是呢

经过这两个事情以后我发现mac os上面的软件难道用的是另外一个星球上面的逻辑弄出来得还是怎么着啊一点儿捉摸不透,所以在这里请mac os的高手指点一下。到底怎么配置才能让named只处理google.com而不影响google.cn的访问,并且能详细解释原因。

bind dns named

撸炮大魔王 10 years, 9 months ago

本地没有配置的域名用 127.0.0.1 解析完全可以理解啊,因为遇到没有配置的域名你的dns会向根域名服务器发请求嘛,在 /var/named/named.ca 里面就是根域名服务器了。

而且系统选择哪个dns做域名解析我估计是随机的,当然如果一个dns不可用,它肯定会选另一个。但当两个dns都可用的时候,它完全可以随机选一个。你可以做个实验,nslookup不同的域名,看看是不是两个dns都会出来。

Zonlyx answered 10 years, 9 months ago

Your Answer