分页: 1 / 1

Ubuntu的DNS服务器设置的一个小BUG

发表于 : 2005-09-07 22:24
firehare
一般我们用/etc/resolv.conf来设置本机的DNS服务器,而且一般会填两到三个,主,备和第二备服务器。但经我测试发现,如果第一个DNS服务器不起作用话,那么每次DNS解析时,就是先找第一个DNS服务器,然后再找第二个DNS服务器,所以一下子解析速度就慢了下来!为什么在找不到第一个DNS服务器时,下次还要再找它呢?不知道大家有没这种情况?

发表于 : 2005-09-07 23:08
yongyi
怎么知道它有没有找到第一个的呀?好像电信给的两个DNS还算稳定的。

发表于 : 2005-09-08 8:03
firehare
很简单,我在学校的DNS为192.168.X.X,电信的为61.X.X.X,如果我回家之后,没有把学校的DNS给#掉的话,解析速度就会明显下降,而且FF状态栏中也会在解析过程中延时比较厉害,而用IP的话,就速度飞快!所以,明显可以感觉到它还是先找第一个,再找第二个!

发表于 : 2005-09-08 8:09
yongyi
哦!原来你是这情况。
其实像我这样是自动获取IP,路由中的设置也没指定DNS的,那么它在/etc/resolv.conf设置的DNS就是自动的吧?这样,会不会去到一个类似的新的网络环境,/etc/resolv.conf 会自动更改?

Re: Ubuntu的DNS服务器设置的一个小BUG

发表于 : 2005-09-08 23:04
starbear
firehare 写了:一般我们用/etc/resolv.conf来设置本机的DNS服务器,而且一般会填两到三个,主,备和第二备服务器。但经我测试发现,如果第一个DNS服务器不起作用话,那么每次DNS解析时,就是先找第一个DNS服务器,然后再找第二个DNS服务器,所以一下子解析速度就慢了下来!为什么在找不到第一个DNS服务器时,下次还要再找它呢?不知道大家有没这种情况?
DNS的retry的timeout的时间计算方式:
#第一轮为 5 秒一次,逐台轮询。
#若第一轮失败,则进入第二轮:将第一轮 time-out 乘以 2 倍,并除以台数。
#若第二轮失败,则进入第三轮:将第一轮 time-out 乘以 4 倍,并除以台数。
因此,若所有 nameserver 均連不上的話,如下是你的等待时间:
#一台:首轮5秒,二轮10秒 (5*2/1),三轮20秒(5*4/1),总共为35秒。
# 两台:首轮每台5秒共10 秒,二轮每台5 秒(5*2/2)共10秒,三轮每台10秒(5*4/2)共20秒,总共为40秒。
#三台:首轮每台5秒共15秒,二轮每台3秒(5*2/3,取整数)共9秒,三轮每台6秒(5*4/3,取整数)共18秒,总共为42秒。

就算第一个是失效的,它还是会轮询。

发表于 : 2005-09-09 8:11
firehare
所以这样就不智能了,明明第一台已经Down了,而不是存活响应慢,还要每次参与轮询,所以说这应该算是BUG了!

Re: Ubuntu的DNS服务器设置的一个小BUG

发表于 : 2009-10-30 16:35
shell1230
我的老显示“获取DNS地址失败” 郁闷 了!