Запись cname службы автообнаружения не найдена в службе dns

Обновлено: 06.07.2024

Если вы делегировали домен на серверы Яндекса, CNAME-запись будет настроена автоматически.

Общая инструкция по настройке CNAME-записи

Чтобы настроить доступ к почте по адресу вида mail.yourdomain.tld :

Войдите в панель управления на сайте компании, которая предоставляет вам DNS-хостинг.

Если вы делегировали домен на серверы Яндекса, перейдите в DNS-редактор Коннекта.

Создайте CNAME-запись со следующими значениями полей (в разных панелях управления названия полей могут отличаться):

Имя поддомена (или Хост ) — mail

В некоторых панелях управления в качестве имени записи требуется указывать полное имя поддомена, например: mail.yourdomain.tld

Обратите внимание, что менять имя сервера (подставлять вместо domain имя своего домена) не нужно.

Точка в конце имени сервера обязательна, кроме тех случаев, когда ваша панель управления добавляет эту точку по умолчанию.

Подождите, пока изменения в DNS вступят в силу. Может потребоваться до 72 часов, чтобы DNS-серверы в интернете обменялись данными о новых DNS-записях.

Нельзя добавить CNAME-запись, если для данного хоста уже создана запись другого типа.

Например, если для поддомена уже настроена запись типа TXT, удалите ее и создайте CNAME-запись для этого хоста.

Подробные инструкции по настройке CNAME-записи у некоторых хостинг-провайдеров

Нажмите ссылку с именем нужного домена. Откроется страница Управление .

Выберите DNS-серверы и управление зоной .

Подождите, пока изменения в DNS вступят в силу. Может потребоваться до 72 часов, чтобы DNS-серверы в интернете обменялись данными о новых DNS-записях.

На панели справа выберите DNS-зоны .

Нажмите ссылку с именем нужного домена. Откроется страница Просмотр DNS-зоны .

Полe MX preference оставьте пустым.

Подождите, пока изменения в DNS вступят в силу. Может потребоваться до 72 часов, чтобы DNS-серверы в интернете обменялись данными о новых DNS-записях.

В разделе Управление хостингом нажмите ссылку DNS .

В выпадающем списке выберите нужный домен.

Подождите, пока изменения в DNS вступят в силу. Может потребоваться до 72 часов, чтобы DNS-серверы в интернете обменялись данными о новых DNS-записях.

Разберем процесс создания инфраструктуры для автоматической настройки почтовых клиентов. Для корректной работы Autodiscover нужен комплексный подход, так как у разных почтовых клиентов свои требования.

1. Microsoft Outlook

С DNS все просто — создаем А- (или CNAME-) и SRV-записи. Пример таких записей в bind:

autodiscover IN A 111.111.111.111

* где 111.111.111.111 — IP-адрес на наш веб-сервер, который будет возвращать документ XML.

Веб-сервер

В качестве примера, настройку выполним на веб-сервере NGINX, который работает на Linux. Если он не установлен, выполняем инсталляцию.

а) если сервер под CentOS / Red Hat:

yum install epel-release

yum install nginx

б) если сервер под Debian / Ubuntu:

apt-get install nginx

После разрешаем автозапуск и стартуем сервис:

systemctl enable nginx

systemctl start nginx

Затем создаем виртуальный домен:

error_page 405 =200 $uri;
>

Проверяем корректность настройки:

Если ошибок нет, перечитываем конфиг:

systemctl reload nginx

Создаем каталог, в котором будет наш XML:

mkdir -p /usr/share/nginx/html/autodiscover/autodiscover

Создадим сам XML:

* где из основных параметров на нужны:

  • Type — тип протокола, используя который мы будем подключаться к почтовой системе.
  • Server — сервер для подключения. Для каждого типа протокола может быть задан свой сервер или один и тот же.
  • Port — порт, на котором слушает сервис. Как правило, для
    • IMAP: 143, 993.
    • POP: 110, 995.
    • SMTP: 25, 465, 587.

    Все адреса

    Наш файл конфигурации рассчитан только на настройку одного адреса. Теперь нужно настроить его на обслуживание любого email. Для этого необходимо написать скрипт, например, на php и немного донастроить сервер.

    PHP и php-fpm

    Установим php и php-fpm, после разрешаем автозапуск php-fpm и стартуем его:

    а) если сервер под CentOS / Red Hat:

    yum install php php-fpm

    systemctl enable php-fpm

    systemctl start php-fpm

    б) если сервер под Debian / Ubuntu:

    apt-get install php php-fpm

    systemctl enable php7.2-fpm

    systemctl start php7.2-fpm

    * где 7.2 — версия установленной php (проверяется командой php -v).

    Настроим php-fpm

    а) если сервер под CentOS / Red Hat:

    systemctl restart php-fpm

    б) если сервер под Debian / Ubuntu:

    systemctl restart php7.2-fpm

    NGINX

    Внесем настройки в наш виртуальный домен:

    .
    error_page 405 =200 $uri;

    \.php$ set $root_path /usr/share/nginx/html/autodiscover;
    fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $root_path$fastcgi_script_name;
    include fastcgi_params;
    fastcgi_param DOCUMENT_ROOT $root_path;
    >
    .

    * мы добавили обработку скриптов php с помощью php-fpm.

    Перезапускаем наш сервер:

    systemctl reload nginx

    Готовим скрипт

    Создадим скрипт php:

    <?php
    //get raw POST data so we can extract the email address
    $data = file_get_contents("php://input");
    preg_match("/\<EMailAddress\>(.*?)\<\/EMailAddress\>/", $data, $matches);

    Переадресация с xml на php

    Теперь настроим, чтобы наш веб-сервер переводил запросы xml на наш скрипт php. Открываем настройку нашего виртуального домена:

    .
    location = /autodiscover/autodiscover.xml rewrite ^/autodiscover/autodiscover.xml$ /autodiscover/autodiscover.php;
    >
    .

    systemctl reload nginx

    Теперь можно открывать Outlook и проверять автонастройку для других почтовых ящиков.

    2. Mozilla Thunderbird

    Также, как с Outlook, необходимо настроить DNS и веб-сервер.

    создаем А-запись (или CNAME). Пример в bind:

    autoconfig IN A 111.111.111.111

    * где 111.111.111.111 — IP-адрес на наш веб-сервер, который будет возвращать документ XML.

    Веб-сервер

    Настраивая autodiscovery для Microsoft, мы уже настроили веб-сервер NGINX. Теперь нужно добавить виртуальный домен и создать соответствующий документ.

    Откроем уже созданный нами файл конфигурации:

    . и добавим в него:

    Создаем каталог для хранения XML:

    mkdir -p /usr/share/nginx/html/autodiscover/mail

    • hostname — имя сервера для подключения. Для каждого типа протокола может быть задан свой сервер или один и тот же.
    • port — порт, на котором слушает сервис. Как правило, для
      • IMAP: 143, 993.
      • POP: 110, 995.
      • SMTP: 25, 465, 587.
      • plain — без шифрования.
      • SSL — SSL или TLS шифрование на отдельном порту (465, 993, 995).
      • STARTTLS — TLS шифрование через STARTTLS на обычном порту.

      3. DNS SRV

      Это метод, призванный быть универсальным. Более того, он описан стандартом RFC.

      Суть заключается в создании SRV-записей в DNS. Данная запись создается по следующему синтаксису:

      • <имя службы> — имя сервиса (например, imap).
      • <протокол> — сетевой протокол (TCP, UDP, TLS).
      • <приоритет> — порядок, в котором идет учет строки.
      • <вес> — если приоритеты совпадают у служб, порядок определяется по их весу.
      • <порт> — порт, на котором слушает служба.
      • <хост> — имя сервера, на который будет вести запись.

      Пример записей для настройки почты:

      * в данном примере мы отдаем приоритет более защищенным средствам подключения (smtps, imaps, pop3s).

      В статье мы расскажем, как прописать DNS-записи A, АААА, CNAME, MX-запись, TXT и SRV для домена и для чего это нужно.

      Ресурсные записи «передают» серверам интернета информацию о домене. Чаще всего их настраивают, чтобы: связать IP-адрес сайта с доменом (запись А), привязать поддомен к сервису (запись CNAME), настроить почту (запись MX), активировать SSL-сертификат, подтвердить право собственности на домен, настроить безопасную почту (запись TXT) и т.д.

      Как добавить ресурсные записи для домена

      Перед добавлением ресурсных записей определитесь, какие DNS-серверы прописаны для вашего домена.

      Как узнать DNS-серверы, которые прописаны для домена


      2. Ваши серверы указаны в блоке «DNS-серверы»:


      Обратите внимание: если для домена прописаны сторонние DNS-серверы, добавление и управление DNS записями происходит на стороне провайдера, который предоставил вам DNS-серверы.


      2. На открывшейся странице нажмите стрелочку в блоке «Управление зоной DNS».

      3. Во всплывающей шторке кликните Добавить ещё одну запись:


      4. Выберите тип записи, которую вы хотите добавить:


      Как добавлять записи

      5. Затем нажмите на иконку Карандаш:


      6. Добавьте в DNS домена нужную ресурсную запись. Для этого следуйте соответствующей инструкции ниже.

      А-запись

      Запись A (address) — одна из ключевых ресурсных записей Интернета. Она нужна, чтобы связать домен с IP-адресом сервера. Пока не прописана А-запись, сайт не будет работать. Когда вы вводите название сайта в адресную строку браузера, по А-записи DNS определяет, с какого сервера нужно открывать ваш сайт.

      Как добавить А-запись

      Выполните шаги 1-6 инструкции выше.

      Затем в поле Субдомен укажите имя поддомена или значок @ (если хотите выбрать ваш основной домен);

      В поле Значение — IP-адрес сервера сайта, который будет открываться по имени домена. Узнать IP-адрес можно по инструкции: Как узнать и изменить IP-адрес сайта?

      Нажмите Сохранить:


      Готово, ресурсная запись успешно добавлена в зону домена.

      Изменения вступят в силу в течение часа.

      АААА-запись

      АААА (IPv6 address record) ― запись, которая используется так же, как и А-запись, но для адресов формата IPv6.

      Как добавить АAАА-запись

      Выполните шаги 1-6 инструкции выше. Затем в полях ввода укажите:

      Субдомен — имя поддомена или значок @ (если хотите выбрать ваш основной домен);

      Значение — необходимый IPv6-адрес.

      Нажмите Сохранить:


      Готово, обновление зоны домена прошло успешно.

      Изменения вступят в силу в течение часа.

      CNAME-запись

      Важно: для одного и того же поддомена нельзя одновременно добавить CNAME-запись и A-запись.

      Как добавить запись CNAME

      Выполните шаги 1-6 инструкции выше.

      Затем в поле Субдомен укажите поддомен, кроме @ (для вашего основного домена этот тип записи недоступен, вы можете воспользоваться A-записью);

      В поле Значение — Canonical name — домен, на который должен ссылаться поддомен из поля «Subdomain».

      Нажмите Сохранить:

      Готово, ресурсная запись добавлена в зону домена.

      Изменения вступят в силу в течение часа.

      MX-запись

      Как добавить MX-запись

      Выполните шаги 1-6 инструкции выше.

      Затем в полях ввода укажите:

      Субдомен — поддомен или @ (если хотите выбрать почту вида логин@ваш_домен);

      Значение — адрес сервера, который будет отвечать за работу почты на вашем домене;

      Приоритет — приоритет записи (чем меньше цифра, тем выше приоритет записи).

      Нажмите Сохранить:


      Готово, DNS записи домена обновлены.

      Изменения вступят в силу в течение часа.

      TXT-запись

      TXT (тext string) — запись, которая содержит любую текстовую информацию о домене. Часто применяется для проверок на право владения доменом при подключении дополнительных сервисов, а также как контейнер для записи SPF и ключа DKIM.

      Как добавить TXT-запись

      Выполните шаги 1-6 инструкции выше.

      Затем в полях ввода укажите:

      Субдомен — поддомен или @ (если хотите выбрать ваш основной домен);

      Значение — значение записи TXT. Как правило, значение ТХТ отправляется на e-mail (например, для активации SSL-сертификата) или предоставляется компанией, услугу которой вы настраиваете.

      Нажмите Сохранить:


      Как указывать записи

      Готово, ресурсная запись добавлена в зону домена.

      Изменения вступят в силу в течение часа.

      SRV-запись

      Записи SRV используются для поиска серверов, которые обеспечивают работу определенных служб на данном домене (например, Jabber). Некоторые интернет-протоколы, такие как SIP и XMPP, часто требуют поддержки SRV-записей.

      Как добавить SRV-запись

      Выполните шаги 1-6 инструкции выше.

      Затем в полях ввода укажите:

      Сервис — название сервиса;

      Приоритет — приоритет целевого хоста;

      Нагрузка — относительный вес для записей с одинаковым приоритетом (необязательное поле);

      Порт — порт TCP или UDP, на котором работает сервис;

      Значение — каноническое имя сервиса.

      Нажмите Сохранить:


      Готово, ресурсная запись добавлена в зону домена.

      Изменения вступят в силу в течение часа.

      Как проверить записи домена

      Проверить, корректно ли указаны записи, проще всего с помощью утилиты dig. Для этого введите домен, для которого добавляли ресурсные записи, выберите тип записи «ANY» и кликните Проверить. Так вы увидите все ресурсные записи вашего домена.

      image


      Внимательный читатель найдет на этой картинке IPv6

      Люди часто озадачены доменами. Почему мой сайт не работает? Почему эта хрень поломана, ничего не помогает, я просто хочу, чтобы это работало! Обычно, вопрошающий или не знает про DNS, или не понимает фундаментальных идей. Для многих DNS — страшная и непонятная штука. Эта статья — попытка развеять такой страх. DNS — это просто, если понять несколько базовых концепций.

      Что такое DNS

      DNS расшифровывается как Domain Name System. Это глобальное распределенное хранилище ключей и значений. Сервера по всему миру могут предоставить вам значение по ключу, а если им неизвестен ключ, то они попросят помощи у другого сервера.

      Базовые штуки

      Давайте взглянем на маппинг между именем и адресом:

      Команда dig это такой швейцарский армейский нож для DNS-запросов. Крутой, многофункциональный инструмент. Вот первая часть ответа:

      Здесь есть только одна интересная деталь: информация о самом запросе. Говорится, что мы запросили запись и получили ровно один ответ. Вот:

      dig по-умолчанию запрашивает A -записи. A это address (адрес), и это один из фундаментальных видов записей в DNS. A содержит один IPv4 -адрес. Есть эквивалент для IPv6 -адресов — AAAA . Давайте взглянем на ответ:

      Тут говорится, что у хоста web01.bugsplat.info. есть один адрес A : 192.241.250.244 . Число 300 это TTL , или time to live (время жизни). Столько секунд можно держать значение в кэше до повторной проверки. Слово IN означает Internet . Так сложилось исторически, это нужно для разделения типов сетей. Подробнее об этом можно почитать в документе IANA's DNS Parameters.

      Оставшаяся часть ответа описывает сам ответ:

      В частности, здесь говорится, как долго сервер откликался, какой у сервера IP-адрес ( 192.168.1.1 ), на какой порт стучался dig ( 53 , DNS-порт по-умолчанию), когда запрос был завершен и сколько байтов было в ответе.

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

      Но в этом примере не видно, что DNS-сервер 192.168.1.1 связался с кучей других серверов чтобы ответить на простой вопрос: «куда указывает адрес web01.bugsplat.info ?». Давайте запустим трейс чтобы узнать о всей возможной цепочке, которую пришлось бы пройти dig 'у, если бы информация не был закэширована:

      Информация выводится в иерархической последовательности. Помните как dig вставил точку . после хоста, web01.bugsplat.info ? Так вот, точка . это важная деталь, и она означает корень иерархии.

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

      Итак, в самом верху трейса находятся корневые сервера, каждый определен с помощью NS- записи. NS -запись связывает доменное имя (в данном случае, корневой домен) с DNS-сервером. Когда вы регистрируете доменное имя у регистратора типа Namecheap или Godaddy, они создают NS -записи для вас.

      В следующем блоке видно, как dig выбрал случайный корневой сервер, и запросил у него A -запись для web01.bugsplat.info . Видно только IP-адрес корневого сервера ( 192.5.5.241 ). Так какой именно корневой сервер это был? Давайте узнаем!

      Возвращаясь к нашему начальному запросу: корневой сервер F вернул другой набор NS -серверов. Он отвечает за домен верхнего уровня info . dig запрашивает у одного из этих серверов запись A для web01.bugsplat.info , и получает в ответ еще один набор NS -серверов, и потом запрашивает у одного из этих серверов запись A для web01.bugsplat.info. . И, наконец, получает ответ!

      Уф! Сгенерировалось бы много трафика, но почти все эти записи были надолго закэшированы каждым сервером в цепочке. Ваш компьютер тоже кэширует эти данные, как и ваш браузер. Чаще всего DNS-запросы никогда не доходят до корневых серверов, потому что их IP-адреса почти никогда не изменяются («Наверно все таки речь идет о большом TTL для записей в их базе. Если у DNS сервера IP адрес вообще ни разу не изменялся, то это не означает, что его база навечно закеширована» — прим. от rrrav). Домены верхнего уровня com , net , org , и т.д. тоже обычно сильно закэшированы.

      Другие типы

      Заметьте, что MX -запись указывает на имя, а не на IP-адрес.

      Еще один тип, который вам скорее всего знаком, это CNAME . Расшифровываетя как Canonical Name (каноническое имя). Он связывает одно имя с другим. Давайте посмотрим на ответ:

      Что не так с CNAME

      Записи CNAME очень полезны, но есть важный момент: если есть CNAME с каким-то именем, то нельзя создать другую запись с таким же именем. Ни MX , ни A , ни NS , ничего.

      Запросы к другим серверам

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

      Символ @ с IP-адресом или хостом заставляет dig прозводить запрос к указанному серверу через порт по-умолчанию. Можно использовать публичный DNS-сервер Гугла или почти-публичный-сервер Level 3 по адресу 4.2.2.2 .

      Типичные ситуации

      Давайте рассмотрим типичные ситуации, знакомые многим веб-разработчикам.

      Редирект домена на www


      CNAME для Heroku или Github

      С Github похожая история, но там нужно создать специальный файл в корне репозитория, и назвать его CNAME . См. документацию.

      Wildcards

      Большинство DNS-серверов поддерживают шаблоны (wildcards). Например, есть wildcard CNAME для *.web01.bugsplat.info указывает на web01.bugsplat.info . Тогда любой хост на web01 будет указывать на web01.bugsplat.info и не нужно создавать новые записи:

      Заключение

      Надеюсь, теперь у вас есть базовое понимание DNS. Все стандарты описаны в документах:

      Есть еще пара интересных RFC, в том числе 4034, который описывает стандарт DNSSEC и 5321, который описывает взаимосвязь DNS и email. Их интересно почитать для общего развития.

      Читайте также: