mDNSResponder 인수를 대체하는 Discoveryd 대안?


13

이것은 이 질문 에 대한 직접적인 후속 조치 입니다. Yosemite 이전 에는 레이블에서 마침표가 있는지 여부에 관계없이 모든 로컬 리졸버 조회에서 검색 도메인을 추가 할 수 있도록 "-AlwaysAppendSearchDomains"인수를 mDNSResponder plist 파일에 추가했습니다. 예를 들어, 호스트 이름 foo.bar 또는 foo로 ssh를 시도하든, 기본 동작과 마찬가지로 후자의 경우뿐만 아니라 baz.com의 검색 도메인을 시도해야합니다.

이제 mDNSResponder가 사라지고 검색된 것으로 대체 된 것 같습니다. 검색 도메인을 항상 추가하는 비슷한 옵션을 찾을 수 없습니다. 제안? 기본이 아닌 로컬 리졸버를 사용하는 길을 가고 싶지는 않지만 옵션으로 간주합니다. 지금은 긴 FQDN을 입력하지만 실제로는 그렇지 않습니다.

고마워, 피트


이전에 비활성화 된 mDNSResponder를 활성화하려고 시도했지만 DP8 이후에는 전혀 없었습니다. (지금 -AlwaysAppendSearchDomains 옵션과 발견 된 상태로 처리하는 방법에 대해 요세미티 엔지니어에게 지원 티켓이 에스컬레이션되어 더 이상 게시 할 예정입니다. 그들이 며칠 만에 나에게 연락했을 때 발견 한 내용
djh

@ djh, 애플 엔지니어와 운이 있습니까?
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

답변:


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와 동일하게 작동합니다.


불행히도 El Capitan에서 일하지 않습니다.
Dmitry Verkhoturov 2016

4

터미널에서 sudo discoveryutil mdnsactivedirectory yes 를 실행하십시오 . https://discussions.apple.com/message/26927843#26927843 에 따르면 솔루션입니다.

비밀번호없이 터미널을 시작할 때마다 자동으로 실행되도록 할 수 있습니다.

  • 스도 비스도
    • 바닥에 선을 추가 %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

적어도 로컬이 아닌 호스트 이름은 wrt에서 작동하지 않는 것 같습니다. ".baz.com"이 검색 경로에 있어도 "ssh foo.bar"대신 "ssh foo.bar.baz.com"을 입력해야합니다.
Sigsegv

~/.bash_profile시스템 데몬 수준에서 수행 해야하는 구성 수정을 사용자 에게 추가해서는 안됩니다 ( 여기) discoveryd.
dan

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 버전에서는 작동하지 않는 것 같습니다. 검색 도메인이없는 두 번째 확인자가 왜 있는지 모르겠습니다.


1

로컬 네임 서버를 사용하는 해킹 된 솔루션은 다음과 같습니다.

https://github.com/joedj/yosemite_dnsfix


1
답변의 일부로 솔루션을 추가하는 것이 좋습니다. 그렇지 않으면 링크가 사라지면 답변이 쓸모 없게됩니다. 자신의 게시물을 편집하여 추가 할 수 있습니다.
Tetsujin
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.