抬头:

抬头:

我今天在 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。

IEIP 地址:192.168.2.254 子网掩码:255.255.255.0 默认网关:192.168.2.1 预定义 DNS 服务器:192.168.2.9

使用 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 的配置有问题,导致我无法使用名称访问其他机器?

更新

DNS 服务器地址(按使用顺序):192.168.2.9 附加主要和连接特定的 DNS 后缀 此连接的 DNS 后缀:leerdomain.local 已选中 在 DNS 中注册此连接的地址

我根据 Phil Hollenback 的建议(参见上文)更新了 Windows 机器的高级 TCP/IP 设置,现在我似乎可以在网络上命名了。

答案1

我想知道问题是否在于后缀附加功能在 Windows 机器上是如何工作的。要测试这一点,请尝试在其中一台 Windows 机器上运行全名的 nslookup,即nslookup ns.leerdomain.local。如果成功,则意味着您的 Windows 机器没有将 leerdomain.local 后缀附加到您的查询中。您可以在tcp/ip properties->advanced其中一台 Windows 机器上检查这一点。

查看/etc/resolv.confubuntu 机器,search那里的指令将告诉您该机器如何附加域。查看ipconfig /all其中一台 Windows 机器上的输出,特别是检查的输出primary dns suffixipconfig /displaydns还可能为您提供有关机器如何配置为使用 DNS 的一些有用信息。

相关内容