mDNSResponderの引数を置き換える代替手段が発見されましたか?


13

これは、この質問の直接のフォローです。Yosemiteの前に、「-AlwaysAppendSearchDomains」引数をmDNSResponder plistファイルに追加して、検索するラベルにピリオドがあったかどうかに関係なく、すべてのローカルリゾルバー検索が検索ドメインを追加するようにしました。たとえば、ホスト名foo.barまたはfooにsshしようとしても、後者の場合だけでなく、デフォルトの動作であるbaz.comの検索ドメインを試す必要があります。

現在、mDNSResponderはなくなっており、discoverydに置き換わっているようです。常に検索ドメインを追加するための同様のオプションが見つかりません。提案?既定ではないローカルリゾルバを使用するというルートは避けたいのですが、オプションとして考えます。今のところ、長いFQDNを入力するだけですが、実際には入力しません。

ありがとう、ピート


以前は無効化されたmDNSResponderを有効にしようとしましたが、DP8以降、まったく存在しないようです:ここでの調査結果、彼らは数日で私に連絡。
DJH

@ djh、Appleエンジニアとの運はありますか?
SIGSEGV

これは、10.10.1アップデートの一部として修正されていますAllows you to append search domains for partially qualified domain names when performing DNS lookups (consult the discoveryd man page for more information)。以下の@Teknistenの回答を参照してください。
cOle2 14年

彼らは10.10.4にdiscoverydを削除しているので、これが表示されますがMacOSの新しいバージョンにはあまり関連性があるとmacrumors.com/2015/06/30/apple-releases-os-x-10-10-4
スコットWilleke

回答:


18

10.10.1以降、これを修正する最も簡単な方法は、plistファイルに追加する--AlwaysAppendSearchDomainsことProgramArgumentsです/System/Library/LaunchDaemons/com.apple.discoveryd.plist

次に、再起動com.apple.discoveryd.plistします。

sudo launchctl unload /System/Library/LaunchDaemons/com.apple.discoveryd.plist
sudo launchctl load /System/Library/LaunchDaemons/com.apple.discoveryd.plist

これはすべて、次の人が印刷したヘルプによると:

/usr/libexec/discoveryd --help

私が知る限り、それはmDNSResponderの場合と同じです。


残念ながらエルキャピタンで働いていません。
ドミトリーVerkhoturov

4

ターミナルでsudo discoveryutil mdnsactivedirectory yesを実行します。https://discussions.apple.com/message/26927843#26927843によると、それが解決策です。

これは、パスワードなしで端末を起動するたびに自動的に実行されるようにできます。

  • sudo visudo
    • 一番下に行を追加します %admin ALL=NOPASSWD: /usr/sbin/discoveryutil
    • 管理者グループが機能しない場合groupsは、ターミナルで実行し、適切なグループ(おそらく「スタッフ」または「全員」)を使用します。または、先頭のない個別のユーザー名を使用します%
  • visudo変更をテストするには
    • sudo -k
    • sudo suパスワード求められていることを確認します。次に、パスワードを入力せずにcontrol-c
    • sudo discoveryutil mdnsactivedirectoryパスワードを求められていないことを確認します
  • 〜/ .bash_profileに行を追加します sudo discoveryutil mdnsactivedirectory yes
  • ユーザーのログイン項目にターミナルを追加します
    • 10.10:システム設定->ユーザーとグループ、ユーザーの選択
    • [ログインアイテム]タブに移動し、/アプリケーション/ユーティリティ/ターミナルを追加します

これをどのように永続的にしますか?再起動後、このコマンドを再度実行する必要があります。
JoeriBe 14年

これは、少なくとも.local以外のホスト名では機能しないようです。検索パスに「.baz.com」が含まれていても、「ssh foo.bar」ではなく「ssh foo.bar.baz.com」と入力する必要があります。
SIGSEGV

~/.bash_profileここでは、システムデーモンのレベルで行う必要がある構成の変更をユーザーに追加しないでくださいdiscoveryd
ダン

1

残念ながら解決策はありませんが、少なくとも次のように 'discoveryutil'を使用してリゾルバーの設定を確認できることがわかりました。

mdbraber-mba:~ mdbraber$ sudo discoveryutil configresolver
Configuration Resolvers: Resolver domain [default], type Unicast, ifIndex 4, port 0, timeout 30, A yes, AAAA no, serviceID 0, scope None, order 0
    server 192.168.143.1
    search domain ourhouse
Configuration Resolvers: Resolver domain [default], type Unicast, ifIndex 4, port 0, timeout 30, A yes, AAAA no, serviceID 0, scope InterfaceID, order 0
    server 192.168.143.1

どうやら、最初のリゾルバは検索ドメインをリストしているようですが、OS X <10.10バージョンでは動作しないようです。検索ドメインがリストされていない2番目のリゾルバがある理由はわかりません。


1

ローカルネームサーバーを使用したハッキン​​グされたソリューションを次に示します。

https://github.com/joedj/yosemite_dnsfix


1
答えの一部としてソリューションを追加することをお勧めします。そうしないと、リンクが消えてしまうと、答えが役に立たなくなります。独自の投稿を編集して追加できます。
鉄人14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.