Что такое DNS
Сама аббревиатура ’’DNS’’ расшифровывается как Domain Name System (в переводе с английского – “система доменных имён”).
Основная область применения данной системы это преобразование имени хоста* в IP-адрес и предоставления данных о маршрутизации почты.
Принцип работы
Схематично процесс определения IP-адреса по вводимому имени домена можно представить так:
Теперь остановимся немного подробней на описании самой схемы.
Когда пользователь запускает веб-браузер в вводит название домена сайта, его ПК отправляет запрос к DNS-серверу интернет-провайдера для получения IP-адреса, на котором находится домен (1).
Если DNS-серверы провайдера не обнаруживают в своем кеше информации о запрашиваемом сайте, то отправляют запрос на корневые DNS-серверы (2).
Корневой DNS-сервер ищет в своей базе данных информацию о серверах имен хостинг-провайдера, на которых присутствует этот сайт. Далее, он сообщает из кеширующему DNS-серверу провайдера (3).
После того, как кеширующий DNS-сервер провайдера получает информацию о серверах имен провайдера он опрашивает любой из них (4) и, в случае получения положительного результата получения IP-адреса (5), помещает в кеш**.
После этого DNS-сервер провайдера передает IP-адрес браузеру пользователя, совершившему запрос сайта (6).
И уже после этого браузер, получив IP-адрес запрашиваемого сайта, переходит на сам сайт (7 и 8).
Обращаю внимание на то, что обновление информации о сервера имен провайдера происходит не мгновенно, а через некоторое определенное (для каждого DNS-сервера, в зависимости от настроек и провайдера данные значения могут варьироваться) время.
Так же если кто-либо из пользователей вашего интернет-провайдера заходил на сайт и после этого сайт изменил IP-адрес или сервера имен, то в базе данных кеширующего DNS-сервера провайдера останется старая информация до тех пор, пока кеш не обновится. И до этого момента при запросе сайта будет предоставляться устаревшая информация о месторасположении (IP-адрес). Хотя пользователям с других провайдеров сайт может открываться уже с нового IP-адреса.
В основном если у вас возникла вышеописанная ситуация, то волноваться не стоит. Следует подождать некоторое время для обновления информации на корневых DNS-серверах и DNS-серверах провайдера.
А пока вы ожидаете, на всякий случай можете самостоятельно продиагностировать корректность настроек своего домена, либо обратиться в техническую поддержку.
Диагностика
Для проверки корректности настроек параметров доменного имени и диагностики проблем существуют специализированные приложения и сервисы.
Первое из приложений – whois. Основное применение этого приложения это получение информации о доменных именах (владелец домена, регистратор, сервера имен и т.п) и IP-адресах.
Рассмотрим пример простого запроса информации о домене.
vadim@work.sabini.ch:~$ whois firstvds.ru % By submitting a query to RIPN's Whois Service % you agree to abide by the following terms of use: % http://www.ripn.net/about/servpol.html#3.2 (in Russian) % http://www.ripn.net/about/en/servpol.html#3.2 (in English). domain: FIRSTVDS.RU nserver: ns1.firstvds.ru. 82.146.43.2 nserver: ns2.firstvds.ru. 82.146.35.143 state: REGISTERED, DELEGATED, VERIFIED org: ZAO ISPsystem phone: +7 3952 525789 fax-no: +7 3952 525789 e-mail: domain@ispserver.com registrar: REGTIME-REG-RIPN created: 2002.08.07 paid-till: 2011.08.08 source: TCI Last updated on 2011.04.14 05:43:42 MSK/MSD
Из получено информации виден регистратор домена, дата регистрации, владельца домена и сервера имен хостинг-провайдера, которые и интересны в данном случае.
Данное приложение есть как операционные системы семейства unix, так и под Windows. Плюс – большое количество различных онлайн-сервисов предлагают эту функцию.
Второе и не менее полезное приложение – dig. Это так же аббревиатура от английского “domain information groper”. Это приложение предоставляет пользователю интерфейс командной строки для отправки запросов к DNS-серверам. В UNIX-системах оно поставлется в дистрибутиве с bind, но существует портированная версия и для Windows.
Рассмотрим работу с dig.
После того, как вы получили информацию о серверах имен провайдера, на которых должен быть ваш домен, вы можете проверить корректность настройки доменного имени на своем сервере. Для этого вам необходимо выполнить несколько запросов
vadim@work.sabini.ch:~$ dig firstvds.ru @188.120.241.90 ; <<>> DiG 9.7.1-P2 <<>> firstvds.ru @188.120.241.90 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26391 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2 ;; WARNING: recursion requested but not available ;; QUESTION SECTION: ;firstvds.ru. IN A ;; ANSWER SECTION: firstvds.ru. 3600 IN A 188.120.241.90 ;; AUTHORITY SECTION: firstvds.ru. 3600 IN NS ns1.firstvds.ru. firstvds.ru. 3600 IN NS ns2.firstvds.ru. ;; ADDITIONAL SECTION: ns1.firstvds.ru. 3600 IN A 82.146.43.2 ns2.firstvds.ru. 3600 IN A 82.146.35.143 ;; Query time: 71 msec ;; SERVER: 188.120.241.90#53(188.120.241.90) ;; WHEN: Thu Apr 14 15:12:51 2011 ;; MSG SIZE rcvd: 113
Данной командой мы запросили с сервера, где расположено доменное имя и сайт, информацию том, какому IP-адресу принадлежит доменное имя, на какие сервера имен проделегирован.
Далее проверяем наличие домена на самих серверах имен хостинг-провайдера.
vadim@work.sabini.ch:~$ dig firstvds.ru @ns1.firstvds.ru ; <<>> DiG 9.7.1-P2 <<>> firstvds.ru @ns1.firstvds.ru ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 738 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; WARNING: recursion requested but not available ;; QUESTION SECTION: ;firstvds.ru. IN A ;; ANSWER SECTION: firstvds.ru. 3600 IN A 188.120.241.90 ;; Query time: 86 msec ;; SERVER: 82.146.43.2#53(82.146.43.2) ;; WHEN: Fri Apr 15 11:04:49 2011 ;; MSG SIZE rcvd: 45
Как видно из вывода, этот запрос вернул информацию о том, где расположен сам сайт. Эту же информацию он передает и корневым DNS-серверам.
Соответствующим образом проверяются и остальные сервера имен, которые можно посмотреть в выводе команды whois.
Если все выводится корректно (к примеру, как выше), значит все в порядке. И беспокоиться не о чем.
Проблемы и решения.
1. При запросе whois <domain> видно следующее:
% By submitting a query to RIPN's Whois Service % you agree to abide by the following terms of use: % http://www.ripn.net/about/servpol.html#3.2 (in Russian) % http://www.ripn.net/about/en/servpol.html#3.2 (in English). No entries found for the selected source(s). Last updated on 2011.04.15 08:58:42 MSK/MSD
Означает, что домен не зарегистрирован, либо домен зарегистрировался, но сервис whois еще не обновил информацию об этом.
2. При запросе dig <domain> @<IP-адрес VDS> выдается:
; <<>> DiG 9.7.1-P2 <<>> “<domain>” @<IP-адрес VDS> ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 2086 ;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 ;; WARNING: recursion requested but not available ;; QUESTION SECTION: ;<domain>. IN A ;; Query time: 73 msec ;; SERVER: 188.120.246.161#53(188.120.246.161) ;; WHEN: Fri Apr 15 14:12:42 2011 ;; MSG SIZE rcvd: 24
Подобный ответ означает то, что на VDS отсутствует этот домен.
2.1.
; <<>> DiG 9.7.1-P2 <<>> “<domain>” @<IP-адрес VDS> ;; global options: +cmd ;; connection timed out; no servers could be reached
Данный вывод говорит о том, что на сервере, с которого производится запрос информации о доменном имени, возникли проблемы. Это может быть как неработающий named, так и блокировка 53 порта с помощью файрвола.
3.
; <<>> DiG 9.7.1-P2 <<>> <domain> @<IP-адрес VDS> ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1253 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 0 ;; WARNING: recursion requested but not available ;; QUESTION SECTION: ;<domain>. IN A ;; ANSWER SECTION: <domain>. 3600 IN A 123.123.123.123 ;; AUTHORITY SECTION: <domain>. 3600 IN NS ns2.firstvds.ru.<domain>. <domain>. 3600 IN NS ns1.firstvds.ru.<domain>. ;; Query time: 70 msec ;; SERVER: 92.63.103.212#53(92.63.103.212) ;; WHEN: Fri Apr 15 15:49:16 2011 ;; MSG SIZE rcvd: 97
Проблема заключается в том, что при создании доменного имени были указаны некорректные сервера имен. А конкретней – пропущена закрывающаяся точка – в доменном имени ns1.firstvds.ru.
* (Под “хостом” подразумевается компьютер или сервер, подключенной к локальной сети, или интернету.)
** Кеширование используется для того, чтобы снизить как нагрузку на интернет-каналы, так и для ускорения получения результата запроса.