Pull to refresh

Comments 30

Спасибо, база, которой не хватает начинающим и часто бывалым ИТ специалистам.

Хочется узнать больше - как стать авторитетным или корневым сервером, как хранится маппинг имя-адрес, какая БД используется, или тип хранения, сколько "весит" интернет?

как стать авторитетным или корневым сервером

Разворачиваете свой DNS-сервер (например, на Bind, PowerDNS), просите регистратора домена создать NS-запись с вашим IP-адресом в корневой зоне (например, ns1.broderix.com. => 1.2.3.4). Либо просто в управлении NS-записями добавляете A-запись, указывающую на ваш DNS сервер

как хранится маппинг имя-адрес

В Bind, например, это обычные текстовые файлики, если пропустить заголовки, то записи выглядят примерно так:

api.example.com. IN A 1.2.3.4
www.example.com. IN NS ns1.godaddy.com.

какая БД используется

В Bind - текстовые файлы, PowerDNS поддерживает разные бэкенды для хранения - как файлы Bind, так и MySQL, Postgres, SQLite итд.

сколько "весит" интернет

Сами DNS-зоны, скорее всего, немного - на один жёсткий диск все домены интернета должны с запасом влезть )

CNAME-записи (Canonical Name Records):

  • Функция: создание алиасов для доменов, перенаправление одного доменного имени на другое.

Это не алиасы, а именно перенаправление, как 301/302 ответ http-сервера. Не смотря на то что это перенаправление, ответ приходит полностью.

Hidden text
id 35059
opcode QUERY
rcode NOERROR
flags QR RD RA
;QUESTION
www.ya.ru. IN A
;ANSWER
www.ya.ru. 268 IN CNAME ya.ru.
ya.ru. 268 IN A 5.255.255.242
ya.ru. 268 IN A 77.88.55.242
ya.ru. 268 IN A 77.88.44.242
;AUTHORITY
;ADDITIONAL

А алиасы возвращают адрес указанного домена, как будто это обычная A/AAAA-запись. Например Amazon-DNS такое поддерживает. Вероятно, этот вариант хуже в плане кеширования.

"Alias". Именно так это общепринято называть с 1987 года (на самом деле даже раньше).

https://datatracker.ietf.org/doc/html/rfc1034

Называть это редиректом чревато еще и по другой причине. Вы даже не предстваляете количество людей, которые и без того считают что CNAME записи должна выполнять функцию http-редиректа и пишут гневные тикеты в поддержку регистратора, когда этого не происходит.

Далее, дело прежде всего не в кэшировании, а в том, что CNAME по RFC допустимо указывать только для субдоменов. Некоторые DNS-серверы и интрефейсы позволяют указывать CNAME-запись для доменов любого уровня, но лучше так не делать по многим прчинам, разработчики RFC за просто так установили этот "запрет".

Поскольку появился запрос на подобное не только для субдоменов, некоторые сервисы начали предлагать то о чем вы пишите. Кто-то называет эту псевдозапись ANAME, кто-то иначе. Суть в автоматически изменяемой A/AAAA-записи.

Что касается кеширования, и оценки в терминах лучше/хуже. Смотря для каких целей. CNAME не кешируется (по стандарту, а на практике бывает всякое), поэтому широко используется для гео лоад балансингов вместо или вместе с BGP anycast и т.п.

Спасибо, буду иметь в виду.

где в наглядности файлик hosts. DOH.. И почему именно браузер а не ssh какой нить?

Да нет никакой разницы, что браузер, что “ssh какой нить” дёргают gethostbyname(3). Просто в браузер нынче любая кухарка умеет, а пример с “ssh какой нить” не все поймут.

так это и любопытно же, gethostbyname всегда так должен работать , или от либы / оси зависит? lwIP какой нить может в наглядности что то пропустить?

От NSS зависит.

Можете расписать как происходит создание и управление поддоменами?

Точно так же.
"Поддомен" это просто домен нижнего уровня по отношению к "основному домену". Создаем DNS-записи на DNS-серверах - появляется "поддомен". Никакой магии.
И да, у субдомена также могут быть свои DNS-серверы (которые указываются в NS-записях, отдаваемых с авторитативных DNS-серверов "основного домена").

Создаем DNS-записи на DNS-серверах - появляется "поддомен". Никакой магии.

Магии там нет, только вот человеку, которые впервые подступает к DNS, такой ответ не говорит решительно ни о чём. Какие именно DNS-записи на каких именно DNS-серверах?

Пара слов о glue-records раскрыли бы тему. И тут действительно никакой магии. Вот древняя статья здесь же, на Хабре.

Конечно, постараюсь в ближайшие несколько дней написать подробную статью про поддомены. Но если быть кратким, то поддомены принадлежат основному домену, но находятся уровнем ниже. Например, у www.example.ru поддоменом может быть forum.example.ru.

Что касается создания, то коллега @regway отметил правильно, что принципиальных различий здесь нет. Поскольку для создания поддомена требуется внесение записи на DNS сервер (название поддомена, тип, TTL, IP).

Подскажите, есть ли в домашних роутерах (D-link, Keenetic и прочие) функционал DNS-сервера для локальной сети, которую этот роутер обслуживает?

Не скажу за приведенных производителей, но Mikrotik точно поддерживает создание записей

Не скажу за все Кинетики, но из тех, что я видел, был только модуль динамического DNS, DNS-сервера не было. В Кинетиках есть возможность игнорировать DNS провайдера и подключить сторонние DNS, в том числе DoH и DoT.

В 80-99% домашних роутеров есть функционал DNS сервера, различия больше в возможностях управления этим сервером (например добавление собственных доменов для домашней сети, типа mynas.home.
В кинетике некоторые штуки есть в веб-морде, некоторые в CLI, а при желании ставится сторонний DNS сервер из Entware, например Adguard Home.

Классная статья, так раз что надо для меня и для тех кто только начинает осваивать.

Там много про что "забыли". Даже про SOA и TTL нет упоминания.

Из интересного, на чем спотыкаются большинство новичков по теме доменов и DNS: про работу кэшей, про glue records, про Child NS и многое другое можно написать.

Про протоколы, про DoH/DoT/DoQ, но это скорее отдельная тема.

Но пост называется "Основы DNS", и учитывая что типичный IT-специалист нового поколения не знает даже этой базы, статья востребована и полезна даже в столь урезанном виде.

P.S. С приходом массовой популярности к сервисам типа CF мы наблюдаем резкое снижение среди клиентов... понимания даже сильно более базовых вещей, связанных с доменами. Поэтому я искренне рад, когда кто-то публикует статьи для новичков, вижу что тема им инетересна, и есть фидбек.

Подскажите, в контексте DNS термины авторитетный и авторитативный являются полными синонимами?

Насколько мне известно, авторитетный и авторитативный в контектсе DNS - синонимы. Также можете встретить синонимы master и primary, которые означают то же самое.

Неверно. authoritative != primary

An authoritative name server can either be a primary server or a secondary server. Historically the terms master/slave and primary/secondary were sometimes used interchangeably but the current practice is to use the latter form. A primary server is a server that stores the original copies of all zone records. A secondary server uses a special automatic updating mechanism in the DNS protocol in communication with its primary to maintain an identical copy of the primary records.

https://en.wikipedia.org/wiki/Domain_Name_System

Нет такого слова “авторитативный”, это буквально транслит с “authoritative” (англ), которое и переводится как “авторитетный.”

А почему не авторитарный? Если учитывать историю вопроса, есть основания называть и так.

Можно конечно включить режим зануды-граммарнаци на полную, и запретить (разумеется, законодательно) употребление слова компьютер и называть его ЭВМ.

А в профессиональной среде устоявшиеся названия тем более не редкость, и это далеко не единственный пример когда термины являются транслителированной калькой с английского.

"Баг-трекер" в словаре Ожегова тоже не найдете.

P.S. https://www.icann.org/ru/icann-acronyms-and-terms/authoritative-name-server-ru

Хорошо, почему когда запускаешь docker контейнер в режиме VMACLAN это когда выдается IP напрямую от роутера, в роутере контейнер не регистрируется по имени? И ты не можешь из локалки достучаться к нему по имени? Внутри роутера около этого контейнера в NAME: просто пустота. А если запустить виртуальную машину в таком же режим (аналогичном бридж), то роутер так же выдает и IP и регистрирует имя машины. И ты можешь к ней достучаться по http://myvirtualmachine/

Кратко и понятно. Но статье нет краткой информации про обратную зону, про DNSSEC, работу DNS в среде Active Directory

Sign up to leave a comment.

Articles