Учебни записки

1. Основи на Интернет

1.5. DNS - Система за имена на домейните

Домейните са въведени с цел удобство на потребителите на Интернет, (хората по-лесно запомнят домейни вместо IP адреси), но технически за комуникацията между устройствата в Интернет се използват IP адреси. Ето защо в Интернет съществува разпределена база данни, която определя на всеки домейн кой IP адрес съответства. Тази база данни се състои от записи, всеки от които съдържа домейн и съответен IP адрес. Записите за различните домейни се намират на различни сървъри, наричани DNS сървъри, свързани в обща система, известна като система за имена на домейните (Domain Name System, или съкратено: DNS)

Основна задача на системата за имена на домейните е бързото и безпроблемно подаване на информация кой е IP адресът на даден домейн, към всяко приложение, което заяви, че се нуждае от такава информация. Освен DNS сървъри в системата за имена на домейните участва и софтуер, чиято задача е да открие кой сървър пази записа на съответния домейн и да получи от него IP адреса.

DNS сървърите се поддържат в строго установена йерархична система от връзки помежду си. Всеки DNS сървър е отговорен за актуалността и точността на информацията относно IP адресите на ограничен брой домейни, които съставляват така наречена зона от домейни на този DNS сървър.

На върха на йерархията от DNS сървъри са 13  коренови сървъри за имена (Root name server - en.wikipedia.org, IANA - Root Servers), отговорни за домейните от първо ниво. При получаване на заявка за някой домейн тези сървъри връщат като резултат списъците на други DNS сървъри отговорни за конкретен домейн от първо ниво. Сървърите, отговорни за иманата от първо ниво, връщат като отговор списък с имена на други DNS сървъри, отговорни за конкретния домейн от второ ниво и така нататък, докато се стигне до DNS сървъра разполагащ със записа на конкретния домейн, който връща като резултат съответния IP адрес.

Работата на всеки DNS сървър се състои в това да получава  домейни по заявки от клиенти и да връща информация кои са IP адресите на тези домейни или да посочи други сървъри, които са отговорни за тази информация. 

Установяването на IP адреса на даден домейн се осъществява от специален софтуер, наричан DNS резолвър, осигурен от операционната система в компютъра на клиента. Към този софтуер се обръща всеки браузър или друго приложение, използващо домейни. Първият източник на информация, който се проверява от този софтуер, е текстов файл с име hosts, който се намира на самото устройство и съдържа редове, подобни на следния:

127.0.0.1 localhost

(Всеки ред съдържа IP адрес и съответстващ на този адрес домейн.) Ако в този файл е посочен IP адресът на заявения домейн, то той се подава като отговор към приложението клиент, но ако там не фигурира заявеният домейн, то заявка за получаване на IP адрес се подава към най-близкия DNS резолвър, обикновено осигурен от доставчика на Интернет.

Локалният (в компютъра на клиента) софтуер за установяване на IP адреси (DNS резолвър) поддържа кеш, на скоро заявените домейни, с което се спестява обръщането към DNS сървъри и се осигурява бързодействие. Кешът представлява временна таблица, от която бързо се извличат данни, вместо тези данни да се получат чрез, отнемаща по-дълго време заявка. Всеки запис в кеша се съхранява само определено време, след изтичане на което, се прави нова заявка и записът в кеша се обновява. Ако през времето, когато се използват данните от кеша настъпи промяна във "външните" данни, то това се забелязва чак при следващото обновяване на кеша. Такъв механизъм за пазене на данни в кеш се използва и от разположените на сървъри DNS резолвъри и това осигурява бърза доставка на IP адресите и малък брой на заявките до DNS сървърите.

Друго описание на процеса вижте на страницата DNS проверка.