Полезная информация

Нужна помощь?


Вы всегда можете задать вопрос нашему специалисту и мы постараемся Вам помочь!

Введение в DNS. Объяснение работы DNS

Представьте, что вам звонит важный клиент, потому что у него возникли проблемы с получением электронной почты. Или проблемы с блогом.  Вследствие чего их веб-сайт стал терять  популярность. Вряд ли клиентов устроить ответ, что вы рассмотрите и разберетесь с их проблемой  в течение 24-48 часов.

Если вам необходимо переместить веб-сайт или изменить способ обработки электронной почты, вы столкнетесь с 24-х или 48-часовой задержкой. Это настоящий недостаток в мире ультраудобств. Эта статья объяснит, что такое DNS, как он работает, что за задержка происходит и несколько способов ее обойти.

Что такое DNS?

DNS – “система доменных имен». Она переводит понятные человеку адреса веб-сайтов, такие как www.cnn.com в компьютерные IP-адреса, как 157.166.224.25. Попробуйте посетить http://157.166.224.25, у вас ничего не получиться.

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

DNS – распределительная служба.  Задачу разделяют миллионы серверов имен («nameserver»), которые постоянно обращаются и обновляют друг друга.

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

У каждого компьютера, подключенного к Интернету, есть имя сервера. При попытке посетить сайт, например www.smashingmagazine.com, компьютер обращается к своему локальному имени сервера, чтобы найти соответствующий IP-адрес, в нашем случае 80.72.139.101. Имя сервера вашего компьютера не может сделать этот перевод сам по  себе, он постоянно спрашивает другие сервера имен, пока где-нибудь не вернется с окончательным ответ.

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

Некоторые специальные имена серверов

Каждое доменное имя, как smashingmagazine.com, имеет хотя бы одно имя сервера, которое знает правильный IP-адрес. Специальные имена серверов для smashingmagazine.com, безвкусно называют a.regfish-ns.net, b.regfish-ns.net и c.regfish-ns.net.

Откуда берется задержка

Это как, если бы вы решили поменять номер телефона. Это может занять до 12 месяцев, прежде чем выйдет телефонный справочник с измененными номерами. Еще от 12 до 36 месяцев может пройти прежде, чем вы загляните в телефонную книгу и скопируете номера. За прошедшие 24-48 месяцев ваша адресная книга устареет.

Но веб-сайты должны реагировать быстрее.

Создание нового веб-сайта

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

1. Купить доменное имя

Компания, у которой вы покупаете и регистрируете доменное имя, называется регистратором. Регистраторы получают специальную лицензию от  ICANN, которая позволяет им продавать доменные имена. Лицензия стоит 2500$ (США), плюс  4000$ ежегодно. Особо крупные регистраторы GoDaddy в США и 123-reg в Великобритании.

После регистрации нового доменного имени, могут быть задержки от нескольких минут до нескольких часов, прежде чем вы сможете войти на веб-сайт регистратора, чтобы изменить имя домена сервера (шаг 3 ниже), либо указать IP-адрес (шаг 4 ниже). Задержка является результатом регистратора, обрабатывающего платеж и добавляющего вас к базе данных Whois. Задержка распространяется только на новые домены, поэтому не является частью задержки DNS.

2. Найдите хост для веб-сайта

Хостинговая компания помещает ваш сайт на большой мощный сервер, предоставляя вам IP-адрес и берет с вас ежемесячно плату. Тысячи больших и малых компаний предлагают хостинг.  Большинство регистраторов также предлагают хостинг. Если вы покупаете доменное имя и хостинг пространство в одной компании, вам вообще не придется беспокоиться о DNS.

3. Укажите имя сервера для вашего домена

Обычно вы можете пропустить этот шаг и использовать имя сервера, предоставленным регистратором.

Возможно, вы захотите изменить их, если, например, вы зарегистрировали доменные имена (шаг 1) с несколькими компаниями, но хотели бы управлять DNS (шаг 4) из одного места. Или вы использовали Really Cheap Registrar Plc для регистрации доменных имен, но хотите использовать Really Flexible DNS Plc для управления DNS. Или ваш хост (шаг 2) имеет приятный интерфейс DNS, который вы хотели бы использовать.

Для изменения имени сервера, войдите в ваш регистратор, перейдите на доменное имя и во вкладку “Change name servers”, как на скриншоте выше. Really Flexible DNS Plc предложит изменить их.

4. Укажите доменное имя на IP-адрес

В зависимости от того, кто  предоставляет вам имя серверов (компания, регистратор, хост) вам нужно войти www.yournewdomainname.com и указать на ваш новый IP-адрес. Обычно есть возможность настроить «DNS Settings» или «Advanced DNS». Найти кнопку, чтобы добавить новые записи «А» (для «Адреса»). Введите www в качестве имени хоста (т.е. префикс для доменного имени) и IP-адрес, предоставленный хостом в шаге 2.

Вы можете использовать тот же самый процесс, чтобы создать другие записи адреса, такие как webmail.yournewdomainname.com. Иногда вы можете ввести * в качестве имени хоста, а затем everything.yournewdomainname.com будет указывать на IP-адрес. Если вы введете @ в качестве имени хоста, то оно будет указывать yournewdomainname.com.

5. Подождите

Это является причиной частичной задержки DNS. Многие компании обработают ваш запрос немедленно. Другие обрабатывают запросы только один или два раза в день. Так, если ваша компания обрабатывает запросы в 4:00 утра, а вы запрашиваете изменения в 4:02 утра, то вам придется ждать почти 24 часа.

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

Как работает DNS

Когда вы посещает веб-сайт в браузере или FTP или telnet или делает любую сетевую операцию, ваш компьютер должен преобразовывать доменное имя в IP-адрес.  В этом разделе мы рассмотрим, как это происходит с командами.

Для применения команд нужно открыть терминал на  Mac или Linux или командную строку на Windows. Для этого на Mac зайдите в Приложения – Утилиты – Терминал. В Ubuntu Linux перейдите в Приложения – Стандартные – Терминал. В Windows перейдите в меню Пуск – Программы – Стандартные – Командная строка.

Отметим, что в DNS smashingmagazine.com и www.smashingmagazine.com можно назвать «доменными именами». Но www.smashingmagazine.com также можно называть, как «именем хоста» или «полным доменным именем» или просто адресом сайта. В нашей статье в основном используется термин «доменное имя».

1. Узнайте ваше локальное имя сервера

Допустим, вы хотите посетить  www.smashingmagazine.com. В его многочисленных параметрах сети, компьютер должен хранить IP-адрес доменное имя локального сервера. Первым шагом нужно попросить имя сервера для ответа.

В Mac и Linux вы можете запустить следующую команду, чтобы узнать ваше имясервера:

1
cat /etc/resolv.conf
cat /etc/resolv.conf

В Windows, команда:

1
ipconfig /all
ipconfig /all

В этом случае, компьютер посылает запрос на 192.168.1.1, что-то вроде «Ой, 192.168.1.1! Какой IP-адрес для www.smashingmagazine.com?»

2 Ваше локальное имя сервера не известно

Давайте предположим, что локальное доменное имя сервера 192.168.1.1, является новым брендом. Его никогда не просили ни о чем прежде, не говоря уже об IP-адресе www.smashingmagazine.com. Единственное, что он знает, это корневые имена серверов. Вы можете узнать все, что он знает с помощью команды NsLookup.

На Mac, Linux и Windows выполните команду, показанную ниже. -type=ns говорит NsLookup только получать сведения об именах серверов. Точка в конце для поиска корневых имен сервера.

1
nslookup -type=ns
nslookup -type=ns

Это команда вернет имена и IP-адреса нескольких корневых имен серверов.

3 Узнаем доменное имя сервера верхнего уровня…

Ваш локальный сервер имен извлекает последнюю часть доменного имени, в данном случае com. Это называется доменном верхнего уровня или TLD. Другие net, gov, uk, fr, ie и de.

Ваш локальный сервер доменного имени выбирает один из упомянутых выше корневых серверов имен и спрашивает, что-то вроде: «Извините, 193.0.14.129, где я могу найти информацию о com доменах?»

Вы можете увидеть, каков был бы ответ, выполнив команду:

1
nslookup -type=ns com 193.0.14.129
nslookup -type=ns com 193.0.14.129

4 … и перенаправимся к меньшему серверу доменных имен

Ваш локальный сервер имен спросит один из TLD серверов имен, что-то вроде: «Привет, 192.52.178.30, где я могу найти материал на smashingmagazine.com?»

Вы можете увидеть ответ на этот вопрос, запустив NsLookup еще раз:

1
nslookup -type=ns smashingmagazine.com 192.52.178.30
nslookup -type=ns smashingmagazine.com 192.52.178.30

Она возвращает список серверов имен для домена smashingmagazine.com. Слово authoritative означает, что это имена серверов – точное место об smashingmagazine.com.

5 Получите IP-адрес

Итак, теперь ваш локальный сервер имени выходит на один из серверов имен. Он достиг первой части требуемого доменного имени, www, таким образом, он больше не нуждается в серверах имени. И готов к фактическим данным. Теперь он может спросить один из тех серверов имен: «Привет, 79.140.49.11. Можете ли вы мне сказать IP-адрес, www.smashingmagazine.com?»

Запустите команду NsLookup еще раз, используя IP-адрес одного из серверов доменных имен, но в этот раз без type=ns:

1
nslookup www.smashingmagazine.com 79.140.49.11
nslookup www.smashingmagazine.com 79.140.49.11

6 Помните это в следующий раз

Ваше имя локального домена не хочет снова проходить через все это. Поэтому он кэширует (т.е. хранит) все что узнал, включая IP-адреса для TLD серверов и IP-адрес  www.smashingmagazine.com.

Так что в следующий раз, когда вы спросите com домена, например www.google.com, он должен повторить только шаги четыре и пять. И когда вы попросите www.smashingmagazine.com, то получите ответ с  IP-адреса.

Но он не может всегда хранить этот перевод. В конце концов он его забудет, и придется повторить некоторые действия, описанные выше. Чтобы узнать, как долго он будет хранить в памяти IP-адреса, используйте команду dig.

В Mac и Linux, выполните:

1
dig www.smashingmagzine.com
dig www.smashingmagzine.com

Пользователям Windows нужно использовать онлайн-версию этого инструмента, потому что ОС Windows не поддерживает команду dig.

В Answer Section есть строка, начинающаяся с www.smashingmagazine.com (то, что вы спросили) и заканчивающаяся переведенным IP-адресом. Число в середине указывает через сколько ваш локальный сервер имени забудет об этой области и должен будет повторить шаги четыре и пять. В нашей случае через 238 секунд.

1
2
;; ANSWER SECTION:
www.smashingmagazine.com. 238 IN A 80.72.139.101
;; ANSWER SECTION:
www.smashingmagazine.com. 238 IN A 80.72.139.101

Это кэширование на локальный сервер имени отвечает за часть задержек DNS. Если Smashing Magazine изменит свой IP-адрес прямо сейчас, ваш компьютер не узнает об этом, по крайней мере 238 секунд, пока локальный сервер имени не обновится.

Если вы используете онлайн инструмент, то вы проверяете не свой локальный сервер имени, а сервер имени веб-сайта.  Вы можете запустить более тонкую версию этой команды:

1
dig +nocmd www.smashingmagazine.com +noall +answer
dig +nocmd www.smashingmagazine.com +noall +answer

Обратите внимание, что во всех командах выше, вы могли бы использовать имя сервера имен, а не IP-адрес. NsLookup перевел бы все для вас.

7 Отправка ответа обратно на компьютер

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

Теперь ваш компьютер предпримет другой процесс, общение с компьютером по адресу 80.72.139.101 и попросит у него веб-страницу. Ваш компьютер пошлет запрос по сетевому кабелю (или по беспроводному соединению) и попросит широкополосный маршрутизатор, что-то вроде: «Вы можете попросить 80.72.139.101 отправлять мне домашнюю страницу для www.smashingmagazine.com?»

Ваш широкополосный маршрутизатор пошлет запрос вдоль своего сетевого кабеля к следующему маршрутизатору. Этот процесс будет повторяться. В какой-то момент сетевое устройство будет иметь несколько кабелей. Тогда запрос пойдет по принципу: запросы о любых IP-адресах, начинающиеся менее чем со 100, должны отправиться по кабелю #1. Все остальные по кабелю #2. И так далее, пока запрос, наконец, не доберется до 80.72.139.101. Ответ будет отправлен обратно таким же образом.

Вы можете проследить за этим, используя команду traceroute на Mac и Linux, и tracert на Windows:

1
tracert 80.72.139.101
tracert 80.72.139.101

«Время жизни»

Кэширование является главной причиной задержки DNS. Любой перевод (веб-адреса в IP-адрес) имеет свойство, называемое «время жизни» или TTL. Оно указывает на продолжительность кэширования перевода серверов доменных имен, прежде чем они отправят запрос снова.

Вы можете выяснить TTL для данного доменного имени, используя команду dig, поручив команде использовать название доменного имени сервера, например, так:

1
dig @a.regfish-ns.net www.smashingmagazine.com
dig @a.regfish-ns.net www.smashingmagazine.com

Answer Section показывает, что www.smashingmagazine.com имеет TTL в  1800 секунды:

1
2
;; ANSWER SECTION:
www.smashingmagazine.com. 1800 IN A 80.72.139.101
;; ANSWER SECTION:
www.smashingmagazine.com. 1800 IN A 80.72.139.101

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

Также команда определяет продолжительность времени того, что a.regfish-ns.net это имя сервера для smashingmagazine.com:

1
2
;; AUTHORITY SECTION:
smashingmagazine.com. 86400 IN NS a.regfish-ns.net.
;; AUTHORITY SECTION:
smashingmagazine.com. 86400 IN NS a.regfish-ns.net.

Если Smashing Magazine внезапно решит изменить свой сервер имен, ваш локальный сервер доменных имен будет держаться за старое имя сервера 86400 секунд, т.е. один день. Только спустя это время но попросит новое имя сервера.

Перемещение веб-сайта

А теперь финал! Это раздел связывает все выше сказанное, чтобы объяснить задержку. Три раздела назад было подробно описано, как купить доменное имя и настроить DNS. В этом разделе мы рассмотрим, что происходит при изменении существующего IP-адреса.

1 Узнайте имя сервера для домена

Во-первых, вы должны знать, какие имена серверов использует ваш домен. Вы можете использовать nslookup, команду whois или сетевой онлайн инструмент. В этом примере изменим IP-адрес test.stockashop.co.uk.

1
2
nslookup -type=ns stockashop.co.uk
whois stockashop.co.uk
nslookup -type=ns stockashop.co.uk
whois stockashop.co.uk

Серверы имен для этого домена перечислены, как ns.rackspace.com и ns2.rackspace.com.

2 Изменение IP-адреса

Чтобы изменить IP-адрес, необходимо войти на сайт компании, которая управляет именами серверов. Затем найти имя домена, которое вы хотите переместить и нажать на что-то, вроде «Изменить настройки DNS» или «Расширенный DNS». Потом найти адрес записи, которую хотите изменить, отредактируйте его и сохраните.

3 Проверьте обработку изменений

Ваши изменения DNS будут обрабатываться от нескольких минут до нескольких часов, в зависимости от вашей компании. Чтобы проверить, когда изменения будут обработаны, вы можете использовать команду nslookup для запроса сервера имени напрямую. Она позволит обойти собственный сервер имени и получить информацию от первоисточника. Также вы можете воспользоваться онлайн инструментов, представляя домен (в нашем случае test.stockashop.co.uk in this case) и сервер (ns.rackspace.com).

1
nslookup test.stockashop.co.uk ns.rackspace.com
nslookup test.stockashop.co.uk ns.rackspace.com

Продолжайте выполнять эту команду, пока она не вернется с новым IP-адресом. Изменение с Rackspace заняло 10-20 минут. Это первая часть задержки DNS может занимать до 24 часов.

4 Проверьте, как долго вам придется ждать

В конце концов, имена серверов для вашего домена будут изменены, и вам вернется новый IP-адрес. Затем вы можете использовать команду dig, чтобы узнать, как долго будут храниться изменения:

1
dig test.stockashop.co.uk
dig test.stockashop.co.uk

Посмотрите Answer Section. Он даст вам IP-адрес, который считает правильным (а нашем случаи заканчивающийся на 33) и количество секунд (91).

1
2
;; ANSWER SECTION:
test.stockashop.co.uk.    91    IN    A    92.52.106.33
;; ANSWER SECTION:
test.stockashop.co.uk.    91    IN    A    92.52.106.33

После истечения  91 секунды – ответ измениться. IP-адрес  будет новый (заканчивающийся на 34), а количество секунд будет сброшено до значения (в нашем случае 1799 секунд или 30 минут).

1
2
;; ANSWER SECTION:
test.stockashop.co.uk.  1799    IN    A    92.52.106.34
;; ANSWER SECTION:
test.stockashop.co.uk.  1799    IN    A    92.52.106.34

Теперь вы можете перезапустить браузер (чтобы очистить его кэш-памяти) и перейти по адресу. Ваш браузер должен перейти на новый IP-адрес, на который перемещен веб-сайт.

Для проверки вы можете использовать команду dig онлайн. Так как вы будете использовать его имена серверов, а не свой, то ждать ответа придется дольше.

У большинства записей DNS время жизни составляет 86400 секунд (24 часа). Это добавляет задержку от 0 до 24 часов, в среднем 12 часов. Таким образом, общая задержка может быть от 0 до 48 часов.

Обратите внимание, что при смене сервера имен для домена – процесс аналогичен. Чтобы отслеживать изменения вы можете использовать nslookup и dig.

Сведите к минимуму задержки при перемещении сайта

Есть несколько методов для сокращения или устранения задержки.

1 Сделать задержку несущественной

Если сайт является статическим и никогда не меняется, то копии со старого и нового хоста будет достаточно. Посетители не смогут сказать, на какой версии сайта они находятся. Если вы захотите закрыть динамическое содержание (такое как выключение комментариев к блогу на выходные), то можете сделать веб-сайт статичным на время периода передачи.

2 Обновление баз данных через Интернет

Все крупные веб-сайты используют базу данных, которая обновляется благодаря пользователям (комментарии в блогах и элементы в корзине покупок). При перемещении такого сайта задержки DNS можно подвергать только файлы (HTML, PHP, ASP и т.д.), а не данные. Как и в пункте выше нужно сделать точную копию файлов сайта на новый хост. Затем настроить новый хост для доступа к базе данных на старом компьютере (что может потребовать настройки брандмауэра). Далее сделать изменения DNS и переждать задержку. Затем, в удобное время, когда посещаемость небольшая, передать базу данных.

3 Измените TTL

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

Вы можете изменить TTL с 86400 секунд до 300 секунд (5 минут), а затем подождать день, пока все сервера имени узнают об этом. Далее скопируте веб-сайт и базу данных как можно быстрее, внесите изменения DNS – все узнают об этом в течение 5 минут.  Потом измените TTL назад на 86400 секунд (некоторые хосты, такие как Rackspace, делают это автоматически через несколько дней).

Электронная почта

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

Заключение

24-х или 48-часовая задержка DNS вызвана 2-мя факторами:
- Временем, необходимым вашему регистратору или хосту, чтобы обработать ваш запрос DNS (который может длиться от нескольких минут до 24 часов).
- Временем, необходимым серверу имени, чтобы узнать об изменениях (обычно это 24 часа).

Надеемся, эта статья дала вам понимание основ.

Только зарегистрированные пользователи могут оставлять комментарии.
Войдите в систему или зарегистрируйтесь