我是 Bind 9 的新手。我已经按照网络上的教程进行操作,但我不知道为什么它不起作用......我已经配置了以下文件:
named.conf.local :
//
// Do any local configuration here
//
// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";
zone "ejemplo.com" {
type master;
file "/var/lib/bind/db.ejemplo.com.hosts";
};
db.ejemplo.com.hosts :
;
; BIND Database file for ejemplo.com zone
;
@ IN SOA ejemplo.com. hostmaster.ejemplo.com. (
2011091601 ; serial number
3600 ; refresh
600 ; retry
1209600 ; expire
3600 ) ; default TTL
;
IN NS ns.ejemplo.com.
IN MX 10 mail.ejemplo.com.
IN TXT ( "v=spf1 mx ~all" )
;
localhost A 127.0.0.1
ns A 192.168.200.250
mail A 192.168.200.251
www A 192.168.200.252
这是我的resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.0.1
当我尝试这样做时,host ejemplo.com
结果是:
Host ejemplo.com not found: 2(SERVFAIL)
答案1
首先,你的文件db.ejemplo.com.hosts
没有.它确实有该名称的、、 和记录,但由于您不带参数运行,因此它会搜索该记录。您需要添加该记录(或添加到您的主机命令中)。A
ejemplo.com
MX
NS
TXT
host
A
A
-t mx
其次,SERVFAIL
主机输出中的消息意味着您的配置有问题。你的帖子不包含日志,所以我不能说什么。检查您的系统日志,看看是否找到来自以下位置的任何日志条目named
:如果您无法弄清楚它们,请将它们发布在这里。
答案2
在没有看到或了解更多设置的情况下,我会进行一些猜测:]
检查中的选项named.conf.local
options {
// listen-on is the IP of the server that is
// accessible to the network. This allows all
// machines on the 192.168.200.* network to use
// "this" DNS.
listen-on { 192.168.200.250; };
// forwarders allows this DNS to perform domain
// name look-ups for domains not managed by bind
forwarders { 127.0.0.1; };
}
用于db.ejemplo.com.hosts
添加一条A
记录。您的设置与我所做的略有不同,因此这可能会略有错误。
ejemplo.com IN A 192.168.200.250
或者可能:
@ IN A 192.168.200.250
在 中/etc/resolv.conf
,首先为您的服务器设置 IP,然后添加您的 ISP DNS,以便 Bind 可以找到它不管理的域。
nameserver 192.168.200.250
nameserver IP.OF.YOUR.ISP.DNS
nameserver ANOTHER.ISP.DNS
您还需要重新启动绑定才能看到这些更改。
之后,您的服务器(运行有bind的机器)应该能够找到ejemplo.com
.如果您在 LAN 上的计算机上设置主 DNS,192.168.200.250
它们也将能够找到ejemplo.com
,并且它们也应该能够看到 LAN 之外的每个人。