我已经使用bind9为我的VPS服务设置了名称服务器。 我的服务器已经安装了Ubuntu 10.04LTS。
我面临的问题是,对于一些人来说,他们根本无法连接到我的服务器。 我认为它必须做一些DNS设置。
为了testing这个问题,我做了下面的testing。 让我说我的服务器作为服务器A(名称服务器)。
从随机服务器B,如果我dig到我的服务器上托pipe的域A之一,它总是发现返回“NoError”结果。 (这意味着成功)
但是,对于随机服务器C,如果我dig到我的服务器上托pipe的域之一,大约一半的时间,它返回SERVFAIL结果和另一半的“NoError”。 这真的很奇怪,因为几秒前成功的时候怎么能失败呢?
其中一个使用我的名称服务器(绑定)的域名如下所示。
$TTL 604800 @ IN SOA ns.xxxx.net. admin.xxxx.net. ( 20110120 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns.xxx.net. @ IN A xxx.xxx.xxx.78 ns IN A xxx.xxx.xxx.78 www IN A xxx.xxx.xxx.78
有什么特别的可能导致问题吗? 有人说TTL 604800太长了..是吗?
首先,如果您最近更改了域的名称服务器,则传播是可能的原因。 无论如何,下面的testing应该有助于确定正确的configuration。
testing1:确定为您的域configuration的DNS服务器。 运行并记下以下命令的结果:
$ whois domain.com – 显示WHOISlogging已列为您的名称服务器(是的,这可以从大多数* nix系统的命令行完成)
$ dig +trace ns domain.com – 将WHOIS中列出的NS与DNS服务器所说的内容进行交叉引用( +trace为查询服务器提供了详细视图,而ns查询NSlogging为域)。 理想情况下,您希望在服务器B和服务器C上运行此操作,并比较结果
$ dig +trace domain.com – 为了更好的衡量,看看dig查询对域本身所说的话。 再次,在这两台机器上做这个testing。
注:我相信这是你可能会看到失败的地方。 这听起来像你的名字服务器之一,由于某种原因没有响应。 这可能是由于您的某个DNS服务器错误地设置或传播。
testing2:直接对您的名字服务器进行查询,以确保它们都正确设置
理想情况下,您应该在两台独立的计算机上为您的域configuration两台名称服务器。 许多人不这样做(我假设如果他们的域名不能解决,如果他们的名字服务器发生故障是没有什么大不了的)。 我们将查询这两个名称服务器,以确保返回正确的IP地址。 这样做使用以下内容:
$ dig @ns1.domain.com domain.com – 将您的DNS服务器的IP地址或主机名replace为“ns1.domain.com”(IP地址,以便更好地衡量)。
同样,testing第二个名称服务器,并确保它给出正确的值:
$ dig @ns2.domain.com – 再一次,用您的DNS服务器的IP地址或主机名(IP地址,以便更好地衡量)replace“ns2.domain.com”。
这些testing应该显示任何机器在configuration或DNSparsing过程中的任何exception情况。
希望有所帮助。 如果您仍然有问题,请发布结果。