Ваш рабочий VPN прекрасно разрешает имена компании, а домашний принтер остаётся недоступным по имени, и обычное решение, к которому прибегают люди, — направить весь Mac на домашний роутер. Это гораздо более крупное изменение, чем требует проблема. macOS может отправить один DNS-суффикс на свой собственный сервер через небольшой файл resolver, оставив каждый другой запрос ровно там, где он был.

Сначала граница разрешений: это для домена, которым вы управляете или на настройку которого у вас есть полномочия. Это не путь в обход принудительной политики DNS организации или её ограничений локальной сети.

Один файл с узкой задачей

Предположим, локальная зона — lab.example.org, а её сервер отвечает на 192.168.55.1. На Mac, где вам разрешено внести изменение, администратор создаёт обычный текстовый файл, имя которого совпадает с самим доменом, /etc/resolver/lab.example.org, содержащий одну строку nameserver 192.168.55.1. Каталога может не быть в новой системе, поэтому создайте его с правами администратора и перед записью проверьте, не занят ли там файл программным обеспечением управления.

Документация Apple по настройке resolver описывает соглашение: имя файла задаёт домен, когда внутри файла нет отдельного параметра домена. Это правило именования и есть вся хитрость, и именно поэтому файл должен называться по зоне, а не по серверу.

Как macOS выбирает между resolver

Активным может быть более одного клиента resolver, и побеждает наиболее конкретный совпадающий домен. Поэтому resolver для lab.example.org имеет другую область действия, чем resolver по умолчанию, а более конкретный поддомен со своим файлом снова может получить приоритет. Именно это позволяет рабочему VPN сохранять свой суффикс, пока ваша лабораторная зона уходит в другое место. Ничто в этой схеме не является глобальным, и это стоит запомнить.

Оставьте /etc/resolv.conf в покое. macOS сама записывает этот файл, и в нём никогда не было полной картины разрешения имён для конкретного домена. Настройка может приходить и из системной базы конфигурации, а не из файлов в этом каталоге, поэтому профиль управления может переопределить написанное вами.

Три вещи, которые файл не может дать

Сервер должен быть доступен. Если VPN блокирует локальную сеть или корпоративный маршрут перехватывает диапазон адресов сервера, даже совершенно правильный файл суффикса не сможет доставить запрос. Обратитесь с этим к владельцу сети, а не расширяйте локальные исключения самостоятельно.

Зона должна содержать правильный ответ, и лучше всего проверять это полным именем, например printer.lab.example.org. Короткое имя может запустить поведение доменов поиска и в итоге задать вопрос, отличный от того, который вы хотели задать.

Наконец, приложение должно иметь возможность использовать ответ. Разрешение имени принтера не даёт доступа к его адресу и не открывает службу за ним. Возвращённому адресу всё ещё нужен разрешённый маршрут и политика доступа, допускающая соединение. Файл resolver меняет место, где ищется имя; он не резервирует путь для результата.

Проверяйте выбор, а не заменяйте DNS

Проверьте, что macOS на самом деле использует сейчас, и запросите полное имя изнутри самого приложения или из инструмента, который разрешает так же, как приложения. Прямой запрос к 192.168.55.1 доказывает, что сервер отвечает; он не доказывает, что macOS выбрала этот сервер для обычных поисков. Это разные факты, и только второй описывает то, что испытает ваш браузер.

Если другой resolver уже претендует на тот же суффикс, выясните, кому он принадлежит, прежде чем добавлять подсказки приоритета. Документированный параметр search_order упорядочивает клиентов, разделяющих домен; это не глобальный переключатель предпочтения, заставляющий общий resolver выигрывать каждый запрос.

Убедитесь, что имена компании по-прежнему разрешаются при подключённом VPN, затем запишите файл и его назначение в свои локальные заметки. Когда схема сворачивается, удалите только этот файл и заново проверьте оба пространства имён, а не сбрасывайте все DNS-настройки сети.

Похожие статьи