ゾーン用のプライベート DNS サーバーとして BIND Ubuntu サーバーを 1 台com
、ホスト (Web サーバー) を 2 台持っています。3 台は仮想ボックスを使用した仮想ホストであり、仮想ホスト カードを使用して相互に接続します。
前方解決用に 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
ドメイン名を使用して両方のホストに接続しようとします。最初のホストは正常に開きます。2 番目のホストは開けません。
どちらもpingapleです。以下は私のマシンからの2番目のホスト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
host2
DNS サーバーが解決できないのに、解決できる理由がわかりません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
何か困難があるようですので、ここに 2 つの (うまくいけば) 実用的な例を示します。最初のオプション (ゾーン) では、通常のドメイン (例).com
の解決が妨げられる可能性があることに注意してください。2 番目のオプション (ゾーン) にはこの欠点はありません。.com
google.com
dns1.com
.com
ゾーンファイルの例
元。 ローカル
; "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
ゾーンファイルの例
元。 ローカル
; "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 のエントリはありません。