Доменски именски систем

Од Википедија, слободната енциклопедија
Прејди на: содржини, барај

Доменскиот именски систем (англ. Domain Name System - DNS) претставува хиерархиски систем изграден од дистрибуирана база на податоци за компјутери, сервиси и ресурси поврзани во мрежа. Функцијата на доменскиот именски систем е преведување на имињата на домените разбирливи за луѓето во мрежни адреси кои ги користат компјутерите.

Компјутерите кои се поврзани во мрежа користат IP адреси за меѓусебно да се лоцираат и поврзат, овие IP адреси во својата изворна форма корисниците тешко ги запомнуваат. На пример полесно е да се запомни името на доменот www.wikipedia.org отколку да се запомни соодветната IP адреса (208.80.152.2).

Доменскиот именски систем овозможува да се доделуваат имиња на домени на групи од Интернет ресурси и корисници, независно од физичката локација на ентитетот. Имињата на Интернет домените е полесно да се запомнат отколку IP адресите како 208.77.188.166 (IPv4) или 2001:db8:1f70::999:de8:7648:6e8 (IPv6). Корисниците ги чувствуваат бенефициите од ова кога пишуваат URL (Uniform Resource Locator) и адреси на електронска пошта без при тоа да знаат како компјутерот ги лоцира.

Системот ја дистрибуира одговорноста за именување на домените и задавање на тие имиња во IP адреси на авторитативни сервери на имиња. Авторитативните сервери на имиња се одговорни за определени домени, а исто така и можат да бидат доделени авторитативни сервери за поддомените. Ваквиот механизам овозможува DNS да биде дистрибуиран и е елиминирана потребата за постоење на централен регистар до кој постојано ќе се пристапува и ќе биде ажуриран.

Историја на доменскиот именски систем[уреди]

Почетоците на појавата на доменскиот именски систем се забележуваат во текот на 1970-тите години, во рамките на ARPANET. Во тоа време ARPANET се состоела од стотина компјутери поврзани во мрежа. Целокупните информации за мапирање на имињата во адреси за секој од компјутерите во мрежата биле содржани во една единствена датотека со име HOSTS.TXT. Датотеката HOSTS.TXT била одржувана од страна на SRI мрежно – информацискиот центар и била дистрибуирана само од еден компјутер во мрежата, SRI-NIC. Администраторите на ARPANET на определено време ги ажурирале промените со испраќање на електронска пошта до мрежно – информацискиот систем и преку FTP ја превземале најновата верзија на датотеката HOSTS.TXT.

Проблемите се појавиле со порастот на бројот на компјутери во мрежата. Растот предизвикал пропорционално зголемување на датотеката HOSTS.TXT, а исто така бил зголемен и мрежниот сообраќај поради процесот на постојано ажурирање на HOSTS.TXT.

Најголем удар на ваквата структура на ARPANET и задал преминот кон TCP/IP кога бројот на компјутери во мрежата многу се зголемил. Главните проблеми на структурата со HOSTS.TXT датотека биле:

  • Зголемен сообраќај во мрежата и оптоварување на процесорот на SRI мрежно – информациониот систем.
  • Во оваа структура се појавуваат колизии на имињата, бидејќи не постои механизам за да ја спречи појавата на повеќе компјутери со исто име.
  • Невозможноста да се одржи конзистентноста на HOSTS.TXT датотеката.[1]

Проблемот со лошата размерливост на оваа структура ARPANET се обидува да го реши со создавање на хиерархиски простор на имиња.

Во 1984 година Пол Мокапетрис (Paul Mockapetris) од Институтот за информатички науки USC дизајнирал архитектура за новиот систем. Тој ги издал RFC 882 и RFC 883 со кои бил опишан доменскиот именски систем (DNS), во ноември 1987 година биле заменети со RFC 1034 и RFC 1035. Подоцнежните RFC опишуваат различни аспекти на доменскиот именски систем како: потенцијалните безбедносни проблеми на DNS, проблемите околу имплементацијата, административни пропусти, механизми за динамичко ажурирање и за обезбедување на податоци по зони.[2]

Даглас Тери (Douglas Terry), Марк Пејнтер (Mark Painter), Дејвид Ригл (David Riggle) и Сонгиан Зоу (Songnian Zhou) во 1984 година ја пишуваат првата Unix имплементација за именување на домени, наречена (The Berkeley Internet Name Domain – BIND). BIND е широко застапен, најчесто на Unix системи и претставува доминантен DNS софтвер користен на Интернет. Поради неговиот отворен код и се пософистицираните напади, се откриени многу пропусти кај BIND. Тоа резултира со развој на алтернативни сервери на имиња и надградба на постоечките, така BIND во својата 9-та верзија бил комплетно репрограмиран од почеток.

Структура на доменскиот именски систем[уреди]

Простор за имиња на доменот[уреди]

Структура на DNS-просторот за имиња.

Доменскиот именски систем (DNS) има дистрибуирана база на податоци која е индексирана според имињата на домените. Секое име на доменот претставува само патека во една голема податочна структура на инвертирано стебло, наречено простор за имиња на доменот.

На сликата е прикажана структурата на Unix датотечен систем. Стеблото има единствен корен на врвот. Во Unix датотечниот систем тој е наречен „root“ директориум и е претставен со симбол (/). DNS овој директориум го нарекува „корен“. Како и датотечните системи DNS стеблото може да се разгранува на поголем број на гранки после јазлите. Висината на стеблото е ограничена на 127 нивоа.

Имиња на домени[уреди]

Секој јазол во стеблото има поле со текст кое може да биде со должина од 63 карактери. За коренот е резервирано поле за текст со нулта должина (null). Целосното име на доменот за било кој јазол во стеблото е низа од полиња со текст од тој јазол до коренот. Имињата на доменот секогаш се читаат од јазолот кон коренот, имињата во патеката се одделуваат со точка.

Доколку полето со името на коренот се појавува во името на доменот на јазолот, името ќе се прикаже како да завршува со точка, тоа всушност е точката која го одделува полето за текст со нулта должина на коренот. Кога единствено се појавува името на коренот се запишува со една точка.

Некои софтвери точката која е на крајот на името ја интерпретираат како индикатор дека се работи за апсолутно име на доменот. Апсолутното име се пишува релативно на коренот и недвосмислено ја означува локацијата на јазолот во хиерархијата. Апсолутното име на доменот уште се нарекува целосно квалификувано име на доменот (FQDN). Наспроти ова имињата кои не завршуваат со точка понекогаш се интерпретираат како релативни за одредени имиња на домени не само за коренот – како што се имињата на директориумите без коса линија (/) што се интерпретираат како релативни за тековниот директориум.[3]

Домени[уреди]

Карактеристики на домен.

Доменот претставува подстебло на доменот на просторот со имиња. Името на доменот на доменот е исто како и името на доменот на јазолот на врвот од доменот. На пример, врв на google.com е јазолот со име google.com.

Доменот може да има неколку свои подстебла наречени поддомени. Термините домен и поддомен се користат наизменично. Терминот поддомен е релативен, бидејќи доменот претставува поддомен на друг домен доколку коренот на поддоменот се наоѓа во друг домен.

Наједноставен начин за да се утврди дали доменот е поддомен на друг домен е преку споредување на нивните имиња на домени. На пример доменот mail.google.com мора да е поддомен на google.com, бидејќи mail.google.com завршува со google.com, понатаму и google.com е поддомен на com.

Покрај тоа што кон домените може да се обраќа со релативни термини – како поддомени на други домени, кон домените може да се обраќа и според нивото. Нивото ја определува позицијата на доменот во доменот на просторот со имиња.

  • Домените од прво ниво претставуваат деца на коренот.
  • Домени од второ ниво претставуваат деца на домените од прво ниво итн.
Домени од прво ниво[уреди]

Оригиналните домени од прво ниво го разделуваат Интернет просторот за имиња на доменот на седум домени: com – комерцијални организации, edu – организации од областа на едукацијата, gov – владини организации, mil – воени организации, net – порано користен од организации кои обезбедувале мрежна инфраструктура, од 1996 година овој домен е отворен за сите комерцијални организации, org – порано бил користен само од некомерцијални организации, но по 1996 година ограничувањата биле отстранети, int – интернационални организации.

Покрај овие домени постоел и друг домен arpa, користен за време кога ARPANET вршела транзиција од табелите за компјутери од мрежата во DNS, но поради проблемите со безбедноста тој бил напуштен.

Поради забрзаната интернационализација на Интернетот, наместо да постојат само основните домени од прво ниво кои ќе ја опишуваат целокупната организациона структура се одлучило да се внесат и географски одредници. На тој начин за сите земји биле резервирани одредници кои ќе одговараат на земјите.

Во 2000 година, организацијата која го одржува доменскиот именски систем (DNS), креирала дополнителни 7 домени во прво ниво за посоодветно да се сместат организациите во доменот со имиња. Тоа се: aero, biz, coop, info, museum, name, pro. Во 2005 година биле одобрени и домените jobs и travel. Исто така има и други предлози кои се евалуираат.

Сервери на имиња[уреди]

Примарна функција на серверот на имиња е да им одговори на клиентите кои бараат информации од DNS. Иако серверите на имиња можат да бидат конфигурирани на различни начини, општоприфатени се два типа на конфигурации на сервери на имиња.

  • Авторитативни: сервери кои чуваат записи за зони за една или повеќе DNS зони.
  • Сервери за кеширање: овозможуваат одговори засновани на серија од записи зачувани на други сервери на имиња или од кеш на одговори добиени од претходни барања.

Првиот тип на сервер на имиња е наречен авторитативен сервер на имиња бидејќи може да одговори авторитативно кога од него се бара информација за записи во една од неговите зонски датотеки.

Вториот тип на сервер на имиња е наречен сервер за кеширање бидејќи ги кешира барањата кои ги разрешува во име на клиентите. Повеќето компјутери на Интернет не пребаруваат директно со доставување на барање на авторитативниот сервер, наместо тоа испраќаат барање до некој од серверите за кеширање. Серверите за кеширање уште се нарекуваат и рекурзивни или разрешувачки сервери на имиња.

Серверот на имиња може да биде истовремено и авторитативен и за кеширање, но таквата конфигурација не се смета за безбедна. Кога авторитативниот е и сервер за кеширање, авторитативните и надворешните барања се чуваат во кеш. Тоа значи дека доколку злонамерен корисник успее да го измени кешот преку надворешни барања, таквиот корисник ќе биде во можност да ги измени одговорите на барањата кои серверот ги дава за легитимни барања. Ризикот се елиминира со разделување на авторитативната функција од функцијата на разрешување.

Авторитативни сервери на имиња[уреди]

Во повеќето зони за да се обезбеди непреченост на операциите се користат два или повеќе авторитативни сервери. Авторитативниот сервер каде се чува главната копија на податоците за таа зона се нарекува примарен (master) сервер со имиња. Тој ги вчитува податоците за зоната од локална датотека за зоната која е креирана од администраторот на базата на податоци на DNS.

Секој примарен сервер во зоната може да има еден или повеќе од него зависни сервери – секундарни (slave) сервери. Секундарните сервери исто така се авторитативни за таа зона, но тие се ажурираат од примарниот сервер со користење на процес на репликација. Најчесто во секоја зона постои само еден примарен сервер од кој се ажурираат останатите сервери.[4]

Сервери за кеширање[уреди]

Серверот за кеширање може да ги разреши барањата на клиентите со два механизми: со проследување понатаму и рекурзија. Механизмот за проследување понатаму му овозможува на серверот да го проследи понатаму барањето на клиентот до друг сервер за кеширање. Со рекурзијата серверот на имиња рекурзивно пребарува друг сервер со имиња кој има авторитативни информации за имињата за да ги превземи записите што клиентот ги побарал. Некои сервери можат да бидат конфигурирани да вршат рекурзивна функција за повеќето барања и исто така да извршуваат препраќање на специфични барања.

Серверите за кеширање ги зачувуваат резултатите од пребарувањата во меморија, со тоа се зголемува брзината на пронаоѓање на истите записи. Кешираните записи се чуваат определено време во меморијата потоа се ослободуваат.

Кога серверот за кеширање се обидува да го разреши името на компјутерот од мрежата, прво пребарува во својата меморија за најниските нивоа во DNS архитектурата кои можат да го разрешат барањето.

Кога ќе се иницијализира системот, серверот за кеширање нема претходно зачувани информации и затоа мора да се стартува заедно со авторитативните сервери на имиња.

Разрешувачи[уреди]

Друга клучна компонента на DNS е разрешувачот за клиенти, негова задача е да ги формулира и испраќа DNS барањата до серверите на имиња.[5] Повеќето разрешувачи се едноставни, можат да се најдат на обичен компјутер или на серверски компјутерски систем кој користи DNS.

Разрешувачите најчесто се конфигурирани со листа од два или три сервери за кеширање и со тоа се осигурува непреченост во функционирањето во случај да не е достапен примарниот сервер.

Исто така треба да постојат ограничувања на време, бидејќи можно е разрешувачот да не добил одговор на првото барање, додека на наредното барање со иста содржина да го добие барањето.

Од серверска страна првото барање го остава да чека додека да најде достапен сервер, за второто барање успева да пронајде друг сервер кој ќе го услужи, во тој случај првото барање останува неодговорено поради долгото време на чекање на серверот).[6] Од страната на корисникот изгледа како првото барање да не успеало на првиот обид, но на повторен обид се добил одговор.

DNS во реалниот свет[уреди]

Функција на разрешувачот во оперативниот систем.

Корисниците најчесто не комуницираат директно преку DNS разрешувач. Наместо со примена на разрешувач, процесот на DNS разрешувањето се одвива транспарентно во клиентските апликации како Веб прелистувачите, клиентите за електронска пошта и други Интернет апликации. Кога ќе се појави барање за кое е потребно DNS пребарување, ваквите програми испраќаат барање за разрешување до локален DNS разрешувач во оперативниот систем и потоа тој ја раководи потребната комуникација.

DNS разрешувачот во кеш ги има најскоро добиените барања, ако во кешот го содржи одговорот, разрешувачот ќе врати вредност до програмата која го издаде барањето. Ако потребните информации не се наоѓаат во кеш тогаш барањето се проследува до DNS сервер.

Најчесто Интернет провајдерот до кој се поврзува корисникот го одредува DNS серверот, во случаи каде компаниите користат свој DNS сервер тогаш разрешувачот се обраќа до него.

Резултатите од серверот пристигаат до разрешувачот (доколку е добиен одговор), разрешувачот потоа го кешира барањето и го предава резултатот до програмата која го издаде барањето.[7]

Наводи[уреди]

  1. Presentation by Joe Abley (April 2004). "Introduction to the DNS system".
  2. Paul Albitz, Cricket Liu (May 2006). "DNS and BIND, 5th Edition". O'Reilly.
  3. Security and Stability Advisory Committee (1 November 2003). "DNS Infrastructure Recommendation".
  4. Security Technical Implementation Guide (17 October 2007). "DOMAIN NAME SYSTEM". Developed by DISA for the DoD.
  5. Origin (June 1999). "Domain Name System".Origin BV.
  6. Libor Dostalek, Alena Kabelova (March 2006). "DNS in Action". Packt Publishing.
  7. http://www.swansonmedia.com/domain/domain-name-system.html