注:これは再投稿です。私の前の質問、保留され、より明確に説明するために変更するよう依頼しました(これがより理解できるようになります)。
DNSサーバーがインストールされ、すべてのドメインのデバイスが単一のDNSサーバーでDNSクエリを処理できるように、親ドメイン()と2つのサブドメイン(および)をbind
ホストするように設定しようとしています。example.org
cnc.example.org
report.example.org
最初の質問は可能ですか?
それでは、なぜ次のエラーが発生しますか?
私が受け取ったドメインnslookup host1
でこれを行うときreport.example.org
server can't find host1: SERVFAIL
私が受け取ったドメインnslookup host2
でこれを行うときcnc.example.org
server can't find host1: SERVFAIL
設定は次のとおりです。
ホスト1:
- IP 192.168.252.21/24
- ドメイン名の確認 192.168.252.22
/etc/hosts
含むhost1.cnc.example.org
ホスト2:
- IP 192.168.252.20/24
- ドメイン名の確認 192.168.252.22
/etc/hosts
含むhost2.report.example.org
DNSサーバー:
- IP 192.168.252.22/24
- ドメイン名の確認 127.0.0.1
/etc/hosts
含むDNSServer.example.org
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 "example.org" {
type master;
file "/etc/bind/zones/example.org";
# allow-transfer { 192.168.252.22; };
};
zone "cnc.example.org" {
type master;
file "/etc/bind/zones/cnc.example.org";
# allow-transfer { 192.168.252.22; };
};
zone "report.example.org" {
type master;
file "/etc/bind/zones/report.example.org";
# allow-transfer { 192.168.252.22; };
};
zone "252.168.192.in-appr.arpa" {
type master;
file "/etc/bind/zones/reverse/rev.252.168.192";
allow-transfer { 192.168.252.22; };
};
example.org
構成
;
; BIND data for example.org or report.example.org
;
$TTL 3h
@ IN SOA DNSServer.example.org. root.example.org. (
1 ; serial
3h ; refresh
1h ; retry
1w ; expire
1h ) ; minimum
;
; main domain name servers - NS records
IN NS DNSServer.example.org.
; main domain name servers - A records
DNSServer IN A 192.168.252.22
;delegated zones
cnc.example.org. IN NS DNSServer.example.org.
report.example.org. IN NS DNSServer.example.org.
*DNSServerの/etc/resolv.conf出力*
# Generated by NetworkManager
search example.org
nameserver 127.0.0.1
*ホスト1の/etc/resolv.conf出力*
# Generated by NetworkManager
search report.example.org
nameserver 192.168.252.22
*ホスト2の/etc/resolv.conf出力*
# Generated by NetworkManager
search cnc.example.org
nameserver 192.168.252.22
* DNSServerのdig DNSServer出力*
root@DNSServer:/etc/bind/zones/reverse# dig DNSServer
; <<>> DiG 9.10.3-P4-Debian <<>> DNSServer
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 45573
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;DNSServer. IN A
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Nov 27 10:47:23 GMT 2017
;; MSG SIZE rcvd: 38
*dig DNSServer.example.org 出力の使用*
root@DNSServer:/home/osboxes# dig DNSServer.example.org
; <<>> DiG 9.10.3-P4-Debian <<>> DNSServer.example.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12335
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;DNSServer.example.org. IN A
;; ANSWER SECTION:
DNSServer.example.org. 10800 IN A 192.168.252.22
;; AUTHORITY SECTION:
example.org. 10800 IN NS DNSServer.example.org.
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Nov 27 11:01:19 GMT 2017
;; MSG SIZE rcvd: 79
*DNSServerのdig host1出力*
root@DNSServer:/etc/bind/zones/reverse# dig host1
; <<>> DiG 9.10.3-P4-Debian <<>> host1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 19414
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;host1. IN A
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Nov 27 10:48:15 GMT 2017
;; MSG SIZE rcvd: 40
cnc.example.org
構成
;
; BIND data for example.org or report.example.org
;
$TTL 3h
@ IN SOA DNSServer.example.org. root.example.org. (
1 ; serial
3h ; refresh
1h ; retry
1w ; expire
1h ) ; minimum
;
; main domain name servers - NS records
@ IN NS DNSServer.example.org.
; main domain name servers - A records
;DNSServer IN A 192.168.252.22
;192.168.252.0/24 - A Records
host1.cnc.example.org. IN A 192.168.252.21
report.example.org
構成
;
; BIND data for example.org or report.example.org
;
$TTL 3h
@ IN SOA DNSServer.example.org. root.example.org. (
1 ; serial
3h ; refresh
1h ; retry
1w ; expire
1h ) ; minimum
;
; main domain name servers - NS records
@ IN NS DNSServer.example.org.
; main domain name servers - A records
DNSServer IN A 192.168.252.22
;192.168.252.0/24 - A Records
host2.report.example.org. IN A 192.168.252.20
ありがとう
答え1
委任を使用できますが、必ずしも必要な場合を除き、単に保ち、およびexample.org
をcnc.example.org
含む領域を使用することをお勧めしますreport.example.org
。
;
; BIND data for example.org
;
$TTL 3h
@ IN SOA DNSServer.example.org. root.example.org. (
1 ; serial
3h ; refresh
1h ; retry
1w ; expire
1h ) ; minimum
;
; main domain name servers - NS records
IN NS DNSServer.example.org.
; main domain name servers - A records
DNSServer IN A 192.168.252.22
; public targets
cnc IN CNAME host1.cnc
report IN CNAME host2.report
; hosts delivering services
host1.cnc IN A 192.168.252.21
host2.report IN A 192.168.252.20
コメントを引用すると、次のようになります。
DNSサーバーにいるときは、
nslookup host1
次のようになります。root@host1:/home/osbixes# nslookup host2 Server: 127.0.0.1 Address 127.0.0.1#53 ** server can’t find host2: SERVFAIL
DNSServerには検索パスはありませんが、ドメインはですexample.org
。これは、完全修飾されていないすべての名前がそのドメインに存在する必要があることを意味します。あなたの答えが誤って返されhost2.example.org
ませんでした。nslookup
この場合は、domain example.org
あなたのもの/etc/resolv.conf
をに置き換えるsearch example.org report.example.org
かを見つける必要がありますnslookup host2.report
。
Host1 または Host2 では、次のようになります。
root@host1:/home/osbixes# nslookup host2 Server: 192.168.252.22 Address 192.168.252.22#53 ** server can’t find host2: SERVFAIL
同じ理由。ドメイン(検索パス)には含まれているコンポーネントは/etc/resolv.conf
含まれていないため、host2
どこにも完全nslookup
修飾されていない名前は表示されませんhost2
。
私は、ホスト1とホスト2の
/etc/hosts
合計ファイルがまだ合計でなければならないと/etc/hostname
仮定します。host1.cnc.example.org
host2.report.example.org
/etc/hosts
「しなければならない」と言うとき、どういう意味なのかよく分かりませんhost1.cnc.example.org
。この/etc/hosts
ファイルは、ホスト名とIPアドレスをマッピングする別の方法です。ホスト名が2〜3個しかない場合は、内部DNSの複雑さを避け、そのエントリを/etc/hosts
。集中型ソリューション。 (しかし、これはnslookup
意図的に無視されることを忘れないでください/etc/hosts
。)
これにより、どのホストでも
nslookup host1.cnc.example.org
IPnslookup host2.report.example.org
アドレスが正しく検証されます。
はい。完全修飾名を指定すると正しく解決されnslookup
ますbind
。これは、DNSの1つが正しく機能していることを証明します。
すべてのクエリを処理するにはDNSサーバーが必要で、新しい
example.org
デバイスがネットワークに通信して新しいコマンドの実行を要求したときcnc.example.org
にクエリを実行する(192.168.252.21)、 )で直接接続します。report.example.org
cnc.example.org
host1.cnc.example.org
report.example.org
host2.report.example.org
これを行うには、CNAME
DNSの(エイリアス)レコードを使用してクエリをreport.example.org
ホストにマッピングしますhost2.report.example.org
。あなたの質問にhost2
呼び出すべきではない技術的な理由がないことに注意してくださいhost2.example.org
。CNAME
レコードは、現在の(サブ)ドメインのホストだけでなく、どこにでも指すことができます。
答え2
はい。ただし、サブドメインに対して個別の構成を作成する必要はありません。
末尾の「A」は.
完全なドメイン名を表し、「A」がない場合は.
元のドメインのサブドメインを表します。
cnc.example.com
これらの項目は設定にのみ追加してくださいexample.com
。
host1.cnc IN A 192.168.252.21
したがって、次の更新が必要です。
- 削除して
cnc.example.org
report.example.com
named.conf.local
.
親ドメイン構成に、子ドメインに対応するすべてのエントリ(末尾なし)を追加します。親領域で明示的に言及することもできます。host1.cnc.example.com. IN A 192.168.252.21
cnc.example.com
そのゾーンファイルを削除してサーバーをreport.example.com
再起動します。BIND