Доменскиот именски систем (англ. 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 податотеката.Presentation by Joe Abley (April 2004). "Introduction to the DNS system".
Проблемот со лошата размерливост на оваа структура ARPANET се обидува да го реши со создавање на хиерархиски простор на имиња.
Во 1984 година Пол Мокапетрис (Paul Mockapetris) од Институтот за информатички науки USC дизајнирал архитектура за новиот систем. Тој ги издал RFC 882 и RFC 883 со кои бил опишан доменскиот именски систем (DNS), во ноември 1987 година биле заменети со RFC 1034 и RFC 1035. Подоцнежните RFC опишуваат различни аспекти на доменскиот именски систем како: потенцијалните безбедносни проблеми на DNS, проблемите околу имплементацијата, административни пропусти, механизми за динамичко ажурирање и за обезбедување на податоци по зони.Paul Albitz, Cricket Liu (May 2006). "DNS and BIND, 5th Edition". O'Reilly.
Даглас Тери (Douglas Terry), Марк Пејнтер (Mark Painter), Дејвид Ригл (David Riggle) и Сонгиан Зоу (Songnian Zhou) во 1984 година ја пишуваат првата Unix имплементација за именување на домени, наречена (The Berkeley Internet Name Domain – BIND). BIND е широко застапен, најчесто на Unix системи и претставува доминантен DNS софтвер користен на Интернет. Поради неговиот отворен код и се пософистицираните напади, се откриени многу пропусти кај BIND. Тоа резултира со развој на алтернативни опслужувачи на имиња и надградба на постоечките, така BIND во својата 9-та верзија бил комплетно репрограмиран од почеток.
Структура на доменскиот именски систем Простор за имиња на доменот
мини|десно|350п|Структура на DNS-просторот за имиња.
Доменскиот именски систем (DNS) има дистрибуирана база на податоци која е индексирана според имињата на домените. Секое име на доменот претставува само патека во една голема податочна структура на инвертирано стебло, наречено простор за имиња на доменот.
На сликата е прикажана структурата на Unix датотечен систем. Стеблото има единствен корен на врвот. Во Unix датотечниот систем тој е наречен „root“ директориум и е претставен со симбол (/). DNS овој директориум го нарекува „корен“. Како и датотечните системи DNS стеблото може да се разгранува на поголем број на гранки после јазлите. Висината на стеблото е ограничена на 127 нивоа.
Имиња на домени
Секој јазол во стеблото има поле со текст кое може да биде со должина од 63 карактери. За коренот е резервирано поле за текст со нулта должина (null). Целосното име на доменот за било кој јазол во стеблото е низа од полиња со текст од тој јазол до коренот. Имињата на доменот секогаш се читаат од јазолот кон коренот, имињата во патеката се одделуваат со точка.
Доколку полето со името на коренот се појавува во името на доменот на јазолот, името ќе се прикаже како да завршува со точка, тоа всушност е точката која го одделува полето за текст со нулта должина на коренот. Кога единствено се појавува името на коренот се запишува со една точка.
Некои софтвери точката која е на крајот на името ја толкуваат како показател дека се работи за апсолутно име на доменот. Апсолутното име се пишува релативно на коренот и недвосмислено ја означува локацијата на јазолот во хиерархијата. Апсолутното име на доменот уште се нарекува целосно квалификувано име на доменот (FQDN). Наспроти ова имињата кои не завршуваат со точка понекогаш се толкуваат како релативни за одредени имиња на домени не само за коренот – како што се имињата на директориумите без коса линија (/) што се толкуваат како релативни за тековниот директориум.Security and Stability Advisory Committee (1 November 2003). "DNS Infrastructure Recommendation".
Домени
Доменот претставува подстебло на доменот на просторот со имиња. Името на доменот на доменот е исто како и името на доменот на јазолот на врвот од доменот. На пример, врв на 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) опслужувачи. Секундарните опслужувачи исто така се авторитативни за таа зона, но тие се ажурираат од примарниот опслужувач со користење на процес на репликација. Најчесто во секоја зона постои само еден примарен опслужувач од кој се ажурираат останатите опслужувачи.Security Technical Implementation Guide (17 October 2007). "DOMAIN NAME SYSTEM". Developed by DISA for the DoD.
опслужувачи за кеширање
опслужувачот за кеширање може да ги разреши барањата на клиентите со два механизми: со проследување понатаму и рекурзија.