这是我当前的 DNS例子.com.db区域文件。我按照教程操作。它有效,因为当我通过 resolve.conf 从另一台服务器指向此 DNS 时,当我执行“ping example.com”时,它实际上会将我转发到正确的 IP。
;
; BIND data file for example.com
;
$TTL 604800
@ IN SOA example.com. info.example.com. (
2007011501 ; Serial
7200 ; Refresh
120 ; Retry
2419200 ; Expire
604800) ; Default TTL
;
@ IN NS ns1.example.com.
@ IN NS ns2.example.com.
example.com. IN MX 10 mail.example.com.
example.com. IN A 192.168.254.1
www IN CNAME example.com.
mail IN A 192.168.254.1
ftp IN CNAME example.com.
example.com. IN TXT "v=spf1 ip4:192.168.254.1 a mx ~all"
mail IN TXT "v=spf1 a -all"
现在,
ping example.com....goes to 192.168.254.1. That's great!!! it works!
我的问题是——我如何在这个文件中添加一些内容,以便当我的其他服务器时:
ping dbserver1....goes to 44.245.66.222
ping cacheserver1 ....goes to 38.221.44.555
我想将它用作我的机器的通用主机文件。
答案1
如果要使用 example.com 作为所有机器的基域,则必须将其添加到全部您的机器的 /etc/resolv.conf 文件:
搜索 example.com
然后按照 Schof 的建议进行操作,但将该条目分成两行(他的帖子存在小格式问题):
dbserver1 IN A 44.245.66.222
cacheserver1 IN A 38.221.44.555
然后增加该区域文件中的序列号(非常重要)。例如,从 2007011501 到 2009091000(今天的日期 + 00,或下次更新时为 01,依此类推)。
然后重新加载 bind9 并尝试从您的机器 ping dbserver1。
答案2
如果我正确理解了你的问题,那么你已经非常接近你想要去的地方了:
假设您想要 dbserver1.example.com,而不是 dbserver1.otherdomain.com,请执行以下操作:
dbserver1 IN A 44.245.66.222
cacheserver1 IN A 38.221.44.555
如果您想转到其他域名(如您的评论所示),那么您需要:
dbserver1.otherdomain.com. IN A 44.245.66.222
cacheserver1.otherdomain.com. IN A 38.221.44.555
(请注意上面域名上的终止句点。非常重要;否则您将得到 dbserver1.otherdomain.com.example.com。)
从 BIND 配置文件的特定主题转移到 DNS 的一般主题,我不确定您想做什么,但这听起来不是一个好主意。
互联网从主机文件转向 DNS,因为维护一堆主机文件很快就变得异常困难。如果您使用 DNS 创建自己的主机文件,我建议:
- 使用实际的 hosts 文件。
- 根本不这样做,而是将 DNS 作为 DNS 使用。
如果您只想通过键入“ping dbserver1”访问 dbserver1.example.com,那么您需要遵循 Yves 的建议并将“search example.com”添加到您的 /etc/resolv.conf。这完全独立于您的 DNS 服务器 - 它是每台机器上的本地设置,告诉它将“example.com”附加到无效地址。
答案3
在你的 Linux DNS 服务器中添加其他 DNS 条目..go
vi /etc/named.caching-nameserver.conf
并添加以下 DNS 服务器 IP
forwarders { 0.0.0.0; };
:wq
service named restart
并检查。