
私たちは DNS の初心者です。Bind と CentOS を使用して、既存のプライマリ サーバー (例: 142.250.192.110) にセカンダリ DNS サーバーを構成しようとしています。
セカンダリ サーバーの構成は次のとおりです。
listen-on port 53 { 127.0.0.1; any; };
listen-on-v6 port 53 { ::1; any; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
allow-query { any; };
zone "example.com" IN {
type slave;
masters { 142.250.192.110; };
file "slaves/example.forward";
};
zone "192.250.142.in-addr.arpa" IN {
type slave;
masters { 142.250.192.110; };
file "slaves/example.reverse";
};
実行すると、dig @127.0.0.1 host1.example.com
適切な応答が返されます。ローカル IP (セカンダリ サーバー) で実行すると、dig @192.168.1.10 host1.example.com
適切な応答が返されます。
しかし、セカンダリサーバーのパブリックIP /ホスト名でコマンドを実行すると、次dig @dns2.example.com host1.example.com
のようなエラーが発生します。;; connection timed out; no servers could be reached
この問題を解決するためのヒントをご提案ください。貴重なお時間とご協力に感謝いたします。
いくつかの情報とトラブルシューティングの詳細 (IP とホスト名はオリジナルではありません):
プライマリ DNS: 142.250.192.110 (dns1.example.com)
セカンダリ DNS: 192.168.1.10 (ローカル IP)、142.250.192.220 (dns2.example.com)
nslookup dns2.example.com
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: dns2.example.com
Address: 142.250.192.220
dig @127.0.0.1 host1.example.com
- 成功
dig @192.168.1.10 host1.example.com
- 成功
dig @142.250.192.220 host1.example.com
- 失敗した。
dig @dns2.example.com host1.example.com
- 失敗した。
tcpダンプパケット転送を示し、dig @127.0.0.1
と をdig @192.168.1.10
示します。しかし、パケット転送なし、dig @142.250.192.220
およびdig @dns2.example.com
。
ファイアウォールがポート53をブロックしているかどうかを確認するために、tcpdumpでポートをテストしました。tcpdumpは、telnet 142.250.192.220 53
注記:ローカル IP をパブリック IP で NAT するファイアウォールがあります。ファイアウォールがこの dig リクエストをブロックしているかどうか、ネットワーク チームからの返答を待っています。
答え1
常に両方のサーバーのログを確認してください。スレーブがゾーンを取得できたことを確認します。1 つの手順は、スレーブ構成のマスターがdig @192.168.1.10 axfr example.com
どこにあるかを使用して、スレーブから手動で転送することです。@192.168.1.10
allow-transfer { };
スレーブがゾーンを取得できるようにするには、マスター側でこれが必要になる可能性があります。繰り返しますが、これらはすべてログに記録されます。
常に最初にローカル アクセスをチェックしてください。netstat -anp を使用して、サーバーが適切にリッスンしているかどうかを確認し、再度ログをチェックしてください。最後の手段として、tcpdump を試して、どのパケットがどこに送信され、応答があるかどうかを確認してください。