Почему системный DNS-запрос macOS с использованием Split DNS не соответствует nslookup/host (без внешних DNS-серверов)?

Вопрос или проблема

Эта проблема, похоже, новая для macOS Sequoia и split-dns. Я прочитал и проверил все обычные проблемы split-dns для macOS.

Внутри моей сети my-server.synology.me разрешается в частный IP-адрес моего сервера. Это обеспечивается маршрутизатором Ubiquiti с работающим dnsmasq. Снаружи моей сети my-server.synology.me предоставляется внешним DNS-сервером.

  • Запуск host my-server.synology.me на Mac (и на маршрутизаторе) возвращает внутренний адрес, и указан правильный DNS-сервер.
  • Проверка Системные настройки > Сеть > Ethernet > Подробности показывает внутренний DNS-сервер и только внутренний DNS-сервер с доменом поиска ‘lan’. Это правильно. В частности, я не включил никаких внешних DNS-серверов; все запросы должны проходить через мой сервер.
  • Сброс DNS-кеша с помощью обычной команды sudo killall -HUP mDNSResponder ничего не меняет.
  • Перезагрузка не исправляет проблему.
  • scutil --dns не показывает ничего странного (см. прикрепленное ниже)
  • Прокси или VPN не настроены.

Снова, это похоже на новую проблему после обновления macOS Sequoia. Кажется, что Mac получает адрес от внешнего DNS-сервера, а не от внутреннего, но я не могу понять, откуда/почему.

Есть ли мысли о том, что искать?

$ scutil --dns
Конфигурация DNS

резолвер #1
  домен поиска[0] : lan
  сервер имени[0] : 192.168.88.1
  if_index : 6 (en0)
  флаги    : Запрашивать A записи
  доступ    : 0x00020002 (Доступно, Доступный адрес напрямую)

резолвер #2
  домен   : local
  параметры  : mdns
  тайм-аут  : 5
  флаги    : Запрашивать A записи
  доступ    : 0x00000000 (Недоступно)
  порядок    : 300000

резолвер #3
  домен   : 254.169.in-addr.arpa
  параметры  : mdns
  тайм-аут  : 5
  флаги    : Запрашивать A записи
  доступ    : 0x00000000 (Недоступно)
  порядок    : 300200

резолвер #4
  домен   : 8.e.f.ip6.arpa
  параметры  : mdns
  тайм-аут  : 5
  флаги    : Запрашивать A записи
  доступ    : 0x00000000 (Недоступно)
  порядок    : 300400

резолвер #5
  домен   : 9.e.f.ip6.arpa
  параметры  : mdns
  тайм-аут  : 5
  флаги    : Запрашивать A записи
  доступ    : 0x00000000 (Недоступно)
  порядок    : 300600

резолвер #6
  домен   : a.e.f.ip6.arpa
  параметры  : mdns
  тайм-аут  : 5
  флаги    : Запрашивать A записи
  доступ    : 0x00000000 (Недоступно)
  порядок    : 300800

резолвер #7
  домен   : b.e.f.ip6.arpa
  параметры  : mdns
  тайм-аут  : 5
  флаги    : Запрашивать A записи
  доступ    : 0x00000000 (Недоступно)
  порядок    : 301000

Конфигурация DNS (для адресованных запросов)

резолвер #1
  домен поиска[0] : lan
  сервер имени[0] : 192.168.88.1
  if_index : 6 (en0)
  флаги    : Scoped, Запрашивать A записи
  доступ    : 0x00020002 (Доступно, Доступный адрес напрямую)

резолвер #2
  домен поиска[0] : lan
  сервер имени[0] : 192.168.88.1
  if_index : 14 (en1)
  флаги    : Scoped, Запрашивать A записи
  доступ    : 0x00020002 (Доступно, Доступный адрес напрямую)

Хлопает по лбу. На случай, если кто-то из вас допустит ту же ошибку:

Я недавно включил “Ограничить отслеживание IP-адресов” на интерфейсе Ethernet Mac, что приводит к перенаправлению DNS-запросов через серверы Apple. Отключение этой функции исправило все.

Ответ или решение

На ваш вопрос о том, почему при использовании системы DNS macOS результаты поиска не совпадают с результатами nslookup/host в контексте split DNS, я предлагаю следующее решение:

Судя по вашему описанию, вы уже проверили многие обычные проблемы с настройкой DNS. Вы правильно настроили свой роутер и убедились, что внутренний DNS-сервер возвращает частный IP-адрес вашего сервера. Несмотря на это, возникла проблема, когда ваш Mac, вероятно, использует внешние DNS-серверы вместо внутреннего, что неправильно для вашей конфигурации.

Изучив описание вашей проблемы, я заметил, что вы упомянули, что используете macOS Sequoia и, вероятно, включён параметр "Ограничить отслеживание IP-адресов" на интерфейсе Ethernet. Этот параметр может привести к тому, что все ваши DNS-запросы будут перенаправляться на серверы Apple, что объясняет, почему вы видите несоответствия в ответах от команд nslookup/host и запросов, выполняемых системой. Это происходит, несмотря на то, что в настройках Mac указан только внутренний DNS-сервер, т.к. система всё равно ищет возможность отправки данных через свои сервера.

Чтобы устранить эту проблему, выполните следующие шаги:

  1. Отключите "Ограничить отслеживание IP-адресов":

    • Откройте "Системные настройки" -> "Сеть".
    • Выберите ваш интерфейс Ethernet.
    • Перейдите в раздел "Дополнительно", затем отключите опцию "Ограничить отслеживание IP-адресов".
  2. Проверьте конфигурацию DNS:

    • Убедитесь, что в настройках сети отображается только ваш внутренний DNS-сервер и что никаких внешних DNS-серверов не добавлено.
  3. Очистите кэш DNS:

    • Хотя вы уже пробовали команду sudo killall -HUP mDNSResponder, может потребоваться также перезагрузить Mac, чтобы изменения вступили в силу.
  4. Проверьте результаты:

    • После выполнения вышеупомянутых шагов снова выполните команду host my-server.synology.me и nslookup my-server.synology.me, чтобы убедиться, что оба результата совпадают и указывают на ваш внутренний IP-адрес.

Таким образом, отключение функции ограничения IP-адресов должно решить проблему с несоответствием в результатах DNS-запросов. Если же проблема сохраняется, рассмотрите возможность проверить настройки драйвера вашего сетевого интерфейса или обратиться к документации Apple по вопросам поддержки сетевых настроек.

Оцените материал
Добавить комментарий

Капча загружается...