BINDはドメイン名を解決できません

BINDはドメイン名を解決できません

ゾーン用のプライベート 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

host2DNS サーバーが解決できないのに、解決できる理由がわかりません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 番目のオプション (ゾーン) にはこの欠点はありません。.comgoogle.comdns1.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 のエントリはありません。

関連情報