web-dev-qa-db-ja.com

OSX Mountain LionのDNSルックアップはどのように構成されますか?

Resolv.confをcatすると、次のメッセージが表示されます。

#
# Mac OS X Notice
#
# This file is not used by the Host name and address resolution
# or the DNS query routing mechanisms used by most processes on
# this Mac OS X system.
#
# This file is automatically generated.
#

DNSエントリを追加しようとしています。 hostsファイルを編集してDNSキャッシュをフラッシュしましたが、Host servernameを使用すると名前が解決しません。 Hosthostsファイルを参照するように設定されていないのではないかと思いました。新しいエントリを解決するにはどうすればよいですか。OSXはresolv.confでない場合に何を使用していますか?

33
Ben Flynn

ホストツールは、単純に名前を解決(システム名リゾルバを使用して)を実行するのではなく、実際にクエリDNSサーバー(パケットをudp/53に送信し、場合によってはtcpに送信します)/53):ローカルのhostsファイルを認識も使用もしません。

オペレーティングシステムのリゾルバ(gethostbyname()などのlibc関数など)をテストする場合は、/etc/hostsに追加した名前に対してpingを実行すると、そのファイルに入力した内容が反映されます。

また、Mac OSXでのDNSルックアップは/etc/resolv.confを使用していないことがすでにわかっているため、照会されるDNSサーバーを構成する正しい方法は、ネットワーク設定guiまたはnetworksetupコマンドラインツールにあります。ソースが試行される順序を構成できるかどうかは正直わかりませんが、標準の動作は最初に/etc/hostsを試行し、その後にDNSサーバーを試行することです。

17
Luke404

DNSリゾルバーは、networksetupコマンドを使用してOS Xに追加できます。

Sudo networksetup -setdnsservers Wi-Fi 8.8.8.8 8.8.4.4

必要に応じてネットワーク接続の名前を挿入します。これらのリゾルバーは自動的に生成されるため、resolv.confに表示されますが、resolv.confを直接編集しても、これらのリゾルバーは使用されません。リゾルバはどこかにplistに格納されていると思います。検索して報告します。

追加用に編集:DNSサーバーを格納するXML plistファイルは/Library/Preferences/SystemConfiguration/preferences.plist

/ private/etc/hosts内のHostファイルは、特定の名前の解決を強制するために機能するはずです(/ etcは/ private/etcへのシンボリックリンクです)。構文を確認でき、正しいファイルを編集していますか?

26
phoebus