ホストファイルにエントリがあると仮定すると、foobar
ファイルがすでに使用されているかどうか、またはリモートDNSが解決に応答しているかどうかをどうやって知ることができますかfoobar
?
基本ユーティリティはこの情報を返しますか?
dig +trace
私が知りたいことを言わなかった
dig +trace localhost
; <<>> DiG 9.10.3-P4-Ubuntu <<>> +trace localhost
;; global options: +cmd
;; Received 28 bytes from 127.0.0.53#53(127.0.0.53) in 0 ms
dig +trace google.com
; <<>> DiG 9.10.3-P4-Ubuntu <<>> +trace google.com
;; global options: +cmd
;; Received 28 bytes from 127.0.0.53#53(127.0.0.53) in 0 ms
hosts
照会がforサーバーlocalhost
と私のDNSサーバー(どちらにせよ)の両方で確認されていることを知りたいのですがgoogle.com
。内部通話を使用する場合getaddrinfo(3)
確認中にホストファイルまたはアップストリームDNSサーバーがヒットするかどうかlocalhost
。
答え1
dig
DNSトラブルシューティングツールです。照会するDNSサーバーを明示的に指定できます。サーバーがない場合は、マニュアルに記載されているようresolv.conf
に使用します。
特定のネームサーバを問い合わせる指示がない場合、digは/etc/resolv.confにリストされているすべてのサーバを試します。使用可能なサーバーアドレスがない場合、digはクエリをlocalhostに送信します。
DNS解決を必要とするシステムの他のアプリケーションの場合、これはホスト/etc/nsswitch.conf
名を解決するために照会する情報ソースを一覧表示することによって制御されます。例:
ホスト: ファイル myhostname mdns4_minimal [NOTFOUND=リターン] dns mdns4
たとえば、(トークン)をglibc
最初に見た後、DNSクエリ(トークン)だけが次のように実行されることを示しています。/etc/hosts
files
dns
resolv.conf
特定のアプリケーションについて100%確実にするには、通話中にそのアプリケーションを実行する必要がありますstrace
。