nslookup работает с /etc/resolv.conf, ping и ssh не работают

12

В нашей локальной университетской сети у меня есть (получено по DHCP) следующая настройка в /etc/resolv.conf:

search a.domain.com b.domain.com domain.com
nameserver x.x.x.x
nameserver y.y.y.y

Настройки одинаковы и в Системных настройках. Возникает следующая проблема:

nslookup server

работает, и использует один из серверов имен, чтобы правильно запросить server.a.domain.com. Если я попытаюсь пинговать однако,

ping server

не удается с недоступным хостом.

ping server.a.domain.com

работает. Добавление сервера с IP-адресом, полученным с помощью nslookup в / etc / hosts, также приводит к тому, что ping также работает, но это «решение» обходит серверы имен и, таким образом, не является идеальным (и мне пришлось бы добавить около 20 других записей). Есть идеи, что вызывает это? Почему ping не использует результаты nslookup / searchdomains?

ssh server

также не удается, что является реальной проблемой / неудобством.

Я уже добавил AlwaysUseSearchDomains в mDNSResponder, но это исправление помогает только при использовании server.foo.

Я использую OS X Lion 10.7.3.

tholu
источник
Пинг-пакеты могут быть заблокированы сетевым оборудованием. То же самое с ssh-пакетами - они могут не захотеть, чтобы вы делали то, что вы делаете.
Турбьёрн Равн Андерсен
Смотрите решение ниже, это не было проблемой.
Толу
«Недоступный хост» означает проблему с сетевым подключением (или заблокирован ICMP), а не проблему разрешения DNS
Даниэль Серодио

Ответы:

2

Ну, вы читали комментарии вверху /etc/resolv.conf?

# Mac OS X Notice
#
# This file is not used by the host name and address resolution
# or the DNS query routing mechanisms used by most processes on
# this Mac OS X system.

Правильное решение - добавить поисковые домены через панель «Сеть» в Системных настройках, как описано здесь .

Старый Про
источник
Я сделал. Поисковые домены автоматически вводятся на панели «Сеть» в «Системных настройках» для конфигурации DHCP (и, следовательно, отображаются серым цветом и не могут быть изменены). Точно такие же значения / конфигурация находятся / находятся в /etc/resolv.conf.
Толу
Тогда я не знаю, что тебе сказать. Я получаю настройки Ethernet и WiFi через DHCP и могу изменить свои поисковые домены через панель «Системные настройки».
Old Pro
Домены поиска корректны в Системных настройках и /etc/resolv.conf - проблема в том, что ping и ssh не используют его. Если бы они использовали вывод nslookup, все работало бы нормально, но почему-то это не так. Они ищут / etc / hosts, хотя.
Толу
Я вручную добавил поисковые домены (хотя они были серыми) один за другим через Системные настройки, и теперь это работает. Благодаря!
Толу
4

У меня такая же проблема. Решением, которое я использовал, было создание каталога / etc / resolver. Внутри этого каталога создайте файл с именем для каждого домена, для которого вы хотите разрешить. Внутри каждого файла должно быть две строки

nameserver 10.0.100.2
domain  home.cainmanor.com

Файл выше будет называться / etc / resolver / home. Возможно, его нужно будет назвать home.cainmanor.com, но я не могу проверить это сейчас.

Удачи!

Грег Каин
источник
Я получил его, установив поисковые домены через Системные настройки один за другим, переопределив настройки DHCP, которые OS X явно не удалось правильно проанализировать. Я не мог попробовать ваше решение, но спасибо!
Толу
Этот подход хорошо работает, когда ваш корпоративный VPN-клиент делает неправильные действия в отношении временных системных настроек.
Питер
1

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

Ручное добавление поисковых доменов по одному исправило это, см. Решение выше.

tholu
источник
Когда я добавляю поисковый домен в свое WiFi-соединение (которое настраивается через DNS) в ОС 10.7.3 через Системные настройки -> Панель «Сеть», оно используется ping и ssh, как я и ожидал. Я не касаюсь /etc/resolv.conf или / etc / hosts вручную / напрямую, но изменения в Системных настройках автоматически отражаются в /etc/resolv.conf. OS X делает многое по-другому, чем другие системы Unix, и это одна из них.
Old Pro
1
Спасибо, все получилось, добавив поисковые домены по одному вручную, см. Мой комментарий к предложенному решению выше.
Толу
Добавление поисковых доменов не решило проблемы ... Кто-нибудь еще получил другое решение?
Как ты их добавил?
Толу
1

Я часто сталкиваюсь с этой проблемой, когда мой Mac Book Pro (OS X версия 10.10.1) спит. Проснись, и я не могу ssh, используя имя хоста машин в моей сети (и ping тоже не работает). nslookup работает нормально. Не вижу соответствующих сообщений в / var / log. Просто оставьте это на несколько минут, и эй Престо, это снова работает .....

Ян Эллис
источник
0

Я ответил на это где-то еще, потому что это было простое решение для меня, и я не мог найти ответ, который работал для меня в другом месте.

После перезапуска mDNSResolver десятки раз, как рекомендуется для других потоков:

sudo killall -HUP mDNSResponder

Я наконец попробовал что-то еще. Я отключил Wi-Fi и удалил все мои любимые сети. Затем я восстановил соединение Wi-Fi, и все заработало нормально:

  1. Меню Apple -> Системные настройки -> Wi-Fi (слева)
  2. «Отключите Wi-Fi», затем выберите «Дополнительно»
  3. Удалите соединение Wi-Fi, с которым у вас возникли проблемы (или все, если хотите). Для этого выберите сеть Wi-Fi, которую хотите удалить, и нажмите «-».
  4. Нажмите «Применить» и «ОК»
  5. Снова включите Wi-Fi.
  6. Выберите свою сеть Wi-Fi и войдите снова.

Это то, что, наконец, сработало для меня. Наверное, это должно было быть первое, что я попробовал, но я парень из Linux и сначала смотрю исправления консоли.

Джоэл Гриффитс
источник