Резолване (resolution) на домейн име

Помощен център

Резолване (resolution) на домейн име

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

DNS клиентите могат да правят два типа запитвания: рекурсивни (recursive) и итеративни (iterative).

Кеширане и time to live TTL

Когато сървър обработва рекурсивнo запитване, може да се наложи да изпрати няколко запитвания, докато намери окончателния отговор. Сървърът кешира цялата информация, която получава по време на този процес, за време, което е посочено в получените данни. Този период от време се нарича time to live (TTL) и се измерва в секунди.

Администраторът на неймсървъра на основната (primary) зона, съдържаща данните, определя стойността на TTL.

По-малките стойности на TTL помагат да се гарантира, че информацията за домейна е по-последователна в цялата мрежа, в случай че тези данни се променят често.

Това обаче също така увеличава натоварването на неймсървърите на домейна, а също така увеличава интернет трафика. Тъй като данните са кеширани, промените в ресурсните записи няма да са незабавно достъпни в глобалната интернет мрежа.

След кеширане на данните DNS неймсървъра трябва да започне да намалява TTL от първоначалната стойност, така че да знае кога да изчисти данните от кеша.

Когато DNS сървъра отговаря на запитване с кешираните данни, той включва оставащия TTL период за данните. Резолверът може да кешира тези данни, използвайки TTL, изпратен от сървъра.

Негативно кеширане

В допълнение към кеширане на запитванията за резолване, DNS резолверите и неймсървърите могат също така да кешират отрицателни отговори, т.е. информацията, когато конкретен ресурс (RRset) или домейн име не съществува.

Негативното кеширане може да намали времето за отговор при отрицателни отговори. То може също да намали мрежовия трафик, като намали броя на съобщенията, които трябва да се изпращат между резолверите и неймсървърите или между неймсървърите.

Официалната документация допуска негативното кеширане да бъде по избор или да се ползва допълнителен резолвер, в случай че се кешират всички отговори (RFC1034 и RFC2308).

По определен начин неймсървърите препращат кешираните отрицателни отговори към резолверите и както при обикновеното кеширане, те трябва да започнат да намаляват TTL от момента на получаване на отговор.

Рекурсивни и итеративни запитвания

При рекурсивно запитване за резолване на домейн DNS клиентът изисква неймсървъра да отговори на клиента с искания ресурсен запис или със съобщение за грешка, в което се посочва, че записа или домейна не съществува. DNS сървърът не може да пренасочи DNS клиента към друг DNS сървър.

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

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

При итеративно запитване за резолване на домейн име DNS клиента позволява на DNS сървъра да върне най-добрия отговор, който може да даде на базата на кеш или зонови данни.

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

След това DNS клиентът изпраща запитването към DNS сървъра, посочен в пренасочването.

Този процес продължава докато се открие авторитетен нейм сървър за домейна или докато не бъде изпълнено условие за грешка или изтичане на времето за проверка (time-out).

Може да срещнете описания по-горе процеса под името обхождане на дървото.

Примерно резолване (resolution) на домейн име

В следващия пример DNS клиент се нуждае от IP адреса на subdomain.example.com.

Изпълнява се следната поредица от действия:

  1. DNS клиентът изпраща към NameServer рекурсивно запитване за subdomain.example.com. Сега сървърът трябва да върне отговора или съобщение за грешка.
  2. NameServer проверява кеша и зоните си за отговора, но не намира търсената информация, затова изпраща итеративно запитване за subdomain.example.com към сървъра, който е авторитетен за глобалния интернет (т.е.root сървъра).
  3. root сървърa не знае отговора, така че той отговаря с пренасочване към неймсървър, който е авторитетен за домейна .com.
  4. NameServer се свързва с авторитетния неймсървър за TLD домейна .com с итеративнo запитване за subdomain.example.com.
  5. Авторитетния неймсървър за домейна .com не знае точния отговор, така че той отговаря с пренасочване към неймсървър, който е авторитетен за домейна example.com.
  6. NameServer се свързва с авторитетния неймсървър за домейна example.com с итеративнo запитване за subdomain.example.com.
  7. Авторитетния неймсървър за домейна example.com знае отговора. Той отговаря с искания IP адрес.
  8. NameServer връща отговара на запитването на DNS клиента с IP адреса за subdomain.example.com.