Как работает DNS. Общие сведения, диагностика и решение проблем.

Что такое DNS

Сама аббревиатура ’’DNS’’ расшифровывается как Domain Name System (в переводе с английского — “система доменных имён”).
Основная область применения данной системы это преобразование имени хоста* в IP-адрес и предоставления данных о маршрутизации почты.

Принцип работы

Схематично процесс определения IP-адреса по вводимому имени домена можно представить так:

dnsЭто весьма сложная процедура и именно в поэтому возникает основная масса проблем и вопросов при переносе доменного имени, либо его регистрации.

Теперь остановимся немного подробней на описании самой схемы.
Когда пользователь запускает веб-браузер в вводит название домена сайта, его ПК отправляет запрос к 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> выдается:
2.1.
; <<>> 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.2.
; <<>> 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.

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


Поделиться информацией с друзьями!

Чтобы не пропустить обновления, подпишись на RSS или почтовую рассылку (свой выбор сделали уже 128 человек!)

Оставить комментарий