Что нужно знать веб-мастеру о DNS и доменах

Учетная запись адреса (A) Учетная запись A отображает имя компьютера в виде числового адреса IP. Другими словами, эта запись указывает имя хоста и адрес IP определенного компьютера, чтобы имя хоста соответствовало определенному адресу IP. Это запись, которую именной сервер A должен отправить другому именному серверу и получить ответ на запрос. Ниже представлен пример того, как должна выглядеть запись A:
peter.gudzondns.com. IN A 36.36.1.6 Первый столбец содержит имя хоста компьютера. Список второго столбца, это класс записи. Для основной работы DNS Вам нужно только наличие IN обозначения, установленное для интернета. Следующий столбец обозначает тип записи, и последний столбец является собственно адресом IP. Возможно добавление более чем одного адреса IP для данного имени хоста. Это бывает необходимо, когда используется firewall и имеется две карты ethernet на одном компьютере. Все что Вы должны сделать - добавить вторую запись A, заполнив те же столбцы, за исключением адреса IP. Также возможно отображать более чем одно имя хоста для одного адреса IP. Но этого делать не рекомендуется, поскольку DNS имеет специальную запись позволяющую компьютерам иметь псевдонимы, которая называется записью CNAME.

  • Учетная запись канонического имени (CNAME) Учетная запись CNAME позволяет компьютеру иметь более чем одно имя хоста. Чтобы иметь возможность добавить псевдонимы, должна быть создана учетная запись A. Имя хоста компьютера, установленное для записи A называется каноническим или официальным именем компьютера. Другие записи должны указывать на каноническое имя. Вот пример записи CNAME: www.gudzondns.com. IN CNAME peter.gudzondns.com Вы можете увидеть сходство с предыдущей записью. Записи всегда читаются слева направо, слева располагается запрос, а справа ответ на запрос. Компьютер может иметь неограниченное число псевдонимов CNAME. Новая запись должна вводиться для каждого псевдонима.
  • Учетная запись почтового сервера (MX) Учетная запись MX - значительно более важная, чем может показаться. Она позволяет всю почту для домена, направлять одному хосту. Это чрезвычайно полезно для уменьшения нагрузки на внутренние хосты, на которые не должна направляться поступающая почта, а также для того, чтобы собирать всю почту, отправленную на любой адрес Вашего домена даже если этот конкретный адрес не имеет никакой связи с компьютером. Например, у Вас есть почтовый сервер, работающий на вымышленном компьютере peter.gudzondns.com. а Вы хотите, чтобы Ваш почтовый адрес был "[email protected]" а не "[email protected]". Это делается с помощью записи, показанной ниже: gudzondns.com. IN MX 10 peter.gudzondns.com. Самый левый столбец обозначает адрес, который Вы хотите использовать как почтовый адрес. Следующие два столбца были объяснены подробно в предыдущих записях. Следующий столбец, число "10", отличается от нормального формата записи DNS. Это число приоритета. Часто в больших системах имеются серверы резервной почты, возможно, более чем один. Они предназначены для получения почты, если не работает первичный сервер почты. Вы можете сделать это с помощью записей MX. Более низкое число в записи MX означает более высокий приоритет, и почта будет отправлена на сервер с самым низким числом (самый низкий из возможных - 0). Если что-то случается с этим сервером, то компьютер, доставляющий почту, будет пытаться ее направить на следующий сервер, указанный в таблицах DNS, в порядке приоритета. Вы можете иметь столько записей MX, сколько хотите. Использование записи MX полезно, даже если почта отправляется непосредственно на компьютер с записью A. Некоторые sendmail программы ищут только записи MX. Также возможно включать шаблоны записей MX. Если у вас есть домен, где каждый из пользователей имеет свой собственный компьютер, выполняющий роль почтового клиента, то почта может быть отправлена непосредственно на каждый компьютер. Вы можете добавить запись MX подобную этой: *.gudzondns.com. IN MX 10 peter.gudzondns.com. Она устанавливает, что любая почта, отправленная на любую индивидуальную рабочую станцию в домене gudzondns.com должна проходить через сервер peter.gudzondns.com. Следует проявить осмотрительность при использовании шаблонов, так как специфические записи имеют приоритет над тем, что содержится в шаблонах.
  • Учетные записи указателя (PTR) Хотя есть другие возможности устанавливать записи PTR, мы рассмотрим только наиболее часто используемый метод, называемый "in-addr.arpa".
    In-addr.arpa PTR записи являются точной противоположностью записям A. Они позволяют распознавать Ваш компьютер по его адресу IP. Это называется "обратным поиском". Он становится все более используемым, когда компьютер производит обратный поиск на вашем компьютере перед получением доступа к услугам (например, страницам в WWW). Обратный поиск является хорошей мерой безопасности для Вашего компьютера, так как проверяет, что ваш компьютер - именно тот, что должен быть. Запись In-addr.arpa выглядит так: 6.1.36.36.in-addr.arpa. IN PTR peter.gudzondns.com. Как Вы можете увидеть из примера для записи A, в начале этой записи имеется адрес IP обратный для имени хоста, расположенного в последней колонке.
  • Учетная запись именного сервера (NS) Запись NS - необходима для функционирования данных DNS. Она просто указывает на полномочия именных серверов для данного домена. Должно быть по крайней мере две записи NS для каждой записи DNS. NS записи выглядят так: gudzondns.com. IN NS draven.gudzondns.com. Там также должна быть запись A в Вашем DNS для каждого компьютера как запись A именного сервера Вашего домена.
  • Учетная запись начала полномочий (SOA) Запись SOA является наиболее решающей из записей DNS. Она передает больше информации, чем все другие записи вместе взятые. Эта запись названа началом полномочий, поскольку она обозначает запись DNS как официальный источник информации для своего домена. Вот пример записи SOA: gudzondns.com. IN SOA subdomain.gudzondns.com. hostmaster.gudzondns.com. (1998111201 ; Serial 10800 ; Refresh 3600 ; Retry 3600000 ; Expire 86400); Minimum
    Первый столбец содержит домен, для которого эта запись начинает полномочия. Следующие два данные должны выглядеть знакомыми. Запись "draven.gudzondns.com" является первичным именным сервером для домена. Последняя запись в этой колонке действительный адрес email, если Вы заменили "@" для первого ".". Он должен всегда быть действующим контактным адресом для записи SOA. Следующие данные – немного отличаются от тех, что мы уже использовали. Serial является записью того, как часто эта запись DNS может быть изменена. Каждый раз, когда производится изменение, Serial должен быть увеличен. Другие именные серверы, которые извлекают информацию для зоны из первичного, извлекают только зону если Serial в записи первичного именного сервера выше чем Serial в этой записи. Таким образом, именные серверы для домена могут изменяться сами. Рекомендуется использовать ваш Serial в формате YYYYMMDDNN, где NN – день, когда DNS был изменен. Все числовые значения времени в записи производится в секундах. Число"Refresh" показывает, как часто вторичный именной сервер должны проверять первичный для изменения в Serial. "Retry" - сколько вторичный сервер должен ждать, прежде чем попытаться пересоединяться с первичным сервером, если связь была потеряна. "Expire " сколько вторичный сервер должен использовать свой текущую запись, когда он не в состоянии выполнить восстановление, и " Minimum " означает, сколько Ваши именные серверы имени должны кешировать или сохранять эту запись.
  • На странице DNS-зоны представлен перечень зон, которые вы можете редактировать (изменения, внесенные вами, обновятся на нашем сервере в течение 30-40 минут, однако то, как скоро это будет заметно пользователям — напрямую зависит от настроек сервера интернет-провайдера, через которого производится подключение к сети). При нажатии на имя зоны (пусть в нашем примере это будет domain.tld ) открывается страница DNS-редактора. Рассмотрим по отдельности каждое из представленных на этой странице полей.

      Поле «имя» предполагает несколько вариантов заполнения:

      • @ — символ «@» означает, что действие записи будет распространяться на ту зону, на странице редактирования которой вы находитесь. В нашем случае — это domain.tld.
      • abc — набор букв и цифр («abc» было выбрано в качестве примера — вы можете указать свое имя) означает, что действие записи будет распространяться на зону более низкого уровня, чем та, на странице редактирования которой вы находитесь. В нашем примере — действие записи будет распространяться на зону abc.domain.tld.
      • * — символ «*» означает, что действие записи будет распространяться на все варианты зон ниже той, на странице редактирования которой вы находитесь. В нашем случае — это 123.domain.tld, abc.domain.tld, qwe.rty.domain.tld и т.д.
    • В поле «тип» вам предлагается несколько вариантов. Рассмотрим по-отдельности каждый из них:

      • A — используется для указания соответствия имени хоста IP-адресу.
      • MX — используется для указания почтового сервера для домена.
      • CNAME — используется для перенаправления имени хоста на другое имя.
      • SRV — используется для указания сервера, предоставляющего услуги определенной службы. В грубом приближении это аналог MX-записи, которая указывает, куда должна доставляться электронная почта, которая адресована определенному домену. Штатно поддерживается такими протоколами как XMPP(Jabber), SIP, LDAP. За счет использования этого вида записи можно разместить Jabber-сервер на отдельной машине, а не на той же, куда указывает A-запись DNS.
      • TXT — используется для указания дополнительной текстовой информации, которую хочет сообщить владелец домена.
    • Поле «MX preference» доступно для заполнения только в случае создания/редактирования записей типа MX. Указанное в этом поле числовое значение определяет приоритет использования почтового сервера. Поскольку для одного домена может быть указано несколько почтовых серверов — то, в какой последовательности на эти серверы будут осуществляться попытки доставить письмо, определяется именно приоритетом соответствующей MX-записи. Чем меньше число в поле «MX preference» — тем выше приоритет самого сервера.
    • Поле «значение (IP/host.)» заполняется в зависимости от выбранной записи:

      • Для A-записи указывается IP-адрес.
      • Для MX-записи указывается имя почтового сервера. В случае, если вы прописываете имя полностью, в конце нужно обязательно поставить точку!
      • Для CNAME-записи указывается имя хоста, на которое устанавливаем перенаправление. В конце имени должна быть обязательно точка!
      • Для SRV-записи указывается строка вида «приоритет вес порт значение», где приоритет, вес и порт должны состоять только из цифр, а значение — полное имя хоста с точкой на конце.
      • Для TXT-записи указывается произвольная текстовая строка. Ограничение — запись может состоять только из букв латинского алфавита, цифр, пробелов и следующих символов: . , ; : - = " / ~ ?

    Характерные DNS-записи

    Рассмотрим несколько наиболее популярных ситуаций:

    A-запись: необходимо, чтобы сайт открывался с другого сервера

    • Если это нужно сделать

      • @ IN A <серверы.masterhost>
      • имя: @
      • тип: A
    • Если это нужно сделать для поддомена домена, указанного в разделе «DNS-зоны»
      • abc.domain.tld в зоне домена domain.tld.
      • тип: A
      • значение (IP/host.): IP-адрес сервера

    MX-запись: необходимо, чтобы почта домена обслуживалась другим сервером

      Если вам неизвестно имя сервера, но вы знаете его IP-адрес — необходимо сначала в зоне домена создать новую запись со следующими параметрами:

      • имя: mail-server
      • тип: A
      • значение (IP/host.): IP-адрес почтового сервера
    • Если вы хотите изменить почтовый сервер для домена, указанного в разделе «DNS-зоны», кликните на него мышкой и, в случае если на новой странице существует запись:

      • @ IN MX 10 <серверы.masterhost>

        отключите ее. После того как запись будет отключена, нажмите на ссылку «добавить новую запись» и создайте запись вида:

      • имя: @
      • тип: MX
    • Если вы хотите изменить почтовый сервер для поддомена домена, указанного в разделе «DNS-зоны» , кликните на имя домена мышкой, и добавьте новую запись со следующими параметрами:
      • имя: abc («abc» указано в качестве примера. Работает, если вы хотите создать запись для домена abc.domain.tld в зоне домена domain.tld. В вашем случае будет какое-то другое имя)
      • тип: MX
      • MX preference: числовое значение, допустим, 10.
      • значение (IP/host.): mail-server

    SRV-запись

    Для внесения SRV-записи необходимо получить от владельца службы следующие данные:

    • Служба (service)
    • Протокол (proto)
    • Приоритет (priority)
    • Вес (weight)
    • Порт (port)
    • Сервер (target)

    * TTL не изменяется, поэтому его указывать не нужно;

    Имя записи формируется из имени службы и протокола: _служба._протокол

    Значение записи имеет следующий формат: приоритет вес порт сервер. (в конце имени обязательно должна быть точка!)

    Список NS-серверов поддомена

    Если основной домен делегирован на сервера masterhost, то смена NS-серверов поддомена третьего уровня производится через редактор .

    Если поддержка основного домена оказывается на сторонних серверах, то изменение списка NS-серверов для его поддоменов производится в панели управления этими серверами.

    PTR-запись: вы выделили мне IP-адрес , и я хочу установить соответствие между этим IP-адресом и именем определенного хоста

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

    SPF-запись

    Достаточно распространенным приемом, используемым организаторами СПАМ-рассылок , является подделка обратного адреса письма. В этом случае на Ваши почтовые ящики иногда могут приходить служебные сообщения об ошибках (bounce message), если одно или несколько таких СПАМ-писем с обратным адресом Вашего почтового ящика были заблокированы серверами получателей.

    Есть несколько технологий, которые помогут защитить Ваш почтовый домен от использования злоумышленниками: SPF , DKIM , DMARC

    В данный момент на наших почтовых серверах поддерживаются технологии SPF и DKIM. Если отправка почты от имени адресов Вашего домена осуществляется только с наших почтовых серверов, мы рекомендуем добавить в DNS зону этого домена следующую TXT-запись с нашим SPF правилом, которое не позволит использовать Ваш домен на сторонних почтовых серверах.

    • имя: @
    • тип: TXT
    • значение: v=spf1 include:_spf.сайт -all

    Это правило заставит серверы получателей блокировать все СПАМ-письма , которые используют в качестве адресов отправителя Ваше доменное имя. .

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

    DKIM

    Для защиты от мошеннических действий от имени Вашего домена мы рекомендуем добавить DKIM-запись в DNS-зону . Если Вы используете нашу почту, добавить DKIM можно в Личном кабинете .

    С помощью этой записи вы можете указать удостоверяющие центры, имеющие право выпускать SSL/TLS-сертификаты для данного домена. Запись CAA позволяет избежать несанкционированной выдачи сертификатов по ошибке или с целью мошенничества.

    Это только пример, точную информацию по содержанию поля "Значение" следует уточнять у Вашего удостоверяющего центра.

    Изменение NS-серверов домена

    Для изменения списка DNS-серверов следует:

    • Зайти в ;
    • Указать логин cXXXXX и пароль;
    • Открыть раздел «Общие услуги» и нажать «изменить» напротив нужного домена;
    • Нажать на ссылку «Изменить настройки делегирования»;
    • Чтобы указать сторонние серверы, выберите «Делегировать на сторонние серверы»;
    • Впишите адреса DNS серверов по одному на строке;
    • Для отмены предварительного тестирования DNS-серверов , отметьте свойство «Без тестирования»;
    • Нажмите кнопку «Сохранить».

    Если логин cXXXXX и пароль доступа к Личному кабинету утеряны, то для восстановления реквизитов доступа Вы можете воспользоваться ссылкой .

    Важно:

    1. Изменение списка DNS-серверов возможно только после завершения мобильной авторизации.
    2. С момента делегирования домена (изменения его списка NS-серверов) потребуется от 6 до 72 часов прежде чем он будет доступен в сети Интернет.

    Любой пользователь Интернет имеющий домены на серверах хостинг-провайдеров могут создавать и редактировать свои DNS записи. DNS записи имеют Имя, Тип записи и Адрес. Эти названия в различных панелях могут меняться. Например, может быть так:

    Имя/Хост/Псевдоним; Тип записи ; Значение/Ответ/Назначение/Адрес.

    Во всех вариантах «Тип записи» остается неизменным.

    Имя записи

    Имя записи, оно же хост/псевдоним это доменное имя, к которому принадлежит или привязана создаваемая запись.

    При создании записи в поле «Имя» доменное имя указывается полностью. Имя субдомена или псевдонима не нужно указывать полностью. Достаточно указать имя третьего уровня: mail, www, ftp. Если вводите полное имя, обязательно поставьте точку в конце. То есть имя mail и mail.example.ru. это одно и то же имя в поле Имя/хост/псевдоним.

    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

    CNAME (каноническое имя -canonical name record) . Запись типа 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

    ftp IN CNAME hosting-b , переносим на второй хостинг FTP –сервер.

    Еще пример записи 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 (почтовый сервер). Эта запись создает поддомен, который обслуживается внутренним (своим) почтовым сервером.

    Например: Имя/хост/псевдоним — example.ru; Тип записи -MX (почтовый сервер); Значение/ответ/назначение/Адрес – mail. Этой записью вы создаете почтовый поддомен mail.example.ru. Если используется внутренний почтовый сервис сервера, то для поддомена mail.example.ru нужно создать тип записи «А». Имя:mail- A (тип записи)- Адрес: IP сервера.

    В качестве почтового сервиса можно использовать сторонние почтовые сервера. Для этого вам нужно привязать свой домен к стороннему почтовому серверу. На нем вам создадут, автоматом, MX запись. Если не создадут, то дадут адрес почтового сервера. После этого вам нужно создать записи типа CNAME и MX на своем сервере.

    Записью CNAME переадресуйте почтовый домен mail.example.ru. на адрес почтового домена. А записью типа MX для самого домена example.ru. задайте адрес вашего стороненого почтового ящика. В качестве примера можно использовать почтовый сервер Яндекс.

    • Для Яндекс тип записи MX будет такой:

    Имя/хост/псевдоним — example.ru; Тип записи -MX (почтовый сервер); Значение/ответ/назначение/Адрес – mx.yandex.ru. Приоритет 10.

    • Тип CNAME такой:

    Имя/хост/псевдоним – mail; Тип записи –CNAME; Значение/ответ/назначение/Адрес –domain.mail.yandex.ru. Приоритет 10.

    На почтовом сервере Яндекс , можно без делегирования домена, подключить его только к почтовому серверу Яндекс, создав там, почтовый ящик.

    Кроме Яндекс, с помощью MX записей можно привязать домен к почтовым серверам Google, Mail.ru и другим:

    Тип записи NS

    Тип записи NS (сервер имён). Это, пожалуй, самый важный тип записи. Он определяет домены (адреса) DNS серверов, обслуживающих этот домен.

    Тип записи TXT

    TXT (текстовая запись) . Это информационная запись. Она не несет функциональной нагрузки.

    Запись типа SOA (Start Of Authority)

    Запись типа SOA показывает, где храниться на каком сервере лежит основная информация об этом домене. В записи типа SOA указывается полное, уточненное доменное имя зоны. Уточненное доменное имя должно оканчиваться точкой. В записи SOA может стоять символ @, вместо уточненного имени. В этом случае, доменное имя будет взято из файла конфигурации.

    • Произвольный серийный номер версии данных (Serial). При запросе вторичного сервера на обновление данных, он, прежде всего, проверяет серийный номер;
    • Периодичность запроса для обновления данных со стороны вторичного (Secondary) сервера (Refresh), в секундах;
    • Период повторного запроса вторичного сервера при первичной неудаче (Retry);
    • Срок действия (годности) данных (Expire), иначе истечение времени, через которое вторичный сервер перестанет обслуживать запросы, если ему не получиться восстановить связь с первичным сервером, в секундах;
    • И последнее, время жизни данных зоны DNS в кэше сервера (TTL), запросившего их, в секундах.

    Приведу пример записи SOA, для Microsoft DNS

    Как редактировать DNS записи в панели ISPManager

    В панели ISPManager DNS записи редактируются на вкладке: Доменные имена→ «Клик» по домену.

    Как редактировать DNS записи в панели DirectAdmin

    В панели DirectAdmin DNS записи редактируются на вкладке: Управление DNS.

    Система доменных имен (DNS) это по сути телефонный справочник интернета. Вы набираете в адресной строке браузера apple.com , чтобы купить аксессуары к Iphone, но как ваш запрос находит сервер Apple с IP-адресом 17.172.224.47? Это делает для вас система доменных имен.

    Если у вас небольшой бизнес в сети или вы ведете блог на WordPress, то вы, вероятно, уже сталкивались с настройкой записей A и CNAME. А если вы пытались перенести почту со своего сайта, то и с настройкой записи MX. И, возможно, какой-нибудь веб-сервис просил настроить TXT, чтобы работать с вашим сайтом. Для чего все это нужно и какие здесь сложности?

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

    Серверы DNS

    Когда вы покупаете доменное имя, ваш регистратор, как правило, конфигурирует для вас записи DNS по умолчанию и предоставляет серверы DNS для них. Вам необходим сервер DNS (обычно они используются в парах или тройках для надежности, например: ns1.yourregistrarserver.com , ns2.yourregistrarserver.com), чтобы сообщить каталогу DNS интернета IP-адрес вашего сервера.

    Вот образец моих записей NS для сайта JeffReifman.com:

    Все настройки, которые вы зададите, будут настроены и опубликованы в сети с помощью этих серверов.

    Теперь перейдем к типам записей DNS, основной из них является A-запись.

    Записи А

    Если набрать в адресной строке jeffreifman.com , этот запрос будет направлен в каталог, в котором будет произведен поиск записи DNS соответствующей этому корню этого домена. Корень в данном случае означает без префикса www , то есть без поддомена, просто http://jeffreifman.com . Например, запись A корневого уровня может указывать на IP 107.164.32.96, значит, это тот адрес, по которому надо перейти.

    Вот образец запроса A-записи на Kloth:

    Записи поддомена

    Вы также можете сконфигурировать A-записи для различных поддоменов. Например, если вы хотите, чтобы http://www.yourwebsite.com/ указывал на тот же адрес, просто добавьте идентичную A-запись для поддомена www , теперь у корневого домена и поддомена будет одинаковый IP.

    Скоро мы запустим соответствующие сайты на доменах, относящихся к конкретным городам (portland.fleethejungle.com), я рассчитываю расположить их на разных серверах, нам надо, что бы A-записи каждого поддомена вели на уникальный IP соответствующего сервера.

    Записи wildcard

    В конфигурацию DNS можно добавлять записи Wildcard (с помощью астериска *), позволяющие направлять весь трафик поддоменов на один IP. Например, если я хочу, разместить все поддомены городов на одном сервере, я сделаю так:

    Записи wildcard облегчают привязку нескольких поддоменов к одному серверу.

    Входная маршрутизация на сервере

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

    ServerName jeffreifman.com ServerAlias www.jeffreifman.com DocumentRoot /var/www/jeffreifman DirectoryIndex index.php AllowOverride All Order Deny,Allow Allow from all

    Я также продаю домены с динамическими расценками. Вот как Apache обрабатывает трафик для всех этих доменов и записей DNS.

    ServerName newscloud.com ServerAlias *acro.io ServerAlias *acroyoga.io ServerAlias *acupuncture.io ServerAlias *allmisses.com ServerAlias *amehzon.com ServerAlias *carestrategies.com ServerAlias *caringsitters.com ServerAlias *clipboards.io ServerAlias *commonbits.com ServerAlias *commonroad.com ServerAlias *commontunes.com ServerAlias *completelady.com ...

    Теперь мы плавно перейдем к CNAME записям. Они полезны в разных случаях, а особенно в упрощении управления IP-адресами и миграциях с одного сервера на другой.

    Записи CNAME

    CNAME это по сути текстовый псевдоним для направления трафика домена и поддомена. Например, если вы сталкивались с настройкой сервиса типа WordPress или Tumblr, они могли предложить настроить домен именно с помощью записи CNAME, а A-записи c IP.

    Я не часто использую Tumblr, но некоторое время я настроил для своего аккаунта адрес http://misc.jeffreifman.com/ . Вот их инструкции для настройки кастомного доменного имени - они позволяют использовать A-записи или CNAME, я выбрал CNAME.

    Вот запись DNS для misc. jeffreifman.com:

    Misc.jeffreifman.com CNAME domains.tumblr.com.

    Примечание: обязательно ставьте точку в адресе CNAME.

    Когда пользователь запросит misc.jeffreifman.com , DNS отправит его на domains.tumblr.com , а там уже будет найден IP 66.6.44.4.

    Важным преимуществом записи CNAME является то, что если, например, в этом примере Tumblr сменит адрес своего сервера, вам не надо будет менять запись CNAME. Она останется прежней и Tumblr сможет управлять IP, изменяя A-запись на domains.tumblr.com .

    Я использую этот подход при продаже доменных имен - большинство из них связаны с сервером через CNAME. Если мне надо поменять хостинг и изменить IP сервера, я могу просто изменить одну A-запись поддомена, используемую CNAME, вместо того чтобы менять A-записи для каждого домена.

    Другим сценарием использования записей CNAME является использование CNAME с сервисами CDN, как я описал в статье о KeyCDN . Я настроил облачные поддомены c1, c2, c3, c4, привязав их все к зеркалу на jr-faf.kxcdn.com .

    Что происходит, когда вы меняете записи DNS

    Записи DNS для корневого домена и поддоменов, как правило, не зависимы друг от друга. Изменение A-записи корневого домена не влияет на существующий адрес CNAME поддомена. Однако недавно я регистрировался на сервисе сетевой безопасности Incapsula и обнаружил, что он требует две А-записи для одного корневого домена - это может сделать все более сложным. Другими словами, технически у вас может быть несколько А-записей для одного домена, что может породить конфликты.

    Также важно осознавать, что изменения DNS не вступают в силу немедленно. Когда вы настраиваете записи DNS в первый раз (или когда меняете их), пользователям эти данные еще не доступны. Это одна из тех вещей, которые усложняют миграцию с одного сервера на другой (или смену хостинговой компании). В худшем случае это может занять более 36 часов.

    Мой регистратор предложил мне использовать https://www.whatsmydns.net/ для визуального отчета о распространении моего DNS в различных областях. Ниже есть скриншот, который я сделал при смене сервера своего сайта - изменения затребовали несколько часов.

    На иллюстрации ниже показаны DNS-серверы, захватившие мои последние изменения:

    Записи MX

    Теперь перейдем к записям MX. Эти записи сообщают системе DNS, куда слать все приходящие вам email. Поэтому, если я купли домен StarWars.io и захочу получать почту по адресу [email protected] , мне надо сделать две вещи.

    Во-первых, мне нужно зарегистрироваться на почтовом сервисе типа Google Apps или FastMail, чтобы разместить там почту. Во-вторых, мне надо сконфигурировать записи MX так, чтобы почта шла на эти серверы.

    Например, так будет выглядеть конфигурация Google Apps :

    Priority Mail Server 1 ASPMX.L.GOOGLE.COM. 5 ALT1.ASPMX.L.GOOGLE.COM. 5 ALT2.ASPMX.L.GOOGLE.COM. 10 ALT3.ASPMX.L.GOOGLE.COM. 10 ALT4.ASPMX.L.GOOGLE.COM.

    А для FastMail так:

    In1-smtp.messagingengine.com (first, priority=10) in2-smtp.messagingengine.com (second, priority=20)

    Вы также можете использовать записи TXT для того, чтобы сообщать о серверам, детектирующим спам, что ваш почтовый сервер пересылает только законные письма, как это я сделал на примере выше с записью SPF. Сервисы типа Mailgun используют записи SPF и DKIM при массовой рассылке.

    Записи AAAA

    Если вы решили поддерживать адресацию IPv6, вам надо сконфигурировать запись AAAA:

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

    • Перевод

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


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

    Что такое DNS

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


    Вот и все. Правда. Вы или ваш браузер запрашивает значение для ключа www.example.com , и получает в ответ 1.2.3.4 .

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

    Большой плюс DNS в том, что это публичная услуга, и можно потыкать в сервера если хочется разобраться. Давайте попробуем. У меня есть домен petekeen.net , который хостится на машине web01.bugsplat.info . Команды, используемые ниже, можно запустить из командной строки OS X (ой, то есть macOS, - прим. пер. ).


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


    $ dig web01.bugsplat.info

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


    ; <<>> DiG 9.7.6-P1 <<>> web01.bugsplat.info ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51539 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

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


    ;; QUESTION SECTION: ;web01.bugsplat.info. IN A

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


    ;; ANSWER SECTION: web01.bugsplat.info. 300 IN A 192.241.250.244

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


    ;; Query time: 20 msec ;; SERVER: 192.168.1.1#53(192.168.1.1) ;; WHEN: Fri Jul 19 20:01:16 2013 ;; MSG SIZE rcvd: 56

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


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


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


    $ dig +trace web01.bugsplat.info ; <<>> DiG 9.7.6-P1 <<>> +trace web01.bugsplat.info ;; global options: +cmd . 137375 IN NS l.root-servers.net. . 137375 IN NS m.root-servers.net. . 137375 IN NS a.root-servers.net. . 137375 IN NS b.root-servers.net. . 137375 IN NS c.root-servers.net. . 137375 IN NS d.root-servers.net. . 137375 IN NS e.root-servers.net. . 137375 IN NS f.root-servers.net. . 137375 IN NS g.root-servers.net. . 137375 IN NS h.root-servers.net. . 137375 IN NS i.root-servers.net. . 137375 IN NS j.root-servers.net. . 137375 IN NS k.root-servers.net. ;; Received 512 bytes from 192.168.1.1#53(192.168.1.1) in 189 ms info. 172800 IN NS c0.info.afilias-nst.info. info. 172800 IN NS a2.info.afilias-nst.info. info. 172800 IN NS d0.info.afilias-nst.org. info. 172800 IN NS b2.info.afilias-nst.org. info. 172800 IN NS b0.info.afilias-nst.org. info. 172800 IN NS a0.info.afilias-nst.info. ;; Received 443 bytes from 192.5.5.241#53(192.5.5.241) in 1224 ms bugsplat.info. 86400 IN NS ns-1356.awsdns-41.org. bugsplat.info. 86400 IN NS ns-212.awsdns-26.com. bugsplat.info. 86400 IN NS ns-1580.awsdns-05.co.uk. bugsplat.info. 86400 IN NS ns-911.awsdns-49.net. ;; Received 180 bytes from 199.254.48.1#53(199.254.48.1) in 239 ms web01.bugsplat.info. 300 IN A 192.241.250.244 bugsplat.info. 172800 IN NS ns-1356.awsdns-41.org. bugsplat.info. 172800 IN NS ns-1580.awsdns-05.co.uk. bugsplat.info. 172800 IN NS ns-212.awsdns-26.com. bugsplat.info. 172800 IN NS ns-911.awsdns-49.net. ;; Received 196 bytes from 205.251.195.143#53(205.251.195.143) in 15 ms

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


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


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


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


    $ dig -x 192.5.5.241 ; <<>> DiG 9.8.3-P1 <<>> -x 192.5.5.241 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2862 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;241.5.5.192.in-addr.arpa. IN PTR ;; ANSWER SECTION: 241.5.5.192.in-addr.arpa. 3261 IN PTR f.root-servers.net.

    Флаг -x заставляет dig провести обратный поиск по IP-адресу. DNS отвечает записью PTR , которая соединяет IP и хост, в данном случае - f.root-servers.net .


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


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

    Другие типы

    Есть еще несколько типов, о которых стоит знать. Первый это MX . Он соединяет доменное имя с одним или несколькими почтовыми серверами. Электронная почта настолько важна, что у нее есть свой тип DNS-записи. Вот значения MX для petekeen.net:


    $ dig petekeen.net mx ; <<>> DiG 9.7.6-P1 <<>> petekeen.net mx ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18765 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;petekeen.net. IN MX ;; ANSWER SECTION: petekeen.net. 86400 IN MX 60 web01.bugsplat.info. ;; Query time: 272 msec ;; SERVER: 192.168.1.1#53(192.168.1.1) ;; WHEN: Fri Jul 19 20:33:43 2013 ;; MSG SIZE rcvd: 93

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


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


    $ dig www.petekeen.net ; <<>> DiG 9.7.6-P1 <<>> www.petekeen.net ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 16785 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;www.petekeen.net. IN A ;; ANSWER SECTION: www.petekeen.net. 86400 IN CNAME web01.bugsplat.info. web01.bugsplat.info. 300 IN A 192.241.250.244 ;; Query time: 63 msec ;; SERVER: 192.168.1.1#53(192.168.1.1) ;; WHEN: Fri Jul 19 20:36:58 2013 ;; MSG SIZE rcvd: 86

    Сразу видно, что мы получили два ответа. Первый говорит, что www.petekeen.net указывает на web01.bugsplat.info . Второй возвращает запись A для того сервера. Можно считать, что CNAME это псевдоним (или алиас) для другого сервера.

    Что не так с CNAME

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


    Причина в том, что DNS производит замену таким образом, что все записи того места, куда указывает CNAME , также валидны для CNAME . В нашем примере, записи у www.petekeen.net и web01.bugsplat.info будут совпадать.


    Поэтому нельзя делать CNAME на корневом домене вроде petekeen.net , потому что обычно там нужны другие записи, например, MX .

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

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


    $ dig www.petekeen.net @8.8.8.8

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

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

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

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

    Часто нужно сделать редирект домена iskettlemanstillopen.com на www.iskettlemanstillopen.com . Регистраторы типа Namecheap или DNSimple называют это URL Redirect . Вот пример из админки Namecheap:



    Символ @ означает корневой домен iskettlemanstillopen.com . Давайте посмотрим на запись A у этого домена:


    $ dig iskettlemanstillopen.com ;; QUESTION SECTION: ;iskettlemanstillopen.com. IN A ;; ANSWER SECTION: iskettlemanstillopen.com. 500 IN A 192.64.119.118

    Этот IP принадлежит Namecheap"у, и там крутится маленький веб-сервер, который просто делает перенаправление на уровне HTTP на адрес http://www.iskettlemanstillopen.com:


    $ curl -I iskettlemanstillopen.com curl -I iskettlemanstillopen.com HTTP/1.1 302 Moved Temporarily Server: nginx Date: Fri, 19 Jul 2013 23:53:21 GMT Content-Type: text/html Connection: keep-alive Content-Length: 154 Location: http://www.iskettlemanstillopen.com/

    CNAME для Heroku или Github

    Взгляните на скриншот выше. На второй строке там CNAME . В этом случае www.iskettlemanstillopen.com указывает на приложение, запущенное на Heroku.


    $ heroku domains === warm-journey-3906 Domain Names warm-journey-3906.herokuapp.com www.iskettlemanstillopen.com

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

  • домен
  • сеть
  • интернет
  • администрирование
  • Добавить метки

    Понравилась статья? Поделиться с друзьями: