Snow Leopard 업그레이드 후 DNS 이름 조회 (SSH에서)가 작동하지 않음


14

나는 생각 스노우 레오파드 업데이트 시작이. 여전히 문제가있는 .ssh 디렉토리를 정리했습니다.

~ : uname -a
Darwin california-example-com.local 10.0.0 Darwin Kernel 버전 10.0.0 : Fri Jul 31 22:47:34 PDT 2009; 루트 : xnu-1456.1.25 ~ 1 / RELEASE_I386 i386

~ : ssh -V
OpenSSH_5.2p1, OpenSSL 0.9.8k 2009 년 3 월 25 일

~ : ls -l ~ / .ssh

~ : nslookup 네바다
서버 : 10.94.62.3
주소 : 10.94.62.3 # 53

이름 : nevada.example.com
주소 : 10.94.62.3

~ : ssh 네바다
ssh : 호스트 이름 nevada를 확인할 수 없습니다 : nodename 또는 servname 제공 또는 알 수 없음

(a) nevada.example.com 및 (b) 10.94.62.3으로 ssh 할 수 있습니까?
Sven

2
네바다를 핑할 수 있습니까? "ssh -v nevada"는 무엇을 보여줍니까?
markdrayton

이상한 질문; Split DNS를 사용하거나 네바다를 Ping 할 수 있습니까?
Chealion

후속 조치 주셔서 감사합니다 ... 답변 : ssh nevada.example.com = no ssh 10.94.62.3 = yes (알려진 호스트를 지우 었으므로 호스트 키를 확인해야 함) ping nevada = 이름 확인 문제 telnet nevada (tho 그것은 telnetd를 실행하지 않습니다) = 이름 확인 문제 분할 DNS = 의도적으로, 그것이 무엇인지 모릅니다 :-) OS X 네트워크 설정 창에서 10.94.62.3이 제공된 두 서버 앞에 나열된 DNS 서버로 나타납니다. 검색 도메인 목록에서 내 ISP 및 example.com에 의해 네트워크의 다른 시스템은 일반적으로 DNS를 사용하여 네바다 (및 기타)로 ssh 할 수 있습니다.
Peter Cardona

위의 의견에서 줄 바꿈이 없다는 점에 대해 죄송합니다 ...
Peter Cardona

답변:


16

나는 똑같은 문제에 부딪 쳤고 Apple의 토론에서 DNS 문제 가있는 Mac mini 에 대한 스레드가 매우 유용 하다는 것을 알았습니다 .

문제의 요점 : mDNSResponder는 때때로 쿼리하는 DNS 서버의 순서를 변경하는 것처럼 보이므로 ISP의 DNS 서버를 먼저 쿼리하면 적절한 기록을 얻지 못합니다 (또는 분할 DNS를 사용하는 경우 공개 IP).

이를위한 가장 좋은 해결책은 필요한 DNS 서버 만 DNS 설정에 나열되도록하는 것입니다. DHCP에서 ISP DNS 서버를 제거해야 할 수도 있습니다 (필요한 것처럼 모든 요청은 로컬 DNS 서버를 통해 전달됩니다).

유틸리티 가 정상적으로 작동 dig하고 nslookup성공 하는 이유 는 BIND를 사용 /etc/resolv.conf하고 나머지 운영 체제와는 직접적으로 다르기 때문입니다.

Snow Leopard에서 참조하기 위해 DNS 캐시는 이제 mDNSResponder에 의해 저장되며이를 지우려면를 사용하여 프로세스를 다시 시작해야합니다 sudo killall -HUP mDNSResponder. killall명령에 다른 플래그를 사용하여 자세한 정보 (로깅, 내부 상태 덤프 등)를 얻을 수 있습니다 .

"sudo killall -USR1 mDNSResponder" to enable operation logging.
"sudo killall -USR2 mDNSResponder" to enable packet logging.
"sudo killall -HUP mDNSResponder" to clear the DNS cache.
"sudo killall -INFO mDNSResponder" to dump mDNSRepsonder's internal state.

출처 : 스눕 독과 같은 스레드.


감사합니다. 인터넷 검색으로 인해이 문제가 해결되었습니다. "arp"가 잘못된 IP를보고했으며, dig는 올바른 "ip"를보고했습니다. 이것을 시도하기 전에 어떤 양의 DNS 플러싱으로도 고치지 않았습니다. dscacheutil -flushcache도 실행해야합니다. 또한 로컬 라우터가 이상하게 작동 할 수 있으며 ISP가 때때로 TTL 측면에서 공평하게 행동하지 않는다고 지적합니다.
Aitch

9

우리는 다음과 같은 문제가있었습니다.

host example.com     <<< WORKED
ping example.com     <<< FAILED

다음과 같이 해결되었습니다.

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist

Mac OS X의 응용 프로그램은 DNS에 "host / dig / nslookup"과 동일한 메커니즘을 사용하지 않습니다.

"host / dig / nslookup"을 사용하면 이것이 네트워크 문제가 아닌지 확인하는 데 유용했습니다. 위의 명령으로 해결 된 로컬 시스템의 문제였습니다.


와우 작동했습니다 !!! 나는 해결책을 찾기 위해 모든 곳을 찾고있다 !!!! 난 그냥 내 노트북을 포맷하고 복원하려고했다, 당신은 나에게 많은 시간을 절약했습니다! 감사! 죄송 합니다만 공감할 수 없었습니다 :-( 참고 : Util OnyX를 실행 한 후 DNS 작동이 중지되었습니다. 이유를 모르겠습니다. dig / nslookup을 사용할 수 있었지만 다른 것은 없었습니다.

2

같은 문제가 발생했습니다… 그리고 mDNSResponder를 다시 시작하는 동안 "작동"하는 것처럼 보이지만 매 시간마다 두 번씩 다시 시작합니다.

따라서 지금은 dnsmasq를 로컬로 실행하여 문제를 "해결했습니다" . 하기 위해서:

  • dnsmasq 빌드 (tgz 다운로드 및 make또는 brew install dnsmasq)
  • 이것을 dnsmasq.conf파일에 넣으십시오 .
resolv-file = resolv.conf
user = 아무도
그룹 = 아무도
interface = lo0
캐시 크기 = 1024
  • 이것을 resolv.conf파일과 같은 디렉토리 에있는 파일에 넣으십시오 dnsmasq.conf(nb : not /etc/resolv.conf ).
네임 서버 8.8.8.8
네임 서버 4.2.2.1
네임 서버 4.2.2.2
  • 실행 dnsmasq으로 sudo dnsmasq --no-daemon --log-queries -C dnsmasq.conf. 출력은 다음과 같아야합니다.
...
dnsmasq : resolv.conf 읽기
dnsmasq : 네임 서버 사용 4.2.2.1 # 53
dnsmasq : 네임 서버 사용 4.2.2.2 # 53
dnsmasq : 네임 서버 사용 8.8.8.8 # 53
dnsmasq : / etc / hosts 읽기-6 주소
  • 네트워크 환경 설정을 열고 127.0.0.1유일한 DNS 서버 인지 확인하십시오 (네트워크 환경 설정-> 고급-> DNS-> 127.0.0.1 추가)

상황이 다시 잘 작동하기 시작해야합니다.

작업이 완료되면 및 옵션 dnsmasq없이 실행할 수 있으므로 백그라운드에서 시작되므로 터미널 창을 열어 둘 필요가 없습니다.--no-daemon--log-queries


1

DNS 서버 목록 (네트워크 환경 설정 창)에 10.94.62.3이 있고 ISP에서 2가 있음을 알았습니다. 다른 위치를 제거하여이 위치에 대해 10.94.62.3을 통해 모든 이름 조회를 강제 실행했으며 이제 네트워크뿐만 아니라 외부에서도 이름을 확인할 수 있습니다.

왜 이것이 효과가 있었는지 모릅니다.


1

/apple/50457/nslookup-works-ping-and-ssh-dont-os-x-lion-10-7-3 과 같이 비슷한 문제가 있다고 생각합니다.

나는 문제가 searchdomains 구성에 있다고 생각합니다. ping / ssh를 사용하려고 gethostbyname2()하면 named가 더 이상 Lion에서 실행되지 않아 /etc/resolv.conf구성된 searchdomains가 무시되므로 실패합니다. /etc/hosts의 마지막 수단 gethostbyname2()이므로 ssh는에서 적절한 항목으로 다시 작동합니다 /etc/hosts. Apple imho가 수정해야합니다.


0

nevada-example-com.local을 사용해 보셨습니까?


그것을 시도하지 않았지만 동일한 해결 문제가 발생했습니다. NOTHING (ssh, telnet, ping, http)처럼 보이기 시작하면 nslookup이 기본값 인 서버를 통해 해결됩니다. 어떻게 그럴 수 있니? 아마도 OS X 레벨 설정과 기본 BSD 구현이 관심을 갖는 / etc / whatever 파일 사이에 충돌이 있습니까?
Peter Cardona

아니요, OS X은 BSD syubsystem이 아닌 init 레벨을 사용하지 않습니다.
Jeremy L

0
dscacheutil -flushcache

이 명령은 DNS 캐시를 새로 고칩니다.

10.94.62.3은 신뢰할 수있는 DNS 서버입니까? 그렇다면 왜 하나만 있습니까? 장애 조치를 위해 참조 할 DNS 서버가 2 대 이상 있어야합니다. 저것이 내려 가면, 당신은 앉아있는 오리입니다.


0

Snow Leopard에서는 DNS 순서 조회가 다르게 작동하는 것 같습니다. 도메인을 조회 할 수 없으면 네트워크 환경 설정에 잘못된 DNS 서버가 나열되어 있는지 확인하십시오. 표준 DHCP 설정을 사용하는 경우 DNS 서버가 나열되어 있지 않아야합니다. 업그레이드하기 전에 오래된 DNS 서버가 나열되었으며 아무런 영향을 미치지 않았습니다. 업그레이드 한 후에는 dns를 완전히 잃었습니다.

네트워크 환경 설정> 공항> 고급을 선택하십시오. DNS 탭을 선택하고 유효하지 않은 DNS 서버를 제거하십시오.


0

콘솔을 보셨습니까? (응용 프로그램-> 유틸리티-> 콘솔) mDNSResponder가 진단 및 사용 정보-> 시스템 진단 보고서에 표시 될 수 있습니다.

모듈을로드하는 다른 프로그램 (예 : Little Snitch 또는 Hands Off)으로 인해 충돌이 발생했을 수 있습니다.


-1

창 상자를 해결하는 nslookup과 동일한 문제가 있었지만 핑은 "알 수없는 호스트"입니다. Navdeep이 제안한 것을 시도하고 네트워크 환경 설정-> 고급-> DNS 탭에서 네임 서버를 지우려고했습니다. 그것은 그들을 빼게하지 않을 것이고, 그들은 회색으로 표시되었습니다. 나는 마침내 +를 쳤다. 그리고 그들은 사라졌다. DNS 서버가 표시되지 않으면 새 서버 추가를 취소하고 변경 사항을 적용했습니다. 핑은 그 후 일을 시작했다. 이상한 점은 내 로컬 라우터 / DHCP 서버가 목록에서 첫 번째였으며 Windows 상자 해결을 담당하는 서버라는 것입니다. 주문에 이상이 있어야합니다. 나열된 다른 이름 서버는 작업 NS이며 Windows 호스트를 확인할 수 없습니다. 감사합니다 Navdeep!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.