web-dev-qa-db-ja.com

OSXでのマルチキャストホスト名ルックアップ

OSXコンピューターでのホスト名ルックアップに問題があります。 Appleの HK347 ドキュメントによると、v10.6については次のように述べています。

ローカルに加えてラベルが1つだけ含まれるホスト名(「My-Computer.local」など)は、デフォルトでマルチキャストDNS(Bonjour)を使用して解決されます。ローカルに加えて2つ以上のラベルを含むホスト名(「server.domain.local」など)は、デフォルトでDNSサーバーを使用して解決されます。

これは私のテストとしては真実ではありません。ローカルコンピューターでリモートポートへの接続を開こうとすると、次のようになります。

telnet example.domain.local 22

次に、AおよびAAAAルックアップの横にあるマルチキャストDNSを使用してIPアドレスをルックアップします。これにより、ルックアップごとに2秒のルックアップタイムアウトが発生します。たくさんあります!

IPv4のみを試してみると、マルチキャストクエリを使用せず、単純なAクエリだけを取得します。

telnet -4 example.domain.local 22

IPv6のみで試してみると:

telnet -6 example.domain.local 22

次に、マルチキャストDNSおよびAAAAで再度ルックアップし、2秒のタイムアウト遅延が再び発生します。

/etc/resolver/domain.local/etc/resolver/local.1へのリゾルバーエントリを作成しようとしましたが、どれも機能していませんでした。

「ローカルへの2つ以上のラベル追加」ドメインに対してこのマルチキャストルックアップを無効にする方法、または選択したサブドメイン(domain.local)に対して単に無効にする方法はありますか?

ありがとうございました!

アップデート#1

scutil --dnsコマンドを@mralexgrayに感謝します。これで、リストに自分のドメインが表示されますが、順序が遅れています。

DNS configuration

resolver #1
  domain : adverticum.lan
  nameserver[0] : 192.168.1.1
  order   : 200000

resolver #2
  domain : local
  options : mdns
  timeout : 2
  order   : 300000

resolver #3
  domain : 254.169.in-addr.arpa
  options : mdns
  timeout : 2
  order   : 300200

resolver #4
  domain : 8.e.f.ip6.arpa
  options : mdns
  timeout : 2
  order   : 300400

resolver #5
  domain : 9.e.f.ip6.arpa
  options : mdns
  timeout : 2
  order   : 300600

resolver #6
  domain : a.e.f.ip6.arpa
  options : mdns
  timeout : 2
  order   : 300800

resolver #7
  domain : b.e.f.ip6.arpa
  options : mdns
  timeout : 2
  order   : 301000

resolver #8
  domain : domain.local
  nameserver[0] : 192.168.1.1
  order   : 200001

resolver #8を位置#2に移動できればうまくいくかもしれません。

アップデート#2

192.168.1.1上のローカルDNSサーバーがdomain.local要求に応答し、mDNS(resolver #2)の前にあるため、おそらく機能しません。

アップデート#3

/System/Library/SystemConfiguration/IPMonitor.bundle/Contents/Info.plistファイルのmDNSタイムアウトを減らすことができます。これにより、ルックアップが少し高速化されますが、これは解決策ではありません。

7
KARASZI István

/etc/hostsファイルで名前を定義してみましたか?

10.0.1.1                ns1 ns1.local
10.0.1.200              www www.local
2001:470:20::9999       www ns1 www.example.net ns1.example.net 

ローカルサブネット上で動作している他のDNSサービスは何ですか?ローカルDNSを明示的に提供することで、多くの問題を解決できます。非常に簡単に DNSMasq を使用します。これは、心からお勧めします。

また、dscacheutil -flushcache↩または適切なoleSudo killall mDNSResponder↩で物事をフラッシュする必要がある場合もあります。極端な場合、私はお勧めしませんが、mDNSResponder(Bonjourなど)をまとめて無効にすることもできます↝

launchctl unload -w /System/Library/LaunchDaemons/com.Apple.mDNSResponderHelper.plist
launchctl unload -w /System/Library/LaunchDaemons/com.Apple.mDNSResponder.plist

10.5以降のシステムは、configdによって義務付けられた、かなり紛らわしい一連のディレクティブを介してDNS解決を提供します。これは、古い「システムキッカー」の相続人です。ステータスを取得するには↝scutil --dns↩これは、↯などのDNS解決のシステム順序を示します

DNS構成

リゾルバ#1ドメイン:example.net検索ドメイン[0]:example.netネームサーバー[0]:127.0.0.1順序:200000

リゾルバ#2ドメイン:ローカルオプション:mdnsタイムアウト:2オーダー:300000

リゾルバ#3ドメイン:254.169.in-addr.arpaオプション:mdnsタイムアウト:2オーダー:300200

リゾルバ#4ドメイン:8.e.f.ip6.arpaオプション:mdnsタイムアウト:2オーダー:300400

それでも問題が解決しない場合は、このリストが「理にかなっている」ことを確認してください。そこから進んでください...

1
mralexgray