Как работает 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-адресах.
whois
Рассмотрим пример простого запроса информации о домене.
alex@mail:/# whois p3.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: P3.RU nserver: ns1.p3.ru. 195.182.8.12 nserver: ns2.p3.ru. 91.196.136.6 state: REGISTERED, DELEGATED, VERIFIED org: JSC Tranzit Telecom registrar: R01-REG-RIPN admin-contact: https://partner.r01.ru/contact_admin.khtml created: 2005.08.23 paid-till: 2013.08.23 free-date: 2013.09.23 source: TCI Last updated on 2012.08.22 19:16:35 MSK
Из полученной информации виден регистратор домена, дата регистрации, владельца домена и сервера имен хостинг-провайдера, которые и интересны в данном случае. Данное приложение есть как в операционных системы семейства unix, так и под Windows, также множество онлайн-сервисов предлагают эту функцию (www.who.is, ).
dig
Второе и не менее полезное приложение - dig. Это так же аббревиатура от английского “domain information groper”. Это приложение предоставляет пользователю интерфейс командной строки для отправки запросов к DNS-серверам. В UNIX-системах оно поставлется в дистрибутиве с bind, но существует портированная версия и для Windows.
Рассмотрим работу с dig.
После того, как вы получили информацию о серверах имен провайдера, на которых должен быть ваш домен, вы можете проверить корректность настройки доменного имени на своем сервере. Для этого вам необходимо выполнить несколько запросов.
alex@mail:/# dig p3.ru ;; <<>> DiG 9.7.3 <<>> p3.ru ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64279 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2 ;; QUESTION SECTION: ;p3.ru. IN A ;; ANSWER SECTION: p3.ru. 10800 IN A 195.182.8.32 ;; AUTHORITY SECTION: p3.ru. 10800 IN NS ns1.p3.ru. p3.ru. 10800 IN NS ns2.p3.ru. ;; ADDITIONAL SECTION: ns1.p3.ru. 10800 IN A 195.182.8.12 ns2.p3.ru. 10800 IN A 91.196.136.6 ;; Query time: 0 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Wed Aug 22 19:20:04 2012 ;; MSG SIZE rcvd: 107
Данной командой мы запросили с сервера, где расположено доменное имя и сайт, информацию том, какому IP-адресу принадлежит доменное имя, на какие сервера имен проделегирован.
Далее проверяем наличие домена на самих серверах имен хостинг-провайдера.
alex@mail:/# dig p3.ru @ns1.p3.ru ; <<>> DiG 9.7.3 <<>> p3.ru @ns1.p3.ru ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56754 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2 ;; QUESTION SECTION: ;p3.ru. IN A ;; ANSWER SECTION: p3.ru. 10800 IN A 195.182.8.32 ;; AUTHORITY SECTION: p3.ru. 10800 IN NS ns1.p3.ru. p3.ru. 10800 IN NS ns2.p3.ru. ;; ADDITIONAL SECTION: ns1.p3.ru. 10800 IN A 195.182.8.12 ns2.p3.ru. 10800 IN A 91.196.136.6 ;; Query time: 0 msec ;; SERVER: 195.182.8.12#53(195.182.8.12) ;; WHEN: Wed Aug 22 19:21:37 2012 ;; MSG SIZE rcvd: 107
Как видно из вывода, этот запрос вернул информацию о том, где расположен сам сайт. Эту же информацию он передает и корневым 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 2012.08.22 19:21:40 MSK
Означает, что домен не зарегистрирован, либо домен зарегистрирован, но сервис whois пока не обновил информацию об этом.