digコマンドでDNS(名前解決)の変更を確認

network-communicationホームページを切り替えるときにDNSが浸透したか確認することが多いのでコマンドを覚書。

環境: CentOS 7.5


参考サイト


Windowsのコマンドプロンプトからnslookupを使うことも多いけど、digの方がキャッシュ時間(TTL: Time To Live)を表示してくれるので、DNSの変更の確認には使いやすい。

(客先で保守するためにWindowsコマンドに慣れておくと便利)

digがインストールされていない場合はYUM経由でインストール。
(特定のサーバーしかインストールしないようにする)
# yum install bind-utils
# dnf install 
bind-utils

使ってみる。
# dig dksg.co.jp

;; QUESTION SECTION:
;dksg.co.jp.                    IN      A

;; ANSWER SECTION:
dksg.co.jp.             1199    IN      A       133.18.53.15

;; Query time: 82 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sun Jun 24 20:05:18 JST 2018
;; MSG SIZE  rcvd: 55

「dksg.co.jp」は1199秒キャッシュされる。
DNSサーバーは8.8.8.8

ローカルのルーター(192.168.10.1)をサーバーに設定して実行する。
# dig @192.168.10.1 dksg.co.jp

;; QUESTION SECTION:
;dksg.co.jp.                    IN      A

;; ANSWER SECTION:
dksg.co.jp.             1019    IN      A       133.18.53.15

;; Query time: 1298 msec
;; SERVER: 192.168.10.1#53(192.168.10.1)
;; WHEN: Sun Jun 24 20:08:20 JST 2018
;; MSG SIZE  rcvd: 55

anyだと一括表示してくれるので便利
# dig @8.8.8.8 webrec.co.jp any

ネームサーバーを確認する場合
# dig @8.8.8.8 webrec.co.jp ns
# dig @8.8.8.8 webrec.co.jp -t ns

その他オプションはヘルプで確認
# dig -h

watchコマンドを使って、30秒間隔で実行する。
# watch -d -n 30 dig @8.8.8.8 webrec.jp any


value domainのネームサーバーを使っているとGoogle Public DNS(8.8.8.8)に反映されるのは10分ぐらい。
これでcertbotのコマンドは通る。


Google ChromeのDNSキャッシュを削除/クリアする場合は下記アドレスにアクセスして「Clear host cache」する。


digコマンドを発行してくれる外部サービスも使う。


ネームサーバー(Name Server)を切り替える際はTTLが24時間以上に設定してあることが多いため、同じDNS設定でネームサーバーだけ事前に切り替えておいた方がいい。


Twitterでコメント頂いたので追記。

これ、わざわざネガティヴキャッシュを入れてそれが切れるのを待つだけなので、権威サーバ (ns[12]\.value-domain\.com) と委譲元 ([a-h]\.dns\.jp) の応答を確認したほうがよいです。

次回切り替えるときに試してみる。


2022/12/19追記: コマンド修正


< Related Posts >