DNS-клиент
DNS-клиент — программа (или модуль в программе), обеспечивающая определение адреса узла по его полному имени (точка в конце обычно либо добавляется DNS-клиентом, либо неявно подразумевается, однако, в случае использования доменных суффиксов, возможны различия в поведении клиента при определении имени с точкой в конце и без).
Содержание
Специализированные программы
Режимы работы DNS-сервера
DNS-сервер, выполняющий запрос клиента может работать в одном из трёх режимов:
Во многих версиях BIND запрос к другим DNS-серверам исходил с 53-го порта (порта, по которому принимаются запросы DNS, как TCP, так и UDP), в отличие от клиентских приложений, использующих произвольный порт отправителя (из незарегистрированного диапазона).
Работа с DNS различных программ
Почтовый сервер использует клиент DNS, для запроса MX, SPF, A-запись (например, sendmail использует MX-записи в порядке возрастания приоритета, но в случае отсутствия подходящего маршрута, в качестве последней попытки использует A-запись), PTR-записей (для определения имени хоста). Кроме того, многие версии почтовых серверов используют имена, полученные через запрос PTR-записи для определения наличия MX-записи у данного имени, это используется для автоматического отказа в доставке у не-почтовых серверов (в большинстве своём бот-нетов).
В общем случае возможна конфигурация, когда для разных серверов и зон DNS-сервер ведёт себя различно (например, из локальной сети принимает рекурсивные запросы, из внешней — только запросы на авторитативные зоны, или форвардит запросы на другой сервер только для заданных зон).
Рабочие станции и серверы в составе Active Directory используют множество DNS-записей типа SRV для определения положения ближайшего контроллера домена в сайте и для выполнения динамического обновления DNS-записи о рабочей станции.
Интерфейс между программой и DNS-клиентом
Большинство программ, использующих функции DNS, не реализуют его функциональность самостоятельно (через сокеты), а используют либо предоставляемые операционной системой функции DNS-клиента, либо используют готовую библиотеку клиента. К меньшинству относятся в основном низкоуровневые утилиты и серверное ПО, которому необходима более специфичная функциональность, чем предоставляется DNS-клиентом.
990x.top
Простой компьютерный блог для души)
DnsCache — что это за служба? (DNS-клиент)
Приветствую друзья! Сегодня мы постараемся разобраться с службой DnsCache, я найду максимум информации и напишу все простыми словами.
DnsCache — что это такое?
Служба кэширования DNS на стороне клиента. Клиент — имеется ввиду обычный домашний компьютер.
Отображаемое название — DNS-клиент.
Если службу отключить, то сетевой трафик для DNS-запросов увеличится. На самом деле для домашнего ПК это не так критично, просто будет отправляться больше запросов, другими словами — немного больше будет расходоваться интернета.
Зачем нужна? Служба оптимизирует производительность разрешения имен DNS за счет хранения ранее разрешенных имен в памяти. Простыми словами — это кэш, то есть зачем Windows узнавать одни и те же DNS-данные повторно? Когда она их может заносить в кэш и при необходимости — уже оттуда брать данные. В результате экономится время и трафик.
DnsCache работает под процессом svchost.exe, который запускается из этой папки с таким параметром:
Что такое DNS простыми словами?
Ребята, все очень просто, смотрите — мы посещаем сайты. У каждого сайта есть название. Однако название — это для нас, чтобы нам было легче и удобнее запомнить. Программы общаются не к названиям сайтов, а к их IP-адресам. Чтобы узнать какой IP-адрес скрывается за сайтом — и нужен сервер DNS (Domain Name System).
А теперь покажу на примере (образно говоря):
Чтобы не запрашивать каждый раз IP-адрес можно воспользоваться DNS-кэшем, работу которого и осуществляет служба DnsCache (DNS-клиент).
Как очистить кэш DNS?
Оказывается этот кэш можно очистить.
Нужно просто открыть командную строку от администратора, если у вас Windows 10 то достаточно зажать Win + X и выбрать соответствующий пункт. Потом вставьте такую команду:

Когда нужно чистить этот кэш? Например если у вас странные проблемы с интернетом, неработают некоторые сайты, то можно попробовать очистить DNS-кэш. Иногда стоит чистить в целях приватности/конфиденциальности, чтобы вообще не было никаких данных о посещенных сайтах.
DnsCache — как отключить службу?
На самый крайний случай перед отключением можно создать точку восстановления.
Отключить службу можно обычным способом или через командную строку. Да, конечно можно еще задействовать реестр, но здесь нет смысла — служба спокойно отключается и обычными способами.
Используя командную строку. Запустите командную строку от имени администратора, в Windows 10 это сделать просто — Win + X > выбираем соответствующий пункт. Теперь указываем две команды, первая — для остановки работы:
Вторая — для того чтобы служба после перезагрузки снова не запустилась:
sc config «dnscache» start= disabled
Отключение через список служб. Здесь тоже все просто:
Заключение
Сетевые сервисы Windows 2012 — DNS
В своё время открыл для себя простую истину: хочешь запомнить что-то — веди конспект (даже при чтении книги), а хочешь закрепить и систематизировать — донеси до людей (напиши статью). Поэтому, после двух лет работы в системной интеграции (сфере, которую я в бытность свою системным администратором, считал просто рогом изобилия для жаждущих прокачки специалистов), когда я понял, что знания постепенно вытесняются навыками правки документации и конфигурированию по мануалам и инструкциям, для поддержания формы я начал писать статьи о базовых вещах. Например вот — о DNS. Делал тогда я это больше для себя, но подумал — вдруг кому пригодится.
Сервис в современных сетях если не ключевой, то один из таковых. Те, для кого служба DNS — не нова, первую часть могут спокойно пропустить.
Содержание:
1. Основные сведения
2. Немного о формате сообщения DNS
3. TCP и UDP
4. DNS в Windows Server 2008 и 2012
5. DNS и Active directory
6. Источники информации
(анкеров нет, поэтому содержание без ссылок)
1. Основные сведения
DNS — это база данных, содержащая, в основном, информацию о сопоставлении имён сетевых объектов их IP-адресам. «В основном» — потому что там и ещё кое-какая информация хранится. А точнее, ресурсные записи (Resource Records — RR) следующих типов:
А — то самое сопоставление символьного имени домена его IP адресу.
АААА — то же что А, но для адресов IPv6.
CNAME — Canonical NAME — псевдоним. Если надо чтобы сервер с неудобочитаемым именем, типа nsk-dc2-0704-ibm, на котором вертится корпоративный портал, откликался также на имя portal, можно создать для него ещё одну запись типа А, с именем portal и таким же IP-адресом. Но тогда, в случае смены IP адреса (всякое бывает), нужно будет пересоздавать все подобные записи заново. А если сделать CNAME с именем portal, указывающий на nsk-dc2-0704-ibm, то ничего менять не придётся.
MX — Mail eXchanger — указатель на почтовый обменник. Как и CNAME, представляет собой символьный указатель на уже имеющуюся запись типа A, но кроме имени содержит также приоритет. MX-записей может быть несколько для одного почтового домена, но в первую очередь почта будет отправляться на тот сервер, для которого указано меньшее значение в поле приоритета. В случае его недоступности — на следующий сервер и т.д.
NS — Name Server — содержит имя DNS-сервера, ответственного за данный домен. Естественно для каждой записи типа NS должна быть соответствующая запись типа А.
SOA — Start of Authority — указывает на каком из NS-серверов хранится эталонная информация о данном домене, контактную информацию лица, ответственного за зону, тайминги хранения информации в кэше.
SRV — указатель на сервер, держатель какого-либо сервиса (используется для сервисов AD и, например, для Jabber). Помимо имени сервера содержит такие поля как Priority (приоритет) — аналогичен такому же у MX, Weight (вес) — используется для балансировки нагрузки между серверами с одинаковым приоритетом — клиенты выбирают сервер случайным образом с вероятностью на основе веса и Port Number — номер порта, на котором сервис «слушает» запросы.
Все вышеперечисленные типы записей встречаются в зоне прямого просмотра (forward lookup zone) DNS. Есть ещё зона обратного просмотра (reverse lookup zone) — там хранятся записи типа PTR — PoinTeR — запись противоположная типу A. Хранит сопоставление IP-адреса его символьному имени. Нужна для обработки обратных запросов — определении имени хоста по его IP-адресу. Не требуется для функционирования DNS, но нужна для различных диагностических утилит, а также для некоторых видов антиспам-защиты в почтовых сервисах.
Кроме того, сами зоны, хранящие в себе информацию о домене, бывают двух типов (классически):
Основная (primary) — представляет собой текстовый файл, содержащий информацию о хостах и сервисах домена. Файл можно редактировать.
Дополнительная (secondary) — тоже текстовый файл, но, в отличие от основной, редактированию не подлежит. Стягивается автоматически с сервера, хранящего основную зону. Увеличивает доступность и надёжность.
Для регистрации домена в интернет, надо чтоб информацию о нём хранили, минимум, два DNS-сервера.
В Windows 2000 появился такой тип зоны как интегрированная в AD — зона хранится не в текстовом файле, а в базе данных AD, что позволяет ей реплицироваться на другие контроллеры доменов вместе с AD, используя её механизмы репликации. Основным плюсом данного варианта является возможность реализации безопасной динамической регистрации в DNS. То есть записи о себе могут создать только компьютеры — члены домена.
В Windows 2003 появилась также stub-зона — зона-заглушка. Она хранит информацию только о DNS-серверах, являющихся полномочными для данного домена. То есть, NS-записи. Что похоже по смыслу на условную пересылку (conditional forwarding), которая появилась в этой же версии Windows Server, но список серверов, на который пересылаются запросы, обновляется автоматически.
Итеративный и рекурсивный запросы.
Понятно, что отдельно взятый DNS-сервер не знает обо всех доменах в интернете. Поэтому, при получении запроса на неизвестный ему адрес, например metro.yandex.ru, инициируется следующая последовательность итераций:
DNS-сервер обращается к одному из корневых серверов интернета, которые хранят информацию о полномочных держателях доменов первого уровня или зон (ru, org, com и т.д.). Полученный адрес полномочного сервера он сообщает клиенту.
Клиент обращается к держателю зоны ru с тем же запросом.
DNS-сервер зоны RU ищет у себя в кэше соответствующую запись и, если не находит, возвращает клиенту адрес сервера, являющегося полномочным для домена второго уровня — в нашем случае yandex.ru
Клиент обращается к DNS yandex.ru с тем же запросом.
DNS яндекса возвращает нужный адрес.
Такая последовательность событий редко встречается в наше время. Потому что есть такое понятие, как рекурсивный запрос — это когда DNS-сервер, к которому клиент изначально обратился, выполняет все итерации от имени клиента и потом возвращает клиенту уже готовый ответ, а также сохраняет у себя в кэше полученную информацию. Поддержку рекурсивных запросов можно отключить на сервере, но большинство серверов её поддерживают.
Клиент, как правило, обращается с запросом, имеющим флаг «требуется рекурсия».
2. Немного о формате сообщения DNS
Сообщение состоит из 12-байтного заголовка, за которым идут 4 поля переменной длины.
Заголовок состоит из следующих полей:
Формат DNS-сообщения
Идентификация — в это поле клиентом генерируется некий идентификатор, который потом копируется в соответствующее поле ответа сервера, чтобы можно было понять на какой запрос пришёл ответ.
Флаги — 16-битовое поле, поделенное на 8 частей:
Следующие четыре 16-битных поля указывают на количество пунктов в четырех полях переменной длины, которые завершают запись. В запросе количество вопросов (number of questions) обычно равно 1, а остальные три счетчика равны 0. В отклике количество ответов (number of answers) по меньшей мере равно 1, а оставшиеся два счетчика могут быть как нулевыми, так и ненулевыми.
Пример (получен с помощью WinDump при выполнении команды ping www.ru):
IP KKasachev-nb.itcorp.it.ru.51036 > ns1.it.ru.53: 36587+ A? www.ru. (24)
IP ns1.it.ru.53 > KKasachev-nb.itcorp.it.ru.51036: 36587 1/2/5 A 194.87.0.50 (196)
Первая строка — запрос: имя моего ПК, 51036 — случайно выбранный порт отправки, 53- заранее известный порт DNS-сервера, 36587 — идентификатор запроса, + — «требуется рекурсия», А — запрос записи типа А, знак вопроса означает, что это запрос, а не ответ. В скобках — длина сообщения в байтах.
Вторая строка — ответ сервера: на указанный исходный порт с указанным идентификатором запроса. Ответ содержит одну RR (ресурсную запись DNS), являющуюся ответом на запрос, 2 записи полномочий и 5 каких-то дополнительных записей. Общая длина ответа — 196 байт.
3. TCP и UDP
На слуху сведения о том, что DNS работает по протоколу UDP (порт 53). Это действительно по умолчанию так — запросы и ответы отправляются по UDP. Однако, выше упоминается наличие в заголовке сообщения флага TC (Truncated). Он выставляется в 1, если размер отклика превысил 512 байт — предел для UDP-отклика — а значит был обрезан и клиенту пришли только первые 512 байт. В этом случае клиент повторяет запрос, но уже по TCP, который ввиду своей специфики, может безопасно передать большие объёмы данных.
Также передача зон от основных серверов к дополнительным осуществляется по TCP, поскольку в этом случае передаётся куда больше 512 байт.
4. DNS в Windows Server 2008 и 2012
В Windows 2008 появились следующие возможности:
Фоновая загрузка зон
Поскольку задача загрузки зон выполняется отдельными потоками, DNS-сервер может обрабатывать запросы во время загрузки зоны. Если DNS-клиент запрашивает данные для узла в зоне, который уже загружен, DNS-сервер отправляет в ответ данные (или, если это уместно, отрицательный ответ). Если запрос выполняется для узла, который еще не загружен в память, DNS-сервер считывает данные узла из доменных служб Active Directory и обновляет соответствующим образом список записей узла.
Поддержка IPv6-адресов
Протокол Интернета версии 6 (IPv6) определяет адреса, длина которых составляет 128 бит, в отличие от адресов IP версии 4 (IPv4), длина которых составляет 32 бита.
DNS-серверы с ОС Windows Server 2008 теперь полностью поддерживают как IPv4-адреса, так и IPv6-адреса. Средство командной строки dnscmd также принимает адреса в обоих форматах. Cписок серверов пересылки может содержать и IPv4-адреса, и IPv6-адреса. DHCP-клиенты также могут регистрировать IPv6-адреса наряду с IPv4-адресами (или вместо них). Наконец, DNS-серверы теперь поддерживают пространство имен домена ip6.arpa для обратного сопоставления.
Изменения DNS-клиента
Разрешение имен LLMNR
Клиентские компьютеры DNS могут использовать разрешение имен LLMNR (Link-local Multicast Name Resolution), которое также называют многоадресной системой DNS или mDNS, для разрешения имен в сегменте локальной сети, где недоступен DNS-сервер. Например, при изоляции подсети от всех DNS-серверов в сети из-за сбоя в работе маршрутизатора клиенты в этой подсети, поддерживающие разрешение имен LLMNR, по-прежнему могут разрешать имена с помощью одноранговой схемы до восстановления соединения с сетью.
Кроме разрешения имен в случае сбоя в работе сети функция LLMNR может также оказаться полезной при развертывании одноранговых сетей, например, в залах ожидания аэропортов.
Изменения Windows 2012 в части DNS коснулись, преимущественно, технологии DNSSEC (обеспечение безопасности DNS за счет добавления цифровых подписей к записям DNS), в частности — обеспечение динамических обновлений, которые были недоступны, при включении DNSSEC в Windows Server 2008.
5. DNS и Active directory
Active Directory очень сильно опирается в своей деятельности на DNS. С его помощью контроллеры домена ищут друг друга для репликации. С его помощью (и службы Netlogon) клиенты определяют контроллеры домена для авторизации.
Для обеспечения поиска, в процессе поднятия на сервере роли контроллера домена, его служба Netlogon регистрирует в DNS соответствующие A и SRV записи.
SRV записи регистрируемые службой Net Logon:
_ldap._tcp.DnsDomainName
_ldap._tcp.SiteName._sites.DnsDomainName
_ldap._tcp.dc._msdcs.DnsDomainName
_ldap._tcp.SiteName._sites.dc._msdcs.DnsDomainName
_ldap._tcp.pdc._msdcs.DnsDomainName
_ldap._tcp.gc._msdcs.DnsForestName
_ldap._tcp.SiteName._sites.gc._msdcs. DnsForestName
_gc._tcp.DnsForestName
_gc._tcp.SiteName._sites.DnsForestName
_ldap._tcp.DomainGuid.domains._msdcs.DnsForestName
_kerberos._tcp.DnsDomainName.
_kerberos._udp.DnsDomainName
_kerberos._tcp.SiteName._sites.DnsDomainName
_kerberos._tcp.dc._msdcs.DnsDomainName
_kerberos.tcp.SiteName._sites.dc._msdcs.DnsDomainName
_kpasswd._tcp.DnsDomainName
_kpasswd._udp.DnsDomainName
Первая часть SRV-записи идентифицирует службу, на которую указывает запись SRV. Существуют следующие службы:
_ldap — Active Directory является службой каталога, совместимой с LDAP-протоколом, с контроллерами домена, функционирующими как LDAP-серверы. Записи _ldap SRV идентифицирует LDAP серверы, имеющиеся в сети. Эти серверы могут быть контроллерами домена Windows Server 2000+ или другими LDAP-серверами;
_kerberos — SRV-записи _kerberos идентифицируют все ключевые центры распределения (KDC — Key Distribution Centers) в сети. Они могут быть контроллерами домена с Windows Server 2003 или другими KDC-серверами;
_kpassword — идентифицирует серверы изменения паролей kerberos в сети;
_gc — запись, относящаяся к функции глобального каталога в Active Directory.
В поддомене _mcdcs регистрируются только контроллеры домена Microsoft Windows Server. Они делают и основные записи и записи в данном поддомене. Не-Microsoft-службы делают только основные записи.
Записи, содержащие идентификатор сайта SiteName, нужны для того чтобы клиент мог найти контроллер домена для авторизации в своём сайте, а не лез авторизовываться в другой город через медленные каналы.
DomainGuid — глобальный идентификатор домена. Запись, содержащщая его, нужна на случай переименования домена.
Как происходит процесс поиска DC
Во время входа пользователя, клиент инициирует DNS-локатор, при помощи удалённого вызова процедуры (Remote Procedure Call — RPC) службой NetLogon. В качестве исходных данных в процедуру передаются имя компьютера, название домена и сайта.
Служба посылает один или несколько запросов с помощью API функции DsGetDcName()
DNS сервер возвращает запрошенный список серверов, рассортированный согласно приоритету и весу. Затем клиент посылает LDAP запрос, используя UDP-порт 389 по каждому из адресов записи в том порядке, как они были возвращены.
Все доступные контроллеры доменов отвечают на этот запрос, сообщая о своей работоспособности.
После обнаружения контроллера домена, клиент устанавливает с ним соединение по LDAP для получения доступа к Active Directory. Как часть их диалога, контроллер домена определяет к в каком сайте размещается клиент, на основе его IP адреса. И если выясняется, что клиент обратился не к ближайшему DC, а, например, переехал недавно в другой сайт и по привычке запросил DC из старого (информация о сайте кэшируется на клиенте по результатам последнего успешного входа), контроллер высылает ему название его (клиента) нового сайта. Если клиент уже пытался найти контроллер в этом сайте, но безуспешно, он продолжает использовать найденный. Если нет, то инициируется новый DNS-запрос с указанием нового сайта.
Служба Netlogon кэширует информацию о местонахождении контроллера домена, чтобы не инициировать всю процедуру при каждой необходимости обращения к DC. Однако, если используется «неоптимальный» DC (расположенный в другом сайте), клиент очищает этот кэш через 15 минут и инициирует поиски заново (в попытке найти свой оптимальный контроллер).
Если у комьютера отсутствует в кэше информация о его сайте, он будет обращаться к любому контроллеру домена. Для того чтобы пресечь такое поведение, на DNS можно настроить NetMask Ordering. Тогда DNS выдаст список DC в таком порядке, чтобы контроллеры, расположенные в той же сети, что и клиент, были первыми.
Пример: Dnscmd /Config /LocalNetPriorityNetMask 0x0000003F укажет маску подсети 255.255.255.192 для приоритетных DC. По умолчанию используется маска 255.255.255.0 (0x000000FF)
Служба доменных имен (DNS)
Область применения: Windows Server 2022, Windows Server 2019, Windows Server 2016
Служба доменных имен (DNS) — это один из стандартных отраслевых протоколов, включающих TCP/IP, а клиент DNS и DNS-сервер предоставляют службам разрешения имен IP-адресов компьютеров и пользователей.
Помимо этого раздела, доступно следующее содержимое DNS.
в Windows Server 2016 DNS — это роль сервера, которую можно установить с помощью диспетчер сервера или команд Windows PowerShell. При установке нового леса Active Directory и домена служба DNS автоматически устанавливается с Active Directory в качестве глобального сервера каталога для леса и домена.
Службы домен Active Directory Services (AD DS) используют DNS в качестве механизма расположения контроллера домена. При выполнении любой из основных Active Directory операций, таких как проверка подлинности, обновление или поиск, компьютеры используют DNS для поиска контроллеров домена Active Directory. Кроме того, контроллеры домена используют DNS для размещения друг друга.
служба DNS-клиента входит во все клиентские и серверные версии операционной системы Windows и работает по умолчанию при установке операционной системы. При настройке сетевого подключения TCP/IP с IP-адресом DNS-сервера клиент DNS запрашивает DNS-сервер для обнаружения контроллеров домена и разрешает имена компьютеров в IP-адреса. Например, когда пользователь сети с учетной записью пользователя Active Directory входит в домен Active Directory, служба DNS-клиента запрашивает у DNS-сервера поиск контроллера домена для Active Directory домена. Когда DNS-сервер отвечает на запрос и предоставляет клиенту IP-адрес контроллера домена, клиент связывается с контроллером домена, и процесс проверки подлинности может быть начат.
Windows Server 2016 dns-сервер и службы dns-клиента используют протокол DNS, включенный в набор протоколов TCP/IP. DNS является частью уровня приложения в модели справочника по протоколу TCP/IP, как показано на следующем рисунке.
Как остановить или запустить DNS-клиент в Windows с помощью этих альтернатив
Как остановить или запустить службу DNS в Windows
Однако на некоторых устройствах этот параметр недоступен. Мы можем обнаружить, что на этом этапе, как мы видим на изображении выше, эта опция отображается серым цветом, без возможности ее пометить. Поэтому мы не можем запустить или остановить службу DNS в Windows таким образом, как мы объяснили.
К счастью, у нас есть другие альтернативы что мы собираемся показать. Другие методы, с помощью которых мы сможем запустить или остановить службу DNS в Windows 10, которая на сегодняшний день является наиболее часто используемой операционной системой среди пользователей настольных компьютеров. Это означает, что он может пригодиться многим пользователям, которые в какой-то момент сталкиваются с подобными проблемами.
Используйте реестр Windows
Внутри HKEY_LOCAL_MACHINE мы должны перейти в System, CurrentControlSet, Services и Dnscache. Когда мы здесь, мы должны щелкнуть правой кнопкой мыши на Пуск и выбрать Изменить.
Мы увидим, что по умолчанию присвоено значение 2. Что мы собираемся сделать, так это поставить значение 4 и нажимаем ОК. Благодаря этому мы добиваемся автоматического запуска службы. Если мы отметим 3, нам придется запускать его вручную.
Теперь мы можем выполнить начальные шаги, которые мы упомянули, чтобы запустить или приостановить службу DNS, чтобы эти параметры не отображались серым цветом.
Конфигурация системы
У нас также есть альтернатива использования конфигурации системы. На этот раз нам нужно нажать комбинацию клавиш Windows + R и выполнить MSConfig команда. Новое окно откроется автоматически.
Символ системы
С помощью команды net stop dnscache мы останавливаем службу, если она уже была запущена. Вместо этого его запускает команда net start dns cache.
Короче говоря, эти три упомянутые нами опции позволяют запускать или останавливать службу DNS в Windows. Альтернативы, когда мы не можем воспользоваться упомянутым начальным методом, который доступен не на всех устройствах.


