Статьи

Введение в изучение и использование записей DNS

Конечный продукт
Что вы будете создавать

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

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

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

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

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

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

Пример сервера имен записей NS для веб-сайта Джеффа Рейфманса

Все настройки, которые мы опишем ниже, будут настроены вами на вашем NS-хосте и опубликованы на их сервере в Интернете для обновления их каталогов.

Существует несколько типов типов записей DNS, и наиболее распространенные из них, о которых вы, вероятно, слышали, — A Records.

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

Я годами пользовался веб-сайтом Kloth для проверки записей DNS, но вы можете использовать многие из них, например, Google Dig или KeyCDN , чьи сетевые службы доставки контента я писал для Tuts + ранее в этом году. Многие сайты предлагают эти инструменты.

Вот пример запроса для записи A на Kloth:

Kloth DNS Поиск записи A

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

Пример записи DNS A с поддоменом

Недавно я стал соучредителем «Беги в джунглях» на http://fleethejungle.com, чтобы отвлечь покупателей от Амазонки после моих историй о вреде компании для Сиэтла и разоблачении вирусных публикаций, опубликованных New York Times :

Беги из джунглей изображение Кали Сноуден

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

Пример записи DNS A с поддоменами

Записи DNS также позволяют использовать подстановочные знаки (используя звездочку *), которые упрощают маршрутизацию всего трафика субдомена на один IP-адрес. Например, если я хочу, чтобы какой-либо городской запрос на размещение Flee the Jungle размещался на одном сервере, я мог бы сделать что-то вроде этого:

Пример записи с подстановочным знаком DNS

Подстановочные знаки облегчают перехват трафика с множества поддоменов на один сервер.

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

01
02
03
04
05
06
07
08
09
10
11
<VirtualHost *:80>
    ServerName jeffreifman.com
    ServerAlias www.jeffreifman.com
    DocumentRoot /var/www/jeffreifman
    DirectoryIndex index.php
    <Directory /var/www/wpapps/>
      AllowOverride All
      Order Deny,Allow
      Allow from all
   </Directory>
</VirtualHost>

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

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
<VirtualHost *:80>
   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 — это, по сути, псевдонимы доменов и поддоменов для сопоставления трафика. Например, если вы когда-либо настраивали блог через такие службы, как WordPress или Tumblr, они могут попросить вас сопоставить ваше доменное имя с CNAME, а не с записью A с IP-адресом.

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

Настройки DNS для Tumblr

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

1
misc.jeffreifman.com CNAME domains.tumblr.com.

Примечание. Вы должны указать закрывающий период на своих адресах CNAME.

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

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

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

Примечание. Стандарты DNS технически не позволяют указывать записи корневого домена на адрес CNAME, например, jeffreifman.com CNAME domains.tumblr.com. Вот почему Tumblr предлагает запись A для ваших корневых доменов. Тем не менее, некоторые DNS-серверы поддерживают это, так что посоветуйтесь с вашим. Чтобы узнать больше, прочитайте этот пост от Josh Strange .

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

Пример DNS CNAME для KeyCDN

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

DNS несколько записей A

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

Мой регистратор представил меня на WhatsMyDNS.net для визуального отчета о распространении моих изменений DNS в различных областях. Ниже приведен снимок экрана, который я сделал, когда мой сервер Flee the Jungle переехал, и для его изменения потребовалось несколько часов.

Карта ниже показывает, что DNS-серверы по всему миру наконец-то догнали мои последние изменения:

Распространение Интернета через веб-сайт Whats My DNS

Если вам интересно, что такое запись MX, самое время рассказать вам. Записи MX сообщают системе DNS, куда отправлять все получаемые письма. Итак, если я купил StarWars.io и хочу получать электронную почту на [email protected], мне нужно сделать две вещи.

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

Например, вот как это выглядит для Служб Google :

1
2
3
4
5
6
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 выглядит примерно так:

1
2
in1-smtp.messagingengine.com (first, priority=10)
in2-smtp.messagingengine.com (second, priority=20)

Если вы хотите запустить свой собственный почтовый сервер , вам необходимо настроить запись MX так, чтобы она указывала на IP-адрес вашего собственного сервера.

Многие люди начали использовать MX Toolbox для поиска своих записей MX, но вы также можете использовать любой сервис поиска DNS.

Проверка DNS с помощью MX Toolbox

Записи MX только указывают системе DNS, куда направлять сегодняшнюю электронную почту — ваша существующая электронная почта хранится в облачных базах данных вашего текущего поставщика электронной почты. Если вы хотите переместить все существующие сообщения, вам нужно полагаться на их инструменты или программное обеспечение вашего почтового клиента. И, конечно же, вам также придется обновить записи MX в соответствии с настройками вашего нового провайдера.

В течение периода распространения DNS вы можете получать некоторые электронные письма от вашего старого поставщика, а некоторые — от нового.

Изменение вашей записи MX не повредит вашему предыдущему хранилищу электронной почты, но ничего нового там не появится.

Записи TXT позволяют владельцу домена аутентифицировать себя, публикуя секретные коды в своей DNS. Когда вы регистрируетесь с помощью Инструментов Google для веб-мастеров, вам будет предложено подтвердить, что вы являетесь владельцем домена.

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

1
jeffreifman.com TXT google-site-verification=Ih8iC4iSOcBSkk

На самом деле у меня есть три записи TXT для jeffreifman.com прямо сейчас:

1
2
3
jeffreifman.com TXT «keybase-site-verification=qG2zMYf_hw2sXUCgtYWk»
jeffreifman.com TXT «v=spf1 include:spf.efwd.regsrvrs.com ~all»
jeffreifman.com TXT «google-site-verification=blTgEw5QFSx5M»

База ключей, о которой я писал для Tuts + при освещении ключей PGP, конфиденциальности и шифрования , использует записи TXT для меня, чтобы подтвердить свой веб-сайт в качестве средства проверки моей личности с помощью записей моего открытого ключа .

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

Поскольку у Интернета заканчиваются IP-адреса, мы постепенно переходим к более широкой схеме адресации, IPV6. Вы можете прочитать « Будь первым на своем блоке с IPV6 (Tuts +)» для получения дополнительной информации об этом.

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

Пример записи DNS AAAA

Сегодня большинство преобразований IPv4 в IPv6 выполняется прозрачно за кулисами. Хотя в какой-то момент после того, как изменение климата убило последнего полярного медведя ( спасибо сенатору Инхофу ), записи A могут стать реликтовыми, а AAAA будет основной записью DNS для настройки.

Я надеюсь, что вы нашли это руководство полезным введением в записи DNS. Как всегда, пожалуйста, не стесняйтесь оставлять свои вопросы и комментарии ниже. Вы также можете посетить меня в Твиттере, чтобы сообщить мне, что вы думаете, или что я пропустил. Или, альтернативно, вы можете написать мне напрямую, просмотреть мои другие статьи Tuts + или проверить мои другие статьи .