我今天在 Ubuntu 上设置了一个 DNS 服务器,如下本教程。我的目的是设置我的网络,以便在单个区域内的私有 LAN 上进行 dns 名称解析(没什么特别的,我只想要名称解析)。
我已经在 DNS 服务器机器上测试了设置,我可以 ping 配置文件中列出的所有机器。我还在我的网络上配置了 Windows 机器,由于某种原因,它们无法像在 DNS 服务器本身上那样通过名称进行 ping。
我尝试在 Windows DNS 客户端上运行 nslookup,但收到了提及 DNS 服务器地址的错误。
DNS 转发工作正常,我访问互联网时没有遇到任何问题,问题仅在于访问私有 LAN 内的名称。
这是我的配置文件:
options {
directory "/var/cache/bind";
// If there is a firewall between you and nameservers you want
// to talk to, you may need to fix the firewall to allow multiple
// ports to talk. See http://www.kb.cert.org/vuls/id/800113
// If your ISP provided one or more IP addresses for stable
// nameservers, you probably want to use them as forwarders.
// Uncomment the following block, and insert the addresses replacing
// the all-0's placeholder.
// forwarders {
// 0.0.0.0;
// };
forwarders {
8.8.8.8;
8.8.8.4;
74.242.0.12;
//68.87.76.178;
};
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
};
/etc/bind/named.conf.options
zone "leerdomain.local" {
type master;
file "/etc/bind/zones/leerdomain.local.db";
notify no;
};
zone "2.168.192.in-addr.arpa" {
type master;
file "/etc/bind/zones/rev.2.168.192.in-addr.arpa";
notify no;
};
/etc/bind/named.conf.local
抬头:
$TTL 3D
@ IN SOA ns.leerdomain.local. admin.leerdomain.local. (
2010011001
28800
3600
604800
38400
);
leerdomain.local. IN NS ns.leerdomain.local.
ns IN A 192.168.2.9
asus IN A 192.168.2.254
www IN CNAME asus
vaio IN A 192.168.2.253
iptouch IN A 192.168.2.252
toshiba IN A 192.168.2.251
gw IN A 192.168.2.1
TXT "Network Gateway"
/etc/bind/zones/leerdomain.local.db
(验证区域 leerdomain.local 时,使用 named-checkzone 验证正确)
反向查找:
$TTL 3D
@ IN SOA ns.leerdomain.local. admin.leerdomain.local. (
201001101
28800
604800
604800
86400
)
IN NS ns.leerdomain.local.
1 IN PTR gw.leerdomain.local.
254 IN PTR asus.leerdomain.local.
253 IN PTR vaio.leerdomain.local.
252 IN PTR iptouch.leerdomain.local.
251 IN PTR toshiba.leerdomain.local.
/etc/bind/zones/rev.2.168.192.in-addr.arpa
*(验证区域 leerdomain.local 时不使用 named-checkzone 进行验证,出现以下错误: 区域 leerdomain.local/IN:NS‘ns.leerdomain.local’没有地址记录(A 或 AAAA)区域 leerdomain.local/IN:由于错误未加载。*
尽管没有验证 bind9 启动时没有 /var/log/syslog 中的错误
我还配置了我的网络上的几台 Windows 机器,使其具有查找和反向查找配置文件中指定的静态 IP。
IE
使用 nslookup 产生以下结果:
C:\Users\leeand00>nslookup ns
Server: UnKnown
Address: 192.168.2.9
*** UnKnown can't find ns: Non-existent domain
C:\Users\leeand00>nslookup gw
Server: UnKnown
Address: 192.168.2.9
Name: gw.
此外,在非 DNS 服务器的机器上尝试通过名称进行 ping 操作也会失败。
是不是我的名称服务器或者 Windows Boxes 的配置有问题,导致我无法使用名称访问其他机器?
更新
我根据 Phil Hollenback 的建议(参见上文)更新了 Windows 机器的高级 TCP/IP 设置,现在我似乎可以在网络上命名了。
答案1
我想知道问题是否在于后缀附加功能在 Windows 机器上是如何工作的。要测试这一点,请尝试在其中一台 Windows 机器上运行全名的 nslookup,即nslookup ns.leerdomain.local
。如果成功,则意味着您的 Windows 机器没有将 leerdomain.local 后缀附加到您的查询中。您可以在tcp/ip properties->advanced
其中一台 Windows 机器上检查这一点。
查看/etc/resolv.conf
ubuntu 机器,search
那里的指令将告诉您该机器如何附加域。查看ipconfig /all
其中一台 Windows 机器上的输出,特别是检查的输出primary dns suffix
。ipconfig /displaydns
还可能为您提供有关机器如何配置为使用 DNS 的一些有用信息。