как правильно записывать адреса с использованием dns
Почтовая кухня #1: DNS
Думаю, многим будет интересно наконец-то узнать, как работает почта. В нескольких статьях я попытаюсь максимально простым языком расписать все основные вопросы, связанные с работой электронной почты вообще и нужными настройками — в частности.
Для простоты и сокращения количества букв мы рассмотрим простейшую (и наиболее распространенную) ситуацию:
1 доменное имя (example.com).
1 почтовый домен (*@example.com).
1 почтовый сервер (mail.example.com).
1 IP-адрес (127.127.127.127).
Касательно почты, в DNS нас интересует четыре типа записей.
Второй — обязательный, без него почта в 99% случаев не будет ходить вообще. Без остальных, в принципе, можно обойтись, но шансы, что ваше письмо будет отвергнуто как спам возрастают в разы — тот же mail.ru отбрасывает практически всю почту, чьи IP-адреса не имеют PTR, либо PTR относится к dial-up провайдерам. И это правильно.
A-запись
A (Address) — запись, указывающая IP-адрес нужного нам доменного имени. Для корректной работы почты требуется A-запись сервера почты (mail.example.com). Выглядеть, в нашем случае, она будет так:
mail IN A 127.127.127.127
Где:
mail — домен.
IN A — тип записи.
127.127.127.127 — IP нашего почтового сервера.
MX-записи.
MX (Mail eXchange) — основная DNS-запись для электопочты. Она указывает, какими серверами обрабатывается почта для нашего домена.
У нас есть один почтовый домен — example.com. И один почтовый сервер — mail.example.com. Соответственно, запись будет выглядеть так:
example.com. IN MX 10 mail.example.com
Где:
example.com — домен, для которого обробатывается почта.
IN MX — тип записи.
10 — приоритет записи (Подробнее — ниже).
mail.example.com — A-имя почтового сервера.
MX-запись должна указывать именно на A-запись почтового сервера. Ставить MX указателем на IP или CNAME — не правильно.
Приоритет MX-записи нужен тогда, когда существует больше одного почтового сервера для одного домена (например у Google Mail их шесть). Он указывает, к какому серверу идет обращение в первую очередь, во вторую и так далее (если первый (второй, десятый) сервер недоступен или перегружен или по другим причинам не может принять письмо). Логика простая — приоритетнее тот, цифра которого меньше. Порядок цифр — не ограничен, хоть 10-20-30, хоть 1000-2000-3000.
Если у домена нет ни одной MX-записи, либо ни один из MX-серверов не доступен, сервер отправителя попытается доставить почту на IP, указанный в A-записи домена. Это назвается А-доставкой, но в принципе не кошерно и не используется многими серверами — нужно указывать MX, даже если он всего один.
PTR-запись.
PTR (PoinTeR) — так называемая «обратная запись». Она позволяет обратное разрешение (reverse resolving) IP-адреса в FQDN-хост.
Наш IP в виде reverse будет выглядеть так: 127.127.127.127.in-addr.arpa. В данном примере видно плохо, но адрес инвертируется в обратной зоне. Т.е. IP 192.168.0.1 будет выглядеть как 1.0.168.192.in-addr.arpa.
Для корректного распознования хоста, запись IP-адреса, с которого отправляется должна соответсовать hostname почтового сервера, отправляемому в HELO\EHLO.
PTR-запись в нашем случае, соответственно:
127.127.127.127.in-addr.arpa IN PTR mail.example.com.
Прописать эту запись может владелец блока IP-адресов (Читайте мою статью про распределение адресного пространства). Если вы таковым не являетесь и получили адреса от провайдера — обращайтесь к вашему провайдеру или дата-центру, чтобы запись установил он.
TXT-запись и SPF.
TXT (TeXT) — текстовая запись DNS. Нам она интересна только тем, что может (и в современном мире — должна) содержать в себе SPF.
SPF (Sender Policy Framework) — запись, позволяющая вам указать, какие сервера имеют право отправлять почту от имени вашего домена (представившись вашим сервером, либо с обратным адресом в вашем домене).
Если этой записи нет, и кто-то пытается отправить письмо (как правило, спам) с обратным адресом в вашем домене — оно будет отклонено большинством серверов. Или не будет, и вы получите большие проблемы со своим дата-центром или провайдером и репутацию спамера 🙂
SPF-запись выглядит так:
v=spf1 — версия протокола.
(+\-)a — разрешение или запрет отправки почты с IP, соответствующего A-записи домена.
(+\-)mx — разрешение или запрет отправки почты с IP, соответствующего MX-записи домена.
ip4:IP — явное указание IP, с которого можно принимать почту от имени домена.
(
\-all) — отвергать или принимать почту от IP, не перечисленных в списке и не указанных явно.
В нашем случае TXT SPF запись будет такой:
Таким образом, мы разрешили прием почты от имени домена с IP, соотвествующих A или MX записям и запретили прием от других адресов — никто не сможет наспамить прикинувшись нами или обмануть наших пользователей, отправив фишинговую ссылку от имени тех. поддержки.
Буду рад комментариям, готов ответить на вопросы.
В следующих статьях я напишу об SMTP, Greylisting-е и RBL.
А еще вы можете вступить в блог и тоже о чем-то рассказать.
Давайте уже разберемся в DNS
Внимательный читатель найдет на этой картинке IPv6
Люди часто озадачены доменами. Почему мой сайт не работает? Почему эта хрень поломана, ничего не помогает, я просто хочу, чтобы это работало! Обычно, вопрошающий или не знает про DNS, или не понимает фундаментальных идей. Для многих DNS — страшная и непонятная штука. Эта статья — попытка развеять такой страх. DNS — это просто, если понять несколько базовых концепций.
Что такое DNS
DNS расшифровывается как Domain Name System. Это глобальное распределенное хранилище ключей и значений. Сервера по всему миру могут предоставить вам значение по ключу, а если им неизвестен ключ, то они попросят помощи у другого сервера.
Базовые штуки
Давайте взглянем на маппинг между именем и адресом:
Здесь есть только одна интересная деталь: информация о самом запросе. Говорится, что мы запросили запись и получили ровно один ответ. Вот:
Оставшаяся часть ответа описывает сам ответ:
Как видите, при обычном DNS-запросе происходит куча всего. Каждый раз, когда вы открываете веб-страницу, браузер делает десятки таких запросов, в том числе для загрузки всех внешних ресурсов вроде картинок и скриптов. Каждый ресурс отвечает за минимум один новый DNS-запрос, и если бы DNS не был рассчитан на сильное кэширование, то трафика генерировалось бы очень много.
Корневые DNS-сервера обслуживаются различными компаниями и государствами по всему миру. Изначально их было мало, но интернет рос, и сейчас их 13 штук. Но у каждого из серверов есть десятки или сотни физических машин, которые прячутся за одним IP.
Другие типы
Что не так с CNAME
Запросы к другим серверам
Давайте представим, что конфигурация DNS испорчена. Вам кажется, что вы исправили проблему, но не хотите ждать когда обновится кэш чтобы удостовериться. С помощью dig можно сделать запрос к публичному DNS-серверу вместо своего дефолтного, вот так:
Типичные ситуации
Давайте рассмотрим типичные ситуации, знакомые многим веб-разработчикам.
Редирект домена на www
Этот IP принадлежит Namecheap’у, и там крутится маленький веб-сервер, который просто делает перенаправление на уровне HTTP на адрес http://www.iskettlemanstillopen.com :
CNAME для Heroku или Github
Wildcards
Заключение
Надеюсь, теперь у вас есть базовое понимание DNS. Все стандарты описаны в документах:
Есть еще пара интересных RFC, в том числе 4034, который описывает стандарт DNSSEC и 5321, который описывает взаимосвязь DNS и email. Их интересно почитать для общего развития.
Управлять DNS-записями
DNS-записи (или ресурсные записи DNS) содержат служебную информацию о доменном имени, например адрес почтового шлюза или IP-адрес сайта, который находится на домене.
Настройте для вашего домена DNS-записи, необходимые для работы Яндекс.Почты.
Тип записи | Имя поддомена | Приоритет | Значение |
---|---|---|---|
MX | @ | 10 | mx.yandex.net. |
TXT (SPF) | @ | не указывается | v=spf1 redirect=_spf.yandex.net |
TXT (DKIM) | mail._domainkey | не указывается | Скопируйте значение из настроек Почты |
CNAME | не указывается | domain.mail.yandex.net. |
Тип записи | Имя поддомена | Приоритет | Значение |
---|---|---|---|
MX | @ | 10 | mx.yandex.net. |
TXT (SPF) | @ | не указывается | v=spf1 redirect=_spf.yandex.net |
TXT (DKIM) | mail._domainkey | не указывается | Скопируйте значение из настроек Почты |
CNAME | не указывается | domain.mail.yandex.net. |
Управлять DNS-записями можно на сайте провайдера DNS-хостинга — компании, которая предоставляет DNS-серверы для вашего домена. Если вы делегировали домен на серверы Яндекса, управляйте DNS-записями домена с помощью DNS-редактора Коннекта.
DNS-редактор Коннекта
Чтобы настроить DNS-записи домена:
При создании DNS-записи в поле Хост следует указывать:
Часть имени поддомена, которая отделена от имени основного домена точкой, например:
для поддомена bar.yourdomain.tld в поле Хост укажите bar ;
Подробнее о настройке DNS-записей:
Управлять DNS-записями
DNS-записи (или ресурсные записи DNS) содержат служебную информацию о доменном имени, например адрес почтового шлюза или IP-адрес сайта, который находится на домене.
Настройте для вашего домена DNS-записи, необходимые для работы Яндекс.Почты.
Тип записи | Имя поддомена | Приоритет | Значение |
---|---|---|---|
MX | @ | 10 | mx.yandex.net. |
TXT (SPF) | @ | не указывается | v=spf1 redirect=_spf.yandex.net |
TXT (DKIM) | mail._domainkey | не указывается | Скопируйте значение из настроек Почты |
CNAME | не указывается | domain.mail.yandex.net. |
Тип записи | Имя поддомена | Приоритет | Значение |
---|---|---|---|
MX | @ | 10 | mx.yandex.net. |
TXT (SPF) | @ | не указывается | v=spf1 redirect=_spf.yandex.net |
TXT (DKIM) | mail._domainkey | не указывается | Скопируйте значение из настроек Почты |
CNAME | не указывается | domain.mail.yandex.net. |
Управлять DNS-записями можно на сайте провайдера DNS-хостинга — компании, которая предоставляет DNS-серверы для вашего домена. Если вы делегировали домен на серверы Яндекса, управляйте DNS-записями домена с помощью DNS-редактора Коннекта.
DNS-редактор Коннекта
Чтобы настроить DNS-записи домена:
На главной странице Яндекс.Коннекта на карточке сервиса Вебмастер нажмите значок .
Чтобы изменить DNS-запись, нажмите значок . Чтобы создайте новую запись, нажмите кнопку Добавить DNS-запись.
При создании DNS-записи в поле Хост следует указывать:
Часть имени поддомена, которая отделена от имени основного домена точкой, например:
DNS записи – NS, CNAME, TXT, A, AAAA
Вступление
Любой пользователь Интернет имеющий домены на серверах хостинг-провайдеров могут создавать и редактировать свои DNS записи. DNS записи имеют Имя, Тип записи и Адрес. Эти названия в различных панелях могут меняться. Например, может быть так:
Имя/Хост/Псевдоним; Тип записи; Значение/Ответ/Назначение/Адрес.
Во всех вариантах «Тип записи» остается неизменным.
Имя записи
Имя записи, оно же хост/псевдоним это доменное имя, к которому принадлежит или привязана создаваемая запись.
DNS записи- типы
Рассмотрим основные типы DNS записей, с которыми предстоит сталкиваться при обслуживании своих доменов.
Тип записи А
Тип записи: А (address record) или (адрес Internet 4). Этот тип записи привязывает конкретное доменное имя на определенный, точный IP-адрес.
Можно добавить больше одного IP адреса для одного домена (имени хоста). Это нужно если используется firewall. Для этого нужно добавить вторую запись типа A, аналогично первой. Указав только другой IP.
В теории можно для одного IP адреса, указать более одного домена. Но этого делать не нужно, так как система доменных имен (DNS) имеет запись специально предназначенную для создания псевдонимов. Называется эти запись типа CNAME.
Тип записи АААА
Тип записи: AAАA (address record для IPv6) или (адрес Internet 6). Тоже. Что и тип записи А, но IP адрес имеет внешний вид по протоколу IPv6. Например: IPv6-2a03:4900:0:3::99:155
Тип записи CNAME
Сначала создается одна запись типа А, для одного IP адреса. Имя домена в записи типа А, называется каноническим именем. Другие домены называют мнемонические. Мнемонические имена могут быть псевдонимами (произвольными именами) или субдоменами. Здесь пример CNAME записи:
popov.example.ru. CNAME example.ru. (не забываем точки в конце).
Сервер может иметь любое количество псевдонимов. Для каждого псевдонима нужно создать запись типа CNAME.
Еще пример записи CNAME:
hosting-1 IN A 8.8.8.8
www IN CNAME hosting-1
ftp IN CNAME hosting-1
Покупаем второй IP и на второй IP переводим поддомен ftp:
hosting-1 IN A 8.8.8.8
hosting-2 IN A 8.8.8.9
www IN CNAME hosting-a
Еще пример записи CNAME:
hosting-1 IN A 8.8.8.8
peter IN CNAME hosting-1
oleg IN CNAME hosting-1
Следующими записями CNAME привязываем псевдонимы:
example.com. IN CNAME example.ru.
www.example.com. IN CNAME example.ru.
test.example.com. IN CNAME example.ru.
тем самым мы связываем домены example.com, www.example.com, test.example.com с каноническим доменом example.ru. Точки в конце обязательны.
Еще пример переадресация (редирект) с помощью записи типа CNAME
www.example.ru. IN CNAME example.ru.
Обычно, сервера по умолчанию создают записи CNAME только для поддоменов основного домена и не делают их для других доменов (как на фото).
Тип записи MX
MX (почтовый сервер). Эта запись создает поддомен, который обслуживается внутренним (своим) почтовым сервером.
В качестве почтового сервиса можно использовать сторонние почтовые сервера. Для этого вам нужно привязать свой домен к стороннему почтовому серверу. На нем вам создадут, автоматом, MX запись. Если не создадут, то дадут адрес почтового сервера. После этого вам нужно создать записи типа CNAME и MX на своем сервере.
Записью CNAME переадресуйте почтовый домен mail.example.ru. на адрес почтового домена. А записью типа MX для самого домена example.ru. задайте адрес вашего стороненого почтового ящика. В качестве примера можно использовать почтовый сервер Яндекс.
Имя/хост/псевдоним – mail; Тип записи –CNAME; Значение/ответ/назначение/Адрес –domain.mail.yandex.ru. Приоритет 10.
На почтовом сервере Яндекс, можно без делегирования домена, подключить его только к почтовому серверу Яндекс, создав там, почтовый ящик.
Кроме Яндекс, с помощью MX записей можно привязать домен к почтовым серверам Google, Mail.ru и другим:
Тип записи NS
Тип записи NS (сервер имён). Это, пожалуй, самый важный тип записи. Он определяет домены (адреса) DNS серверов, обслуживающих этот домен.
Тип записи TXT
TXT (текстовая запись). Это информационная запись. Она не несет функциональной нагрузки.
Запись типа SOA (Start Of Authority)
Запись типа SOA показывает, где храниться на каком сервере лежит основная информация об этом домене. В записи типа SOA указывается полное, уточненное доменное имя зоны. Уточненное доменное имя должно оканчиваться точкой. В записи SOA может стоять символ @, вместо уточненного имени. В этом случае, доменное имя будет взято из файла конфигурации.
Далее в записи SOA указываются:
Приведу пример записи SOA, для Microsoft DNS
Как редактировать DNS записи в панели ISPManager
В панели ISPManager DNS записи редактируются на вкладке: Доменные имена→ «Клик» по домену.
Как редактировать DNS записи в панели DirectAdmin
В панели DirectAdmin DNS записи редактируются на вкладке: Управление DNS.
Что такое DNS-записи и какие типы бывают
Содержание
Система доменных имен (Domain Name System) или просто DNS — важнейшая часть механизма Всемирной сети. Именно она позволяет сопоставить доменные имена веб-ресурсов с IP-адресами физических устройств, на которых они расположены.
Эту распределенную базу данных можно назвать аналогом «телефонного справочника» всего Интернета. «Телефонные номера» в ней — это IP-адреса, а «ФИО абонентов» — соответствующие им доменные имена.
Информацию о доменах для подобной «телефонной книги» хранят специальные DNS-серверы в виде ресурсных записей (DNS-записей ресурса). Чтобы новый сайт получил официальную «прописку» в Сети, нужно сначала прикрепить (делегировать) его домен на DNS-серверы, а затем прописать на этих серверах ресурсные записи.
Об основных типах DNS-записей и их назначении расскажем в данной статье.
Из чего состоит DNS-запись
В состав DNS-записи входят следующие поля:
Некоторые виды DNS-записей могут иметь дополнительные поля, отличные от указанных.
Распространенные типы записей
Типы DNS-записей зависят от их функционального назначения.
A-запись (Address record)
Address record указывает на конкретный IP-адрес домена. Без нее сайт работать не будет. По этой записи система определяет к какому серверу обращаться за получением информации, когда пользователь вводит название сайта в адресную строку веб-браузера.
Пример
Hostname | Тип записи | Значение записи |
eternalhost.net. | A | 194.61.0.6 |
AAAA-запись (Address record to IPv6)
AAAA запись DNS — аналог предыдущей А-записи. В значении указывается внешний IP-адрес в формате IPv6.
Пример
Hostname | Тип записи | Значение записи |
eternalhost.net. | AAAA | 212:14:2127:1:211:4eef:fe10:b17 |
CNAME-запись (Canonical name)
CNAME («каноническое имя») указывает на расположение хостов на одном сервере. С ее помощью, можно прописать несколько доменов и поддоменов в рамках одного сервера.
Каноническое имя позволяет создать наследование, при котором поддомен получает свойства всех ресурсных записей одного домена (кроме NS), через псевдоним (алиас).
Перед ее заполнением, надо прописать A-запись. После, можно создавать псевдонимы (их количество не ограничено).
Пример
Hostname | Тип записи | Значение записи |
www.eternalhost.net | CNAME | eternalhost.net. |
Каждое значение обязательно должно заканчиваться точкой. Таким образом, можно привязывать разные хосты к одному серверу или выполнять редирект.
MX-запись (Mail exchanger)
MX-запись задает почтовый сервер, который будет принимать и отправлять почту для данного домена. Запись может указывать на внутренний или внешний почтовый сервер.
Пример
Hostname | Тип записи | Значение записи |
eternalhost.net. | MX | mx1.eternalhost.net. |
При обработке электронной почты на внутреннем сервере, должна присутствовать A-запись.
Пример
Host name | Тип записи | Значение записи |
eternalhost.net. | A | 194.61.0.6 |
Например, для привязки почты для домена на серверы Яндекс почты, надо указать следующие записи:
Hostname | Тип записи | Значение | Приоритет | TTL |
eternalhost.net. | MX | mx.yandex.net. | 10 | 21600 |
Привязка почты для домена к Google, Mail.ru и другим почтовым сервисам осуществляется по такому же принципу.
NS-запись (Name Server)
Этой записью определяется доменный адрес DNS-сервера, обслуживающий конкретный домен. Интернет-соединение с доменом не функционирует, если не указана NS-запись.
Пример
Hostname | Тип записи | Значение записи |
eternalhost.net. | NS | ns1.eternalhost.net. |
TXT-запись (Text String)
TXT-запись используется для хранения текстовых данных о домене. Их число может быть любым, если содержание одной записи не противоречит другим. TXT-запись ограничена размером до 255 байт.
Часто применяется для подтверждения прав на владение доменом. Например, когда осуществляется привязка к стороннему почтовому серверу, а также при подключении метрик и в других ситуациях.
Пример
Hostname | Тип записи | Значение записи |
eternalhost.net. | TXT | Любая текстовая запись без кавычек. |
SOA-запись (Start of Authority)
Указывает местоположение сервера с эталонной информацией о домене. Запись создается автоматически в самом начале и не может быть отредактирована или удалена.
Пример
Hostname | Тип записи | Serial number | TTL | Refresh | Retry | Expire | Minimum TTL |
Контактный адрес администратора файловой зоны | SOA | 1812191123 | 3600 | 7200 | 540 | 604800 | 86400 |
SRV-запись (Service record)
Указывает расположение серверов (имя хоста, № порта) для определенных сервисов. Выполняет ассоциативную роль. Например, через него можно задать:
IMAP-сервер для eternalhost.net находится по адресу mail.eternalhost.net. При этом, eternalhost.net — веб-сервер.
Пример
Host name | Service Name | Protocol | Priority | Weight |
eternalhost.net. | _xmpp-server | _tcp | 100 | 0 |
PTR-запись (Reverse DNS)
Обратная запись DNS служит для связывания отдельного IP-адреса с доменным именем. В основном, запись используется для отправки почты с домена. Если PTR-запись совпадет с именем почтового сервера из параметра HELO (EHLO), повысится шанс миновать спам-фильтры почтовых серверов на стороне получателя письма.
Пример
Host name | Тип записи | Address |
mail.eternalhost.net. | PTR | 194.61.06.in-addr.arpa |
DNAME-запись (Domain Name)
Запись используется для создания алиасов (псевдонимов) для всего дерева поддоменов, не затрагивая основной домен. В этом заключается отличие DNAME от CNAME-записи, которая создает псевдонимы только для одного домена, без его поддоменов.
CAA-запись (Certification Authority Authorization)
Запись определяет, SSL/TLS-сертификаты каких центров сертификации могут применяться для указанного домена или поддомена. Обычно она генерируется на хостинге автоматически. Если CAA-запись не указана, это будет интерпретировано центром, как разрешение на выпуск сертификата.
HINFO-запись (Host Information)
В ней указывается архитектура и операционная система заданного хоста. Запись надо применять с крайней осторожностью, а лучше совсем не пользоваться самостоятельно (обычно ее заполняет хостинг-провайдер). Злоумышленники часто используют HINFO-запись для подготовки хакерских атак.
WKS-запись (Well Known Service)
Ассоциация hostname с конкретным портом и протоколом. Может задавать хост для обработки почты клиентов. На практике, почтовые сервисы почти никогда не запрашивают этих данных.
RP-запись (Responsible person)
Здесь прописаны реквизиты ответственных за домен. Указать можно как одного человека, так группу людей. Поле «Text Record Name» хранит Ф.И.О. ответственного работника, а поле «E-mail Address» — его электронную почту.
LOC-запись (Location information)
В соответствующие поля этой записи указываются широта и долгота физического местонахождения DNS-сервера, к которому привязан домен. Используется редко. Может быть полезна только для крупных компаний.
Где редактируются DNS-записи
Правильное заполненный список DNS-записей необходим для корректной работы сайта. Записи можно легко отредактировать в панели управления веб-хостингом.
Например, в ISPmanager это делается в разделе «Доменные имена». Для редактирования нужно войти в панель управления, выделить курсором нужный домен и нажать кнопку «Записи» в верхнем меню.
В открывшемся списке можно добавить или отредактировать DNS-запись при помощи функциональных кнопок «Создать» и «Изменить».
Начни экономить на хостинге сейчас — 14 дней бесплатно!