我有一台 BIND ubuntu 服务器作为区域的私有 DNS 服务器com
和两台主机(Web 服务器)。这三台是使用虚拟盒的虚拟主机,并使用虚拟主机卡连接在一起。
我在 DNS 服务器中有一个用于正向解析的配置文件:
$TTL 604800
@ IN SOA dns1.com. admin.com. (
19 ; Serial
604820 ; Refresh
86600 ; Retry
2419600 ; Expire
604600 ) ; Negative Cache TTL
; name servers - NS records
IN NS dns1.com.
; name servers - A records
dns1.com. IN A 192.168.56.3
; 192.168.56.0/24 - A records
@ IN NS dns1.com.
host1. IN A 192.168.56.7
host2. IN A 192.168.56.8
我尝试使用域名连接两台主机。第一台主机可以正常打开。第二台主机却始终无法打开。
两者都是 pingaple。以下是从我的机器 ping 第二台主机的结果:C:\Users\e>ping 192.168.56.8
Pinging 192.168.56.8 with 32 bytes of data:
Reply from 192.168.56.8: bytes=32 time<1ms TTL=64
Reply from 192.168.56.8: bytes=32 time<1ms TTL=64
Reply from 192.168.56.8: bytes=32 time<1ms TTL=64
host
如果我在我的 Windows 机器上使用本地文件,通过添加以下条目,我能够解析 host2.com:
192.168.56.8 host2.com
我找不到为什么我的DNS服务器无法解析host2
但是可以解析host1
?
文件如下named.conf.local
:
zone ".com" {
type master;
file "/etc/bind/forward.host1.com";
};
zone "56.168.192.in-addr.arpa"{
type master;
file "/etc/bind/reverse.host1.com";
};
我不认为文件名forward.host1.com
reverse.host1.com
对分辨率有任何影响?有影响吗?
编辑: 检查配置:
/etc/bind$ sudo named-checkzone com forward.host1.com
forward.host1.com:20: ignoring out-of-zone data (host1)
forward.host1.com:21: ignoring out-of-zone data (host2)
zone com/IN: loaded serial 19
OK
有人能指出我为什么无法解析 host2 吗?
编辑:在建议答案后,文件已更新为以下内容,但没有任何希望。我现在无法访问 host1 和 host2,尽管它们已启动并正在运行,并且我可以通过 IP 访问它们:
$TTL 604800
@ IN SOA dns1.com. admin.com. (
24 ; Serial
604820 ; Refresh
86600 ; Retry
2419600 ; Expire
604600 ) ; Negative Cache TTL
; name servers - NS records
IN NS dns1.com.
; name servers - A records
dns1.com IN A 192.168.56.3
; 192.168.56.0/24 - A records
@ IN NS dns1.com.
host1 IN A 192.168.56.7
host2 IN A 192.168.56.8
答案1
听起来好像您遇到了一些困难,所以这里有两个(希望)可行的示例供您使用。请注意,第一个选项(区域.com
)可能会阻止解析正常.com
域(例如google.com
)。第二个选项(dns1.com
区域)没有这个缺点。
示例.com
区域文件
前任。 /etc/bind/named.conf.local
; "db.com.tld" is a random name - use whatever you like.
; The same goes for "db.rev.192".
;
; Likewise, you can adjust your "allow-transfer" settings,
; etc. as needed.
zone "com." IN {
type master;
file "/etc/bind/zones/db.com.tld";
allow-transfer { none; };
};
zone "56.168.192.in-addr.arpa" IN {
type master;
file "/etc/bind/zones/db.rev.192";
allow-transfer { none; };
};
前任。 /etc/bind/zones/db.com.tld
; BIND data file for TLD ".com"
;
; This will likely break real ".com" websites (i.e. anything not listed here).
$TTL 3600
@ IN SOA com. admin.com. (
2018040501 ; Serial
604800 ; Refresh period
86400 ; Retry interval
2419200 ; Expire time (28 days... later)
604800 ) ; Negative Cache TTL (1 week)
; Name Servers - NS records
@ IN NS ns1.com. ; This is required
@ IN NS ns2.com. ; You should have two name servers
; Name Servers - A records
ns1 IN A 192.168.56.3 ; This is required
ns2 IN A 192.168.56.3 ; You should have two name servers
; Our domains/sub-domains
dns1 IN A 192.168.56.3 ; dns1.com
host1.dns1 IN A 192.168.56.7 ; host1.dns1.com
host2.dns1 IN A 192.168.56.8 ; host2.dns1.com
请注意,使用这样的句点是可以的,尽管在这种情况下可以说是多余的:
;ok.period.com. IN A 192.168.56.3 ; ok.period.com -> FQDN
你应该避免的是:
;no.period. IN A 192.168.56.3 ; Don't use periods for sub-domains
;no.period.com IN A 192.168.56.3 ; While this works, this is actually accessed as no.period.com.com!
前任。 /etc/bind/zones/db.rev.192
; BIND reverse data file.
; The domain, etc. used should be a listed 'zone' in named.conf.
$TTL 86400
@ IN SOA com. admin.com. (
2018040501 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
86400 ) ; Minimum
; In this case, the number just before "PTR" is the last octet
; of the IP address for the device to map (e.g. 192.168.56.[3])
; Name Servers
@ IN NS ns1.com.
@ IN NS ns2.com.
; Reverse PTR Records
3 IN PTR dns1.com.
7 IN PTR host1.dns1.com.
8 IN PTR host2.dns1.com.
请注意,上述设置可能会限制您的选择,使您的机器无法访问.com
您创建的域以外的域(即它们可能无法访问这些域)。如果您希望它们访问外部.com
域,您可以尝试以下更严格的方法。
示例dns1.com
区域文件
前任。 /etc/bind/named.conf.local
; "db.dns1.com" is a random name - use whatever you like.
;
; Likewise, you can adjust your "allow-transfer" settings,
; etc. as needed.
zone "dns1.com" IN {
type master;
file "/etc/bind/zones/db.dns1.com";
allow-transfer { none; };
};
您可以使用named.conf.local
与上述相同的反向区域条目。
前任。 /etc/bind/zones/db.dns1.com
; BIND data for http://dns1.com
$TTL 3600
@ IN SOA ns1.dns1.com. admin.dns1.com. (
2018040501 ; Serial
604820 ; Refresh
86600 ; Retry
2419600 ; Expire
604600 ) ; Negative Cache TTL
; Name Servers - NS records
@ IN NS ns1.dns1.com. ; This is required
@ IN NS ns2.dns1.com. ; You should have two name servers
; Name Servers - A records
ns1 IN A 192.168.56.3 ; This is required
ns2 IN A 192.168.56.3 ; You should have two name servers
; Our domains/sub-domains
dns1.com. IN A 192.168.56.3 ; dns1.com
host1 IN A 192.168.56.7 ; host1.dns1.com
host2 IN A 192.168.56.8 ; host2.dns1.com
前任。 /etc/bind/zones/db.rev.192
; BIND reverse data file.
; The domain, etc. used should be a listed 'zone' in named.conf.
$TTL 86400
@ IN SOA dns1.com. admin.dns1.com. (
2018040501 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
86400 ) ; Minimum
; In this case, the number just before "PTR" is the last octet
; of the IP address for the device to map (e.g. 192.168.56.[3])
; Name Servers
@ IN NS ns1.dns1.com.
@ IN NS ns2.dns1.com.
; Reverse PTR Records
3 IN PTR dns1.com.
7 IN PTR host1.dns1.com.
8 IN PTR host2.dns1.com.
答案2
您的区域文件有误 - 在第 20 行和第 21 行,如建议的那样。具体来说,host1 和 host2 后面不应该有“。”。
. 表示这是绝对的,而不是相对于区域的 - 因此它对域名 host1 犹豫不决,并且没有 host1.com 的条目