Вопрос или проблема
Эта проблема, похоже, новая для 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-сервер, т.к. система всё равно ищет возможность отправки данных через свои сервера.
Чтобы устранить эту проблему, выполните следующие шаги:
-
Отключите "Ограничить отслеживание IP-адресов":
- Откройте "Системные настройки" -> "Сеть".
- Выберите ваш интерфейс Ethernet.
- Перейдите в раздел "Дополнительно", затем отключите опцию "Ограничить отслеживание IP-адресов".
-
Проверьте конфигурацию DNS:
- Убедитесь, что в настройках сети отображается только ваш внутренний DNS-сервер и что никаких внешних DNS-серверов не добавлено.
-
Очистите кэш DNS:
- Хотя вы уже пробовали команду
sudo killall -HUP mDNSResponder
, может потребоваться также перезагрузить Mac, чтобы изменения вступили в силу.
- Хотя вы уже пробовали команду
-
Проверьте результаты:
- После выполнения вышеупомянутых шагов снова выполните команду
host my-server.synology.me
иnslookup my-server.synology.me
, чтобы убедиться, что оба результата совпадают и указывают на ваш внутренний IP-адрес.
- После выполнения вышеупомянутых шагов снова выполните команду
Таким образом, отключение функции ограничения IP-адресов должно решить проблему с несоответствием в результатах DNS-запросов. Если же проблема сохраняется, рассмотрите возможность проверить настройки драйвера вашего сетевого интерфейса или обратиться к документации Apple по вопросам поддержки сетевых настроек.