Пошук DNS-імені (був SSH) не працює після оновлення сніжних леопардів


14

Я думаю, що це почалося з оновлення Snow Leopard. Очистив каталог .ssh, все ще маючи проблему.

~: унаме -а
Darwin california-example-com.local 10.0.0 Darwin Kernel Версія 10.0.0: Пт 31 липня 22:47:34 PDT 2009; корінь: xnu-1456.1.25 ~ 1 / RELEASE_I386 i386

~: ssh -V
OpenSSH_5.2p1, OpenSSL 0.9.8k 25 березня 2009 року

~: лс -л ~ / .сш

~: nslookup nevada
Сервер: 10.94.62.3
Адреса: 10.94.62.3 # 53

Ім'я: nevada.example.com
Адреса: 10.94.62.3

~: ssh nevada
ssh: Не вдалося вирішити ім'я хоста nevada: ім'я вузла, не вказано серверне ім’я, або невідомо

Чи можете ви сш на (a) nevada.example.com та (b) 10.94.62.3?
Свен

2
Ви можете пінг-неваду? Що показує "ssh -v nevada"?
markdrayton

Дивне питання; ви використовуєте розділений DNS та / або може пінг-невада?
Chealion

Дякую за подальші дії ... відповіді: ssh nevada.example.com = no ssh 10.94.62.3 = так (і довелося підтвердити ключ хоста, оскільки я очистив відомих хостів) ping nevada = проблема вирішення імені telnet nevada (Тхо він не запускає telnetd) = проблема з вирішенням імені Спліт DNS = навмисно, не знаю, що це :-) На панелі мережевих налаштувань OS X я отримав 10.94.62.3 як DNS-сервер, перелічений перед двома наданими від мого провайдера і example.com у списку пошукових доменів. Інші системи в моїй мережі можуть нормально використовувати DNS для ssh до nevada (та інших).
Пітер Кардона

вибачте за відсутність розривів рядків у вищенаведеному коментарі ...
Пітер Кардона,

Відповіді:


16

Я зіткнувся з точно такою ж проблемою і виявив тему про Mac mini, що має проблеми з DNS в дискусіях Apple, дуже корисними.

Суть проблеми: mDNSResponder, здається, періодично змінює порядок DNS-серверів, які він запитує, тому, якщо він спочатку запитує DNS-сервери вашого провайдера, він не отримає належного запису (або якщо ви використовуєте розділений DNS, ви отримаєте ваш загальнодоступний IP).

Найкраще виправити це - забезпечити (як і раніше), щоб у ваших налаштуваннях DNS були вказані лише необхідні сервери DNS. Це може зажадати видалення DNS-серверів провайдера з вашого DHCP (як і я повинен був зробити - всі запити в будь-якому випадку передаються через локальний 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.

Джерело: Snoop Dogg на тій самій нитці.


Спасибі, googling привів мене сюди, це і виправило. "arp" повідомив про неправильний IP, dig повідомив про правильний "ip". Жодна кількість промивання ДНС не виправила його до того, як я спробував це. Я зауважу, що мені довелося виконати dscacheutil -flushcache. Я також зазначив, що локальні маршрутизатори можуть вести себе дивно, і провайдери також не грають справедливо в плані 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" було корисним для визначення цього питання не в мережі. Проблема з локальною системою була вирішена за допомогою вказаних вище команд.


вау, що спрацювало !!! Я всюди шукав рішення !!!! я ось-ось збирався відформатувати та відновити свій ноутбук, ти врятував мені тону часу! Спасибі! Вибачте, але я не зміг подати заявку :-( Примітка: Мій DNS перестав працювати після запуску Util OnyX, не знаю чому. Мені вдалося скористатися dig / nslookup, але нічого іншого.

2

У мене виникла така ж проблема ... І під час перезавантаження mDNSResponder, здається, "працює", перезавантажуючи її кілька разів кожну годину, висмоктується.

Отже, наразі я "вирішив" проблему, запустивши dnsmasq локально. Для цього:

  • Побудуйте dnsmasq (завантажте tgz та makeабо brew install dnsmasq)
  • Помістіть це у dnsmasq.confфайл:
resolutionv-file = resolutionv.conf
користувач = ніхто
група = ніхто
інтерфейс = 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: читання резолюції.conf
dnsmasq: використання сервера імен 4.2.2.1 № 53
dnsmasq: використання сервера імен 4.2.2.2 # 53
dnsmasq: використання сервера імен 8.8.8.8 # 53
dnsmasq: read / etc / hosts - 6 адрес
  • Відкрийте налаштування мережі та переконайтеся, що 127.0.0.1це єдиний сервер DNS (налаштування мережі -> розширений -> DNS -> додати 127.0.0.1)

Речі повинні знову почати працювати добре.

Після того, як все працює, ви можете запустити dnsmasqбез параметрів --no-daemonта --log-queriesпараметрів, так що він запуститься у фоновому режимі, і вам не потрібно тримати вікно терміналу відкритим.


1

Я помітив, що у списку серверів DNS (панель мережних префів) у мене 10.94.62.3, а за ним 2 з мого провайдера. Я видалив інші 2, змусивши всі пошукові імена через 10.94.62.3 для цього місця розташування, і тепер я можу вирішувати імена в моїй мережі, а також за її межами.

Не знаю, чому це спрацювало.


1

Я думаю, у нас є аналогічна проблема, як я описав тут: /apple/50457/nslookup-works-ping-and-ssh-dont-os-x-lion-10-7-3

Я вважаю, що проблема полягає в конфігурації searchdomains: ping / ssh намагається використовувати те, gethostbyname2()що не вдається, оскільки ім'я вже не працює (принаймні у Lion), а /etc/resolv.confз налаштованими searchdomains таким чином ігнорується. /etc/hostsє останньою інстанцією для, gethostbyname2()і тому ssh знову працює з належними записами в /etc/hosts. Має виправити Apple imho.


0

Ви спробували nevada-example-com.local?


Не намагався цього зробити, але отримав таке ж рішення. Почати здається, що НІЧЕ (ssh, telnet, ping, http) не вирішує через сервер, на який nslookup дефолтує. Як це могло бути? Може бути конфлікт між налаштуваннями рівня OS X та деяким файлом / etc / будь-яким файлом, про який піклується базова програма BSD?
Пітер Кардона

Ні, OS X не використовує рівні init - навіть не підсистему BSD.
Джеремі L

0
dscacheutil -flushcache

Ця команда оновлює кеш DNS.

10.94.62.3 - сервер DNS, якому ви довіряєте? Якщо так, то чому тільки один? У вас повинно бути принаймні 2 сервери DNS, на які можна звернутися з метою відмови. Якщо той спуститься, ти сидиш качка.


0

Пошукові замовлення DNS, схоже, працюють у Snow Leopard по-різному. Якщо ви не можете знайти домен, перевірте, чи є у вас недійсні сервери DNS, вказані у ваших мережних налаштуваннях. Якщо ви використовуєте стандартну настройку DHCP, у вас не повинно бути вказаних серверів DNS. До моїх привітань у мене був перелічений старий DNS-сервер, і він нічого не впливав. Після оновлення я повністю втратив dns.

Відкрийте налаштування мережі> Виберіть аеропорт> Додатково. Виберіть вкладку DNS і видаліть недійсні сервери DNS.


0

Ви подивилися на консоль? (Програми -> Утиліти -> Консоль) Ви можете виявити, що mDNSResponder відображається в розділі: Діагностична інформація та використання -> Системні діагностичні звіти

Якщо він виходить з ладу через іншу програму, яка завантажує модулі (наприклад, Little Snitch або Hands Off), ви можете їх побачити там.


-1

У мене була така ж проблема, коли nslookup вирішив вікно вікна, але ping дав мені "невідомого хоста". Я спробував те, що запропонував Navdeep, і пішов очистити сервери імен на вкладці «Мережні налаштування» -> «Додатково»> «DNS». Це не дозволило б мені відняти їх, вони були сірими. Я нарешті натиснув +, і вони зникли. Я скасував додавання нового та застосував зміни, коли жоден DNS-сервер не показував. Пінг почав працювати після цього. Дивна річ у тому, що мій локальний маршрутизатор / DHCP-сервер був першим у списку і відповідав за вирішення вікна Windows. Має бути щось дивне з замовленням. Інший сервер імен, перелічений, є робочим NS і не зміг би вирішити хост Windows. ДЯКУЄМО Navdeep!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.