primary dns server что это
Первичный и вторичные DNS
Вступление
Протоколы DNS являются частью основных стандартов Интернета. Они определяют процесс, при котором один компьютер может найти другой компьютер на основе его имени. Реализация протоколов DNS означает, что сервер содержит все программное обеспечение, необходимое для создания запросов и ответов службы доменных имен.
Примечание: BIND это программа для реализации протоколов системы доменных имен (DNS). Название BIND расшифровывается как “Berkeley Internet Name Domain”, так как программное обеспечение возникла в начале 1980-х годов в университете Калифорнии в Беркли. В последние годы слово BIND стала больше, чем аббревиатура.
Первичный и вторичный DNS
Первичный (primary, master) сервер DNS
Master сервер DNS хранит полную, оригинальную базу данных своей доменной зоны. Данные хранятся в файлах.
При запросе к первичному серверу DNS, он дает авторитативный ответ, благодаря которому по домену находится IP ресурса.
Важно понимать, что только на master сервере можно вносить изменения в базу данных DNS. Повторюсь, только на первичном сервере DNS, хранится база данных доменных имен прикрепленной к серверу доменной зоны этого DNS.
Вторичные (secondary, slave) сервера DNS
Как я уже упомянул, для каждой доменной зоны должно быть создано или прикреплено минимум два сервера DNS. Именно минимум. Число вторичных серверов может быть до 12. В большинстве своем, такое количество вторичных серверов это перебор. Как правило, с запасом, достаточно трех вторичных DNS. Да вы и сами видели, что у любого регистратора доменных имен, не больше четырех полей для ввода адресов DNS серверов. Один для первичного сервера, три – для вторичных.
На вторичных DNS серверах база данных имен не храниться, она периодически считывается с первичного сервера, естественно по сети. Периодичность считывания, определяется в записи DNS типа SOA (параметр Refresh, в секундах). Обычно, 3600 секунд, то есть информация на вторичном сервере обновляется каждый час.
Обращу внимание, что считывать данные любой вторичный сервер может не только с первичного сервера, но и любого вторичного. В этом случае, этот сервер с которого считывается информация, будет master сервером для вторичного сервера.
Как лучше разместить первичный и вторичные DNS
Нужно понимать, если DNS сервер «падает», то все сайты, находящиеся в доменной зоне этого DNS падают тоже. Если падает первичный сервер, отвечать на запросы начинают последовательно вторичные DNS сервера. А вот тут и проблема, если все DNS сервера лежат в одной сети, то при падении этой сети, падают все DNS. Отсюда простой вывод, «не нужно хранить все яйца в одной корзине» или в нашем случае, нужно разнесите DNS сервера по разным хостам, а еще лучше по разным территориальным зонам.
Например, хостинг – провайдер предоставил вам два сервера DNS для вашего домена. Правильнее наоборот, он включил ваш домен в доменную зону своих DNS серверов. Найдите в Интернет, сервер вторичных DNS (платный или бесплатный) и дополните свои первичный и вторичный сервера, сторонними DNS серверами. Тем самым, вы обезопасите свой ресурс на случай падения DNS серверов провайдера.
С хотингами могут быть проблемы с добавлением сторонних DNS серверов. У каждого провайдера, своя «песочница» и он устанавливает свои правила. Некоторые хостинги ограничивают клиентов, только своими DNS. Другое дело если у вас, сервер VPS/VDS. Здесь вы полный хозяин и можете сами создавать DNS сервера на своем домене. И опять-таки, на VPS создайте два своих DNS сервера и дополните их двумя сторонними, и лучше разными, DNS серверами.
Где необходимо регистрировать DNS сервера
DNS сервера должны быть прописаны (зарегистрированы) на вашем хостинге или сервере и у регистратора доменных имен. На сервере вторичных доменных имен вы регистрируете только свой домен и берете их вторичные DNS. Независимо от места прикрепления, ваш домен и ваши DNS сервера должны быть зарегистрированы, а, следовательно, связаны:
Выводы
Сервера вторичных DNS
Приведу несколько серверов, где можно взять вторичные DNS.
При аренде сторонних первичных, да и вторичных DNS серверов, с осторожностью относитесь к импортным DNS хостингам. Попробуйте проверить время их отклика на запрос, для этого есть масса online сервисов. Нормальное время ответа на запрос DNS должен быт от 20 до 120 ms. Хоть у импортных хостингов и сервера разбросаны по всему миру, но, к сожалению, этот мир может быть настолько далеко от вас, что время отклика достигает 800-4000 ms. А это не хорошо.
Как проверить DNS сервера сайта
Для проверки своих и чужих DNS воспользуйтесь любым сервисом Whois – сервиса проверки доменных имен. При проверке не забывайте, что при смене DNS кэширующий сервер очищается каждые 24-72 часа.
Primary dns server что это
Глава 14 DNS: система имен доменов
В этой главе мы рассмотрим, как разборщики общаются с DNS серверами с использованием протоколов TCP/IP (в основном UDP). Однако мы не будем рассматривать установку и администрирование DNS серверов или все опции, существующие у разборщиков и серверов. Это может составить еще одну книгу. (В публикации [Albitz and Liu 1992] приведены подробности функционирования стандартных Unix разборщиков и серверов DNS.)
Пространство имен DNS имеет иерархическую структуру, которая внешне напоминает файловую систему Unix. На рисунке 14.1 показана иерархическая организация DNS.
Рисунок 14.1 Иерархическая организация DNS.
На рисунке 14.2 приведен список обычной классификации семи основных доменов.
com
edu
gov
int
mil
org
Рисунок 14.2 3-символьные общие домены.
Одна важная характеристика DNS, не показанная на рисунке 14.1, это передача ответственности внутри DNS. Не существует организации, которая бы управляла и обслуживала все дерево в целом и каждую метку в отдельности. Вместо этого, одна организация (NIC) обслуживает только часть дерева (домены верхнего уровня), а ответственность за определенные зоны передает другим организациям.
Зона (zone) это отдельно администрируемая часть дерева DNS. Например, домен второго уровня noao.edu это отдельная зона. Многие домены второго уровня поделены на меньшие зоны. Например, университет может поделить свою зону на подзоны по факультетам, а компания может поделить себя на зоны по принципу деления на филиалы или отделы.
Если Вы знакомы с файловой системой Unix, то обратите внимание, что деление дерева DNS на зоны очень напоминает деление на логические файловые системы физических дисковых разделов. Однако мы не можем сказать, основываясь на рисунке 14.1, под чьим руководством находятся зоны, также как мы не можем по подобному рисунку сказать, какие директории в файловой системе находятся в определенном дисковом разделе.
С того момента, как выбрана организация или персона, которая несет ответственность за управление зоной, эта организация или персона должна организовать несколько серверов DNS (name servers) для этой зоны. Как только в зоне появляется новая система, администратор этой зоны помещает имя и IP адрес нового хоста в базу данных сервера DNS. В небольших университетах, например, один человек может делать это каждый раз при появлении новой системы, однако в больших университетах ответственность должна быть распределена (например, по департаментам), так как один человек не может осуществлять эту работу в целом.
Сервер DNS, скажем, обслуживает одну зону или несколько зон. Человек, который несет ответственность за зону, администрирует основной сервер DNS (primary name server) для этой зоны и один или несколько вторичных серверов DNS (secondary name servers). Первичный и вторичный сервера должны быть независимы и избыточны таким образом, чтобы система DNS не вышла из строя при отказе одного из серверов.
Основное отличие между первичными и вторичными серверами заключается в том, что первичные загружают всю необходимую информацию из дисковых файлов, тогда как вторичные получают информацию от первичного. Процесс передачи информации от первичного сервера вторичному называется передачей зоны (zone transfer). Когда в зоне появляется новый хост, администратор добавляет соответствующую информацию (минимум, имя и IP адрес) в дисковый файл на первичном сервере. После чего первичный сервер DNS уведомляется о необходимости повторно считать свои конфигурационные файлы. Вторичные сервера регулярно опрашивают первичные (обычно каждые 3 часа), и если первичные содержат новую информацию, вторичный получает ее с использованием передачи зоны.
Что произойдет, если сервер DNS не содержит необходимой информации? Он должен установить контакт с другим сервером DNS. (В этом заключается распределенная природа DNS.) Однако не каждый сервер DNS знает, как обратиться к другому серверу. Вместо этого каждый сервер DNS должен знать, как установить контакт с корневыми серверами DNS (root name servers). В апреле 1993 года существовало восемь корневых серверов, все первичные сервера должны знать IP адреса каждого корневого сервера. (Эти IP адреса находятся в конфигурационных файлах первичного сервера. Первичные сервера должны знать именно IP адреса корневых серверов, а не их DNS имена.) Корневой сервер, в свою очередь, знает имена и положения (IP адрес) каждого официального сервера DNS для всех доменов второго уровня. При этом возникает последовательный процесс: запрашивающий сервер должен установить контакт с корневым сервером. Корневой сервер сообщает запрашивающему серверу о необходимости обратиться к другому серверу и так далее. Мы рассмотрим эту процедуру и соответствующие примеры позже в этой главе.
Вы можете получить текущий список корневых серверов, воспользовавшись анонимным (anonymous) FTP. Получите файл netinfo/root-servers.txt с ftp.rs.internic.net или nic.ddn.mil.
Формат сообщения DNS
Для DNS запроса и для DNS отклика используется одинаковый формат. На рисунке 14.3 показан общий формат DNS сообщения.
Рисунок 14.3 Общий формат DNS запроса и ответа.
Сообщение содержит фиксированный 12-байтный заголовок, за которым следуют четыре поля переменной длины.
Значение в поле идентификации (identification) устанавливается клиентом и возвращается сервером. Это поле позволяет клиенту определить, на какой запрос пришел отклик.
16-битовое поле флагов (flags) поделено на несколько частей, как показано на рисунке 14.4.
Рисунок 14.4 Поле флагов (flags) в заголовке DNS.
Следующие четыре 16-битных поля указывают на количество пунктов в четырех полях переменной длины, которые завершают запись. В запросе количество вопросов (number of questions) обычно равно 1, а остальные три счетчика равны 0. В отклике количество ответов (number of answers) по меньшей мере равно 1, а оставшиеся два счетчика могут быть как нулевыми, так и ненулевыми.
Раздел вопросов в DNS запросе
Формат каждого вопроса в разделе вопросов (question) показан на рисунке 14.5. Обычно присутствует только один вопрос.
Имя запроса (query name) это искомое имя. Оно выглядит как последовательность из одной или нескольких меток. Каждая метка начинается с 1-байтового счетчика, который содержит количество следующих за ним байт. Имя заканчивается байтом равным 0, который является меткой с нулевой длиной. И является, в свою очередь, меткой корня. Каждый счетчик байтов должен быть в диапазоне от 0 до 63, так как длина метки ограничена 63 байтами.
Рисунок 14.5 Формат раздела вопроса (question) в запросе DNS.
(Дальше в этом разделе мы увидим, что байт счетчик с двумя старшими битами, установленными в 1, значения от 192 до 255, используется в схеме со сжатием.) В отличие от многих других форматов сообщений, которые мы рассмотрели, этому полю разрешено заканчиваться на ограничителе не равном 32 битам. Заполнение не используется.
На рисунке 14.6 показано, как хранится имя домена gemini.tuc.noao.edu.
Рисунок 14.6 Представление имени домена gemini.tuc.noao.edu.
У каждого вопроса есть тип запроса (query type), а каждый отклик (называемый записью ресурса, о чем мы поговорим ниже) имеет тип (type). Существует около 20 различных значений, некоторые из которых в настоящее время уже устарели. На рисунке 14.7 показаны некоторые из этих значений. Тип запроса это надмножество (множество, подмножеством которого является данное множество) типов: два из показанных значений, могут быть использованы только в вопросах.
Шпаргалка по DNS
Давно пришло время сводить полученные знания в какое-то единое место и при необходимости быстро восстанавливать их в голове. Иметь под боком небольшую статью — идеальный вариант. Эта статья будет иметь формат шпаргалки, где я буду формулировать актуальные прежде всего для себя вопросы и с течением времени постепенно на них отвечать.
Общие сведения
Для начала необходимо все разложить по полочкам 1 :
«Согласно руководящим материалам (RFC-1034, RFC-1035) система доменных имен состоит из трех основных частей:
Структура множества доменных имен представляет из себя древовидную иерархию. Чтобы не усложнять изначально достаточно простую вещь, я подобрал наиболее подходящую картинку с описанием иерархии доменных имен 2 :
Классификация доменных имен также не должна вызывать сложностей в понимании, но на удивление в интернете практически не найти нормальные иллюстрации. Мне под руки попалась только одна 3 :
Вообще на этом канале 4 огромное количество уроков, которые посвящены именно DNS. Однозначно советую к просмотру. Хоть и описание типов dns-серверов есть и на Википедии 5 , оно там плоское и только зря сводит с толку.
Вопросов кто такие dns-клиенты возникать не должно.
Если говорить про авторитативные и неавторитативные серверы, то их отличие состоит в том, что в первом случае сервер отвечает за зону, а во втором — нет. То есть неавторитативные серверы выступают в большинстве случаев только как кэширующие и могут только копировать эту зону. Это хорошо понятно из иллюстрации выше.
Есть несколько типов авторитативных dns-серверов: primary master, master, slave. Четкие различия есть только между primary master и slave. Суть в том, что в первом случае сервер стоит во главе иерархии, на нем можно производить изменения описания зоны и этот сервер никогда не будет копировать эту зону с других серверов. Slave-серверы наоборот являются лишь вторичными и копируют зону с primary master; их главная задача — балансировка нагрузки, резервирование. Определение типа серверов master для меня несколько затруднительно. На многих источниках эти серверы также называют основными:
«Описание зоны master-сервера является первичным, т.к. его создает вручную администратор зоны. Соответственно, вносить изменения в описание зоны может только администратор данного сервера. Все остальные серверы только копируют информацию с master-сервера.»
… но, с другой стороны, этому противоречит определение primary-master даже с тех же источников:
«Для того чтобы выделить сервер, который не копирует зоны ни с какого другого сервера, вводят понятие Primary Master.»
То есть по факту не на всех master-серверах можно вносить изменения в описание зоны, а только на одном единственном master-сервере, который называется primary master. В таком случае реально существует только два «статичных» типа сервера — primary master и slave. Роль master может быть у сервера лишь какой-то определенный короткий промежуток времени — когда один slave-сервер (пусть он будет назван Сервер 1) копирует информацию с другого slave-сервера (Сервер 2). В этом случае Сервер 2 имеет право называться master-сервером для Сервер 1, но это справедливо только для конкретно взятого процесса копирования зоны. Когда же Сервер 2 будет копировать описание зоны с единственного primary master, он снова будет являться slave-сервером. Это подтверждает иллюстрация с nic.ru 6 :
Вот таки размышления. Конечно все эти определения скорее запутывают, чем помогают разобраться. Надо просто иметь в виду, что есть primary master и он стоит вверху иерархии и есть все остальные. Стоит добавить, что серверы всех трех типов будут являться авторитативными, то есть ответственными за зону.
Во главе всей иерархии доменных имен стоят серверы, обслуживающие корневую зону, они называются корневыми серверами. Именно к ним в первую очередь обращаются все другие dns-серверы, если у них нет данных о каком-либо доменном имени. В иерархии доменных имен на первом рисунке в статье они находятся на уровне «.«.
Прежде чем перейти к описанию типов запросов нужно обратить внимание на ещё один важный момент — разницу между зоной и доменом. Вопрос затрагивается в публикации на Хабре 7 :
На мой взгляд более точно и понятно сказано в статье на nic.ru, которая упоминалась в самом начале:
Домен — это все множество машин, которые относятся к одному и тому же доменному имени. Например, все машины, которые в своем имени имеют постфикс kiae.su относятся к домену kiae.su. Зона — это «зона ответственности» конкретного сервера доменных имен, т.е. понятие домена шире, чем понятие зоны. Если домен разбивается на поддомены, то у каждого из них может появиться свой сервер. При этом зоной ответственности сервера более высокого уровня будет только та часть описания домена, которая не делегирована другим серверам. Разбиение домена на поддомены и организация сервера для каждого из них называется делегирование прав управления зоной соответствующему серверу доменных имен, или просто делегированием зоны.
Запросы к dns-серверам бывают двух типов — рекурсивный и нерекурсивный (итеративный). Наиболее подробно принцип работы описывается 8 9 на упомянутом выше канале Youtube. При рекурсивном запросе клиент обращается к предпочитаемому dns-серверу и тот, если не знает ответа, начинает по очереди опрашивать ответственных за зоны серверы, начиная с корневых и далее опускаясь ниже по иерархии. Исчерпывающее объяснение работы рекурсивного запроса дается в статье 10 на oszone.ru. Итеративный запрос менее распространен. В нем клиент сам по очереди опрашивает dns-серверы, начиная с корневых и т.д.. Разумеется если не найдет результаты запроса в своем кэше.
Наглядно рекурсивный 11 12 запрос выглядит так:
а нерекурсивный 13 :
На этом обзор основных принципов работы dns закончен. Рассмотрение типов записей dns, а также механизмов работы обратного разрешения имен (ip-адрес по dns-имени) я в рамках этой статьи я затрагивать не планировал, хотя конечно же это очень интересные темы.
Роль DNS на Windows Server
Настройка роли dns на Windows Server представляет из себя достаточно простую задачу, как и многие другие — добавил роль в диспетчере сервера, запустил визарда и все настроил. Тем не менее встречаются парадоксальные ситуации и иногда слышишь рассказы как некоторые «админы» добавляют одни и те же учетные записи пользователей по очереди на каждом контроллере домена, не имея понятия о репликации. И ведь самое страшное, что у них это получается! То есть можно сделать вывод, что контроллеры домена хоть и поддерживают один и тот же домен, но фактически друг о друге ничего не знают (иначе учетку с аналогичным именем создать бы не получилось). А ведь это может являться следствием неправильной настройки роли DNS, которая обычно всегда идет бок о бок с AD DS.
Этот раздел будет посвящен обзору лучших практик по настройке роли DNS (интегрированной в AD) на Windows Server 2012 R2, но большинство советов актуальны и для предыдущих версий ОС. Тем не менее не стоит забывать про улучшения, которые добавляются в каждой новой версии и 2012 R2 не исключение 14 15 .
Я подразумеваю, что нет никакого смысла повторять, что в каждом домене должно быть минимум два контроллера домена. Это необходимо для отказоустойчивости. Собственный ip-адрес сервера должен быть обязательно статическим 16 .
Собственно сами рекомендации:
1) «If multiple DCs are configured as DNS servers, they should be configured to use each other for resolution first and themselves second» 17 .
Суть в том, что, во избежание проблем с репликацией, в списке первичных dns-серверов на каждом контроллере домена первыми должны быть указаны партнеры по репликации, то есть другие контроллеры домена. Собственный адрес отдельно взятого сервера должен быть указан самым последним 18 в его списке dns-серверов. Для увеличения производительности последним в списке используйте loopback-адрес 127.0.0.1 19 как собственный адрес сервера (но не реальный сетевой адрес адаптера), хоть и это иногда может вызывать небольшие проблемы 20 .
2) На клиентских системах должны использоваться только локальные dns-серверы, но никак не публичные.
В противном случае у вас могут возникнуть проблемы 21 с разрешением внутренних имен, хотя выход наружу будет доступен. Тем не менее в корпоративной сети у меня доступ наружу по dns портам разрешен только контроллерам домена и серверам Exchange.
Позаботьтесь о том, чтобы ваш dhcp-сервер выдавал клиентам настройки со всеми имеющимися у вас адресами серверов dns. Их может быть два, а может быть и больше, все зависит от конкретной топологии. Если у вас структура AD с множеством сайтов, то логично, чтобы по порядку сначала шли серверы сайта, в котором этот пк находится и уже только потом выдавались адреса dns-серверов других сайтов 22 .
3) Если у вас домен AD, то используйте только интегрированную с AD роль DNS (AD-integrated). Прибавится достаточно много плюсов в плане безопасности, производительности и отказоустойчивости 23 .
Если говорить про отказоустойчивость, то у вас не будет единой точки отказа в виде одного primary master-сервера для вашей зоны dns (если этот сервер выйдет из строя и не будет сразу восстановлен или заменен, запросы клиентов на изменение записей обрабатываться не будут. Не то что бы это очень большая проблема для статичного парка пк, но приятного мало). К тому же администраторам не придется возиться с двумя разными схемами репликации — dns и ad ds; у более простых и понятных схем надежность возрастает в разы.
Производительность всей инфраструктуры увеличивается, поскольку все партнеры по репликации (контроллеры домена) имеют одинаковый вес и нет master- и slave- серверов. То есть, если бы запрос поступил к slave-серверу классического dns, то он должен был бы обратиться к мастеру для инициирования процесса обновления. При интегрированной в ad dns каждый контроллер домена может писать изменения в базу dns и уже дальше неспеша реплицировать их на другие контроллеры. К тому же сам по себе механизм репликации ad ds значительно быстрее.
Безопасность увеличивается благодаря защищенным динамическим обновлениям 24 . О DNSSEC речь тут не идет, это общая технология, хотя и в Windows есть её реализация 25 26 .
Из лучших практик это наверно все. Есть некоторые размышления 27 касательно того, что лучше 28 использовать — корневые подсказки или серверы пересылки, но это скорее личное дело админа, чем какая-то устоявшаяся практика. Помните, что к корневым серверам ваш dns-сервер выполняет итеративные запросы, а к серверам пересылки — рекурсивные, являясь по отношению к ним клиентом. Root hints сконфигурированы изначально, т.к. они едины для всей сети интернет, а forwarder’ы придется указать вручную. Единственное, что можно отметить — не указывайте в серверах пересылки публичные серверы; пусть лучше это будут dns-ресурсы вашего провайдера.
Есть также рекомендации 29 30 31 32 (обязательно к прочтению) касательно автоматической очистке записей dns. В этой статье я их подробно не рассматриваю, поскольку автоматическая очистка записей по умолчанию отключена. На деле процесс настройки очень простой, но имеет колоссальные последствия 33 для инфраструктуры в том случае, если вы не понимаете что конкретно делаете и к чему это может привести.