Как работает DNS?
О путешествии DNS запроса в глобальной сети. Шаги которые преодолевает каждый DNS запрос когда мы набираем доменное имя в строке браузера:
- Проверка ip в локальном кэше
- Запрос к resolver серверу
- Запрос к корневому root серверу
- Сервер верхнего уровня TLD
- Авторитативный сервер
Существует 3 типа запросов:
- Recursive (Рекурсивный) - найти ip адрес домена domain.com
- Iterative (Итеративный) - найти ip адрес домена domain.com или авторитативный dns сервер
- Inverse (Обратный) - найти имя домена по известному IP адресу
Резолвер сервер находится у провайдера или указывается в настройках коннекта (8.8.8.8/1.1.1.1). Делает сопоставление имени пришедшего адреса в своем кэше.
Если не находит, отправляет запрос к корневому рут серверу. Это сервер который находится на самом верху DNS иерархии. Важно сказать что рут сервер не один, их множество. Но и рут сервер не скажет нам ip адрес.
Root сервер подскажет к какому серверу обратиться дальше, как в регистратуре поликлиники.
Это некая оптимизация поиска ip в общей куче, разделив задачу поиска по ветвлениям наподобие поиска по BTREE дереву. К примеру при поиске комплектующих ПК, когда нам нужно купить ОЗУ, мы просто выберем категорию товара, а не будем листать весь ассортимент в магазине.
И нас направляют к серверу верхнего уровня (TLD - top level domain)
Домены верхнего уровня это то что идет после последней точки (.org, .ru)
Где можно выделить подгруппы:
- Generic Top Level Domain (gTLD), они не привязаны к географии страны (.edu образовательные, .ai искусственный интеллект)
- Country Code Top Level Domain (ccTLD) - обозначающие географическую привязку (.ru, .kz)
Путь выглядит следующим образом, резолвер приходим к рут серверу, спрашиваем у него "Какой адрес IP у domain.ru", рут отправит к ccTLD серверу так как домен верхнего уровня .ru. Резолвер отправляет запрос к ccTLD серверу, а дальше ccTLD отправляет на уровень ниже - к серверу авторитативных имен который выдаст нужный нас IP адрес ну или он может также ничего не найти в своих записях в таком случае домен может находится в стадии обновления DNS записей (как при парковки домена) или в принципе его может не существовать.
Узнав IP адрес искомого домена, резовлер запишет его в локальный кэш чтобы снова не повторять цепочку всех действий.