当前位置:首页 > 刀片服务器 > 正文

Linux服务器故障排查指南3:DNS能正常工作吗?

2013-03-26 51cto 编辑:轶名

  DNS能正常工作吗?

  一旦确认了与网关之间的通信能力,下面要做的就是测试DNS功能是否正常。nslookup与dig两款工具都能用于排查DNS方面的问题,但由于在本实例中大家只需要进行一基础测试,因此我们建议使用nslookup命令可查看服务器能否将web1正确解析为IP地址:

  $ nslookup web1
  Server: 10.1.1.3
  Address: 10.1.1.3#53
  Name: web1.example.net
  Address: 10.1.2.5

  如上所示,实例中的DNS服务器能够正常工作。web1主机扩展为web1.example.net且被解析为10.1.2.5地址。当然,大家别忘了确认解析出的IP地址与web1应该使用的IP地址相匹配。在本实例中,因为DNS没有问题,所以我们可以直接跳到下一部分;但有时候DNS也可能出现问题。

  没有配置过的名称服务器或无法访问名称服务器

  如果大家看到如下错误,这可能意味着要么我们的主机没有配置过的名称服务器,要么这些服务器无法进行访问:

  $ nslookup web1
  ;; connection timed out; no servers could be reached
  在这两种情况下,我们都需要检查/etc/resolv.conf文件以确认是否存在已配置的名称服务器。如果我们在这里找不到任何已配置的IP地址,则需要在文件中添加一个名称服务器。相反,如果我们看到如下所示的内容,则需要通过ping命令对主机与名称服务器之间的连接进行排查:

  search example.net
  nameserver 10.1.1.3

  如果无法ping通名称服务器,且其IP地址与我们的主机处于同一子网下(在本实例中,10.1.1.3代表处于同一子网下),则代表名称服务器本身可能已经崩溃。如果无法ping通名称服务器且其IP地址与我们的主机处于不同子网下,则直接跳转至"我能路由至远程主机吗?"章节,选择其中与名称服务器IP故障排查相关的内容加以执行。如果通过ping通名称服务器但对方无响应,则跳转至"远程端口是否打开?”章节。

  缺少搜索路径或名称服务器的问题

  在运行nslookup命令后,我们还可能得到以下错误信息:

  $ nslookup web1
  Server: 10.1.1.3
  Address: 10.1.1.3#53
  ** server can't find web1: NXDOMAIN

  在这里大家可以看到服务器没有响应,因为它给出的回应表明:服务器无法找到web1。这可能意味着两种可能性:第一,这可能代表web1这一域名并不在DNS搜索路径当中。这部分搜索设置内容位于/etc/resolv.conf文件当中。推荐一种比较好的测试方式,即执行同样的nslookup命令,但只使用全称域名(在本实例中为web1.example.net)。如果能够被正确解析,则要么在命令中始终使用全称域名,要么在/etc/resolv.conf中将主机名称添加到搜索路径当中(如果大家懒得重复输入)。

  如果连全称域名也不能奏效,那么问题肯定出在名称服务器上。这里我们汇总了一些DNS问题的故障排查指南。如果名称服务器保存有记录,则需要对其配置进行检查。如果使用的是递归名称服务器,我们则必须通过查找其它一些域来测试名称服务器的递归机制是否正常。如果其它域都能被正确列出,我们就要看看问题是不是出在包含上述区域的远程名称服务器端。

大家都爱看
查看更多热点新闻