我确信我做了一些蠢事,但无论如何我们还是问一下吧。
我正在尝试在我的 LAN 机器上创建“主机名”(例如,当您 ping “chris”时,Chris 的机器 - IP 12.34.56.78 - 会对此做出响应)。我通过带有 bind9 的 Debian (lenny) 服务器执行此操作,并将此服务器用作 LAN 的主 DNS 服务器。
问题:我能平whatever.chris
从其他机器不是 chris
。 我究竟做错了什么?
我按照以下说明设置 bind9:http://www.cahilig.net/2008/07/05/how-setup-lan-dns-server-using-bind9-under-debian-etch-and-ubuntu-804
文件:
/etc/主机名
chris
/etc/hosts
127.0.0.1 localhost
192.168.1.3 chris.chris chris
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
/etc/resolv.conf
Didn't touch this one, as resolvconf overwrites it
/etc/bind/name.conf.local
zone "chris" {
type master;
file "db.chris";
};
zone "1.168.192.in-addr.arpa" {
type master;
file "db.192.168.1";
};
/var/cache/bind/db.chris
$TTL 604800
@ IN SOA main.chris. admin.chris. (
2012051610 ;serial
04800 ;refresh
86400 ;retry
60 ;expire
604800 ;negative cache TTL
)
@ IN NS main.chris.
@ IN A 192.168.1.3
www IN A 192.168.1.3
main IN A 192.168.1.3
/var/缓存/bind/db.192.168.1
$TTL 604800
@ IN SOA main.chris. admin.chris. (
2012051606 ;serial
604800 ;refresh
86400 ;retry
60 ;expire
604800 ;negative cache TTL
)
@ IN NS main.chris.
1 IN PTR chris.
/etc/bind/named.conf.options
options {
directory "/var/cache/bind";
forwarders {
192.168.1.1;
};
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
};
答案1
我建议你把所有这些放在一个区域,我们称之为“本地”,然后将主机添加到本地,如 chris.local、john.local。然后你希望这些机器中的每一台都位于search local
它们的 中/etc/resolv.conf
,这样当它们找不到时,ping chris
它会自动尝试查找 IP 地址。chris.local
chris
通常情况下,你会让你的 dhcp 服务器向他们发送这个search
指令,但也可以使用以下方式配置resolvconf
答案2
确保区域文件的权限正确。我认为需要 chmod 644,或者是 744。完成更改后,您是否执行了:"/etc/init.d/named restart" 此外,对于有关其他问题的提示,请查看 /var/log/messages 以获取任何指针。
您的区域文件应该看起来像这样。
答案3
如果您想通过短名称(即不仅仅是通过完全限定域名)进行 DNS 查找,那么您就处于 /etc/resolv.conf 和“搜索”参数的范围内。
搜索克里斯
man 5 resolv.conf 了解详情