| rndc | |||||
| ローカル上、またはリモート上にあるBIND9を制御するツール | |||||
| 主に、設定の再読み込み、namedサービスの停止(起動はできない)、統計情報の表示、キャッシュのクリアなどのために使用する | |||||
| ■ rndcによる制御 | |||||
| rndcによって実行する主なコマンドは以下の通り。 | |||||
| そのほかのオプションを知りたい場合は、 rndc --help で確認 | |||||
| rndc reload | キャッシュは保持したままで、設定の再読み込み(プロセス番号は変わらない) | ||||
| rndc reload ゾーン名 | キャッシュは保持したままで、指定のゾーンの設定だけ再読み込み(プロセス番号は変わらない) | ||||
| rndc stop | bindの停止 (rndcでbindの起動はできない) | ||||
| rndc status | BINDの統計情報(主に設定や起動の状態など) | ||||
| rndc stats | BINDの統計情報(名前解決の統計情報)をファイルに出力する | ||||
| rndc dumpdb | メモリ上のキャッシュをダンプファイルへ出力 | ||||
| rndc flush | メモリ上のキャッシュデータの全削除 | ||||
| rndc flushname ラベル | 指定のラベルに一致するレコードをメモリ上のキャッシュから削除 | ||||
| 削除対象は、ラベル名(レコードの左辺)が完全一致しているものだけ | |||||
| rndc flushname google.co.jp ⇒ google.co.jpは消えるが、www.google.co.jpなどは消えない | |||||
| rndc flushname www.google.co.jp ⇒ www.google.co.jpは消えるが、google.co.jpなどは消えない | |||||
| rndc reload キャッシュは保持したままで、設定の再読み込み(プロセス番号は変わらない) | |||||
| # ps -ef | grep named | |||||
| named 1934 1 0 13:48 ? 00:00:00 /usr/sbin/named -u named -t /var/named/chroot | 現在のプロセス番号は、1934 | ||||
| # rndc reload | rndc reload 実行 | ||||
| server reload successful | |||||
| # ps -ef | grep named | プロセス番号の確認 1934のまま | ||||
| named 1934 1 0 13:48 ? 00:00:00 /usr/sbin/named -u named -t /var/named/chroot | |||||
| # tail /var/named/chroot/var/log/named/named.info | ログの確認 | ||||
| 21-May-2011 14:06:02.090 general: received control channel command 'reload' | 特に設定を変えていないのでこれだけ | ||||
| 21-May-2011 14:06:02.090 general: loading configuration from '/etc/named.conf' | |||||
| 21-May-2011 14:06:02.097 general: using default UDP/IPv4 port range: [1024, 65535] | |||||
| 21-May-2011 14:06:02.102 general: using default UDP/IPv6 port range: [1024, 65535] | |||||
| 21-May-2011 14:06:02.137 general: reloading configuration succeeded | |||||
| 21-May-2011 14:06:02.138 general: reloading zones succeeded | |||||
| rndc reload ゾーン名 キャッシュは保持したままで、指定のゾーンの設定だけ再読み込み(プロセス番号は変わらない) | |||||
| # vi example.co.jp.zone | 検証のため、2つのゾーンファイルのシリアル番号を変更 | ||||
| example.co.jp IN SOA dns1.example.co.jp. root.example.co.jp. ( | |||||
| 2010112321 ; serial | |||||
| # 24.168.192.db | |||||
| 24.168.192.in-addr.arpa IN SOA dns.example.co.jp. root.example.co.jp. ( | |||||
| 2010083156 ; serial | |||||
| # rndc reload 24.168.192.in-addr.arpa | 24.168.192.in-addr.arpaゾーンのみreload実施 | ||||
| zone reload queued | |||||
| # ps -ef | grep named | プロセス番号の確認 1934のまま | ||||
| named 1934 1 0 13:48 ? 00:00:00 /usr/sbin/named -u named -t /var/named/chroot | |||||
| # tail /var/named/chroot/var/log/named/named.info | ログの確認 | ||||
| 21-May-2011 14:11:45.053 general: received control channel command 'reload 24.168.192.in-addr.arpa' | 24.168.192.in-addr.arpaゾーンのファイルだけ読み込まれている | ||||
| 21-May-2011 14:11:45.059 general: zone 24.168.192.in-addr.arpa/IN: loaded serial 2010083156 | |||||
| 21-May-2011 14:11:45.060 notify: zone 24.168.192.in-addr.arpa/IN: sending notifies (serial 2010083156) | |||||
| # dig +noall +answer @localhost 24.168.192.in-addr.arpa soa | digで確認 | ||||
| 24.168.192.in-addr.arpa. 86400 IN SOA dns1.example.co.jp. root.example.co.jp. 2010083156 | シリアル番号が変わっている | ||||
| 10800 3600 604800 3000 | |||||
| # dig +noall +answer @localhost example.co.jp soa | example.co.jpのほうはシリアル番号がそのまま | ||||
| example.co.jp. 86400 IN SOA dns1.example.co.jp. root.example.co.jp. 2010112320 | |||||
| 10800 3600 86400 86400 | |||||
| rndc status BINDの統計情報を出力 | |||||
| # rndc status | rndc status 実行 | ||||
| version: 9.7.3 (Not available.) | named.confでバージョン非表示にしてもバージョンの確認ができる | ||||
| CPUs found: 1 | |||||
| worker threads: 1 | |||||
| number of zones: 20 | |||||
| debug level: 0 | |||||
| xfers running: 0 | |||||
| xfers deferred: 0 | |||||
| soa queries in progress: 0 | |||||
| query logging is ON | |||||
| recursive clients: 0/2900/3000 | |||||
| tcp clients: 0/100 | |||||
| server is up and running | |||||
| rndc stats BINDの統計情報(問い合わせ詳細)をファイルに出力する | |||||
| # vi /var/named/chroot/etc/named.conf | rndc statsで出力されるファイルは、named.confで指定できる | ||||
| options { | statistics-file "出力先ファイルパス"; | ||||
| directory "/var/named"; | 指定がない場合は、directoryで指定したディレクトリに | ||||
| statistics-file "/var/named/data/named_stats"; | named.statsというファイル名で出力される | ||||
| # rndc stats | rndc stats 実行 | ||||
| # ls -l /var/named/chroot/var/named/data/ | 確認 | ||||
| -rw-r--r-- 1 named named 2488 5月 21 16:03 named_stats | |||||
| # rndc stats | rndc stats 実行 | ||||
| # ls -l /var/named/chroot/var/named/named.stats | rndc statsの結果は、ファイルに追記されるため | ||||
| -rw-r--r-- 1 named named 4976 5月 21 16:07 named_stats | rndc statsのサイズが増えることに注意する | ||||
| rndc dumpdb メモリ上のキャッシュをダンプファイルへ出力 | |||||
| # vi /var/named/chroot/etc/named.conf | ダンプの出力ファイルは、named.confで指定できる | ||||
| options { | dump-fle "出力先ファイルパス" | ||||
| directory "/var/named"; | 指定がない場合は、directoryで指定したディレクトリに | ||||
| dump-file "/var/named/data/named_dump"; | named_dump.dbというファイル名で出力される | ||||
| # rndc dumpdb | rndc dumpdb 実行 | ||||
| # ls -l /var/named/chroot/var/named/data/ | 確認 ファイルは勝手に作られる | ||||
| -rw-r--r-- 1 named named 30636 5月 21 15:41 named_dump | ファイルがない場合は、ログを確認 | ||||
| (多くはファイルを作成するためのアクセス権が無いことによる | |||||
| 失敗のエラー) | |||||
| # more /var/named/chroot/var/named/data/named_dump | 中身はテキストファイルなのでmoreなどで確認ができる | ||||
| (内容は省略) | |||||
| rndc flush メモリ上のキャッシュデータの全削除 | |||||
| # dig @localhost www.yahoo.co.jp a +norec | 自分自身に問い合わせてキャッシュを持っているか確認 | ||||
| (再帰問い合わせはしないこと) | |||||
| ; <<>> DiG 9.7.3 <<>> @localhost www.yahoo.co.jp a +norec | |||||
| ; (1 server found) | |||||
| ;; global options: +cmd | |||||
| ;; Got answer: | |||||
| ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51758 | |||||
| ;; flags: qr ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 0 | |||||
| ;; QUESTION SECTION: | |||||
| ;www.yahoo.co.jp. IN A | |||||
| ;; ANSWER SECTION: | |||||
| www.yahoo.co.jp. 844 IN CNAME www.ya.gl.yahoo.co.jp. | www.yahoo.co.jpのTTLは最大900だが、 | ||||
| www.ya.gl.yahoo.co.jp. 4 IN A 203.216.243.240 | キャッシュデータなので844になっている | ||||
| ;; AUTHORITY SECTION: | |||||
| gl.yahoo.co.jp. 844 IN NS gns02.net.djm.yahoo.co.jp. | |||||
| gl.yahoo.co.jp. 844 IN NS gns02.net.bbt.yahoo.co.jp. | |||||
| ;; Query time: 2 msec | |||||
| ;; SERVER: 127.0.0.1#53(127.0.0.1) | |||||
| ;; WHEN: Sat May 21 14:47:35 2011 | |||||
| ;; MSG SIZE rcvd: 129 | |||||
| # rndc flush | rndc flush 実施(全てのキャッシュデータ削除) | ||||
| # dig @localhost www.yahoo.co.jp a +norec | 確認 (再帰問い合わせはしない) | ||||
| キャッシュが消えたので回答がなくなった | |||||
| ; <<>> DiG 9.7.3 <<>> @localhost www.yahoo.co.jp a +norec | |||||
| ; (1 server found) | |||||
| ;; global options: +cmd | |||||
| ;; Got answer: | |||||
| ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10867 | |||||
| ;; flags: qr ra; QUERY: 1, ANSWER: 0, AUTHORITY: 13, ADDITIONAL: 0 | |||||
| ;; QUESTION SECTION: | |||||
| ;www.yahoo.co.jp. IN A | |||||
| ;; AUTHORITY SECTION: | |||||
| . 518400 IN NS j.root-servers.net. | |||||
| . 518400 IN NS b.root-servers.net. | |||||
| . 518400 IN NS g.root-servers.net. | |||||
| . 518400 IN NS f.root-servers.net. | |||||
| . 518400 IN NS i.root-servers.net. | |||||
| . 518400 IN NS h.root-servers.net. | |||||
| . 518400 IN NS k.root-servers.net. | |||||
| . 518400 IN NS a.root-servers.net. | |||||
| . 518400 IN NS e.root-servers.net. | |||||
| . 518400 IN NS m.root-servers.net. | |||||
| . 518400 IN NS l.root-servers.net. | |||||
| . 518400 IN NS c.root-servers.net. | |||||
| . 518400 IN NS d.root-servers.net. | |||||
| ;; Query time: 3 msec | |||||
| ;; SERVER: 127.0.0.1#53(127.0.0.1) | |||||
| ;; WHEN: Sat May 21 14:50:46 2011 | |||||
| ;; MSG SIZE rcvd: 244 | |||||
| # dig @localhost www.yahoo.co.jp a | 再帰問い合わせOKで再度問い合わせ | ||||
| 新しくデータをキャッシュした | |||||
| ; <<>> DiG 9.7.3 <<>> @localhost www.yahoo.co.jp a | |||||
| ; (1 server found) | |||||
| ;; global options: +cmd | |||||
| ;; Got answer: | |||||
| ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35316 | |||||
| ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 0 | |||||
| ;; QUESTION SECTION: | |||||
| ;www.yahoo.co.jp. IN A | |||||
| ;; ANSWER SECTION: | |||||
| www.yahoo.co.jp. 900 IN CNAME www.ya.gl.yahoo.co.jp. | |||||
| www.ya.gl.yahoo.co.jp. 60 IN A 203.216.251.233 | |||||
| ;; AUTHORITY SECTION: | |||||
| gl.yahoo.co.jp. 900 IN NS gns02.net.djm.yahoo.co.jp. | |||||
| gl.yahoo.co.jp. 900 IN NS gns02.net.bbt.yahoo.co.jp. | |||||
| ;; Query time: 382 msec | |||||
| ;; SERVER: 127.0.0.1#53(127.0.0.1) | |||||
| ;; WHEN: Sat May 21 14:50:58 2011 | |||||
| ;; MSG SIZE rcvd: 129 | |||||
| rndc flushname ゾーン名 | 指定のラベルのレコードだけをメモリ上のキャッシュから削除 | ||||
| 削除されるキャッシュは、ラベル名(レコードの左辺側)が完全一致しているものだけ | |||||
| 例) rndc flushname google.co.jp ⇒ google.co.jpは消えるが、www.google.co.jpは消えない | |||||
| 例) rndc flushname www.google.co.jp ⇒ google.co.jpは消えないが、www.google.co.jpは消える | |||||
| # rndc flush | 検証のため、一度キャッシュデータを全て削除 | ||||
| # dig @localhost yahoo.co.jp a | yahoo.co.jpとwww.yahoo.co.jpについて問い合わせてキャッシュさせる | ||||
| # dig @localhost www.yahoo.co.jp a | |||||
| # rndc dumpdb | キャッシュをダンプ | ||||
| # more named_dump.db | キャッシュの確認 | ||||
| ; authauthority | yahooに関係しているものだけを抜粋した | ||||
| yahoo.co.jp. 889 NS ns04.ops.ogk.yahoo.co.jp. | |||||
| 889 NS dnsg01.yahoo.co.jp. | |||||
| ; authanswer | |||||
| 289 A 124.83.187.140 | |||||
| 289 A 203.216.243.240 | |||||
| ; glue | |||||
| gns02.net.bbt.yahoo.co.jp. 892 A 202.93.64.133 | |||||
| ; glue | |||||
| gns02.net.djm.yahoo.co.jp. 892 A 124.83.159.37 | |||||
| ; glue | |||||
| dnsg01.yahoo.co.jp. 86389 A 211.14.12.10 | |||||
| ; glue | |||||
| gl.yahoo.co.jp. 892 NS gns02.net.bbt.yahoo.co.jp. | |||||
| 892 NS gns02.net.djm.yahoo.co.jp. | |||||
| ; authanswer | |||||
| www.ya.gl.yahoo.co.jp. 52 A 124.83.147.212 | |||||
| ; glue | |||||
| ns04.ops.ogk.yahoo.co.jp. 86389 A 124.83.218.185 | |||||
| ; authanswer | |||||
| www.yahoo.co.jp. 892 CNAME www.ya.gl.yahoo.co.jp. | |||||
| # rndc flushname yahoo.co.jp | yahoo.co.jpに関するキャッシュをクリア | ||||
| # rndc dumpdb | キャッシュのダンプ | ||||
| # more named_dump.db | キャッシュの確認 | ||||
| ; glue | 上記と比較してわかるとおり、左辺がyahoo.co.jpのレコードだけが消えている | ||||
| gns02.net.bbt.yahoo.co.jp. 881 A 202.93.64.133 | |||||
| ; glue | |||||
| gns02.net.djm.yahoo.co.jp. 881 A 124.83.159.37 | |||||
| ; glue | |||||
| dnsg01.yahoo.co.jp. 86377 A 211.14.12.10 | |||||
| ; glue | |||||
| gl.yahoo.co.jp. 881 NS gns02.net.bbt.yahoo.co.jp. | |||||
| 881 NS gns02.net.djm.yahoo.co.jp. | |||||
| ; authanswer | |||||
| www.ya.gl.yahoo.co.jp. 42 A 124.83.203.233 | |||||
| ; glue | |||||
| ns04.ops.ogk.yahoo.co.jp. 86377 A 124.83.218.185 | |||||
| ; authanswer | |||||
| www.yahoo.co.jp. 881 CNAME www.ya.gl.yahoo.co.jp. | |||||
| # dig @localhost yahoo.co.jp a +norec | 確認 (再帰問い合わせはしない) | ||||
| yahoo.co.jpについてはキャッシュが消えたので回答なし | |||||
| ; <<>> DiG 9.7.3-P3 <<>> @localhost yahoo.co.jp a +norec | |||||
| ; (1 server found) | |||||
| ;; global options: +cmd | |||||
| ;; Got answer: | |||||
| ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18571 | |||||
| ;; flags: qr ra; QUERY: 1, ANSWER: 0, AUTHORITY: 7, ADDITIONAL: 0 | |||||
| ;; QUESTION SECTION: | |||||
| ;yahoo.co.jp. IN A | |||||
| ;; AUTHORITY SECTION: | |||||
| jp. 172661 IN NS c.dns.jp. | |||||
| jp. 172661 IN NS b.dns.jp. | |||||
| jp. 172661 IN NS d.dns.jp. | |||||
| jp. 172661 IN NS a.dns.jp. | |||||
| jp. 172661 IN NS e.dns.jp. | |||||
| jp. 172661 IN NS f.dns.jp. | |||||
| jp. 172661 IN NS g.dns.jp. | |||||
| ;; Query time: 2 msec | |||||
| ;; SERVER: 127.0.0.1#53(127.0.0.1) | |||||
| ;; WHEN: Sat Jul 30 03:02:49 2011 | |||||
| ;; MSG SIZE rcvd: 145 | |||||
| # dig @localhost www.yahoo.co.jp a | 確認 (再帰問い合わせはしない) | ||||
| www.yahoo.co.jpやya.gl.yahoo.co.jpはキャッシュされたまま | |||||
| ; <<>> DiG 9.7.3-P3 <<>> @localhost www.yahoo.co.jp a | よって、ドメインを削除したらそのドメインに関係するレコードが全て消えるわけではない | ||||
| ; (1 server found) | |||||
| ;; global options: +cmd | |||||
| ;; Got answer: | |||||
| ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33925 | |||||
| ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 0 | |||||
| ;; QUESTION SECTION: | |||||
| ;www.yahoo.co.jp. IN A | |||||
| ;; ANSWER SECTION: | |||||
| www.yahoo.co.jp. 877 IN CNAME www.ya.gl.yahoo.co.jp. | |||||
| www.ya.gl.yahoo.co.jp. 37 IN A 203.216.243.240 | |||||
| ;; AUTHORITY SECTION: | |||||
| gl.yahoo.co.jp. 877 IN NS gns02.net.djm.yahoo.co.jp. | |||||
| gl.yahoo.co.jp. 877 IN NS gns02.net.bbt.yahoo.co.jp. | |||||
| ;; Query time: 2 msec | |||||
| ;; SERVER: 127.0.0.1#53(127.0.0.1) | |||||
| ;; WHEN: Sat Jul 30 03:04:33 2011 | |||||
| ;; MSG SIZE rcvd: 129 | |||||
| # rndc flushname www.ya.gl.yahoo.co.jp | つづいて www.ya.gl.yahoo.co.jpのキャッシュを削除 | ||||
| # rndc dumpdb | キャッシュのダンプ | ||||
| # more named_dump.db | キャッシュの確認 | ||||
| ; glue | 左辺が、www.ya.gl.yahoo.co.jpのレコードだけ消えている | ||||
| gns02.net.bbt.yahoo.co.jp. 836 A 202.93.64.133 | |||||
| ; glue | |||||
| gns02.net.djm.yahoo.co.jp. 836 A 124.83.159.37 | |||||
| ; glue | |||||
| dnsg01.yahoo.co.jp. 86332 A 211.14.12.10 | |||||
| ; glue | |||||
| gl.yahoo.co.jp. 836 NS gns02.net.bbt.yahoo.co.jp. | |||||
| 836 NS gns02.net.djm.yahoo.co.jp. | |||||
| ; glue | |||||
| ns04.ops.ogk.yahoo.co.jp. 86332 A 124.83.218.185 | |||||
| ; authanswer | |||||
| www.yahoo.co.jp. 836 CNAME www.ya.gl.yahoo.co.jp. | |||||
| # dig @localhost www.yahoo.co.jp a +norec | 確認 (再帰問い合わせはしない) | ||||
| 「www.ya.gl.yahoo.co.jp. IN A 203.216.243.240」は消えたが、 | |||||
| ; <<>> DiG 9.7.3-P3 <<>> @localhost www.yahoo.co.jp a +norec | 「www.yahoo.co.jp. IN CNAME www.ya.gl.yahoo.co.jp.」は消えていない | ||||
| ; (1 server found) | よって、削除される対象は、レコードの左辺部分(ラベル名)が一致したものだけ | ||||
| ;; global options: +cmd | |||||
| ;; Got answer: | |||||
| ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63387 | |||||
| ;; flags: qr ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 0 | |||||
| ;; QUESTION SECTION: | |||||
| ;www.yahoo.co.jp. IN A | |||||
| ;; ANSWER SECTION: | |||||
| www.yahoo.co.jp. 768 IN CNAME www.ya.gl.yahoo.co.jp. | |||||
| ;; AUTHORITY SECTION: | |||||
| gl.yahoo.co.jp. 768 IN NS gns02.net.djm.yahoo.co.jp. | |||||
| gl.yahoo.co.jp. 768 IN NS gns02.net.bbt.yahoo.co.jp. | |||||
| ;; Query time: 2 msec | |||||
| ;; SERVER: 127.0.0.1#53(127.0.0.1) | |||||
| ;; WHEN: Sat Jul 30 03:17:09 2011 | |||||
| ;; MSG SIZE rcvd: 113 | |||||
| ■ 誤った(古い)データのキャッシュを削除する手順 | |||||
| その前に・・ | |||||
| 1.キャッシュの確認のためにキャッシュのダンプをするかどうか | |||||
| キャッシュのダンプには多少の負荷がかかるので、古いサーバは気をつけたほうが良いかもしれない | |||||
| 2.権威サーバ(コンテンツサーバ)が誤った情報を持っている場合は、キャッシュをクリアしても意味がない | |||||
| この場合、キャッシュサーバの管理者ではなく、権威サーバの管理者に正しいゾーン情報に書き換えてもらってからキャッシュをクリアすること | |||||
| あるISPではきちんと表示される(名前解決できている)のに、別のISPでは古いままというのは良くある事例で、 | |||||
| 原因のひとつとして、ゾーン転送がきちんとされていないために古い情報を保持したままのセカンダリDNSサーバに対して、運悪くそのセカンダリDNSへ | |||||
| 問い合わせたために起こる現象であり、ISP(のキャッシュサーバ)の責任ではない | |||||
| 3.クリアするデータはそれで正しいのか? | |||||
| たとえば、キャッシュDNSが、古い情報を保持している権威サーバから古い(誤った)Aレコードを取得した場合、キャッシュサーバ上のAレコードのキャッシュだけを | |||||
| クリアしても、正しいAレコードを取得できるとは限らない | |||||
| なぜなら、古い情報を保持している権威サーバを示すNSレコード(とそのAレコード)も保持しているため、再度その権威サーバに問い合わせを行う可能性があるから | |||||
| である | |||||
| この場合は、その権威サーバに対するNSレコードも一緒に削除しなければならない | |||||
| 削除手順 | |||||
| NSレコードは正しいが、Aレコードが古い(誤っている)場合 | |||||
| [ キャッシュされているデータ ] | [ 正しいデータ ] | ||||
| @ example.co.jp. NS IN dns1.example.co.jp. | example.co.jp. NS IN dns1.example.co.jp. | ||||
| A www.example.co.jp. A IN 192.168.0.100 | www.example.co.jp. A IN 192.168.24.250 | ||||
| B dns1.example.co.jp. A IN 192.168.0.1 | dns1.example.co.jp. A IN 192.168.0.1 | ||||
| # dig @localhost www.example.co.jp a +norec | キャッシュサーバ自身に問い合わせて、キャッシュされているか確認 | ||||
| (+norecをつけて再帰問い合わせはしないようにする) | |||||
| 場合によってはネガティブキャッシュされている可能性もある | |||||
| # rndc dumpdb | ダンプしても大丈夫ならば、キャッシュデータをダンプさせてきちんと確認を取る | ||||
| # more /var/named/chroot/var/named/data/named_dump | 確認 | ||||
| # rndc flushname www.example.co.jp | www.example.co.jpのキャッシュを削除 | ||||
| この場合、@とBのレコードは削除されない | |||||
| # dig @localhost www.example.co.jp a +norec | キャッシュがクリアされたことを確認 | ||||
| (+norecをつけて再帰問い合わせはしないようにする) | |||||
| # dig @localhost www.example.co.jp a | +norecをはずして、回答が帰ってくることを確認 | ||||
| このとき、example.co.jpを管理しているDNSの情報はキャッシュとして残っているので、 | |||||
| 直接dns1.example.co.jp(192.168.0.1)へ、www.example.co.jpのAレコードを問い合わせに行く | |||||
| セカンダリDNSが古い(誤った)Aレコードを保持している場合 (ゾーン転送が失敗している場合に起こる問題) | |||||
| dns1.example.co.jpをプライマリDNS、dns2.example.co.jpをセカンダリとする | |||||
| [ キャッシュされているデータ ] | [ 正しいデータ ] | ||||
| @ example.co.jp. NS IN dns1.example.co.jp. | example.co.jp. NS IN dns1.example.co.jp. | ||||
| A example.co.jp. NS IN dns2.example.co.jp. | example.co.jp. NS IN dns2.example.co.jp. | ||||
| B www.example.co.jp. A IN 192.168.0.100 | www.example.co.jp. A IN 192.168.24.250 | ||||
| C dns1.example.co.jp. A IN 192.168.0.1 | dns1.example.co.jp. A IN 192.168.0.1 | ||||
| # dig @localhost www.example.co.jp a +norec | キャッシュサーバ自身に問い合わせて、キャッシュされているか確認 | ||||
| (+norecをつけて再帰問い合わせはしないようにする) | |||||
| 場合によってはネガティブキャッシュされている可能性もある | |||||
| # rndc dumpdb | ダンプしても大丈夫ならば、キャッシュデータをダンプさせてきちんと確認を取る | ||||
| # more /var/named/chroot/var/named/data/named_dump | 確認 | ||||
| # rndc flushname www.example.co.jp | www.example.co.jpのキャッシュを削除 | ||||
| この場合、@とAとCのレコードは削除されない | |||||
| # dig @localhost www.example.co.jp a +norec | キャッシュがクリアされたことを確認 | ||||
| (+norecをつけて再帰問い合わせはしないようにする) | |||||
| # dig @localhost www.example.co.jp a | +norecをはずして、正しい回答が帰ってくることを確認 | ||||
| このとき、example.co.jpを管理しているDNSの情報はキャッシュとして残っているので、 | |||||
| dns1.example.co.jpかdns2.example.co.jpのどちらかへwww.example.co.jpのAレコードを問い合わせる | |||||
| 正しい情報を持っているdns1.example.co.jpから情報を取得できればよいが、またdns2.examp.le.co.jp | |||||
| に問い合わせて古い情報を取得する可能性もある | |||||
| また、正しい情報をキャッシュしたとしても、キャッシュの有効期限が切れればまた上記の繰り返し | |||||
| となるので、根本的な解決はセカンダリDNSへ正しい情報を転送することである | |||||
| NSレコードとAレコードが古い場合 | |||||
| [ キャッシュされているデータ ] | [ 正しいデータ ] | ||||
| @ example.co.jp. NS IN dns1.example.co.jp. | example.co.jp. NS IN ns001.example.com. | ||||
| A www.example.co.jp. A IN 192.168.0.100 | www.example.co.jp. A IN 192.168.54.60 | ||||
| B dns1.example.co.jp. A IN 192.168.0.1 | ns001.example.com. A IN 192.168.24.150 | ||||
| # dig @localhost example.co.jp ns +norec | キャッシュサーバ自身に問い合わせて、キャッシュされているか確認 | ||||
| # dig @localhost www.example.co.jp a +norec | (+norecをつけて再帰問い合わせはしないようにする) | ||||
| 場合によってはネガティブキャッシュされている可能性もある | |||||
| # rndc dumpdb | ダンプしても大丈夫ならば、キャッシュデータをダンプさせてきちんと確認を取る | ||||
| # more /var/named/chroot/var/named/data/named_dump | |||||
| # rndc flushname example.co.jp | 最初に@example.co.jpをクリア | ||||
| この場合、AとBのレコードはクリアされない | |||||
| Aだけクリアすると、またdns1.example.co.jpに問い合わせて古いAレコードをキャッシュしてしまう | |||||
| # rndc flushname www.example.co.jp | 次にAwww.example.co.jpをクリアする | ||||
| # dig @localhost example.co.jp ns +norec | キャッシュがクリアされたことを確認 | ||||
| # dig @localhost www.example.co.jp a +norec | (+norecをつけて再帰問い合わせはしないようにする) | ||||
| # dig @localhost www.example.co.jp a | +norecをはずして、回答が帰ってくることを確認 | ||||
| このとき、example.co.jpを管理するネームサーバ(ns001.example.com)を上位DNSから検索して調べ、 | |||||
| そのネームサーバへwww.example.co.jpを問い合わせる | |||||