我想弄清楚为什么NSLOOKUP找不到本地主机名。
configuration我试图设置一个权威的域名服务器,从“DNS和BIND”,在Debian 5.0上运行bind9,在一个chroot“监狱”。 绑定似乎开始没问题,因为syslog中没有错误消息。 主机名报告“workshop.example.net”,主机名-f报告FQDN相同。 / etc / hosts文件包含一行:“xx.xx.xxx.xx workshop.example.net workshop”
文件/etc/resolv.conf可能是一个问题; 当我重新启动时,它的域行被设置为一个不适当的值。 但是,在我编辑“domain example.net”这一行并重新启动bind9后,nslookup仍然不起作用。
NSLOOKUP OUTPUT nslookup给出默认名称服务器的SERVER地址,但是表示“无法findworkshop:NX域”。
QUERY在这里可能会出现什么问题?
是否有可能是域名主机和域名服务器的注册问题? 我不确定我是否已经在注册商处正确设置了这些值。 但是我认为,如果我已经正确设置了绑定以及各种主机和resolv.conf文件,那么nslookup应该find本地主机的地址。
UPDATE这里是dig的输出:Command:dig一个@workshop workshop.example.net
输出:
; <<>> DiG 9.5.1-P2 <<>> A @workshop workshop.example.net ; (1 server found) ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11327 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0 ;; QUESTION SECTION: ;workshop.example.net. IN A ;; ANSWER SECTION: workshop.example.net. 3600 IN A 72.14.190.80 ;; AUTHORITY SECTION: example.net. 3600 IN NS workshop.example.net. ;; Query time: 0 msec ;; SERVER: 72.14.190.80#53(72.14.190.80) ;; WHEN: Tue Jul 7 00:25:58 2009 ;; MSG SIZE rcvd: 82
我不知道我在找什么,但是在答案部分的IP地址是我所期望的。
更新 – 2好的,这似乎是固定的。
现在resolve.conf文件的内容如下所示:
domain example.net # This was domain members.linode.net #search members.linode.com # Previously, not commented out nameserver 127.0.0.1 # This line added nameserver 72.14.179.5 nameserver 72.14.188.5
这反映了从非工作状态的三个变化:1)该域名以前是members.linode.com – 我已经改变了这个到我的域名,我想通过附加'example.net'到'车间”。 2)我已经注释了search行,我想这是发送parsing器到members.linode.com域寻找“工作坊”。 3)我已经添加了名称服务器127.0.0.1,我想这意味着parsing器先查看本地域名服务器,然后再转到其他域名服务器。
我并不完全理解“研讨会”的挖掘结果,但是在我提出任何问题之前,我会仔细研究一下。
非常感谢所有煞费苦心的人来看这个问题。
QUERY在这里可能会出现什么问题?
有几件事情正在阴谋反对你。 🙁
文件/etc/resolv.conf可能是一个问题; 当我重新启动时,它的域行被设置为一个不适当的值。
你的/etc/resolv.conf是如何被创build/填充的?
我的猜测是你的IP地址是由DHCP服务器分配的。 作为IP地址分配的一部分,您的DHCP客户端正/etc/resolv.conf使用由DHCP服务器分配的domain和nameserver来重写/etc/resolv.conf 。 因此,重新启动后的“不合适的”值。
NSLOOKUP OUTPUT nslookup给出默认名称服务器的SERVER地址,但是说“无法findworkshop:NX域名”。
这是因为您的默认 DNS服务器不是您的本地DNS服务器 – 它是由DHCP服务器分配给您的DNS服务器之一。 这个“其他”DNS服务器不知道你的域名。
但是,在我编辑“domain example.net”这一行并重新启动bind9后,nslookup仍然不起作用。
这是因为您需要将本地DNS服务器添加到/etc/resolv.conf中的名称服务器列表中。 紧接任何其他nameserver条目之前,添加…
nameserver 127.0.0.1
现在,当您使用nslookup ,您的本地DNS服务器应该是您的默认 DNS服务器。 nslookup现在应该能够解决“研讨会”。
UPDATE这里是dig的输出:Command:dig一个@workshop workshop.example.net
这确认了你的域在你的本地绑定DNS服务器上正确configuration了。
正如你已经经历的那样,你对/etc/resolv.conf修改在下次重启时将被覆盖。 你有两个select:
重新configuration您的机器以使用静态IP。 /etc/resolv.conf将不会被覆盖,所以更改将在重新启动后保留。
重新configuration您的DHCP客户端,使其不覆盖/etc/resolv.conf 。 这个线程应该指向正确的方向。
绑定将不会使用您的/ etc / hosts文件。 nslookup将查询“/etc/nsswitch.conf”中列出的源。
/etc/resolv.conf中的域行仅用于完成没有域的主机名,即:“nslookup workshop”。
为了进一步testing,我build议使用dig:
dig A @server workshop.example.net
这将查询DNS服务器“服务器”的“workshop.example.net”的Alogging。
example.com的zonefile中是workshop.example.com吗? 绑定不读你的/ etc / hosts,只有它是区域文件。
您可能希望将nslookup设置为使用debugging模式。 既然你有挖掘,我假设这里是一个类似linux的服务器。
> set debug > www.yourdomain.net Server: [your primary dns] Address: [your primary dns] -------------- [whole bunch of data]
输出可能会给你更多的信息。 “set debug2”在一些平台上工作,以提供更多信息(例如,在WinXP上它会告诉你返回结果的TTL值,方便!)
NSLOOKUP OUTPUT nslookup给出默认名称服务器的SERVER地址,但是说“无法findworkshop:NX域名”。
nslookup使用的默认服务器是否与您正在使用的服务器不同? 在您引用的挖掘输出中,您具体查询了服务器“研讨会”并得到了正确的答案。 一个NSLOOKUP命令来完成相同的将是nslookup workshop.example.net server 。
如果这样做,那么你只需要让你的电脑使用你的服务器。 /etc/resolv.conf将是第一个做这件事的地方。