Внедрение, управление и поддержка сетевой инфраструктуры MS Windows Server 2003

Ознакомление с DNS

Разбить на страницы
Показывать лекцию целиком

Введение в DNS (Domain Name System)

Систему доменных имен DNS (Domain Name System) разработал Пол Мокапетрис (Paul Mokapetris), который на заре интернета (в начале 1980-х) задался вопросом, как работать в системе (она стала со временем называться DNS), которая преобразует Web-адрес в состоящий из четырех октетов IP-адрес, который используется сетевыми машинами для связи через TCP/IP (см. лекцию 1). Мокапетрис разработал иерархическое пространство имен, которое позволяло присваивать машинам понятные (дружественные) пользователям имена и связывать эти имена с IP-адресами. Эти группы машин разбивались на домены, и в каждом домене предусматривалось свое собственное управление

DNS можно также использовать для поиска элементов, хранящихся в базе данных LDAP. DNS – это клиент/серверный процесс, который читает текстовый ("плоский") файл, аналогичный файлам HOSTS, которые вы можете иногда видеть и в настоящее время. В Windows DNS начали применять еще в версии NT4, и служба DNS стала составной частью операционной системы в Windows 2000. Это в основном произошло потому, что Microsoft перешла в используемом по умолчанию методе разрешения имен от имен NetBIOS и службы WINS (Windows Internet Naming Service) к полностью уточненным доменным именам FQDN (Fully Qualified Domain Names) и службе DNS. С появлением Active Directory (AD) и DNS, согласующейся с документом RFC 2136 (динамическое обновление записей) все изменилось еще больше. Еще больше вещей изменилось (и еще больше изменится) с появлением предложений по таблице для расширений DNSSEC (RFC 2541). DNS по-прежнему является службой с серверной и клиентской (resolver) частями. Взаимодействие между DNS и Active Directory является взаимозависимым, то есть предлагается одна система вместо двух.

Создается впечатление, что эта интеграция с AD является обязательной, но это не так, если вы не планируете создавать домены и леса (более подробно об этом см. в лекции 10). И даже в этом случае она не является обязательной, но вам следует объединить эти два компонента, если вы хотите свести к минимуму администрирование. Возможно, у вас есть UNIX-станции; можно использовать DNS на Microsoft-станциях в стандартной (классической) конфигурации с первичным (primary) и вторичным (secondary) серверами DNS, если вам не нужен или вы не хотите использовать домен в своем окружении. Однако предпочтительно использовать конструкции леса/домены с контроллерами доменов через Active Directory.

Цель этой лекции – способствовать пониманию разрешения имен в целом, и, в частности, DNS, с выделением отличий между Windows 2000 и 2003. Вы также узнаете о прежней форме разрешения имен, которая применялась фирмой Microsoft: разрешение имен NetBIOS, которое происходило с помощью службы WINS (Windows Internet Naming Service).

Как это начиналось

Все началось с файлов HOSTS. Это "плоские" текстовые файлы ASCII, содержащие построчный набор записей. Эти записи только представляли связь IP-адреса с именем машины, например, 192.168.1.1 Trucker.Truckstp.com. Идея состояла в том, что Trucker – это легко запоминаемое имя машины, а resolver (клиентский компонент, состоящий из программной части и библиотек на клиентском компьютере) читает этот файл, находит имя машины, извлекает ее IP-адрес и выполняет поиск по этому адресу.

Вы можете все еще использовать файлы HOSTS; обычно они находятся в подпапке %SYSTEMROOT\system32\drivers\... Вы можете редактировать такой файл с помощью Блокнота (Notepad) и добавлять в него любую машину, если у вас есть имя и IP-адрес этой машины, и вы знаете об изменениях в сети, которые могут повлиять на эти записи. Использование файла HOSTS сопряжено с ошибками, например, возможно дублирование имен или адресов. Этот подход не позволяет поддерживать масштабирование; достаточно представить себе, сколько затруднений может вызвать поддержка этих файлов для крупного предприятия. На каждой машине! Без каких-либо средств безопасности!

Разрешение имен в целом

Файлы HOSTS – это опасное средство, а разрешение имен должно реализоваться надежным образом. Ответом на эту задачу стала DNS. Вместе со своей базой данных и инструментами, а также благодаря своей распределенной природе подходящая структура DNS обеспечивает разрешение имен, избыточность, согласованность и точность. В любой сети, содержащей более одного сегмента, существует некоторая форма разрешения имен. Если локальная сеть состоит только из одного сегмента без разрешения имен, то используются широковещательные сообщения. Широковещательные сообщения используются компьютерами в сети для поиска других компьютеров. К сожалению, исходный компьютер не знает местоположения целевого компьютера, поэтому исходный компьютер должен отправлять для его поиска широковещательное сообщение (это похоже на поиск приятеля в заполненном людьми помещении, когда нужно громко выкрикнуть его имя). Все люди в помещении услышат ваше сообщение; то же самое произойдет с компьютерами данного сегмента, но только целевой компьютер ответит на ваше широковещательное сообщение. После установления связи между исходным и целевым компьютерами последующий обмен информацией происходит посредством направленных дейтаграмм.

Компьютеры делают это также в небольших немаршрутизируемых локальных сетях. Но локальные сети разрастаются: широковещательные сообщения являются одной из причин, по которым они становятся маршрутизируемыми. Разрешение имен почти всегда предусматривает связь между IP-адресом и именем машины с намерением поиска и подсоединения к некоторой службе, которая предоставляется этой машиной. В среде TCP/IP соединение создается с машиной и, тем самым, с портом в стеке протоколов, которому направлено сообщение (например, с портом 80 для посещения веб-сайта). Все это позволяет вам иметь легко запоминаемое имя машины, например, www.skillet.com. Рассмотрим процесс разрешения пути к машине http://www.skillet.com.

Вам нужна новая сковородка (skillet). Вы подсоединены к сети, поэтому запускаете браузер и вводите имя www.skillet.com, которое передается клиентскому компоненту (resolver), задачей которого является поиск сервера Skillet. Resolver – это набор библиотек, которому передается имя http://www.skillet.com, после чего происходит обращение к серверу DNS. Resolver выполняет операции в определенном порядке. Он всегда начинает с локального поиска (то есть с поиска на вашем компьютере), и если у вас есть что-либо в файле HOSTS, он будет обработан (независимо от последствий).

Затем resolver анализирует вашу конфигурацию TCP/IP, определяет, какая машина является предпочтительным сервером DNS, и затем запрашивает этот сервер. Ваши клиенты более ранних версий Windows действуют иным образом; продукты на основе Windows 9x (DOS) сначала выполняют поиск среди имен NetBIOS. Они обращаются к DNS, если не удается поиск NetBIOS, но в некоторых случаях ожидание, пока не истечет период тайм-аута для NetBIOS, может вызывать ощутимую задержку. Причина очевидна: эти системы были созданы для работы в первую очередь с разрешением имен NetBIOS, которое происходило с помощью службы WINS. Со временем появилась DNS, и порядок поиска этих операционных систем теперь устарел, поскольку не отражает разрешение хост-имен сетью TCP/IP.

NT4 тоже выполняет разрешение имен таким способом, если имя NetBIOS не превышает 15 символов, и в нем нет точек. В противном случае NT4 обращается сначала к DNS. Но вернемся все же к Skillet.com.

Напомним, что resolver запрашивает у первичного (primary) сервера DNS, может ли он преобразовать данное имя в IP-адрес. Этот сервер DNS проверяет свою зону и кэш, не находит соответствия и, тем самым, не может выполнить разрешение имени. Затем этот сервер DNS ищет другой сервер DNS и обращается к нему. Сервер DNS обычно устанавливается на "границе" сети компании, и все, что он делает, это пересылка запросов какому-либо серверу DNS снаружи. Этот тип сервера DNS называется сервером перенаправления запросов (forwarder). Внутренний сервер DNS запрашивает сервер перенаправления запросов, который сначала проверяет, может ли он сам выполнить разрешение имени. Если нет, то он передает данный запрос другим серверам DNS в интернете, пока не будет найдено соответствие или не произойдет отказ запроса. Успешно разрешенное имя возвращается в кэш локального сервера DNS, поэтому при повторных попытках посещения вебсайта Skillet разрешение будет происходить быстрее.

Итак, нам удалось заказать сковородку (skillet); благодаря DNS мы нашли путь к Skillet.com, а также увидели за это время, как выполняется процесс разрешения имени. DNS – превосходная система, и она использует для поиска средства, которые называются запросами. Она использует следующие типы запросов.

  • Рекурсивный (Recursive). Resolver (клиентский компонент) направляет запрос серверу DNS и не предполагает никакого взаимодействия для попытки найти ответ. Все проведение поиска возлагается на сервер DNS, который начнет использовать другие серверы, будет направлять запросы и действовать как представитель для resolver. Эти дальнейшие запросы называются итеративными.
  • Итеративный (Iterative). Итеративный запрос является противоположностью рекурсивного запроса (его также называют нерекурсивным); с его помощью у сервера DNS запрашивается наилучший ответ, и он должен отвечать без каких-либо запросов любым другим серверам DNS.
  • Обратный (Inverse). Этот тип запроса направляется машиной, которая ищет хост имя и отправляет IP-адрес, чтобы получить это хост-имя. Этот запрос необычен в том смысле, что сервер DNS выполняет просмотр только своей собственной зоны. Поиск ограничивается этой зоной при любом исходе – успешном или неудачном. Такой запрос используется редко, и он поддерживается только в Windows DNS для обеспечения обратной совместимости с прежними версиями DNS.
  • Только кэширующий сервер (Caching-only server). Эта функция DNS не является формально запросом, но она должна использоваться с запросами. Такой сервер не авторизуется и не содержит никакой зоны. Он получает запрос от клиента и передает этот запрос сети DNS для разрешения. Получив результат разрешения, он кэширует его на некоторый период времени на тот случай, если какой-либо другой клиент повторит тот же запрос. Это ускоряет разрешение имен.
  • Используя эти методы, сервер DNS последовательно ищет IP-адрес, начиная с URL (Uniform Resource Locator) вашего браузера, передаваемого в resolver. В результате вы получаете один из двух ответов: то, что вы ищете, или сообщение об ошибке.

    Домены

    Чтобы понять, как действует DNS, полезно ознакомиться с окружением, в котором выполняет свою работу эта служба. Начнем с иерархии DNS. Корневой домен известен просто как ".". Верхний домен находится на один уровень ниже, и на этом уровне находится целый ряд доменов DNS. Вы знаете все эти суффиксы: .COM (коммерческие), .GOV (правительственные), .EDU (образование), .INT (международные), .ORG (организация), .NET (Net-провайдеры, ISP [Провайдеры услуг Интернет] и т.д.) и .MIL (военные). Достаточно интересно, что ICANN (новая некоммерческая организация по назначению адресов и имен в интернете) ссылается на эти "обобщенные" домены верхнего уровня, и в период между 2000 и 2002 гг. она ввела еще семь: .BIZ, .INFO, .NAME, .PRO, .AERO, .COOP и .MUSEUM. Но пока еще используются не все эти новые имена.

    На следующем уровне обычно находится домен, поддерживаемый частной фирмой; я буду использовать для своих примеров корпоративный домен .COM, но для этого можно было бы использовать любой из только что перечисленных доменов. Вы можете рассматривать домены DNS аналогично структуре папок на жестком диске в смысле разбиения пространства имен DNS. Домен "." аналогичен корневой папке; далее идет верхний уровень (.COM), и на следующем уровне находится "папка", представляющая корпоративный объект некоторого рода (частный или общественный). Имя верхнего уровня (.COM) и корпоративная "папка", например, Microsoft, совместно образуют доменное имя. Пространство имен Microsoft может разбиваться на меньшие домены ("подпапки") Active Directory/DNS, представляющие в компании Microsoft различные подразделения или службы, например, accounting.microsoft.com (бухгалтерский учет). Такой домен обычно недоступен из Internet в отличие от microsoft.com; однако имеются исключения, например, http://support.microsoft.com/default.aspx?scid=fh;[ln];kbhowto представляет службы поддержки Microsoft. Здесь находится Knowledge Base вместе с различными рекомендациями от MS Support. Каждая субзона отвечает за правильность собственной работы.

    Это обычное пространство DNS, известное как зона прямого поиска (forward lookup zone). Существует также зона обратного поиска (reverse lookup zone), известная также как in-addr.arpa, что является ее техническим названием. При запросе обратного поиска вместо дружественного для пользователя имени (как это происходит при поиске в зоне прямого поиска) выполняется поиск определенного IP-адреса машины. Записи в зоне обратного поиска содержат IP-адрес и затем имя машины. Resolver может определить, соответствует ли в действительности определенный IP-адрес дружественному имени, которое он указывает. Поскольку IP-адреса регистрируются вместе с доменными имена DNS, поиск по IP-адресу позволяет определить, из какого домена происходит этот IP-адрес. Если он не соответствует тому, что он должен представлять, то это может быть "самозванец".

    IP-адреса организованы таким образом, что их "старшинство" повышается слева направо, а в доменных именах "старшинство" снижается слева направо. Но IP-адреса в домене in-addr.arpa (зона обратного поиска) записываются в обратном порядке. В записях-указателях (ptr-записях), которые добавляются в зону обратного поиска, сначала указывается IP-адрес и затем – хост-имя, – в отличие от зоны прямого поиска, где сначала идет хост-имя и затем – IP-адрес. Для выполнения успешного обратного поиска по заданному IP-адресу, например, 121.41.113.10, выполняющий поиск сервер DNS ищет PTR-запись для 10.113.41.121.in-addr.arpa, которая содержит определенное хост-имя и IP-адрес 121.41.113.10.

    FQDN (Полностью уточненное доменное имя)

    А теперь предположим, что нам известен хост внутри домена. Вернемся к примеру субдомена accounting в Microsoft. Домен внутри другого домена называется дочерним доменом, а microsoft.com в данном случае является родительским доменом. Если имя хоста – Syscrusher, то полностью это выглядит как syscrusher.accounting.microsoft.com. Любое хост-имя, выраженное таким способом, называется полностью уточненным доменным именем (FQDN – fully qualified domain name).

    Зоны

    Теперь пришло время поговорить о зонах. Каждый домен является объектом со своей собственной политикой. Если посмотреть, как устроен один из серверов DNS внутри Microsoft, мы увидим в оснастке DNS определенные зоны. Зона может содержать домен, часть домена или ряд доменов; каждый из них может иметь сервер или серверы DNS, отвечающие за эти зоны. Должен существовать хотя бы один сервер DNS, поддерживающий каждую зону. Каждая зона имеет набор записей. Они называются ресурсными записями. Сервер DNS, который работает с определенной зоной, называют "руководящим" ("authority") для этой зоны. Он отвечает на любые запросы по этой зоне. Чтобы понять это, мы рассмотрим существующие виды зоны. Сюда относится их хранение, доступ и репликация, но не их содержимое (то есть записи – мы скоро увидим, как они устроены). Классические зоны DNS в Windows хранились и продолжают храниться в текстовых файлах с расширением .dns.

    Первичная зона

    Первая зона называется первичной (primary) зоной. Эта зона создается на первичном (основном) сервере и является только доступным для записи экземпляром базы данных. Эта зона должна содержать хотя бы две записи – запись SOA (Start of Authority) и NS (name server). В классической DNS файл этой зоны должен был редактироваться вручную, но последующие версии DNS (в Windows 2000 и 2003) позволяют выполнять защищенное и незащищенное динамическое обновление. Большинство записей – это "A"-записи, представляющие хосты, добавленные вручную или зарегистрированные ими самостоятельно; но существует также много других типов записей. Вскоре мы рассмотрим наиболее употребительные типы записей. Классическая DNS в Windows Server 2003 позволяет выбрать один из двух вариантов: запрет динамических обновлений или разрешение защищенных и незащищенных обновлений.

    Вторичная зона

    Вторичная (secondary) зона извлекается из первичной и доступна только по чтению. Соответствующий сервер должен находиться в другой подсети и создается в небольших окружениях для избыточности; в более крупных окружениях это позволяет распространять вторичные серверы DNS в удаленные сайты для повышения производительности.

    Зона, интегрированная с Active Directory

    Эта версия зоны находится в Active Directory на каждом контроллере домена. Главная копия базы данных DNS реплицируется на каждый контроллер домена, и в нее может вносить изменения каждый контроллер домена (конечно, при соответствующих полномочиях). Нужно следить, сколько записей/зон используется в Active Directory (AD); слишком большое количество может вызывать снижение производительности.

    Фиктивная (Stub) зона

    Это новый тип зоны, появившийся в Windows 2003. Это копия дочерней зоны с записями, идентифицирующими дочерний сервер имен, который является "руководящим" для этой дочерней зоны. Она содержит SOA-запись, NS-запись и связывающую A-запись. Это известно как делегирование. Сервер родительской зоны может получать обновления от дочерней зоны, которые будут сохраняться в кэше сервера родительской зоны. Записи в такой зоне не изменяются. Ее назначение – это "склеивание" двух пространств имен, чтобы обеспечивать правильность ссылок из родительской зоны в дочернюю зону.

    Конечно, делегирование не является чем-то новым. Stub-зоны позволяют исправить ситуацию, которая возникала в связи с делегированием, я объясню это сейчас. У нас имеется родительский домен – microsoft.com. У нас имеется также дочерний домен – accounting.microsoft.com. При первом делегировании этой дочерней зоны в зоне accounting был только один "руководящий" сервер DNS. Но поскольку со временем пространство имен accounting разрослось, администраторы решили установить два новых сервера для этого дочернего домена.

    Однако сервер DNS, содержащий родительскую зону (microsoft.com), остается "в неведении" об их существовании и продолжает "упорно" обращаться к исходному (руководящему) серверу DNS по поводу accounting.microsoft.com. Чтобы справиться с этой ситуацией балансирования нагрузки, родительский сервер конфигурируется, чтобы хранить stub-зону для дочернего домена, и при обновлении этой зоны он обращается к руководящему серверу этой зоны, что позволяет ему узнать о двух новых серверах DNS и выполнять рекурсивный опрос всех этих серверов.

    Делегирование

    Продолжим наш пример. Родительская зона (microsoft.com) имеет дочернюю зону (accounting.microsoft.com), и управление этой дочерней зоной называют делегированием от родительской зоны. Делегирование, которое позволяет передавать управление в разделенном пространстве имен, можно осуществлять по целому ряду причин, например, необходимость для другого отдела управлять отдельной зоной или балансирование нагрузки и отказоустойчивость. Дочерняя будет руководящей для самой себя. Важно помнить, что можно создавать дочерние зоны без делегирования для них. В этом случае управление остается за родительской зоной.

    Записи

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

  • A-запись. Указывает адрес хоста. Она отображает хост-имя на адрес и может выглядеть следующим образом:
    Myhost.mycompany.com IN A 192.168.0.1
  • AAAA-запись. Эта запись пока используется не слишком много, но ожидается, что она будет активно использоваться с появлением IPv6. Считалось, что все доменные имена и IP-адреса будут скоро исчерпаны из-за потребительского роста. Это не происходит, и пока повсеместно используется IPv4. Вот пример хостзаписи из зоны, которая хранится в среде IPv6.
    IN AAAA 1234:1:2:3:4:567:89cd
  • CNAME-запись. Это каноническая запись, обычно используемая для алиасов (псевдонимов). Она позволяет отображать несколько хост-имен на заданный IP-адрес. Многие компании используют этот метод, чтобы убедиться, что их посетил предполагаемый заказчик, даже если этот посетитель немного ошибся в URL или имеется несколько вариантов написания URL компании. В этом случае заказчик будет уверен, что попал на нужный сайт.
  • SRV-запись (локатор служб). Эта запись особенно важна для Windows 2000 и 2003 в конфигурации лес/домены. Она используется для регистрации контроллеров домена (DC) в DNS и для объявления несколькими серверами информации о том, что они предоставляют определенную службу TCP/IP. Если вы пытаетесь создать новую запись, то имеете возможность задания для нее определенной службы TCP/IP. После размещения такой записи клиент, направляющий SRV-запрос, может использовать определенную службу TCP/IP, которая предоставляется в данном домене несколькими серверами. Если вы не можете найти контроллер домена для присоединения к домену, то SRV-записи – это одно из средств, которое вам следует использовать. Эта запись позволяет находить контроллеры домена, которые используют службу LDAP (AD) через порт TCP 389.
  • NS-запись. Эта запись идентифицирует сервер(ы) имен для заданного домена DNS. В NS-записях указываются первичные и вторичные серверы для пространства имен плюс дочерние зоны, происходящие из него.
  • SOA-запись (Start of Authority). эта запись определяет зону, для которой данный сервер является руководящим. Она имеет такие параметры конфигурирования для сервера, как срок действия (time to live), кто несет ответственность за указанный сервер, имена сервера имен (NS server), частоту обновления, последовательный (или "магический") номер, используемый для маркировки изменений зон, и запускаемая репликация (trigger replication).
  • PTR-запись. Эта запись позволяет быстро выполнять обратный поиск с помощью зоны обратного поиска (inaddr.arpa). Она считается обратной A-записью, но не похожа на нее ввиду использования inaddr.arpa в реальной записи. Такая запись для хоста syscrusher.skillet.com с IP-адресом 100.200.252.1 имеет следующий вид: 1.252.200.100.in-addr.arpa IN PTR syscrusher.skillet.com.
  • MX-запись. Эта запись для почтового обмена. Вы можете иметь несколько записей, которые указывают несколько ближайших почтовых серверов, и можете располагать их в нужном вам порядке.
  • Microsoft имеет несколько особых записей для собственных целей; эти записи используются для связи с различными окружениями WINS. Это следующие записи:

  • WINS. Позволяет MS DNS использовать сервер WINS для разрешения хост-имени. Это полезно, если у вас имеются клиенты более ранних версий Windows, которые не получают регистрации в какой-либо зоне DNS. Нужно найти такую запись, после чего будет запрошен сервер WINS.
  • WINS-R. Эта запись позволяет осуществлять обратный поиск. Это только записи Microsoft, и они могут быть ограничены при пересылке зон.
  • Пересылка/Репликация зон

    Серверы DNS реплицируют свои зоны. Они делают это по целому ряду причин в зависимости от структуры сети, но две наиболее важные причины – это отказоустойчивость и производительность. В начале использования DNS существовали первичный и вторичный серверы DNS. Оба содержали идентичные копии своих зон, и вторичный сервер обычно помещали в другую сеть, чтобы выход из строя первичной сети или отказ соответствующего сервера не приводили к потере функции разрешения имен. Они реплицировались по какому-либо событию, например, загрузка серверов или обновление зон первичного сервера, поэтому в случае появления "магического номера" в записи Start of Authority (SOA-записи) вторичный сервер обнаруживал это и извлекал базу данных, если были отличия.

    "Магический номер" относится к терминологии BIND DNS. Это последовательный номер, который наращивается каждый раз, как вносятся изменения в какую-либо первичную зону. За этим номером следят вторичные серверы, и если он изменяется, то происходит запуск репликации зон. Это называется пересылкой зон.

    Изменения могли вноситься только на первичном сервере; все вторичные системы были копиями первичной, что снижало риск повреждения базы данных. Это характерный тип конфигурации для среды UNIX, но ее можно создавать и с помощью Windows 2003. Как я уже говорил выше, предпочтительный метод – это использование лесов и доменов. Репликация происходит здесь в другом смысле; в домене, работа которого основывается на Active Directory (AD) и DNS, нет понятия первичных и вторичных серверов. В AD имеются только зоны AD.

    В этой конфигурации, которая называется репликацией с несколькими основными контроллерами ( multimaster-репликацией ), зоны DNS хранятся на контроллерах доменов, и зоны реплицируются через Active Directory. Здесь действует определенный "симбиоз": AD требуется служба DNS для поиска объектов, других контроллеров доменов и сайтов в дереве; службе DNS требуется AD для репликации на остальные контроллеры каждого домена. Это происходит следующим образом: после создания зоны она сохраняется в интегрированном с AD хранилище зон. Они хранятся в дереве Active Directory под доменом или разделом каталога приложений.

    Раздел приложений (application partition) – это новое понятие, введенное в Windows 2003; в нем хранятся данные приложений, которые могут выборочно реплицироваться на определенные контроллеры домена (более подробно об этом см. в гл. 19, и мы рассмотрим соответствующее средство, DNSCMD, ниже в разделе "Средства DNS"). В классической DNS зоны всегда реплицировались полностью. Начиная с Windows 2000, репликацию зон можно конфигурировать для полной репликации (вся зона копируется с помощью запроса AXFR) или добавочной формы пересылки зон (с помощью запроса IXFR). Если вам нужно подробное описание, см. документ RFC 1995.

    Это дает вам селективную форму multimaster-репликации: все или некоторые контроллеры домена содержат копии зоны и могут выполнять разрешение имен, обеспечивая при этом безопасность зоны. Какой вид безопасности? Вы можете вносить изменения в список контроля доступа (ACL) для защиты контейнера объектов dnsZone в дереве каталога. Это дает вам полный контроль над зоной или указанной ресурсной записью (RR – resource record) в этой зоне. С помощью списка ACL вы можете запрещать группам и/или хостам динамическое обновление любой RR данной зоны.

    Если вы добавляете к домену контроллер домена, то зона реплицируется в него без каких-либо дополнительных усилий. Вы можете также выбирать между репликацией всей зоны и части зоны, что не было доступно в прежних DNS!

    Файлы

    DNS состоит из набора файлов. Ниже приводится список этих файлов и описывается их назначение.

  • Cache.dns. Этот файл называют также файлом "корневых подсказок" (root hints). Он содержит корневые серверы для Интернет. Если вы подсоединены к Интернет, то все в порядке, но если нет, то требуются небольшие поправки. Просто замените серверы Интернет на SOA- и NS-записи для сервера DNS, который является руководящим для вашей зоны. Назначение этого файла – помогать в поиске корневых серверов для использования в инициализации кэша сервера. Если вы находитесь в Интернет, то, используя серверы, которые включаются в этот файл, вам еще проще изменять его из вкладки Root Hints (Корневые подсказки), находящейся в окне свойств вашего сервера.
  • Root.dns. Этот файл используется в том случае, если ваш сервер DNS является корневым сервером для вашей сети.
  • Your_Zone.dns. Вы увидите этот файл, только если используете стандартную первичную или вторичную зону. Этот файл отсутствует, если вы используете интегрированную с Active Directory DNS.
  • Boot. Возможно, вы знаете такой файл под именем named.boot, если использовали BIND DNS. Он не присутствует по умолчанию, но если у вас есть BIND-система, из которой требуется его импортировать, используйте вариант From File (Из файла) в окне свойств сервера оснастки DNS.
  • Имеется также исполняемый файл DNS.EXE и клиентский компонент (resolver), который запускается на клиентской машине.

    DNS Windows Server 2003

    Теперь поговорим о новых возможностях. Имеется довольно много отличий, которые вы увидите в DNS 2003. Вот их список.

  • Круговая система обновлений (Round robin). В DNS обычно используется круговая система, когда у сервера запрашиваются ресурсные записи одинакового типа для одного и того же доменного имени. Если это вызывает проблемы, то вы можете отключить использование круговой системы для определенных типов записей. Для этого нужно внести следующие изменения в реестр.
  • HKLM\System\CurrentControlSet\Services\DNS\Parameters\
  • DoNotRoundRobinTypes
  • Тип: REG_DWORD
  • Допустимый диапазон значений: любой тип RR (SRV, A, NS)
  • Разъединенное пространство имен. Если вы модернизируете сервер NT4 к Windows 2003 и хотите использовать имя Active Directory, которое отличается от предыдущего первичного суффикса NT4, то текущий первичный суффикс FQDN будет всегда соответствовать доменному имени. Если вы еще не сталкивались с этим и хотите получить более подробные сведения, обратитесь к статье Knowledge Base Q257623, "Domain Controller’s DNS Suffix Does Not Match Domain Name" (Суффикс DNS контроллера домена не совпадает с доменным именем).
  • Корневая зона (Root zone). Начиная с NT4, MS DNS автоматически добавляла корневые зоны к серверам DNS. В Windows 2003 это прекращено. В NT4 это инициировалось, когда сервер DNS впервые подключался к сети и не мог еще выдавать информацию серверам корневых подсказок в Интернет. Это вызывало пару проблем, в особенности невозможность задания пересылки запросов или взаимодействия с этими серверами. Теперь, если вам нужна корневая зона ".", вы можете сделать это вручную.
  • Выбор вариантов репликации зон. Теперь вы можете выбирать один из четырех способов репликации. Вы можете выбирать их при создании вашей зоны или когда хотите изменить метод хранения зоны. Вот эти варианты; читайте внимательно, поскольку отличия невелики. Кроме того, учитывайте влияние, которое может оказать ваш выбор на используемую долю пропускной способности сети и нагрузку сети.
  • Все серверы DNS в домене AD [Active Directory] (All DNS Servers in AD Domain). Это репликация всех данных вашей зоны на каждый контроллер домена в домене AD. Это вариант по умолчанию, когда вы создаете интегрированные с AD зоны DNS в системе Windows Server 2003.
  • Все серверы DNS в лесу AD (All DNS Servers in AD Forest). Это максимально возможный охват, при котором ваши зоны реплицируются на каждый контроллер домена в данном лесу. Такая репликация требует значительной части пропускной способности. Выбор вариантов позволяет администратору управлять возможностями репликации, чтобы можно было использовать не слишком большую долю пропускной способности или настраивать соединение с низкой пропускной способностью. В этом примере будет реплицироваться каждый сервер DNS в заданном лесу, что вызовет максимальное увеличение трафика.
  • Все контроллеры домена (DC) в домене AD (All DCs in AD Domain). Информация зоны реплицируется на все контроллеры домена в домене AD. Это вариант, который вы должны выбрать, если хотите, чтобы серверы DNS Windows 2000 загружали зону AD.
  • Все серверы DNS в указанном разделе каталога приложений (All DCs Servers in a Specified Application Directory Partition). Вы можете реплицировать информацию зоны согласно охвату репликации указанного раздела каталога приложений. Если выбрать этот вариант, то сервер DNS, на котором хранится ваша зона, должен быть зарегистрирован в выбранном вами каталоге приложений. Для этого вы можете использовать DNSCMD (более подробно о DNSCMD см. ниже в разделе "Средства DNS"):
    dnscmd Имя-вашего-сервера /CreateDirectoryPartition ваш-контроллер-домена.ваш-домен.com
  • Вы должны использовать здесь полностью уточненное доменное имя (FQDN). Регистрация вашего сервера DNS в новом разделе происходит почти так же:

    dnscmd Имя-вашего-сервера /EnlistDirectoryPartition ваш-контроллер-домена.ваш-домен.com

    И, наконец, если вы решили использовать разделы AD, то все объекты DNS удаляются из Глобального каталога (Global Catalog). DNSCMD не устанавливается по умолчанию; это должны сделать вы:

  • Перейдите на свой дистрибутивный CD.
  • Войдите в папку support\tools.
  • Щелкните на suptools.msi. Произойдет запуск программы установки, после чего будут установлены средства поддержки (Support tools).
  • Автоматическое конфигурирование DNS в DCPromo. Это позволяет автоматически задавать настройки ваших клиентов DNS, если выполняются следующие условия.
  • Имеется какое-либо одно сетевое соединение.
  • Предпочтительные и альтернативные настройки DNS совпадают.
  • Настройки DNS имеются только по одному соединению.
  • В результате будут запрошены текущие серверы DNS, указанные в сетевых настройках, обновлены корневые подсказки, сконфигурированы серверы перенаправления запросов (forwarders) с помощью предпочтительных и альтернативных серверов DNS, заданы настройки DNS с адресом "обратной связи" 127.0.0.1 и затем сконфигурированы все предыдущие предпочтительные и альтернативные серверы DNS. Если все это проходит успешно, то в Event Viewer (Просмотр событий) записывается соответствующий журнал.

  • Фиктивные (Stub) зоны. Мы рассматривали stub-зоны выше; по сути это делегированные дочерние зоны, содержащие SOA-записи, NS-записи и A-записи хостов. Они "склеивают" пространства имен. Сервер DNS может запрашивать сервер имен (NS) непосредственно вместо рекурсии. Изменения вносятся в зоны, когда происходит обновление или загрузка главной зоны. Локальный список главных зон определяет физически локальные серверы, из которых нужно выполнять пересылку.
  • Серверы перенаправления запросов по условиям. Когда сервер DNS получает запрос от клиента, этот сервер выполняет локальный поиск, то есть просматривает информацию своей зоны или информацию, содержащуюся в его кэше. Если он не получает ответа, то перенаправляет данный запрос (если это задано) серверам DNS, для которых он был сконфигурирован. Перенаправление по условиям является более детальным в том смысле, что вместо простого перенаправления запроса любому серверу перенаправление выполняется в соответствии с конкретными доменными именами, заданными в этих запросах. Во вкладке Conditional Forwarders (Серверы перенаправления по условиям), для вызова которой нужно щелкнуть правой кнопкой на сервере в оснастке DNS management, показано, что соответствующие условия можно задавать по конкретному доменному имени или по IP-адресу сервера перенаправления данного домена
  • Group policy (Групповая политика). Это средство конфигурирования клиентов. В среде со многими клиентами DNS не существует средства, с помощью которого можно было конфигурировать всех клиентов сразу, и это конфигурирование исторически выполнялось по отдельности для каждой системы. Такие вещи, как задание доменных суффиксов и может или не может клиент динамически обновлять свои записи, указывались вручную. Средство Group Policy позволяет конфигурировать группу клиентов идентичным образом посредством определенной групповой политики. В конкретные настройки включаются разрешение/отключение динамических обновлений, вывод списка серверов DNS для использования клиентом, предоставление списков суффиксов DNS и передача суффикса первичной DNS в процессе разрешения имен. Если вы разрешаете определенную проблему и при этом используете какую-либо групповую политику, то вам следует помнить, что групповая политика замещает любые другие настройки, например, локальные настройки и/или настройки DHCP. Если вам нужно, то вы можете обойти это правило через реестр, хотя это относится только к динамической регистрации:
  • Имя. DoNotUseGroupPolicyForDisableDynamicUpdate
  • Раздел (Key). HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
  • Тип данных. REG_DWORD
  • Допустимый диапазон. 0x0 (использовать групповую политику) и 0x1 (использовать локальные настройки)
  • По умолчанию (Default). 0x0
  • Записи реестра клиентской стороны

    Ниже приводится более подробный список записей реестра клиентской стороны

    Динамическое обновление (Dynamic Update)

    Эта настройка политики определяет, включено ли динамическое обновление. Компьютеры, сконфигурированные для динамического обновления, автоматически регистрируют и обновляют свои ресурсные записи DNS с помощью сервера DNS

    Имя: RegistrationEnabled

    Раздел: HKLM\Software\Polices\Microsoft\Windows NT\DNSClient

    Тип: REG_DWORD

    Допустимый диапазон: 0x0 (отключено) и 0x1 (включено)

    Список поиска суффиксов DNS (DNS Suffix Search List)

    Групповая политика для списка поиска суффиксов DNS важна для будущего перехода к свободной от NetBIOS среде. Если вы включаете эту настройку, то пользователь направляет запрос поиска имени с одной меткой (например, "widgets"), а клиент локальной DNS присоединяет суффикс (например, "microsoft.com"), что дает в результате запрос поиска "widgets.microsoft.com", прежде чем отправить этот запрос какому-либо серверу DNS.

    Имя: SearchList

    Раздел: HKLM\Software\Polices\Microsoft\Windows NT\DNSClient

    Тип: REG_SZ

    Допустимый диапазон: разделенные запятой строки суффиксов DNS

    Передача первичного суффикса DNS (Primary DNS Suffix Devolution)

    Эта настройка политики определяет, будет ли клиент DNS выполнять передачу первичного суффикса DNS в процессе разрешения имени. Если клиент направляет запрос имени с одной меткой (например, "mybox"), то локальный клиент DNS присоединяет суффикс (например, "skillet.com"), что дает в результате запрос "mybox.skillet.com", прежде чем отправить этот запрос серверу DNS.

    Первичный суффикс DNS передается до тех пор, пока не будет разрешен запрос или суффикс DNS не будет иметь две метки (например, "skillet.com"). Первичный суффикс DNS не может быть передан менее чем двум меткам.

    Раздел: HKLM\Software\Polices\Microsoft\Windows NT\DNSClient

    Тип: REG_DWORD

    Допустимый диапазон: 0x0 (отключено) и 0x1 (включено)

    Регистрация PTR-записи (Register PTR Record)

    Эта настройка политики разрешает или запрещает клиенту регистрировать PTR-записи. В состоянии по умолчанию клиенты DNS, сконфигурированные для выполнения динамической регистрации DNS, пытаются выполнить регистрацию ресурсной PTR-записи, только если они успешно зарегистрировали соответствующую ресурсную A-запись. Чтобы включить эту политику, выберите Enable (Включить) и выберите одно из следующих значений.

  • Do not register (Не регистрировать). Компьютеры никогда не будут пытаться регистрировать ресурсные PTR-записи.
  • Register (Регистрировать). Компьютеры пытаются регистрировать ресурсные PTR-записи независимо от успешности регистрации A-записей.
  • Register only if A record registration succeeds (Регистрировать, только если успешно зарегистрирована A-запись). Компьютеры пытаются регистрировать ресурсные PTR-записи, только если они успешно зарегистрировали соответствующие ресурсные A-записи.
  • Имя: RegisterReverseLookup

    Раздел: HKLM\Software\Polices\Microsoft\Windows NT\DNSClient

    Тип: REG_DWORD

    Допустимый диапазон: 0x0 (отключено), 0x1 (включено)

    Интервал обновления регистрации (Registration Refresh Interval)

    Эта настройка политики определяет интервал обновления регистрации ресурсных A- и PTR-записей для компьютеров. Эту настройку можно применять только к компьютерам, которые используют динамическое обновление. Если ресурсные записи DNS регистрируются в зонах с включенной очисткой, то значение этой настройки должно быть не больше, чем Refresh Interval (Интервал обновления), заданный для этих зон. Задание величины Registration Refresh Interval, превышающей Refresh Interval этих зон DNS может вызывать преждевременное удаление ресурсных A- и PTR-записей, что может вызвать определенную проблему.

    Имя: RegistrationRefreshInterval

    Раздел: HKLM\Software\Polices\Microsoft\Windows NT\DNSClient

    Тип: REG_DWORD

    Допустимый диапазон: больше или равно 1800 (секунд)

    Замена адресов в конфликтах (Replace Addresses in Conflicts)

    Эта настройка политики определяет, будет ли клиент DNS, который пытается зарегистрировать свою ресурсную A-запись, замещать существующие ресурсные A-записи, содержащие конфликтные IP-адреса. Во время динамического обновления зоны, которая не использует Secure Dynamic Update (Защищенное динамическое обновление), клиент может обнаружить, что существующая ресурсная A-запись связывает DNS-имя хоста данного клиента с IP-адресом другого компьютера. Согласно конфигурации по умолчанию этот клиент DNS попытается заместить эту существующую A-запись той A-записью, которая связывает DNS-имя с IP-адресом клиента.

    Имя: RegistrationOverwritesInConflict

    Раздел: HKLM\Software\Polices\Microsoft\Windows NT\DNSClient

    Тип: REG_DWORD

    Допустимый диапазон: 0x0 (отключено) и 0x1 (включено)

    Регистрация записей DNS с помощью суффикса DNS для конкретного соединения (Register DNS Records with Connection Specific DNS Suffix)

    Эта настройка политики определяет, может ли компьютер, выполняющий динамическую регистрацию, регистрировать свои ресурсные A- и PTR-записи путем конкатенации своего имени (Computer Name) и суффикса DNS для конкретного соединения (в дополнение к регистрации этих записей путем конкатенации своего имени и первичного (Primary) суффикса DNS.

    Имя: RegisterAdapterName

    Раздел: HKLM\Software\Polices\Microsoft\Windows NT\DNSClient

    Тип: REG_DWORD

    Допустимый диапазон: 0x0 (отключено), 0x1 (включено)

    Примечание. Если динамическая регистрация DNS отключена на компьютере (или отключена для конкретного сетевого соединения, к которому применяется эта настройка), то компьютер не будет пытаться выполнять динамическую регистрацию DNS для его A- и PTR-записей независимо от настройки этой политики.

    Задание TTL (Срок действия) в A- и PTR-записях (TTL Set in the A and PTR Records)

    Эта настройка политики указывает значение для поля TTL (time-to-live) ресурсных A- и PTR-записей, регистрируемых в компьютерах, к которым относится эта настройка.

    Имя: RegistrationTTL

    Раздел: HKLM\Software\Polices\Microsoft\Windows NT\DNSClient

    Тип: REG_DWORD

    Допустимый диапазон: 0-4294967200 (секунд)

    По умолчанию: 600

    Уровень защиты обновлений (Update Security Level)

    Эта политика указывает, какой вид обновлений для регистрации DNS-записей будут использовать компьютеры, к которым применяется эта настройка, – защищенные динамические обновления или стандартные динамические обновления. Чтобы включить эту настройку, выберите вариант Enable и выберите одно из следующих значений.

  • Unsecure Followed By Secure (Защищенные после незащищенных). Если выбран этот вариант, то компьютеры отправляют защищенные динамические обновления, только если получают отказ в незащищенных динамических обновлениях.
  • Only Unsecure (Только незащищенные). Если выбран этот вариант, то компьютеры отправляют только незащищенные динамические обновления.
  • Only Secure (Только защищенные). Если выбран этот вариант, то компьютеры отправляют только защищенные динамические обновления.
  • Имя: UpdateSecurityLevel

    Раздел: HKLM\Software\Polices\Microsoft\Windows NT\DNSClient

    Тип: REG_DWORD

    Допустимый диапазон: 0 (UnsecureFollowedBySecure), 16 (OnlyUnsecure), 256 (OnlySecure)

    Обновление зон доменов верхнего уровня (Update Top Level Domain Zones)

    Эта настройка политики указывает, могут ли компьютеры, к которым применяется эта политика, отправлять динамические обновления зонам, имя которых содержит одну метку (т.е. зонам доменов верхнего уровня, например, "com").

    По умолчанию клиент DNS, сконфигурированный для выполнения динамических обновлений, будет отправлять динамические обновления зоне или зонам DNS, которые является руководящими для его ресурсных записей DNS, кроме руководящих зон верхнего уровня и корневой зоны.

    Если включить эту политику, то компьютеры, к которым применяется эта политика, будут отправлять динамические обновления любой зоне, которая является руководящей для его ресурсных записей, за исключением корневой зоны.

    Имя: UpdateTopLevelDomainZones

    Раздел: HKLM\Software\Polices\Microsoft\Windows NT\DNSClient

    Тип: REG_DWORD

    Значения: 0x0 (отключено) и 0x1 (включено)

    Базовая поддержка для DNSSEC (RFC 2535)

    Важно отметить, что Windows Server 2003 не полностью поддерживает стандарт DNSSEC, но его назначение – использовать криптографию для обеспечения защиты данных, когда информация зоны передается по проводам (или иным способом, например, в случае беспроводных соединений). Это важно, поскольку злоумышленник может перехватывать эту информацию, чтобы найти "стратегически" важные серверы для последующей подделки или компрометации этих серверов. Имеются открытые (public) и личные (private) ключи, которые связываются с этими зонами, чтобы в случае компрометации сервера DNS клиентские компоненты (resolver) все же могли аутентифицировать ресурсные записи из этих зон (например, эти ключи применяются к зонам, а не к серверу).

    Эта служба использует с помощью личных ключей шифрованные цифровые подписи, которые отправляются как ресурсные записи от серверов DNS, где хранятся подписанные зоны. Эти записи принимаются клиентским компонентом (resolver), который может аутентифицировать их с помощью открытого ключа. Цифровые подписи и открытые ключи добавляются к подписанной зоне как ресурсные записи. Отметим, что если вы хотите использовать эту службу, то для этого нужно обратиться к реестру (ее нет в оснастке DNS).

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\

    Parameters

    Добавьте EnableDnsSec в поле DWORD.

    Этому полю передается одно из трех значений в зависимости от того, что вы хотите сделать.

  • 0x0. Исключение ресурсных записей (RR) DNSSEC в ответах на запросы, если это не запись типа NXT, SIG или KEY. В этом случае соответствующие RR будут отправляться только в ответ на записи типа NXT, SIG или KEY.
  • 0x2. Включение ресурсных записей (RR) DNSSEC во все ответы.
  • 0x1 (или пустое поле). Если вам нужно, чтобы записи DNSSEC включались в ответы для тех случаев, когда запрос клиента содержит OPT-запись, то добавьте 0x1 или оставьте это поле пустым.
  • Возможны случаи, когда у вас имеется сервер DNS с несколькими адаптерами (multihomed), но вы хотите, чтобы этот сервер DNS выполнял прием и отвечал только через один сетевой адаптер (NIC). Для такого компьютера (два сетевых адаптера, соединенных с различными сетями) существует еще одна задача безопасности: когда один из сетевых адаптеров соединен с Интернет, сконфигурировать DNS, чтобы она принимала запросы только из частной сети. Это можно сделать средствами GUI (графического интерфейса). Для этого используется консоль управления Microsoft. Загрузите оснастку DNS и перейдите в раскрывающееся меню Actions (Действия). Щелкните на кнопке Properties (Свойства). Щелкните на вкладке Interface (Интерфейс), выберите Only The Following IP Addresses (Только следующие IP-адреса) и добавьте свой IP-адрес. По окончании щелкните на кнопке Add.

    Записи расширения для DNS (EDNSO)

    Исходная спецификация для DNS ограничивала размер пакета 512 октетами. EDNS0 (RFC 2671) позволяет передавать пакеты большего размера. Когда сервер DNS получает запрос (используется протокол UDP), он ищет ресурсную OPT-запись клиента и изменяет свой ответ, чтобы можно было передать столько ресурсных записей, сколько указано этим клиентом в OPT-записи (размер UDP указывается в OPT-записи).

    Ведение журналов DNS

    Возможности ведения журналов DNS не изменились после Windows 2000, но работать с ними стало удобнее за счет использования графического интерфейса (GUI), который включен как часть оснастки Event Viewer. Вы можете задавать фильтрацию по пользователям, по компьютерам, по идентификаторам событий, по категориям или источникам событий от первого до последнего события и в соответствии с типами событий (обычная информация, предупреждения или ошибки). Ведение журнала DNS (DNS logging) представлено в оснастке DNS или в оснастке Event Viewer, включенной в окно Administrative Tools (Администрирование). Для выбора опций ведения журнала событий и отладки щелкните правой кнопкой на сервере в оснастке DNS и выберите пункт Properties. Появятся вкладки журнала отладки (Debug logging) и журнала событий (Event logging), и вы сможете выбрать нужные варианты. Это следующие варианты: Query (Запрос), Notify (Уведомление), Update (Изменение), Questions (Вопросы), Answers (Ответы), Send (Отправка), Receive (Получение), UDP, TCP, Full Packets (Полные пакеты) и Write Through (Сквозная запись).

    Средства DNS

    Windows Server 2003 содержит много встроенных инструментальных средств, которые можно использовать для мониторинга, управления и устранения проблем DNS. Эти средства описываются в следующих разделах.

    NSLOOKUP

    Эта утилита командной строки позволяет запрашивать пространство имен DNS и позволяет вам устранять наиболее распространенные проблемы DNS. Она предусматривает интерактивный режим, что позволяет вам просматривать ресурсные записи на заданном сервере. Она имеет следующий синтаксис:

    Nslookup -Команда хост-имя | -Сервер

    Сервер – это указанный вами сервер, но по умолчанию используется сервер DNS, указанный на вашей странице свойств TCP/IP Properties.

    IPCONFIG

    Эту утилиту можно применять только при условии, что ваш компьютер использует также DHCP. Она имеет три параметра, относящихся к DNS: /registerdns, /flushdns и /displaydns.

    Параметр /registerdns обновляет аренду DNS и вынуждает клиента выполнить перерегистрацию с помощью сервера DNS. Параметр /flushdns выполняет очистку кэша клиентского компонента (resolver), /displaydns показывает, что содержится в кэше resolver.

    PING

    Это утилита TCP/IP, и она должна использоваться в первую очередь, чтобы выяснить, действует ли соединение между клиентом и сервером. Если не действует, то нет смысла в устранении проблемы DNS, поскольку это проблема более низкого уровня. Кроме того, для быстрой проверки PTR-разрешения вы можете направить ping по IP-адресу, что позволит вам удостовериться в наличии соединения и хост-имени.

    DNSCMD

    Эта утилита командной строки предоставляет много возможностей. Большинство вещей, которые вы можете делать с помощью оснастки DNS, можно делать и с помощью DNSCMD, включая скрипты, создание разделов Active Directory (AD), вывод списка этих разделов, создание и конфигурирование серверов DNS, а также управление. DNSCMD не устанавливается по умолчанию; это должны сделать вы:

    Перейдите на свой дистрибутивный CD, войдите в папку support\tools и щелкните на suptools.msi. Произойдет запуск программы установки, после чего будут установлены средства поддержки (Support tools). Это очень мощное средство – ввод DNSCMD в командной строке даст вам представление об этом, но если говорить о реальных возможностях, то почти все (а, может быть, и все) функции, которые вы получаете с помощью GUI, доступны также с помощью DNSCMD.

    NETDIAG

    Эта утилита применяется не только к DNS, поскольку она имеет много других сетевых функций; однако она позволяет справиться с целым рядом "таинственных" проблем и дает вам отчет о состоянии для записей DNS, которые обнаружила в регистрациях. Чтобы увидеть, что сообщит NETDIAG по определенному вопросу, перейдите в окно командной строки и вводите netdiag /fix для всех сетевых функций, которые хотите проверить, или введите netdiag /DNS. Чтобы узнать, что может делать эта утилита, перейдите в Microsoft Knowledge Base и найдите статью 321708. NETDIAG находится в папке Support Tools на вашем дистрибутивном CD.

    RENDOM

    Эта утилита позволяет переименовывать домены в Windows 2003. Она имеет также очень нужную "побочную" функцию, позволяя проверять целостность домена путем поиска необходимых записей-локаторов контроллеров домена (DC Locator Source) на руководящих серверах DNS. Это нужно, чтобы убедиться в том, что репликация и аутентификация будут происходить должным образом после переименования. Ее легко использовать для переименования записей-локаторов контроллеров домена на сервере DNS, который является руководящим для данной зоны, и последующей проверки целостности домена. Если определенная запись отсутствует, утилита может сообщить, какая это запись, что облегчает устранение проблем.

    DNSlint

    Это утилита командной строки, которая охватывает большинство задач диагностики DNS. Ее можно использовать для диагностирования наиболее распространенных проблем разрешения имен DNS. Она имеет три основные функции: dnslint /ql (проверка определенных пользователем записей на сервере DNS), dnslint /ad (проверка записей, относящихся к активному домену [Active Domain]) и dnslint /d (проверка "неверного делегирования"). Вы можете загрузить это средство с веб-сайта Microsoft.

    Установка DNS

    Установка DNS зависит от того, что вы планируете делать с пространством имен и Active Directory (AD). Предпочтительный метод – это их интеграция, которая требует установки AD и интегрированных с AD зон. Это существенно отличается от установки классической DNS на контроллере домена, работа которого основана на Active Directory. Вам нужно выполнить необходимые шаги во время установки или с помощью утилиты DCPROMO, вызванной из меню Start/Run (Пуск/Выполнить). Прежде чем сделать это, проследите, чтобы данный компьютер был сконфигурирован со статическим IP-адресом, иначе у вас не будет SRV-записей. Они создаются в вашей зоне AD, а остальные контроллеры домена ищут их во время присоединения к домену.

    В Windows 2003 сначала появляется новое диалоговое окно, где говорится, что возможны проблемы операционной системы с этим контроллером домена, если у вас есть машины, работающие под управлением Windows 95 либо NT4 версии SP3 или более ранних версий. Причиной этого может быть подписание блоков SMB (Server Message Block – Блок серверных сообщений) и более защищенное соединение, относящееся к контроллеру домена и его клиентам. Блоки SMB обеспечивают разделяемое использование принтеров и файлов, администрирование и аутентификацию входа для операционных систем Windows. SMB изменился в Windows 2003. Он стал несовместим с более ранними формами протокола Session Message Block Protocol и не позволяет клиентам более ранних версий Windows аутентифицироваться для домена. Помните об этом предупреждении!

    Было также изменено одно из диалоговых окон для DNS, встроенных в диалоговый процесс DCPROMO. Оно используется, чтобы сообщить, что не может быть установлен контакт с сервером DNS для этого домена. Мастер спросит, хотите ли вы установить и сконфигурировать DNS для этого сервера или сделаете это позже вручную. Теперь оно вызывается окном диагностики регистрации DNS. В нем описывается, какая запись не найдена (SRV), предлагаются действия для данной ситуации и предоставляются для выбора три следующих варианта:

  • I have corrected the problem, test again (Я устранил проблему, выполнить тестирование снова).
  • Install and configure DNS server on this computer and set this computer to use its own DNS service (Установить и сконфигурировать сервер DNS на этом компьютере и задать для этого компьютера использование его собственной службы DNS).
  • I'll correct this later by installing DNS manually (Я исправлю это позже, установив DNS вручную).
  • DCPromo будет действовать как мастер, запрашивая у вас информацию, создавая для вас зоны DNS и выполняя конфигурирование некоторых настроек. Мастер получает от вас информацию, запускает процесс, и вскоре у вас появляется контроллер домена, работающий с AD DNS. Это позволяет осуществлять динамические обновления и дает вам также зоны прямого и обратного поиска.

    Установка DNS вручную

    Это несложный процесс. Вот как он выполняется.

  • Перейдите в Control Panel (Панель управления), Add or Remove Programs (Установка и удаление программ).
  • Щелкните на Add/Remove Windows Components (Добавление и удаление компоненто Windows), перейдите в Networking Services (Сетевые службы) и установите флажок Domain Name System (DNS).
  • Щелкните на кнопке OK. Система начнет установку и может запросить у вас CD. По окончании вы увидите, у вас установлена оснастка DNS manager, создана папка DNS в %SYSTEMROOT%\System32 и в реестр добавлена служба DNS.
  • Установка DNS с помощью мастера Manage Your Server Wizard

    Ниже описывается, как установить DNS с помощью мастера Manage Your Server Wizard (Управление вашим сервером).

  • После запуска мастера Manage Your Server Wizard вы увидите два варианта выбора: Adding Roles To Your Server (Добавление ролей к вашему серверу) и Managing Your Server Roles (Управление ролями вашего сервера).
  • Выберите Add Or Remove A Role (Добавление или удаление роли). Вы увидите окно Preliminary Steps (Предварительные шаги).
  • Мастер начнет сканирование ваших сетевых интерфейсов.
  • После этого вам предоставляется два варианта выбора: Typical Configuration Of First Server (Типичная конфигурация первого сервера) и Custom Configuration (Нестандартная конфигурация). Типичная конфигурация – это установка DNS, DHCP и применение DCPROMO для настройки данного компьютера как контроллера домена.
  • Выберите вариант Custom Configuration.
  • В списке Server Role (Роль сервера) выберите DNS Server (Сервер DNS). Появится окно Summary Selection (Сводка выбора).
  • Будут установлены файлы. Держите под рукой свой CD, поскольку сервер будет искать его. Если данный компьютер не имеет статического IP-адреса, то вам будет предложено изменить эту ситуацию. На странице свойств TCP/IP Properties вы можете оставить поле DNS address (Адрес DNS) пустым. В этом случае компьютер заполнит его своим собственным адресом (указывая на самого себя) для разрешения имен.
  • Появится мастер Configure DNS Server Wizard (Мастер конфигурирования сервера DNS).
  • Мастер выведет окно, где запрашивается, как вы хотите сконфигурировать DNS. Вы можете создать зону прямого поиска, создать зоны прямого и обратного поиска или сконфигурировать только "корневые подсказки" (root hints). Выберите Forward Lookup Zone (Зона прямого поиска).
  • В следующем окне запрашивается имя вашей зоны.
  • Будет создан файл зоны, и его имя будет представлено для вашего подтверждения.
  • Теперь вы должны выбрать, разрешать ли незащищенные и защищенные динамические обновления или не разрешать динамические обновления.
  • Появится окно Reverse Lookup Zone (Зона обратного поиска); вы можете выбрать (или не выбрать) здесь создание зоны обратного поиска. Если да, то вам будет представлено предлагаемое имя .dns-файла.
  • В следующем окне вы можете выбрать, разрешать ли незащищенные и защищенные динамические обновления.
  • Появится окно Forwarders (Серверы перенаправления запросов). Вы можете вообще не выбирать никакого перенаправления, но если выбрали его, то должны задать IP-адреса сервера, на который планируете перенаправлять запросы. После щелчка на кнопке Next (Далее) появится сводка выбранных вами вариантов и поиск корневых подсказок. По окончании у вас появится сервер DNS.
  • Задание зоны прямого поиска

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

  • Запустите оснастку DNS и щелкните правой кнопкой на Forward Lookup Zone.
  • Выберите вариант New Zone (Создать зону) и добавьте имя новой зоны. Вы получаете здесь три или четыре варианта выбора (четыре в том случае, если данный компьютер интегрирован с Active Directory [AD]). Первые три вы имеете в любом случае: Primary Zone, Secondary Zone и Stub Zone. Четвертый вариант (если данный компьютер является контроллером домена) – Store Zone In Active Directory (Хранить зону в Active Directory).
  • Выберите вариант Primary Zone. После этого нужно выбрать схему репликации: на все серверы DNS в лесу AD (например, myforest.com), на все серверы DNS в домене AD (например, mydomain.com) или на все контроллеры домена в домене Active Directory. Введите имя зоны, щелкните на кнопке OK и у вас будут запрошены домены, которые должна разрешать ваша новая зона. Вы можете выбрать вариант Only Secure Updates (Только защищенные обновления), Allow Both Secure And Nonsecure Updates (Разрешать как защищенные, так и незащищенные обновления) или Do Not Allow Dynamic Updates (Не разрешать динамические обновления).
  • После этого вы можете добавлять записи, но чтобы сделать это непосредственно, нужно сконфигурировать зону, чтобы она разрешала динамические обновления, и сконфигурировать клиентов, чтобы они могли регистрировать самих себя. Если вам нужно добавить запись вручную, щелкните правой кнопкой на только что созданной зоне, выберите пункт Add A Record (Добавить запись) и выполните прокрутку списка, пока не найдете нужную вам запись.

    Тестирование: давайте посмотрим, как это работает

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

  • Откройте оснастку DNS: в меню Start\Administrative Tools выберите DNS Snapin (Оснастка DNS).
  • В левой панели выберите ваш первичный сервер DNS для проверки нужных вам зон и выберите в меню Action пункт Properties.
  • Во вкладке Monitoring (Мониторинг) выберите тест, который хотите выполнить. Это вариант A Simple Query Against This DNS Server (Простой запрос к данному серверу DNS) или A Recursive Query To Other DNS Servers (Рекурсивный запрос к другим серверам DNS).
  • Выберите Test Now (Тестировать) или Perform Automatic Testing The Following Interval (Выполнить автоматическое тестирование через следующий интервал) и выберите нужный вам интервал.
  • Параметры безопасности

    DNS позволяет делегировать полномочия администрирования и управления пользователям и группам. Определите необходимые вам полномочия и выберите нужный вам уровень безопасности. Чтобы вызвать страницу Security (Безопасность), щелкните правой кнопкой на данном сервере DNS в оснастке DNS и выберите Security на странице свойств.

    Интеграция с DHCP

    DNS и DHCP могут использоваться совместно. В этой конфигурации клиентам и серверам разрешается обновлять A-записи (записи хостов) и PTR-записи (записи обратного поиска). DHCP будет предоставлять вам аренду и обновлять соответствующим образом записи DNS.

    Документы RFC

    Чтобы получить более подробную информацию по спецификациям, обратитесь к документам RFC (Request for Comment). Ниже приводятся все документы RFC для системы Windows Server 2003 и ее клиентов.

  • 1034 Domain Names-Concepts and Facilities (Доменные имена – концепции и средства)
  • 1035 Domain Names-Implementation and Specification (Доменные имена – реализация и спецификация)
  • 1123 Requirements for Internet Hosts-Application and Support (Требования к хостам Интернет – применение и поддержка)
  • 1886 DNS Extensions to Support IP Version 6 (Расширения DNS для поддержки IPv6)
  • 1995 Incremental Zone Transfer in DNS (Метод добавочной пересылки зон в DNS)
  • 1996 A Mechanism for Prompt Notification of Zone Changes (DNS NOTIFY) (Механизм уведомлений об изменениях зон)
  • 2136 Dynamic Updates in the Domain Name System (DNS UPDATE) (Динамические обновления в DNS) 2181 Clarifications to the DNS Specification (Уточнения к спецификации DNS)
  • 2308 Negative Caching of DNS Queries (DNS NCACHE) (Отрицательное кэширование запросов DNS)
  • 2535 Domain Name System Security Extensions (DNSSEC) (Расширения безопасности DNS)
  • 2671 Extension Mechanisms for DNS (EDNS0) (Механизмы расширения для DNS)
  • 2782 A DNS RR for Specifying the Location of Services (DNS SRV) (Ресурсная запись [RR] DNS для указания местоположения служб)
  • Draft-документы интернет для DNS

    Следующие draft-документы интернет содержат спецификации, используемые для разработки и реализации сервера и клиентских служб DNS.

  • Draft-skwan-utf8-dns-02.txt. Using the UTF-8 Character Set in the Domain Name System (Использование набора символов UTF-8 в DNS)
  • Draft-ietf-dhc-dhcp-dns-08.txt. Interaction Between DHCP and DNS (Взаимодействие между DHCP и DNS)
  • Draft-ietf-dnsind-tsig-11.txt. Secret Key Transaction Signatures for DNS (TSIG) (Подписи транзакций с секретными ключами для DNS)
  • Draft-ietf-dnsind-tkey-00.txt. Secret Key Establishment for DNS (TKEY RR) (Использование секретных ключей для DNS)
  • Draft-skwan-gss-tsig-04.txt. GSS Algorithm for TSIG (GSS-TSIG)
  • Другие спецификации для DNS

    Следующие дополнительные спецификации используются для разработки и реализации служб сервера и клиента DNS.

  • WINS

    WINS используется для имен NetBIOS таким же образом, как DNS для хост-имен; основное отличие заключается в структуре пространств имен. WINS – это распределенная база данных или может быть такой базой данных. WINS отображает IP-адреса на имена NetBIOS. WINS – это "плоское" пространство имен, в то время как DNS – это иерархическая структура; в WINS нет никакой явно или неявно выраженной иерархии. В то время как машина, находящаяся в accounting домена skillet.com будет представлена в DNS как myhost.skillet.com, ее доменное имя NetBIOS будет SKILLET.

    WINS была предназначена для разрешения имен NetBIOS в немаршрутизируемой сети. Без WINS компьютеры просто отправляли бы широковещательные сообщения через сеть. Это создает проблему использования NetBIOS, поскольку широковещательные сообщения переполняют большую сеть и "съедают" значительную долю пропускной способности. NetBIOS нельзя маршрутизировать, и выполнение происходит поверх TCP/IP.

    NetBIOS – это уровень представления (см. модель OSI) интерфейса прикладного программирования (API), разработанный IBM в 1983 г. Он позволяет программам задавать инструкции нижележащим сетевым протоколам; несмотря на его "возраст", именно поэтому он все еще используется. Унаследованные приложения и многочисленные средства сетевого администрирования все еще используют этот API и не могут выполнять обмен информацией без разрешения имен NetBIOS. Напомним, что в примере разрешения имен DNS мы ссылались на браузер, который передает запрос имени клиентскому компоненту DNS (resolver) для разрешения имени. NetBIOS работает почти так же: приложение, которому требуется найти службу, работающую на другом компьютере (файловые службы и службы печати) отправляет запрос для имени NetBIOS. Его нужно преобразовать в IP-адрес. Это приложение, возможно, не знает, как использовать DNS для той же задачи.

    Два непосредственных примера – это навигация, а также файловые службы и службы печати. Имена NetBIOS можно разрешать различными способами в зависимости от того, как сконфигурирован данный клиент (см. следующий раздел).

    Как вы можете предполагать, для этого плоского пространства имен требуется сервер WINS, который содержит соответствующие записи. Они существенно отличаются от записей DNS, в том числе форматом базы данных и методом хранения. В WINS нет никакого ASCII-файла. Это база данных Microsoft, известная под названием Jet, которая используется также в Access. Она плохо защищена от повреждений и чувствительна к большому числу факторов. По мере дальнейшего изложения мы увидим несколько параллелей с DNS.

    Имена NetBIOS

    Имена NetBIOS могут быть уникальными или являться частью группы. Это 16-байтовые адреса, и они имеют одну позицию, зарезервированную для типа службы, которую они представляют. Если имя короче 16 символов, то остальные байты заполняются до 16-го символа. Это важно знать, если вы редактируете файл LMHOSTS (см. ниже раздел "LMHOSTS"). Запись для службы рабочей станции (Workstation) может выглядеть следующим образом:

    Machinename <00> UNIQUE

    Это представление записи компьютера в WINS для службы Workstation. Вы передаете информацию с помощью суффикса (<##>), содержащего алфавитно-цифровые символы. Вы можете также встретить запись Machinename <00> GROUP, и это также допустимо. Уникальные имена (UNIQUE) используются для доступа к службам на отдельных компьютерах; группы (GROUP) используются для групп компьютеров. Существуют типы записей (их очень много), и этот список не является полным. И нет способа его упорядочить, поскольку поставщики сторонних фирм имеют свои собственные суффиксы, которые регистрируются их собственными приложениями. Чтобы увидеть их, посмотрите две самые последние записи для Irmalan и Lotus Notes.

    <computername> 00 U Workstation Service
    <computername> 01 U Messenger Service
    <\\—__MSBROWSE__> 01 G Master Browser
    <computername> 03 U Messenger Service
    <computername> 06 U RAS Server Service
    <computername> 1F U NetDDE Service
    <computername> 20 U File Server Service
    <computername> 21 U RAS Client Service
    <computername> 22 U Microsoft Exchange Interchange (MSMail
    Connector)
    <computername> 23 U Microsoft Exchange Store
    <computername> 24 U Microsoft Exchange Directory
    <computername> 30 U Modem Sharing Server Service
    <computername> 31 U Modem Sharing Client Service
    <computername> 43 U SMS Clients Remote Control
    <computername> 44 U SMS Administrators Remote Control
    Tool
    <computername> 45 U SMS Clients Remote Chat
    <computername> 46 U SMS Clients Remote Transfer
    <computername> 4C U DEC Pathworks TCPIP service on
    Windows NT
    <computername> 42 U mccaffee anti-virus
    <computername> 52 U DEC Pathworks TCPIP service on
    Windows NT
    <computername> 87 U Microsoft Exchange MTA
    <computername> 6A U Microsoft Exchange IMC
    <computername> BE U Network Monitor Agent
    <computername> BF U Network Monitor Application
    <username> 03 U Messenger Service
    <domain> 00 G Domain Name
    <domain> 1B U Domain Master Browser
    <domain> 1C G Domain Controllers
    <domain> 1D U Master Browser
    <domain> 1E G Browser Service Elections
    <INet~Services> 1C G IIS
    <IS~computer name> 00 U IIS
    <computername> [2B] U Lotus Notes Server Service
    IRISMULTICAST [2F] G Lotus Notes
    IRISNAMESERVER [33] G Lotus Notes
    Forte_$ND800ZA [20 U DCA IrmaLan Gateway Server Service

    Именно эти виды записей вы можете встретить в базе данных WINS. (Другие называются "статическими записями".) Большинство регистраций WINS являются динамическими и ведут себя аналогично аренде DHCP. Статическая запись используется для таких систем, как UNIX (которые не поддерживают NetBIOS). Кроме случаев поиска источника проблем никогда не используйте их для поддерживающих NetBIOS клиентов, поскольку они будут пытаться регистрировать себя и будут отклонены. Это обычно означает, что клиент не получит регистрации, а вы получите сообщение: Duplicate name on network! (Дублированное имя в сети). Статические записи можно использовать для систем, которые не могут регистрировать имя NetBIOS, а записи, которые можно добавлять вручную, имеют такие же типы, как и те, что обычно вводятся динамически поддерживающим NetBIOS клиентом: Unique, Group, Domain Name, Internet Group и Multihomed.

    LMHOSTS

    Если широковещательное сообщение NetBIOS не дает результата, то следующая альтернатива – это обращение к файлу LMHOSTS на локальном компьютере. Пример этого файла можно увидеть в папке %systemroot%\system32\drivers\... В отличие от файлов HOSTS файлы LMHOSTS имеют дополнительные опции для разрешения имен, включая, в частности, следующие средства.

  • #PRE. Запись, перед которой указывается это ключевое слово, будет заранее загружаться в кэш при загрузке компьютера.
  • #DOM [имя_домена]. Это ключевое слово требуется для проверки домена через маршрутизатор, а также для навигации в домене и синхронизации учетных записей.
  • #INCLUDE <путь>. Тег #INCLUDE позволяет вам получать доступ к файлу LMHOSTS, находящемуся в каком-либо месте, отличном от местоположения по умолчанию.
  • Типы разрешения

    Настройка клиента в разрешении имен WINS/NetBIOS будет определять его поведение. Имеются четыре метода разрешения, которые называются типами узлов. Они действуют следующим образом.

  • B-узел. Напомним, что B означает Broadcast (широковещательное сообщение). Это обычно то, что вы использовали бы, если бы у вас был один сетевой сегмент, поскольку в нем распространяются широковещательные сообщения, которые требуют ответа других клиентов, а большинство маршрутизаторов не пропускают широковещательные сообщения.
  • P-узел. Этот тип вы использовали бы при наличии сервера WINS; он не передает широковещательных сообщений, но обращается непосредственно к серверу WINS для своего разрешения имен.
  • M-узел. Это смешанный режим, поскольку для него используется комбинация B- и P-узлов. По умолчанию он действует как B-узел; если он не получает никакого ответа (нужный ему ресурс находится в другой подсети), то он переходит в режим P-узла и запрашивает сервер WINS.
  • H-узел. Его называют "гибридным" узлом. Фактически это обратная версия M-узла. Сначала он запрашивает сервер WINS и если не получает никакого ответа, то переходит в режим B-узла и передает широковещательное сообщение. Это узел по умолчанию.
  • Регистрация, обновление и освобождение имен

    При своем запуске клиенты WINS обращаются к серверу WINS и регистрируют свои имена и IP-адреса. Если соответствующее имя не используется (WINS не "заботится" об IP-адресах; вы можете дублировать их сколько угодно), то сервер разрешает клиенту регистрировать его службы на сервере WINS. Клиент получит сообщение POSITIVE NAME REGISTRATION RESPONSE (положительный ответ на запрос регистрации имени). Минимально компьютер, который подключился, не имея ничего, кроме операционной системы, обычно регистрирует записи <00> (служба Workstation), <20> (служба Server) и <03> (служба Messenger). Если соответствующее имя уже используется, то сервер отправляет "вызов" последнему компьютеру, который зарегистрировал это имя (чтобы он "защитил" свое имя). Сервер делает это три раза через заранее определенные интервалы времени, и если получен ответ на вызов, то клиенту отправляется сообщение NEGATIVE NAME REGISTRATION RESPONSE (отрицательный ответ на запрос имени).

    Пользователь увидит всплывающее окно с текстом "Duplicate name on network" (Дублированное имя в сети). Но если ответ на вызов не получен, то клиенту разрешается регистрация. Эти регистрации ограничены по времени, то есть им присваивается значение TTL (срок действия). Клиенты должны обновлять регистрацию имени. При обновлении имени, когда клиенту отправлен "вызов" (как только что было описано) и он не ответил на этот вызов, считается, что этот клиент отказался от своего имени, передав его для использования другому компьютеру. По истечении 50% времени его аренды, клиент отправляет запрос подтверждения имени (обновления аренды). Этот запрос содержит IP-адрес и имя NetBIOS компьютера, которому требуется подтверждение, и сервер WINS отправляет ему сообщение с новой арендой времени. Это происходит в нормальной ситуации.

    Но если клиент не может обнаружить сервер, то сервер пытается подтвердить имя каждые 10 минут в течение часа на первичном сервере WINS. Затем он пытается перейти на вторичный сервер WINS и снова пытается получить подтверждение с 10-минутными интервалами. Если обновление по-прежнему не получено, он возвращается на первый сервер и повторяет свои попытки. Все это продолжается, пока не закончится срок аренды; если за это время не было попыток обновления имени (другим клиентом), то имя освобождается. Еще один способ освобождения имени – это отключение компьютера; нельзя просто выключить компьютер, а должен быть отправлен соответствующий запрос на сервер WINS. Сервер WINS просмотрит базу данных, и если обнаружена соответствующая запись, то сервер возвратит положительный ответ об освобождении имени со значением TTL, равным нулю. Если не найдено соответствия для IP-адреса/имени, то отправляется отрицательный ответ.

    Процесс разрешения имени

    Когда клиенту требуется разрешение имени NetBIOS, он ищет его сначала локально. Он просматривает свой кэш в поисках соответствующего имени/адреса. Если имя не разрешено, то клиент запрашивает непосредственно сервер WINS. Он ищет этот сервер, повторяя попытки три раза, и если не получает ответа, то обращается к вторичному серверу и повторяет этот процесс. Если один из этих серверов разрешает запрос, то клиент получает сообщение об успешном результате и ему передается IP-адрес для запрошенного имени NetBIOS. Если ни один из серверов не может разрешить данное имя, то клиенту отправляется сообщение "requested name does not exist" (запрошенное имя не существует). После это клиент начинает применять широковещательные сообщения.

    Репликация базы данных

    Серверы WINS реплицируют свои базы данных, и, как и в случае DNS, это определяется вашими опциями конфигурации. Напомним, что WINS – это "плоское" пространство имен, поэтому топология его репликации выглядит очень просто. Я встречался со многими пользователями, которые пытались использовать иерархию в пространстве имен WINS. Для репликации базы данных обычно имеется одна схема, которая хорошо работает и требует небольших расходов на обслуживание. Реальная схема репликации называется push/pull ("выталкивание/извлечение"), и мы ознакомимся с ней чуть ниже. На рис 3.1 показана рекомендуемая топология сети, в которой происходит репликация серверов WINS.

    (рис 3.1) Репликация типа "hub and spoke"

    Ее называют звездообразной схемой репликации ( hub and spoke ). Группа серверов WINS выполняет репликацию с центральным первичным сервером; та же схема используется со вторичным сервером, а первичный и вторичный реплицируются друг с другом. Они делают это с помощью метода push/pull. Рассмотрим этот процесс подробнее.

    Pull-партнер – это сервер WINS, который запрашивает реплики от своих push-партнеров. Push-партнеры знают, что реплицировать, поскольку номер версии должен быть больше того, что получил pull-партнер в предыдущем сеансе репликации. Push-партнер – это сервер WINS, который отправляет запрос репликации своим pull-партнерам, сообщая им, что его база данных была обновлена. После этого они извлекают реплики. При репликации типа push/pull вам следует учитывать два основных фактора: скорость вашего канала глобальной сети (WAN) и какие компьютеры должны соединяться с какими сайтами.

    Предположим, что ваш компьютер – это Remote Site 1 (Удаленный сайт 1, см. рис 3.1), осуществляющий репликацию методом push/pull с сервером Home Office. При необходимости обмена данными с компьютером Remote Site 2, осуществляющим репликацию с сервером Corporate Office, ваш компьютер никогда не получит необходимые для этого записи, если эти записи не являются частью реплики, которая извлекается из Remote Site 1 на сервер Corporate Office и затем реплицируется на сервер Home Office. Реплика – это копия записей WINS, которые реплицированы от партнера push/pull. Поскольку сервер Home Office реплицируется на свой Remote Site 1, эти записи являются частью сервера WINS в службах Remote Site 1.

    WINS не является сложной технологией (хотя она плохо масштабируется), и если использовать здравый подход, то обычно WINS действует достаточно хорошо. Большинство проблем возникает в тех случаях, когда разработчики пытаются делать сложные вещи с тем, что не представляет особых сложностей. При хорошей пропускной способности предпочтительно использовать между всеми серверами репликацию типа push/pull, поскольку все записи будут реплицироваться во все точки. Всегда конфигурируйте сервер WINS, чтобы он указывал для разрешения на самого себя.

    Автоматическая репликация

    WINS может обнаруживать и настраивать своих партнеров репликации автоматически, если ваша сеть поддерживает групповые сообщения (multicast). WINS рассылает групповые сообщения приблизительно каждые полчаса по IP-адресу 224.0.1.24. Любой найденный сервер WINS конфигурирует сам себя как партнера push/pull.

    Мощность WINS планируется из расчета один сервер на 10000 клиентов. Это вполне достижимая цифра, но в большинстве случаев не учитываются определенные факторы, например, WINS помещают на компьютер, который одновременно является контроллером домена, сервером печати и сервером приложений. Это снижает производительность, а если WINS работает недостаточно хорошо, то возникают проблемы соединений. Если вы планируете использовать WINS в конфигурации от 1 до 10000, не нагружайте данный компьютер другими процессами, убедитесь, что он имеет каналы с достаточной пропускной способностью, используйте высокоскоростные соединения локальной сети (избегайте узких мест), не устанавливайте несколько адаптеров на этот сервер и убедитесь, что этот сервер имеет высокопроизводительную дисковую подсистему. Это кажется странным, но самые сложные проблемы в этих конфигурациях возникали из-за переполнения дисковой подсистемы запросами записи. В этих случаях Performance Monitor (Монитор производительности, см. лекцию 16) показывал проблемы операций записи, а после замены дисковой подсистемы на SCSI RAID 0 производительность резко повышалась.

    Проблемы производительности возникают также в тех случаях, когда сервер WINS перегружен за счет того, что он размещен на компьютере, выполняющем много других функций. Один из характерных случаев, с которыми я сталкивался, это программа сканирования вирусов от сторонней компании в большой корпоративной сети, которая очень часто опрашивает клиентов WINS, чтобы проверить, требуются ли обновления. Такие программы обычно имеют консоль конфигурирования, и пользователь сконфигурировал ее для проверки клиентов каждые 20 минут. Причиной проблемы было то, что этот сервер имел 5000 клиентов, поэтому программа сканирования вирусов фактически связывала циклы разрешения имен WINS, то есть опрашивала всех клиентов! Это настолько перегружало сервер, что нормальное разрешение имен становилось невозможным и функционирование сети фактически прекращалось. Здесь возникал эффект, эквивалентный атаке на отказ обслуживания.

    Автоматическое резервное копирование

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

    Более подходящим, хотя и более трудным методом, может стать использование утилиты Jetpack, которая проверяет целостность базы данных, прежде чем выполнять ее копирование. Jetpack обладает возможностью придавать целостность базе данных или восстанавливать целостность, если файл базы данных не слишком поврежден. После этого выполните резервное копирование вручную. Вы можете задаться вопросом, зачем нужно резервное копирование. В основном это нужно для быстрого восстановления в случае ... повреждения базы данных! В случае повреждения WINS остается две возможности, если Jetpack не может восстановить файл.

  • Удалить этот файл, прекратить работу WINS и снова запустить WINS; в результате будет создана новая база данных. Но в этом случае всем компьютерам потребуется перерегистрация. Это обычно означает перезагрузку.
  • Перезагрузить резервную копию базы данных WINS, и восстановление потребуется только для тех машин, которым требуется обновление, что лучше отключения всей системы.
  • Основные утилиты для поиска и устранения проблем – это NBTSTAT и JETPACK.

    Страницы:

    Введение в DNS (Domain Name System)

    Систему доменных имен DNS (Domain Name System) разработал Пол Мокапетрис (Paul Mokapetris), который на заре интернета (в начале 1980-х) задался вопросом, как работать в системе (она стала со временем называться DNS), которая преобразует Web-адрес в состоящий из четырех октетов IP-адрес, который используется сетевыми машинами для связи через TCP/IP (см. лекцию 1). Мокапетрис разработал иерархическое пространство имен, которое позволяло присваивать машинам понятные (дружественные) пользователям имена и связывать эти имена с IP-адресами. Эти группы машин разбивались на домены, и в каждом домене предусматривалось свое собственное управление

    DNS можно также использовать для поиска элементов, хранящихся в базе данных LDAP. DNS – это клиент/серверный процесс, который читает текстовый ("плоский") файл, аналогичный файлам HOSTS, которые вы можете иногда видеть и в настоящее время. В Windows DNS начали применять еще в версии NT4, и служба DNS стала составной частью операционной системы в Windows 2000. Это в основном произошло потому, что Microsoft перешла в используемом по умолчанию методе разрешения имен от имен NetBIOS и службы WINS (Windows Internet Naming Service) к полностью уточненным доменным именам FQDN (Fully Qualified Domain Names) и службе DNS. С появлением Active Directory (AD) и DNS, согласующейся с документом RFC 2136 (динамическое обновление записей) все изменилось еще больше. Еще больше вещей изменилось (и еще больше изменится) с появлением предложений по таблице для расширений DNSSEC (RFC 2541). DNS по-прежнему является службой с серверной и клиентской (resolver) частями. Взаимодействие между DNS и Active Directory является взаимозависимым, то есть предлагается одна система вместо двух.

    Создается впечатление, что эта интеграция с AD является обязательной, но это не так, если вы не планируете создавать домены и леса (более подробно об этом см. в лекции 10). И даже в этом случае она не является обязательной, но вам следует объединить эти два компонента, если вы хотите свести к минимуму администрирование. Возможно, у вас есть UNIX-станции; можно использовать DNS на Microsoft-станциях в стандартной (классической) конфигурации с первичным (primary) и вторичным (secondary) серверами DNS, если вам не нужен или вы не хотите использовать домен в своем окружении. Однако предпочтительно использовать конструкции леса/домены с контроллерами доменов через Active Directory.

    Цель этой лекции – способствовать пониманию разрешения имен в целом, и, в частности, DNS, с выделением отличий между Windows 2000 и 2003. Вы также узнаете о прежней форме разрешения имен, которая применялась фирмой Microsoft: разрешение имен NetBIOS, которое происходило с помощью службы WINS (Windows Internet Naming Service).

    Как это начиналось

    Все началось с файлов HOSTS. Это "плоские" текстовые файлы ASCII, содержащие построчный набор записей. Эти записи только представляли связь IP-адреса с именем машины, например, 192.168.1.1 Trucker.Truckstp.com. Идея состояла в том, что Trucker – это легко запоминаемое имя машины, а resolver (клиентский компонент, состоящий из программной части и библиотек на клиентском компьютере) читает этот файл, находит имя машины, извлекает ее IP-адрес и выполняет поиск по этому адресу.

    Вы можете все еще использовать файлы HOSTS; обычно они находятся в подпапке %SYSTEMROOT\system32\drivers\... Вы можете редактировать такой файл с помощью Блокнота (Notepad) и добавлять в него любую машину, если у вас есть имя и IP-адрес этой машины, и вы знаете об изменениях в сети, которые могут повлиять на эти записи. Использование файла HOSTS сопряжено с ошибками, например, возможно дублирование имен или адресов. Этот подход не позволяет поддерживать масштабирование; достаточно представить себе, сколько затруднений может вызвать поддержка этих файлов для крупного предприятия. На каждой машине! Без каких-либо средств безопасности!

    Разрешение имен в целом

    Файлы HOSTS – это опасное средство, а разрешение имен должно реализоваться надежным образом. Ответом на эту задачу стала DNS. Вместе со своей базой данных и инструментами, а также благодаря своей распределенной природе подходящая структура DNS обеспечивает разрешение имен, избыточность, согласованность и точность. В любой сети, содержащей более одного сегмента, существует некоторая форма разрешения имен. Если локальная сеть состоит только из одного сегмента без разрешения имен, то используются широковещательные сообщения. Широковещательные сообщения используются компьютерами в сети для поиска других компьютеров. К сожалению, исходный компьютер не знает местоположения целевого компьютера, поэтому исходный компьютер должен отправлять для его поиска широковещательное сообщение (это похоже на поиск приятеля в заполненном людьми помещении, когда нужно громко выкрикнуть его имя). Все люди в помещении услышат ваше сообщение; то же самое произойдет с компьютерами данного сегмента, но только целевой компьютер ответит на ваше широковещательное сообщение. После установления связи между исходным и целевым компьютерами последующий обмен информацией происходит посредством направленных дейтаграмм.

    Компьютеры делают это также в небольших немаршрутизируемых локальных сетях. Но локальные сети разрастаются: широковещательные сообщения являются одной из причин, по которым они становятся маршрутизируемыми. Разрешение имен почти всегда предусматривает связь между IP-адресом и именем машины с намерением поиска и подсоединения к некоторой службе, которая предоставляется этой машиной. В среде TCP/IP соединение создается с машиной и, тем самым, с портом в стеке протоколов, которому направлено сообщение (например, с портом 80 для посещения веб-сайта). Все это позволяет вам иметь легко запоминаемое имя машины, например, www.skillet.com. Рассмотрим процесс разрешения пути к машине http://www.skillet.com.

    Вам нужна новая сковородка (skillet). Вы подсоединены к сети, поэтому запускаете браузер и вводите имя www.skillet.com, которое передается клиентскому компоненту (resolver), задачей которого является поиск сервера Skillet. Resolver – это набор библиотек, которому передается имя http://www.skillet.com, после чего происходит обращение к серверу DNS. Resolver выполняет операции в определенном порядке. Он всегда начинает с локального поиска (то есть с поиска на вашем компьютере), и если у вас есть что-либо в файле HOSTS, он будет обработан (независимо от последствий).

    Затем resolver анализирует вашу конфигурацию TCP/IP, определяет, какая машина является предпочтительным сервером DNS, и затем запрашивает этот сервер. Ваши клиенты более ранних версий Windows действуют иным образом; продукты на основе Windows 9x (DOS) сначала выполняют поиск среди имен NetBIOS. Они обращаются к DNS, если не удается поиск NetBIOS, но в некоторых случаях ожидание, пока не истечет период тайм-аута для NetBIOS, может вызывать ощутимую задержку. Причина очевидна: эти системы были созданы для работы в первую очередь с разрешением имен NetBIOS, которое происходило с помощью службы WINS. Со временем появилась DNS, и порядок поиска этих операционных систем теперь устарел, поскольку не отражает разрешение хост-имен сетью TCP/IP.

    NT4 тоже выполняет разрешение имен таким способом, если имя NetBIOS не превышает 15 символов, и в нем нет точек. В противном случае NT4 обращается сначала к DNS. Но вернемся все же к Skillet.com.

    Напомним, что resolver запрашивает у первичного (primary) сервера DNS, может ли он преобразовать данное имя в IP-адрес. Этот сервер DNS проверяет свою зону и кэш, не находит соответствия и, тем самым, не может выполнить разрешение имени. Затем этот сервер DNS ищет другой сервер DNS и обращается к нему. Сервер DNS обычно устанавливается на "границе" сети компании, и все, что он делает, это пересылка запросов какому-либо серверу DNS снаружи. Этот тип сервера DNS называется сервером перенаправления запросов (forwarder). Внутренний сервер DNS запрашивает сервер перенаправления запросов, который сначала проверяет, может ли он сам выполнить разрешение имени. Если нет, то он передает данный запрос другим серверам DNS в интернете, пока не будет найдено соответствие или не произойдет отказ запроса. Успешно разрешенное имя возвращается в кэш локального сервера DNS, поэтому при повторных попытках посещения вебсайта Skillet разрешение будет происходить быстрее.

    Итак, нам удалось заказать сковородку (skillet); благодаря DNS мы нашли путь к Skillet.com, а также увидели за это время, как выполняется процесс разрешения имени. DNS – превосходная система, и она использует для поиска средства, которые называются запросами. Она использует следующие типы запросов.

  • Рекурсивный (Recursive). Resolver (клиентский компонент) направляет запрос серверу DNS и не предполагает никакого взаимодействия для попытки найти ответ. Все проведение поиска возлагается на сервер DNS, который начнет использовать другие серверы, будет направлять запросы и действовать как представитель для resolver. Эти дальнейшие запросы называются итеративными.
  • Итеративный (Iterative). Итеративный запрос является противоположностью рекурсивного запроса (его также называют нерекурсивным); с его помощью у сервера DNS запрашивается наилучший ответ, и он должен отвечать без каких-либо запросов любым другим серверам DNS.
  • Обратный (Inverse). Этот тип запроса направляется машиной, которая ищет хост имя и отправляет IP-адрес, чтобы получить это хост-имя. Этот запрос необычен в том смысле, что сервер DNS выполняет просмотр только своей собственной зоны. Поиск ограничивается этой зоной при любом исходе – успешном или неудачном. Такой запрос используется редко, и он поддерживается только в Windows DNS для обеспечения обратной совместимости с прежними версиями DNS.
  • Только кэширующий сервер (Caching-only server). Эта функция DNS не является формально запросом, но она должна использоваться с запросами. Такой сервер не авторизуется и не содержит никакой зоны. Он получает запрос от клиента и передает этот запрос сети DNS для разрешения. Получив результат разрешения, он кэширует его на некоторый период времени на тот случай, если какой-либо другой клиент повторит тот же запрос. Это ускоряет разрешение имен.
  • Используя эти методы, сервер DNS последовательно ищет IP-адрес, начиная с URL (Uniform Resource Locator) вашего браузера, передаваемого в resolver. В результате вы получаете один из двух ответов: то, что вы ищете, или сообщение об ошибке.

    Домены

    Чтобы понять, как действует DNS, полезно ознакомиться с окружением, в котором выполняет свою работу эта служба. Начнем с иерархии DNS. Корневой домен известен просто как ".". Верхний домен находится на один уровень ниже, и на этом уровне находится целый ряд доменов DNS. Вы знаете все эти суффиксы: .COM (коммерческие), .GOV (правительственные), .EDU (образование), .INT (международные), .ORG (организация), .NET (Net-провайдеры, ISP [Провайдеры услуг Интернет] и т.д.) и .MIL (военные). Достаточно интересно, что ICANN (новая некоммерческая организация по назначению адресов и имен в интернете) ссылается на эти "обобщенные" домены верхнего уровня, и в период между 2000 и 2002 гг. она ввела еще семь: .BIZ, .INFO, .NAME, .PRO, .AERO, .COOP и .MUSEUM. Но пока еще используются не все эти новые имена.

    На следующем уровне обычно находится домен, поддерживаемый частной фирмой; я буду использовать для своих примеров корпоративный домен .COM, но для этого можно было бы использовать любой из только что перечисленных доменов. Вы можете рассматривать домены DNS аналогично структуре папок на жестком диске в смысле разбиения пространства имен DNS. Домен "." аналогичен корневой папке; далее идет верхний уровень (.COM), и на следующем уровне находится "папка", представляющая корпоративный объект некоторого рода (частный или общественный). Имя верхнего уровня (.COM) и корпоративная "папка", например, Microsoft, совместно образуют доменное имя. Пространство имен Microsoft может разбиваться на меньшие домены ("подпапки") Active Directory/DNS, представляющие в компании Microsoft различные подразделения или службы, например, accounting.microsoft.com (бухгалтерский учет). Такой домен обычно недоступен из Internet в отличие от microsoft.com; однако имеются исключения, например, http://support.microsoft.com/default.aspx?scid=fh;[ln];kbhowto представляет службы поддержки Microsoft. Здесь находится Knowledge Base вместе с различными рекомендациями от MS Support. Каждая субзона отвечает за правильность собственной работы.

    Это обычное пространство DNS, известное как зона прямого поиска (forward lookup zone). Существует также зона обратного поиска (reverse lookup zone), известная также как in-addr.arpa, что является ее техническим названием. При запросе обратного поиска вместо дружественного для пользователя имени (как это происходит при поиске в зоне прямого поиска) выполняется поиск определенного IP-адреса машины. Записи в зоне обратного поиска содержат IP-адрес и затем имя машины. Resolver может определить, соответствует ли в действительности определенный IP-адрес дружественному имени, которое он указывает. Поскольку IP-адреса регистрируются вместе с доменными имена DNS, поиск по IP-адресу позволяет определить, из какого домена происходит этот IP-адрес. Если он не соответствует тому, что он должен представлять, то это может быть "самозванец".

    IP-адреса организованы таким образом, что их "старшинство" повышается слева направо, а в доменных именах "старшинство" снижается слева направо. Но IP-адреса в домене in-addr.arpa (зона обратного поиска) записываются в обратном порядке. В записях-указателях (ptr-записях), которые добавляются в зону обратного поиска, сначала указывается IP-адрес и затем – хост-имя, – в отличие от зоны прямого поиска, где сначала идет хост-имя и затем – IP-адрес. Для выполнения успешного обратного поиска по заданному IP-адресу, например, 121.41.113.10, выполняющий поиск сервер DNS ищет PTR-запись для 10.113.41.121.in-addr.arpa, которая содержит определенное хост-имя и IP-адрес 121.41.113.10.

    FQDN (Полностью уточненное доменное имя)

    А теперь предположим, что нам известен хост внутри домена. Вернемся к примеру субдомена accounting в Microsoft. Домен внутри другого домена называется дочерним доменом, а microsoft.com в данном случае является родительским доменом. Если имя хоста – Syscrusher, то полностью это выглядит как syscrusher.accounting.microsoft.com. Любое хост-имя, выраженное таким способом, называется полностью уточненным доменным именем (FQDN – fully qualified domain name).

    Зоны

    Теперь пришло время поговорить о зонах. Каждый домен является объектом со своей собственной политикой. Если посмотреть, как устроен один из серверов DNS внутри Microsoft, мы увидим в оснастке DNS определенные зоны. Зона может содержать домен, часть домена или ряд доменов; каждый из них может иметь сервер или серверы DNS, отвечающие за эти зоны. Должен существовать хотя бы один сервер DNS, поддерживающий каждую зону. Каждая зона имеет набор записей. Они называются ресурсными записями. Сервер DNS, который работает с определенной зоной, называют "руководящим" ("authority") для этой зоны. Он отвечает на любые запросы по этой зоне. Чтобы понять это, мы рассмотрим существующие виды зоны. Сюда относится их хранение, доступ и репликация, но не их содержимое (то есть записи – мы скоро увидим, как они устроены). Классические зоны DNS в Windows хранились и продолжают храниться в текстовых файлах с расширением .dns.

    Первичная зона

    Первая зона называется первичной (primary) зоной. Эта зона создается на первичном (основном) сервере и является только доступным для записи экземпляром базы данных. Эта зона должна содержать хотя бы две записи – запись SOA (Start of Authority) и NS (name server). В классической DNS файл этой зоны должен был редактироваться вручную, но последующие версии DNS (в Windows 2000 и 2003) позволяют выполнять защищенное и незащищенное динамическое обновление. Большинство записей – это "A"-записи, представляющие хосты, добавленные вручную или зарегистрированные ими самостоятельно; но существует также много других типов записей. Вскоре мы рассмотрим наиболее употребительные типы записей. Классическая DNS в Windows Server 2003 позволяет выбрать один из двух вариантов: запрет динамических обновлений или разрешение защищенных и незащищенных обновлений.

    Вторичная зона

    Вторичная (secondary) зона извлекается из первичной и доступна только по чтению. Соответствующий сервер должен находиться в другой подсети и создается в небольших окружениях для избыточности; в более крупных окружениях это позволяет распространять вторичные серверы DNS в удаленные сайты для повышения производительности.

    Зона, интегрированная с Active Directory

    Эта версия зоны находится в Active Directory на каждом контроллере домена. Главная копия базы данных DNS реплицируется на каждый контроллер домена, и в нее может вносить изменения каждый контроллер домена (конечно, при соответствующих полномочиях). Нужно следить, сколько записей/зон используется в Active Directory (AD); слишком большое количество может вызывать снижение производительности.

    Фиктивная (Stub) зона

    Это новый тип зоны, появившийся в Windows 2003. Это копия дочерней зоны с записями, идентифицирующими дочерний сервер имен, который является "руководящим" для этой дочерней зоны. Она содержит SOA-запись, NS-запись и связывающую A-запись. Это известно как делегирование. Сервер родительской зоны может получать обновления от дочерней зоны, которые будут сохраняться в кэше сервера родительской зоны. Записи в такой зоне не изменяются. Ее назначение – это "склеивание" двух пространств имен, чтобы обеспечивать правильность ссылок из родительской зоны в дочернюю зону.

    Конечно, делегирование не является чем-то новым. Stub-зоны позволяют исправить ситуацию, которая возникала в связи с делегированием, я объясню это сейчас. У нас имеется родительский домен – microsoft.com. У нас имеется также дочерний домен – accounting.microsoft.com. При первом делегировании этой дочерней зоны в зоне accounting был только один "руководящий" сервер DNS. Но поскольку со временем пространство имен accounting разрослось, администраторы решили установить два новых сервера для этого дочернего домена.

    Однако сервер DNS, содержащий родительскую зону (microsoft.com), остается "в неведении" об их существовании и продолжает "упорно" обращаться к исходному (руководящему) серверу DNS по поводу accounting.microsoft.com. Чтобы справиться с этой ситуацией балансирования нагрузки, родительский сервер конфигурируется, чтобы хранить stub-зону для дочернего домена, и при обновлении этой зоны он обращается к руководящему серверу этой зоны, что позволяет ему узнать о двух новых серверах DNS и выполнять рекурсивный опрос всех этих серверов.

    Делегирование

    Продолжим наш пример. Родительская зона (microsoft.com) имеет дочернюю зону (accounting.microsoft.com), и управление этой дочерней зоной называют делегированием от родительской зоны. Делегирование, которое позволяет передавать управление в разделенном пространстве имен, можно осуществлять по целому ряду причин, например, необходимость для другого отдела управлять отдельной зоной или балансирование нагрузки и отказоустойчивость. Дочерняя будет руководящей для самой себя. Важно помнить, что можно создавать дочерние зоны без делегирования для них. В этом случае управление остается за родительской зоной.

    Записи

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

  • A-запись. Указывает адрес хоста. Она отображает хост-имя на адрес и может выглядеть следующим образом:
    Myhost.mycompany.com IN A 192.168.0.1
  • AAAA-запись. Эта запись пока используется не слишком много, но ожидается, что она будет активно использоваться с появлением IPv6. Считалось, что все доменные имена и IP-адреса будут скоро исчерпаны из-за потребительского роста. Это не происходит, и пока повсеместно используется IPv4. Вот пример хостзаписи из зоны, которая хранится в среде IPv6.
    IN AAAA 1234:1:2:3:4:567:89cd
  • CNAME-запись. Это каноническая запись, обычно используемая для алиасов (псевдонимов). Она позволяет отображать несколько хост-имен на заданный IP-адрес. Многие компании используют этот метод, чтобы убедиться, что их посетил предполагаемый заказчик, даже если этот посетитель немного ошибся в URL или имеется несколько вариантов написания URL компании. В этом случае заказчик будет уверен, что попал на нужный сайт.
  • SRV-запись (локатор служб). Эта запись особенно важна для Windows 2000 и 2003 в конфигурации лес/домены. Она используется для регистрации контроллеров домена (DC) в DNS и для объявления несколькими серверами информации о том, что они предоставляют определенную службу TCP/IP. Если вы пытаетесь создать новую запись, то имеете возможность задания для нее определенной службы TCP/IP. После размещения такой записи клиент, направляющий SRV-запрос, может использовать определенную службу TCP/IP, которая предоставляется в данном домене несколькими серверами. Если вы не можете найти контроллер домена для присоединения к домену, то SRV-записи – это одно из средств, которое вам следует использовать. Эта запись позволяет находить контроллеры домена, которые используют службу LDAP (AD) через порт TCP 389.
  • NS-запись. Эта запись идентифицирует сервер(ы) имен для заданного домена DNS. В NS-записях указываются первичные и вторичные серверы для пространства имен плюс дочерние зоны, происходящие из него.
  • SOA-запись (Start of Authority). эта запись определяет зону, для которой данный сервер является руководящим. Она имеет такие параметры конфигурирования для сервера, как срок действия (time to live), кто несет ответственность за указанный сервер, имена сервера имен (NS server), частоту обновления, последовательный (или "магический") номер, используемый для маркировки изменений зон, и запускаемая репликация (trigger replication).
  • PTR-запись. Эта запись позволяет быстро выполнять обратный поиск с помощью зоны обратного поиска (inaddr.arpa). Она считается обратной A-записью, но не похожа на нее ввиду использования inaddr.arpa в реальной записи. Такая запись для хоста syscrusher.skillet.com с IP-адресом 100.200.252.1 имеет следующий вид: 1.252.200.100.in-addr.arpa IN PTR syscrusher.skillet.com.
  • MX-запись. Эта запись для почтового обмена. Вы можете иметь несколько записей, которые указывают несколько ближайших почтовых серверов, и можете располагать их в нужном вам порядке.
  • Microsoft имеет несколько особых записей для собственных целей; эти записи используются для связи с различными окружениями WINS. Это следующие записи:

  • WINS. Позволяет MS DNS использовать сервер WINS для разрешения хост-имени. Это полезно, если у вас имеются клиенты более ранних версий Windows, которые не получают регистрации в какой-либо зоне DNS. Нужно найти такую запись, после чего будет запрошен сервер WINS.
  • WINS-R. Эта запись позволяет осуществлять обратный поиск. Это только записи Microsoft, и они могут быть ограничены при пересылке зон.
  • Пересылка/Репликация зон

    Серверы DNS реплицируют свои зоны. Они делают это по целому ряду причин в зависимости от структуры сети, но две наиболее важные причины – это отказоустойчивость и производительность. В начале использования DNS существовали первичный и вторичный серверы DNS. Оба содержали идентичные копии своих зон, и вторичный сервер обычно помещали в другую сеть, чтобы выход из строя первичной сети или отказ соответствующего сервера не приводили к потере функции разрешения имен. Они реплицировались по какому-либо событию, например, загрузка серверов или обновление зон первичного сервера, поэтому в случае появления "магического номера" в записи Start of Authority (SOA-записи) вторичный сервер обнаруживал это и извлекал базу данных, если были отличия.

    "Магический номер" относится к терминологии BIND DNS. Это последовательный номер, который наращивается каждый раз, как вносятся изменения в какую-либо первичную зону. За этим номером следят вторичные серверы, и если он изменяется, то происходит запуск репликации зон. Это называется пересылкой зон.

    Изменения могли вноситься только на первичном сервере; все вторичные системы были копиями первичной, что снижало риск повреждения базы данных. Это характерный тип конфигурации для среды UNIX, но ее можно создавать и с помощью Windows 2003. Как я уже говорил выше, предпочтительный метод – это использование лесов и доменов. Репликация происходит здесь в другом смысле; в домене, работа которого основывается на Active Directory (AD) и DNS, нет понятия первичных и вторичных серверов. В AD имеются только зоны AD.

    В этой конфигурации, которая называется репликацией с несколькими основными контроллерами ( multimaster-репликацией ), зоны DNS хранятся на контроллерах доменов, и зоны реплицируются через Active Directory. Здесь действует определенный "симбиоз": AD требуется служба DNS для поиска объектов, других контроллеров доменов и сайтов в дереве; службе DNS требуется AD для репликации на остальные контроллеры каждого домена. Это происходит следующим образом: после создания зоны она сохраняется в интегрированном с AD хранилище зон. Они хранятся в дереве Active Directory под доменом или разделом каталога приложений.

    Раздел приложений (application partition) – это новое понятие, введенное в Windows 2003; в нем хранятся данные приложений, которые могут выборочно реплицироваться на определенные контроллеры домена (более подробно об этом см. в гл. 19, и мы рассмотрим соответствующее средство, DNSCMD, ниже в разделе "Средства DNS"). В классической DNS зоны всегда реплицировались полностью. Начиная с Windows 2000, репликацию зон можно конфигурировать для полной репликации (вся зона копируется с помощью запроса AXFR) или добавочной формы пересылки зон (с помощью запроса IXFR). Если вам нужно подробное описание, см. документ RFC 1995.

    Это дает вам селективную форму multimaster-репликации: все или некоторые контроллеры домена содержат копии зоны и могут выполнять разрешение имен, обеспечивая при этом безопасность зоны. Какой вид безопасности? Вы можете вносить изменения в список контроля доступа (ACL) для защиты контейнера объектов dnsZone в дереве каталога. Это дает вам полный контроль над зоной или указанной ресурсной записью (RR – resource record) в этой зоне. С помощью списка ACL вы можете запрещать группам и/или хостам динамическое обновление любой RR данной зоны.

    Если вы добавляете к домену контроллер домена, то зона реплицируется в него без каких-либо дополнительных усилий. Вы можете также выбирать между репликацией всей зоны и части зоны, что не было доступно в прежних DNS!

    Файлы

    DNS состоит из набора файлов. Ниже приводится список этих файлов и описывается их назначение.

  • Cache.dns. Этот файл называют также файлом "корневых подсказок" (root hints). Он содержит корневые серверы для Интернет. Если вы подсоединены к Интернет, то все в порядке, но если нет, то требуются небольшие поправки. Просто замените серверы Интернет на SOA- и NS-записи для сервера DNS, который является руководящим для вашей зоны. Назначение этого файла – помогать в поиске корневых серверов для использования в инициализации кэша сервера. Если вы находитесь в Интернет, то, используя серверы, которые включаются в этот файл, вам еще проще изменять его из вкладки Root Hints (Корневые подсказки), находящейся в окне свойств вашего сервера.
  • Root.dns. Этот файл используется в том случае, если ваш сервер DNS является корневым сервером для вашей сети.
  • Your_Zone.dns. Вы увидите этот файл, только если используете стандартную первичную или вторичную зону. Этот файл отсутствует, если вы используете интегрированную с Active Directory DNS.
  • Boot. Возможно, вы знаете такой файл под именем named.boot, если использовали BIND DNS. Он не присутствует по умолчанию, но если у вас есть BIND-система, из которой требуется его импортировать, используйте вариант From File (Из файла) в окне свойств сервера оснастки DNS.
  • Имеется также исполняемый файл DNS.EXE и клиентский компонент (resolver), который запускается на клиентской машине.

    DNS Windows Server 2003

    Теперь поговорим о новых возможностях. Имеется довольно много отличий, которые вы увидите в DNS 2003. Вот их список.

  • Круговая система обновлений (Round robin). В DNS обычно используется круговая система, когда у сервера запрашиваются ресурсные записи одинакового типа для одного и того же доменного имени. Если это вызывает проблемы, то вы можете отключить использование круговой системы для определенных типов записей. Для этого нужно внести следующие изменения в реестр.
  • HKLM\System\CurrentControlSet\Services\DNS\Parameters\
  • DoNotRoundRobinTypes
  • Тип: REG_DWORD
  • Допустимый диапазон значений: любой тип RR (SRV, A, NS)
  • Разъединенное пространство имен. Если вы модернизируете сервер NT4 к Windows 2003 и хотите использовать имя Active Directory, которое отличается от предыдущего первичного суффикса NT4, то текущий первичный суффикс FQDN будет всегда соответствовать доменному имени. Если вы еще не сталкивались с этим и хотите получить более подробные сведения, обратитесь к статье Knowledge Base Q257623, "Domain Controller’s DNS Suffix Does Not Match Domain Name" (Суффикс DNS контроллера домена не совпадает с доменным именем).
  • Корневая зона (Root zone). Начиная с NT4, MS DNS автоматически добавляла корневые зоны к серверам DNS. В Windows 2003 это прекращено. В NT4 это инициировалось, когда сервер DNS впервые подключался к сети и не мог еще выдавать информацию серверам корневых подсказок в Интернет. Это вызывало пару проблем, в особенности невозможность задания пересылки запросов или взаимодействия с этими серверами. Теперь, если вам нужна корневая зона ".", вы можете сделать это вручную.
  • Выбор вариантов репликации зон. Теперь вы можете выбирать один из четырех способов репликации. Вы можете выбирать их при создании вашей зоны или когда хотите изменить метод хранения зоны. Вот эти варианты; читайте внимательно, поскольку отличия невелики. Кроме того, учитывайте влияние, которое может оказать ваш выбор на используемую долю пропускной способности сети и нагрузку сети.
  • Все серверы DNS в домене AD [Active Directory] (All DNS Servers in AD Domain). Это репликация всех данных вашей зоны на каждый контроллер домена в домене AD. Это вариант по умолчанию, когда вы создаете интегрированные с AD зоны DNS в системе Windows Server 2003.
  • Все серверы DNS в лесу AD (All DNS Servers in AD Forest). Это максимально возможный охват, при котором ваши зоны реплицируются на каждый контроллер домена в данном лесу. Такая репликация требует значительной части пропускной способности. Выбор вариантов позволяет администратору управлять возможностями репликации, чтобы можно было использовать не слишком большую долю пропускной способности или настраивать соединение с низкой пропускной способностью. В этом примере будет реплицироваться каждый сервер DNS в заданном лесу, что вызовет максимальное увеличение трафика.
  • Все контроллеры домена (DC) в домене AD (All DCs in AD Domain). Информация зоны реплицируется на все контроллеры домена в домене AD. Это вариант, который вы должны выбрать, если хотите, чтобы серверы DNS Windows 2000 загружали зону AD.
  • Все серверы DNS в указанном разделе каталога приложений (All DCs Servers in a Specified Application Directory Partition). Вы можете реплицировать информацию зоны согласно охвату репликации указанного раздела каталога приложений. Если выбрать этот вариант, то сервер DNS, на котором хранится ваша зона, должен быть зарегистрирован в выбранном вами каталоге приложений. Для этого вы можете использовать DNSCMD (более подробно о DNSCMD см. ниже в разделе "Средства DNS"):
    dnscmd Имя-вашего-сервера /CreateDirectoryPartition ваш-контроллер-домена.ваш-домен.com
  • Вы должны использовать здесь полностью уточненное доменное имя (FQDN). Регистрация вашего сервера DNS в новом разделе происходит почти так же:

    dnscmd Имя-вашего-сервера /EnlistDirectoryPartition ваш-контроллер-домена.ваш-домен.com

    И, наконец, если вы решили использовать разделы AD, то все объекты DNS удаляются из Глобального каталога (Global Catalog). DNSCMD не устанавливается по умолчанию; это должны сделать вы:

  • Перейдите на свой дистрибутивный CD.
  • Войдите в папку support\tools.
  • Щелкните на suptools.msi. Произойдет запуск программы установки, после чего будут установлены средства поддержки (Support tools).
  • Автоматическое конфигурирование DNS в DCPromo. Это позволяет автоматически задавать настройки ваших клиентов DNS, если выполняются следующие условия.
  • Имеется какое-либо одно сетевое соединение.
  • Предпочтительные и альтернативные настройки DNS совпадают.
  • Настройки DNS имеются только по одному соединению.
  • В результате будут запрошены текущие серверы DNS, указанные в сетевых настройках, обновлены корневые подсказки, сконфигурированы серверы перенаправления запросов (forwarders) с помощью предпочтительных и альтернативных серверов DNS, заданы настройки DNS с адресом "обратной связи" 127.0.0.1 и затем сконфигурированы все предыдущие предпочтительные и альтернативные серверы DNS. Если все это проходит успешно, то в Event Viewer (Просмотр событий) записывается соответствующий журнал.

  • Фиктивные (Stub) зоны. Мы рассматривали stub-зоны выше; по сути это делегированные дочерние зоны, содержащие SOA-записи, NS-записи и A-записи хостов. Они "склеивают" пространства имен. Сервер DNS может запрашивать сервер имен (NS) непосредственно вместо рекурсии. Изменения вносятся в зоны, когда происходит обновление или загрузка главной зоны. Локальный список главных зон определяет физически локальные серверы, из которых нужно выполнять пересылку.
  • Серверы перенаправления запросов по условиям. Когда сервер DNS получает запрос от клиента, этот сервер выполняет локальный поиск, то есть просматривает информацию своей зоны или информацию, содержащуюся в его кэше. Если он не получает ответа, то перенаправляет данный запрос (если это задано) серверам DNS, для которых он был сконфигурирован. Перенаправление по условиям является более детальным в том смысле, что вместо простого перенаправления запроса любому серверу перенаправление выполняется в соответствии с конкретными доменными именами, заданными в этих запросах. Во вкладке Conditional Forwarders (Серверы перенаправления по условиям), для вызова которой нужно щелкнуть правой кнопкой на сервере в оснастке DNS management, показано, что соответствующие условия можно задавать по конкретному доменному имени или по IP-адресу сервера перенаправления данного домена
  • Group policy (Групповая политика). Это средство конфигурирования клиентов. В среде со многими клиентами DNS не существует средства, с помощью которого можно было конфигурировать всех клиентов сразу, и это конфигурирование исторически выполнялось по отдельности для каждой системы. Такие вещи, как задание доменных суффиксов и может или не может клиент динамически обновлять свои записи, указывались вручную. Средство Group Policy позволяет конфигурировать группу клиентов идентичным образом посредством определенной групповой политики. В конкретные настройки включаются разрешение/отключение динамических обновлений, вывод списка серверов DNS для использования клиентом, предоставление списков суффиксов DNS и передача суффикса первичной DNS в процессе разрешения имен. Если вы разрешаете определенную проблему и при этом используете какую-либо групповую политику, то вам следует помнить, что групповая политика замещает любые другие настройки, например, локальные настройки и/или настройки DHCP. Если вам нужно, то вы можете обойти это правило через реестр, хотя это относится только к динамической регистрации:
  • Имя. DoNotUseGroupPolicyForDisableDynamicUpdate
  • Раздел (Key). HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
  • Тип данных. REG_DWORD
  • Допустимый диапазон. 0x0 (использовать групповую политику) и 0x1 (использовать локальные настройки)
  • По умолчанию (Default). 0x0
  • Записи реестра клиентской стороны

    Ниже приводится более подробный список записей реестра клиентской стороны

    Динамическое обновление (Dynamic Update)

    Эта настройка политики определяет, включено ли динамическое обновление. Компьютеры, сконфигурированные для динамического обновления, автоматически регистрируют и обновляют свои ресурсные записи DNS с помощью сервера DNS

    Имя: RegistrationEnabled

    Раздел: HKLM\Software\Polices\Microsoft\Windows NT\DNSClient

    Тип: REG_DWORD

    Допустимый диапазон: 0x0 (отключено) и 0x1 (включено)

    Список поиска суффиксов DNS (DNS Suffix Search List)

    Групповая политика для списка поиска суффиксов DNS важна для будущего перехода к свободной от NetBIOS среде. Если вы включаете эту настройку, то пользователь направляет запрос поиска имени с одной меткой (например, "widgets"), а клиент локальной DNS присоединяет суффикс (например, "microsoft.com"), что дает в результате запрос поиска "widgets.microsoft.com", прежде чем отправить этот запрос какому-либо серверу DNS.

    Имя: SearchList

    Раздел: HKLM\Software\Polices\Microsoft\Windows NT\DNSClient

    Тип: REG_SZ

    Допустимый диапазон: разделенные запятой строки суффиксов DNS

    Передача первичного суффикса DNS (Primary DNS Suffix Devolution)

    Эта настройка политики определяет, будет ли клиент DNS выполнять передачу первичного суффикса DNS в процессе разрешения имени. Если клиент направляет запрос имени с одной меткой (например, "mybox"), то локальный клиент DNS присоединяет суффикс (например, "skillet.com"), что дает в результате запрос "mybox.skillet.com", прежде чем отправить этот запрос серверу DNS.

    Первичный суффикс DNS передается до тех пор, пока не будет разрешен запрос или суффикс DNS не будет иметь две метки (например, "skillet.com"). Первичный суффикс DNS не может быть передан менее чем двум меткам.

    Раздел: HKLM\Software\Polices\Microsoft\Windows NT\DNSClient

    Тип: REG_DWORD

    Допустимый диапазон: 0x0 (отключено) и 0x1 (включено)

    Регистрация PTR-записи (Register PTR Record)

    Эта настройка политики разрешает или запрещает клиенту регистрировать PTR-записи. В состоянии по умолчанию клиенты DNS, сконфигурированные для выполнения динамической регистрации DNS, пытаются выполнить регистрацию ресурсной PTR-записи, только если они успешно зарегистрировали соответствующую ресурсную A-запись. Чтобы включить эту политику, выберите Enable (Включить) и выберите одно из следующих значений.

  • Do not register (Не регистрировать). Компьютеры никогда не будут пытаться регистрировать ресурсные PTR-записи.
  • Register (Регистрировать). Компьютеры пытаются регистрировать ресурсные PTR-записи независимо от успешности регистрации A-записей.
  • Register only if A record registration succeeds (Регистрировать, только если успешно зарегистрирована A-запись). Компьютеры пытаются регистрировать ресурсные PTR-записи, только если они успешно зарегистрировали соответствующие ресурсные A-записи.
  • Имя: RegisterReverseLookup

    Раздел: HKLM\Software\Polices\Microsoft\Windows NT\DNSClient

    Тип: REG_DWORD

    Допустимый диапазон: 0x0 (отключено), 0x1 (включено)

    Интервал обновления регистрации (Registration Refresh Interval)

    Эта настройка политики определяет интервал обновления регистрации ресурсных A- и PTR-записей для компьютеров. Эту настройку можно применять только к компьютерам, которые используют динамическое обновление. Если ресурсные записи DNS регистрируются в зонах с включенной очисткой, то значение этой настройки должно быть не больше, чем Refresh Interval (Интервал обновления), заданный для этих зон. Задание величины Registration Refresh Interval, превышающей Refresh Interval этих зон DNS может вызывать преждевременное удаление ресурсных A- и PTR-записей, что может вызвать определенную проблему.

    Имя: RegistrationRefreshInterval

    Раздел: HKLM\Software\Polices\Microsoft\Windows NT\DNSClient

    Тип: REG_DWORD

    Допустимый диапазон: больше или равно 1800 (секунд)

    Замена адресов в конфликтах (Replace Addresses in Conflicts)

    Эта настройка политики определяет, будет ли клиент DNS, который пытается зарегистрировать свою ресурсную A-запись, замещать существующие ресурсные A-записи, содержащие конфликтные IP-адреса. Во время динамического обновления зоны, которая не использует Secure Dynamic Update (Защищенное динамическое обновление), клиент может обнаружить, что существующая ресурсная A-запись связывает DNS-имя хоста данного клиента с IP-адресом другого компьютера. Согласно конфигурации по умолчанию этот клиент DNS попытается заместить эту существующую A-запись той A-записью, которая связывает DNS-имя с IP-адресом клиента.

    Имя: RegistrationOverwritesInConflict

    Раздел: HKLM\Software\Polices\Microsoft\Windows NT\DNSClient

    Тип: REG_DWORD

    Допустимый диапазон: 0x0 (отключено) и 0x1 (включено)

    Регистрация записей DNS с помощью суффикса DNS для конкретного соединения (Register DNS Records with Connection Specific DNS Suffix)

    Эта настройка политики определяет, может ли компьютер, выполняющий динамическую регистрацию, регистрировать свои ресурсные A- и PTR-записи путем конкатенации своего имени (Computer Name) и суффикса DNS для конкретного соединения (в дополнение к регистрации этих записей путем конкатенации своего имени и первичного (Primary) суффикса DNS.

    Имя: RegisterAdapterName

    Раздел: HKLM\Software\Polices\Microsoft\Windows NT\DNSClient

    Тип: REG_DWORD

    Допустимый диапазон: 0x0 (отключено), 0x1 (включено)

    Примечание. Если динамическая регистрация DNS отключена на компьютере (или отключена для конкретного сетевого соединения, к которому применяется эта настройка), то компьютер не будет пытаться выполнять динамическую регистрацию DNS для его A- и PTR-записей независимо от настройки этой политики.

    Задание TTL (Срок действия) в A- и PTR-записях (TTL Set in the A and PTR Records)

    Эта настройка политики указывает значение для поля TTL (time-to-live) ресурсных A- и PTR-записей, регистрируемых в компьютерах, к которым относится эта настройка.

    Имя: RegistrationTTL

    Раздел: HKLM\Software\Polices\Microsoft\Windows NT\DNSClient

    Тип: REG_DWORD

    Допустимый диапазон: 0-4294967200 (секунд)

    По умолчанию: 600

    Уровень защиты обновлений (Update Security Level)

    Эта политика указывает, какой вид обновлений для регистрации DNS-записей будут использовать компьютеры, к которым применяется эта настройка, – защищенные динамические обновления или стандартные динамические обновления. Чтобы включить эту настройку, выберите вариант Enable и выберите одно из следующих значений.

  • Unsecure Followed By Secure (Защищенные после незащищенных). Если выбран этот вариант, то компьютеры отправляют защищенные динамические обновления, только если получают отказ в незащищенных динамических обновлениях.
  • Only Unsecure (Только незащищенные). Если выбран этот вариант, то компьютеры отправляют только незащищенные динамические обновления.
  • Only Secure (Только защищенные). Если выбран этот вариант, то компьютеры отправляют только защищенные динамические обновления.
  • Имя: UpdateSecurityLevel

    Раздел: HKLM\Software\Polices\Microsoft\Windows NT\DNSClient

    Тип: REG_DWORD

    Допустимый диапазон: 0 (UnsecureFollowedBySecure), 16 (OnlyUnsecure), 256 (OnlySecure)

    Обновление зон доменов верхнего уровня (Update Top Level Domain Zones)

    Эта настройка политики указывает, могут ли компьютеры, к которым применяется эта политика, отправлять динамические обновления зонам, имя которых содержит одну метку (т.е. зонам доменов верхнего уровня, например, "com").

    По умолчанию клиент DNS, сконфигурированный для выполнения динамических обновлений, будет отправлять динамические обновления зоне или зонам DNS, которые является руководящими для его ресурсных записей DNS, кроме руководящих зон верхнего уровня и корневой зоны.

    Если включить эту политику, то компьютеры, к которым применяется эта политика, будут отправлять динамические обновления любой зоне, которая является руководящей для его ресурсных записей, за исключением корневой зоны.

    Имя: UpdateTopLevelDomainZones

    Раздел: HKLM\Software\Polices\Microsoft\Windows NT\DNSClient

    Тип: REG_DWORD

    Значения: 0x0 (отключено) и 0x1 (включено)

    Базовая поддержка для DNSSEC (RFC 2535)

    Важно отметить, что Windows Server 2003 не полностью поддерживает стандарт DNSSEC, но его назначение – использовать криптографию для обеспечения защиты данных, когда информация зоны передается по проводам (или иным способом, например, в случае беспроводных соединений). Это важно, поскольку злоумышленник может перехватывать эту информацию, чтобы найти "стратегически" важные серверы для последующей подделки или компрометации этих серверов. Имеются открытые (public) и личные (private) ключи, которые связываются с этими зонами, чтобы в случае компрометации сервера DNS клиентские компоненты (resolver) все же могли аутентифицировать ресурсные записи из этих зон (например, эти ключи применяются к зонам, а не к серверу).

    Эта служба использует с помощью личных ключей шифрованные цифровые подписи, которые отправляются как ресурсные записи от серверов DNS, где хранятся подписанные зоны. Эти записи принимаются клиентским компонентом (resolver), который может аутентифицировать их с помощью открытого ключа. Цифровые подписи и открытые ключи добавляются к подписанной зоне как ресурсные записи. Отметим, что если вы хотите использовать эту службу, то для этого нужно обратиться к реестру (ее нет в оснастке DNS).

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\

    Parameters

    Добавьте EnableDnsSec в поле DWORD.

    Этому полю передается одно из трех значений в зависимости от того, что вы хотите сделать.

  • 0x0. Исключение ресурсных записей (RR) DNSSEC в ответах на запросы, если это не запись типа NXT, SIG или KEY. В этом случае соответствующие RR будут отправляться только в ответ на записи типа NXT, SIG или KEY.
  • 0x2. Включение ресурсных записей (RR) DNSSEC во все ответы.
  • 0x1 (или пустое поле). Если вам нужно, чтобы записи DNSSEC включались в ответы для тех случаев, когда запрос клиента содержит OPT-запись, то добавьте 0x1 или оставьте это поле пустым.
  • Возможны случаи, когда у вас имеется сервер DNS с несколькими адаптерами (multihomed), но вы хотите, чтобы этот сервер DNS выполнял прием и отвечал только через один сетевой адаптер (NIC). Для такого компьютера (два сетевых адаптера, соединенных с различными сетями) существует еще одна задача безопасности: когда один из сетевых адаптеров соединен с Интернет, сконфигурировать DNS, чтобы она принимала запросы только из частной сети. Это можно сделать средствами GUI (графического интерфейса). Для этого используется консоль управления Microsoft. Загрузите оснастку DNS и перейдите в раскрывающееся меню Actions (Действия). Щелкните на кнопке Properties (Свойства). Щелкните на вкладке Interface (Интерфейс), выберите Only The Following IP Addresses (Только следующие IP-адреса) и добавьте свой IP-адрес. По окончании щелкните на кнопке Add.

    Записи расширения для DNS (EDNSO)

    Исходная спецификация для DNS ограничивала размер пакета 512 октетами. EDNS0 (RFC 2671) позволяет передавать пакеты большего размера. Когда сервер DNS получает запрос (используется протокол UDP), он ищет ресурсную OPT-запись клиента и изменяет свой ответ, чтобы можно было передать столько ресурсных записей, сколько указано этим клиентом в OPT-записи (размер UDP указывается в OPT-записи).

    Ведение журналов DNS

    Возможности ведения журналов DNS не изменились после Windows 2000, но работать с ними стало удобнее за счет использования графического интерфейса (GUI), который включен как часть оснастки Event Viewer. Вы можете задавать фильтрацию по пользователям, по компьютерам, по идентификаторам событий, по категориям или источникам событий от первого до последнего события и в соответствии с типами событий (обычная информация, предупреждения или ошибки). Ведение журнала DNS (DNS logging) представлено в оснастке DNS или в оснастке Event Viewer, включенной в окно Administrative Tools (Администрирование). Для выбора опций ведения журнала событий и отладки щелкните правой кнопкой на сервере в оснастке DNS и выберите пункт Properties. Появятся вкладки журнала отладки (Debug logging) и журнала событий (Event logging), и вы сможете выбрать нужные варианты. Это следующие варианты: Query (Запрос), Notify (Уведомление), Update (Изменение), Questions (Вопросы), Answers (Ответы), Send (Отправка), Receive (Получение), UDP, TCP, Full Packets (Полные пакеты) и Write Through (Сквозная запись).

    Средства DNS

    Windows Server 2003 содержит много встроенных инструментальных средств, которые можно использовать для мониторинга, управления и устранения проблем DNS. Эти средства описываются в следующих разделах.

    NSLOOKUP

    Эта утилита командной строки позволяет запрашивать пространство имен DNS и позволяет вам устранять наиболее распространенные проблемы DNS. Она предусматривает интерактивный режим, что позволяет вам просматривать ресурсные записи на заданном сервере. Она имеет следующий синтаксис:

    Nslookup -Команда хост-имя | -Сервер

    Сервер – это указанный вами сервер, но по умолчанию используется сервер DNS, указанный на вашей странице свойств TCP/IP Properties.

    IPCONFIG

    Эту утилиту можно применять только при условии, что ваш компьютер использует также DHCP. Она имеет три параметра, относящихся к DNS: /registerdns, /flushdns и /displaydns.

    Параметр /registerdns обновляет аренду DNS и вынуждает клиента выполнить перерегистрацию с помощью сервера DNS. Параметр /flushdns выполняет очистку кэша клиентского компонента (resolver), /displaydns показывает, что содержится в кэше resolver.

    PING

    Это утилита TCP/IP, и она должна использоваться в первую очередь, чтобы выяснить, действует ли соединение между клиентом и сервером. Если не действует, то нет смысла в устранении проблемы DNS, поскольку это проблема более низкого уровня. Кроме того, для быстрой проверки PTR-разрешения вы можете направить ping по IP-адресу, что позволит вам удостовериться в наличии соединения и хост-имени.

    DNSCMD

    Эта утилита командной строки предоставляет много возможностей. Большинство вещей, которые вы можете делать с помощью оснастки DNS, можно делать и с помощью DNSCMD, включая скрипты, создание разделов Active Directory (AD), вывод списка этих разделов, создание и конфигурирование серверов DNS, а также управление. DNSCMD не устанавливается по умолчанию; это должны сделать вы:

    Перейдите на свой дистрибутивный CD, войдите в папку support\tools и щелкните на suptools.msi. Произойдет запуск программы установки, после чего будут установлены средства поддержки (Support tools). Это очень мощное средство – ввод DNSCMD в командной строке даст вам представление об этом, но если говорить о реальных возможностях, то почти все (а, может быть, и все) функции, которые вы получаете с помощью GUI, доступны также с помощью DNSCMD.

    NETDIAG

    Эта утилита применяется не только к DNS, поскольку она имеет много других сетевых функций; однако она позволяет справиться с целым рядом "таинственных" проблем и дает вам отчет о состоянии для записей DNS, которые обнаружила в регистрациях. Чтобы увидеть, что сообщит NETDIAG по определенному вопросу, перейдите в окно командной строки и вводите netdiag /fix для всех сетевых функций, которые хотите проверить, или введите netdiag /DNS. Чтобы узнать, что может делать эта утилита, перейдите в Microsoft Knowledge Base и найдите статью 321708. NETDIAG находится в папке Support Tools на вашем дистрибутивном CD.

    RENDOM

    Эта утилита позволяет переименовывать домены в Windows 2003. Она имеет также очень нужную "побочную" функцию, позволяя проверять целостность домена путем поиска необходимых записей-локаторов контроллеров домена (DC Locator Source) на руководящих серверах DNS. Это нужно, чтобы убедиться в том, что репликация и аутентификация будут происходить должным образом после переименования. Ее легко использовать для переименования записей-локаторов контроллеров домена на сервере DNS, который является руководящим для данной зоны, и последующей проверки целостности домена. Если определенная запись отсутствует, утилита может сообщить, какая это запись, что облегчает устранение проблем.

    DNSlint

    Это утилита командной строки, которая охватывает большинство задач диагностики DNS. Ее можно использовать для диагностирования наиболее распространенных проблем разрешения имен DNS. Она имеет три основные функции: dnslint /ql (проверка определенных пользователем записей на сервере DNS), dnslint /ad (проверка записей, относящихся к активному домену [Active Domain]) и dnslint /d (проверка "неверного делегирования"). Вы можете загрузить это средство с веб-сайта Microsoft.

    Установка DNS

    Установка DNS зависит от того, что вы планируете делать с пространством имен и Active Directory (AD). Предпочтительный метод – это их интеграция, которая требует установки AD и интегрированных с AD зон. Это существенно отличается от установки классической DNS на контроллере домена, работа которого основана на Active Directory. Вам нужно выполнить необходимые шаги во время установки или с помощью утилиты DCPROMO, вызванной из меню Start/Run (Пуск/Выполнить). Прежде чем сделать это, проследите, чтобы данный компьютер был сконфигурирован со статическим IP-адресом, иначе у вас не будет SRV-записей. Они создаются в вашей зоне AD, а остальные контроллеры домена ищут их во время присоединения к домену.

    В Windows 2003 сначала появляется новое диалоговое окно, где говорится, что возможны проблемы операционной системы с этим контроллером домена, если у вас есть машины, работающие под управлением Windows 95 либо NT4 версии SP3 или более ранних версий. Причиной этого может быть подписание блоков SMB (Server Message Block – Блок серверных сообщений) и более защищенное соединение, относящееся к контроллеру домена и его клиентам. Блоки SMB обеспечивают разделяемое использование принтеров и файлов, администрирование и аутентификацию входа для операционных систем Windows. SMB изменился в Windows 2003. Он стал несовместим с более ранними формами протокола Session Message Block Protocol и не позволяет клиентам более ранних версий Windows аутентифицироваться для домена. Помните об этом предупреждении!

    Было также изменено одно из диалоговых окон для DNS, встроенных в диалоговый процесс DCPROMO. Оно используется, чтобы сообщить, что не может быть установлен контакт с сервером DNS для этого домена. Мастер спросит, хотите ли вы установить и сконфигурировать DNS для этого сервера или сделаете это позже вручную. Теперь оно вызывается окном диагностики регистрации DNS. В нем описывается, какая запись не найдена (SRV), предлагаются действия для данной ситуации и предоставляются для выбора три следующих варианта:

  • I have corrected the problem, test again (Я устранил проблему, выполнить тестирование снова).
  • Install and configure DNS server on this computer and set this computer to use its own DNS service (Установить и сконфигурировать сервер DNS на этом компьютере и задать для этого компьютера использование его собственной службы DNS).
  • I'll correct this later by installing DNS manually (Я исправлю это позже, установив DNS вручную).
  • DCPromo будет действовать как мастер, запрашивая у вас информацию, создавая для вас зоны DNS и выполняя конфигурирование некоторых настроек. Мастер получает от вас информацию, запускает процесс, и вскоре у вас появляется контроллер домена, работающий с AD DNS. Это позволяет осуществлять динамические обновления и дает вам также зоны прямого и обратного поиска.

    Установка DNS вручную

    Это несложный процесс. Вот как он выполняется.

  • Перейдите в Control Panel (Панель управления), Add or Remove Programs (Установка и удаление программ).
  • Щелкните на Add/Remove Windows Components (Добавление и удаление компоненто Windows), перейдите в Networking Services (Сетевые службы) и установите флажок Domain Name System (DNS).
  • Щелкните на кнопке OK. Система начнет установку и может запросить у вас CD. По окончании вы увидите, у вас установлена оснастка DNS manager, создана папка DNS в %SYSTEMROOT%\System32 и в реестр добавлена служба DNS.
  • Установка DNS с помощью мастера Manage Your Server Wizard

    Ниже описывается, как установить DNS с помощью мастера Manage Your Server Wizard (Управление вашим сервером).

  • После запуска мастера Manage Your Server Wizard вы увидите два варианта выбора: Adding Roles To Your Server (Добавление ролей к вашему серверу) и Managing Your Server Roles (Управление ролями вашего сервера).
  • Выберите Add Or Remove A Role (Добавление или удаление роли). Вы увидите окно Preliminary Steps (Предварительные шаги).
  • Мастер начнет сканирование ваших сетевых интерфейсов.
  • После этого вам предоставляется два варианта выбора: Typical Configuration Of First Server (Типичная конфигурация первого сервера) и Custom Configuration (Нестандартная конфигурация). Типичная конфигурация – это установка DNS, DHCP и применение DCPROMO для настройки данного компьютера как контроллера домена.
  • Выберите вариант Custom Configuration.
  • В списке Server Role (Роль сервера) выберите DNS Server (Сервер DNS). Появится окно Summary Selection (Сводка выбора).
  • Будут установлены файлы. Держите под рукой свой CD, поскольку сервер будет искать его. Если данный компьютер не имеет статического IP-адреса, то вам будет предложено изменить эту ситуацию. На странице свойств TCP/IP Properties вы можете оставить поле DNS address (Адрес DNS) пустым. В этом случае компьютер заполнит его своим собственным адресом (указывая на самого себя) для разрешения имен.
  • Появится мастер Configure DNS Server Wizard (Мастер конфигурирования сервера DNS).
  • Мастер выведет окно, где запрашивается, как вы хотите сконфигурировать DNS. Вы можете создать зону прямого поиска, создать зоны прямого и обратного поиска или сконфигурировать только "корневые подсказки" (root hints). Выберите Forward Lookup Zone (Зона прямого поиска).
  • В следующем окне запрашивается имя вашей зоны.
  • Будет создан файл зоны, и его имя будет представлено для вашего подтверждения.
  • Теперь вы должны выбрать, разрешать ли незащищенные и защищенные динамические обновления или не разрешать динамические обновления.
  • Появится окно Reverse Lookup Zone (Зона обратного поиска); вы можете выбрать (или не выбрать) здесь создание зоны обратного поиска. Если да, то вам будет представлено предлагаемое имя .dns-файла.
  • В следующем окне вы можете выбрать, разрешать ли незащищенные и защищенные динамические обновления.
  • Появится окно Forwarders (Серверы перенаправления запросов). Вы можете вообще не выбирать никакого перенаправления, но если выбрали его, то должны задать IP-адреса сервера, на который планируете перенаправлять запросы. После щелчка на кнопке Next (Далее) появится сводка выбранных вами вариантов и поиск корневых подсказок. По окончании у вас появится сервер DNS.
  • Задание зоны прямого поиска

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

  • Запустите оснастку DNS и щелкните правой кнопкой на Forward Lookup Zone.
  • Выберите вариант New Zone (Создать зону) и добавьте имя новой зоны. Вы получаете здесь три или четыре варианта выбора (четыре в том случае, если данный компьютер интегрирован с Active Directory [AD]). Первые три вы имеете в любом случае: Primary Zone, Secondary Zone и Stub Zone. Четвертый вариант (если данный компьютер является контроллером домена) – Store Zone In Active Directory (Хранить зону в Active Directory).
  • Выберите вариант Primary Zone. После этого нужно выбрать схему репликации: на все серверы DNS в лесу AD (например, myforest.com), на все серверы DNS в домене AD (например, mydomain.com) или на все контроллеры домена в домене Active Directory. Введите имя зоны, щелкните на кнопке OK и у вас будут запрошены домены, которые должна разрешать ваша новая зона. Вы можете выбрать вариант Only Secure Updates (Только защищенные обновления), Allow Both Secure And Nonsecure Updates (Разрешать как защищенные, так и незащищенные обновления) или Do Not Allow Dynamic Updates (Не разрешать динамические обновления).
  • После этого вы можете добавлять записи, но чтобы сделать это непосредственно, нужно сконфигурировать зону, чтобы она разрешала динамические обновления, и сконфигурировать клиентов, чтобы они могли регистрировать самих себя. Если вам нужно добавить запись вручную, щелкните правой кнопкой на только что созданной зоне, выберите пункт Add A Record (Добавить запись) и выполните прокрутку списка, пока не найдете нужную вам запись.

    Тестирование: давайте посмотрим, как это работает

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

  • Откройте оснастку DNS: в меню Start\Administrative Tools выберите DNS Snapin (Оснастка DNS).
  • В левой панели выберите ваш первичный сервер DNS для проверки нужных вам зон и выберите в меню Action пункт Properties.
  • Во вкладке Monitoring (Мониторинг) выберите тест, который хотите выполнить. Это вариант A Simple Query Against This DNS Server (Простой запрос к данному серверу DNS) или A Recursive Query To Other DNS Servers (Рекурсивный запрос к другим серверам DNS).
  • Выберите Test Now (Тестировать) или Perform Automatic Testing The Following Interval (Выполнить автоматическое тестирование через следующий интервал) и выберите нужный вам интервал.
  • Параметры безопасности

    DNS позволяет делегировать полномочия администрирования и управления пользователям и группам. Определите необходимые вам полномочия и выберите нужный вам уровень безопасности. Чтобы вызвать страницу Security (Безопасность), щелкните правой кнопкой на данном сервере DNS в оснастке DNS и выберите Security на странице свойств.

    Интеграция с DHCP

    DNS и DHCP могут использоваться совместно. В этой конфигурации клиентам и серверам разрешается обновлять A-записи (записи хостов) и PTR-записи (записи обратного поиска). DHCP будет предоставлять вам аренду и обновлять соответствующим образом записи DNS.

    Документы RFC

    Чтобы получить более подробную информацию по спецификациям, обратитесь к документам RFC (Request for Comment). Ниже приводятся все документы RFC для системы Windows Server 2003 и ее клиентов.

  • 1034 Domain Names-Concepts and Facilities (Доменные имена – концепции и средства)
  • 1035 Domain Names-Implementation and Specification (Доменные имена – реализация и спецификация)
  • 1123 Requirements for Internet Hosts-Application and Support (Требования к хостам Интернет – применение и поддержка)
  • 1886 DNS Extensions to Support IP Version 6 (Расширения DNS для поддержки IPv6)
  • 1995 Incremental Zone Transfer in DNS (Метод добавочной пересылки зон в DNS)
  • 1996 A Mechanism for Prompt Notification of Zone Changes (DNS NOTIFY) (Механизм уведомлений об изменениях зон)
  • 2136 Dynamic Updates in the Domain Name System (DNS UPDATE) (Динамические обновления в DNS) 2181 Clarifications to the DNS Specification (Уточнения к спецификации DNS)
  • 2308 Negative Caching of DNS Queries (DNS NCACHE) (Отрицательное кэширование запросов DNS)
  • 2535 Domain Name System Security Extensions (DNSSEC) (Расширения безопасности DNS)
  • 2671 Extension Mechanisms for DNS (EDNS0) (Механизмы расширения для DNS)
  • 2782 A DNS RR for Specifying the Location of Services (DNS SRV) (Ресурсная запись [RR] DNS для указания местоположения служб)
  • Draft-документы интернет для DNS

    Следующие draft-документы интернет содержат спецификации, используемые для разработки и реализации сервера и клиентских служб DNS.

  • Draft-skwan-utf8-dns-02.txt. Using the UTF-8 Character Set in the Domain Name System (Использование набора символов UTF-8 в DNS)
  • Draft-ietf-dhc-dhcp-dns-08.txt. Interaction Between DHCP and DNS (Взаимодействие между DHCP и DNS)
  • Draft-ietf-dnsind-tsig-11.txt. Secret Key Transaction Signatures for DNS (TSIG) (Подписи транзакций с секретными ключами для DNS)
  • Draft-ietf-dnsind-tkey-00.txt. Secret Key Establishment for DNS (TKEY RR) (Использование секретных ключей для DNS)
  • Draft-skwan-gss-tsig-04.txt. GSS Algorithm for TSIG (GSS-TSIG)
  • Другие спецификации для DNS

    Следующие дополнительные спецификации используются для разработки и реализации служб сервера и клиента DNS.

  • WINS

    WINS используется для имен NetBIOS таким же образом, как DNS для хост-имен; основное отличие заключается в структуре пространств имен. WINS – это распределенная база данных или может быть такой базой данных. WINS отображает IP-адреса на имена NetBIOS. WINS – это "плоское" пространство имен, в то время как DNS – это иерархическая структура; в WINS нет никакой явно или неявно выраженной иерархии. В то время как машина, находящаяся в accounting домена skillet.com будет представлена в DNS как myhost.skillet.com, ее доменное имя NetBIOS будет SKILLET.

    WINS была предназначена для разрешения имен NetBIOS в немаршрутизируемой сети. Без WINS компьютеры просто отправляли бы широковещательные сообщения через сеть. Это создает проблему использования NetBIOS, поскольку широковещательные сообщения переполняют большую сеть и "съедают" значительную долю пропускной способности. NetBIOS нельзя маршрутизировать, и выполнение происходит поверх TCP/IP.

    NetBIOS – это уровень представления (см. модель OSI) интерфейса прикладного программирования (API), разработанный IBM в 1983 г. Он позволяет программам задавать инструкции нижележащим сетевым протоколам; несмотря на его "возраст", именно поэтому он все еще используется. Унаследованные приложения и многочисленные средства сетевого администрирования все еще используют этот API и не могут выполнять обмен информацией без разрешения имен NetBIOS. Напомним, что в примере разрешения имен DNS мы ссылались на браузер, который передает запрос имени клиентскому компоненту DNS (resolver) для разрешения имени. NetBIOS работает почти так же: приложение, которому требуется найти службу, работающую на другом компьютере (файловые службы и службы печати) отправляет запрос для имени NetBIOS. Его нужно преобразовать в IP-адрес. Это приложение, возможно, не знает, как использовать DNS для той же задачи.

    Два непосредственных примера – это навигация, а также файловые службы и службы печати. Имена NetBIOS можно разрешать различными способами в зависимости от того, как сконфигурирован данный клиент (см. следующий раздел).

    Как вы можете предполагать, для этого плоского пространства имен требуется сервер WINS, который содержит соответствующие записи. Они существенно отличаются от записей DNS, в том числе форматом базы данных и методом хранения. В WINS нет никакого ASCII-файла. Это база данных Microsoft, известная под названием Jet, которая используется также в Access. Она плохо защищена от повреждений и чувствительна к большому числу факторов. По мере дальнейшего изложения мы увидим несколько параллелей с DNS.

    Имена NetBIOS

    Имена NetBIOS могут быть уникальными или являться частью группы. Это 16-байтовые адреса, и они имеют одну позицию, зарезервированную для типа службы, которую они представляют. Если имя короче 16 символов, то остальные байты заполняются до 16-го символа. Это важно знать, если вы редактируете файл LMHOSTS (см. ниже раздел "LMHOSTS"). Запись для службы рабочей станции (Workstation) может выглядеть следующим образом:

    Machinename <00> UNIQUE

    Это представление записи компьютера в WINS для службы Workstation. Вы передаете информацию с помощью суффикса (<##>), содержащего алфавитно-цифровые символы. Вы можете также встретить запись Machinename <00> GROUP, и это также допустимо. Уникальные имена (UNIQUE) используются для доступа к службам на отдельных компьютерах; группы (GROUP) используются для групп компьютеров. Существуют типы записей (их очень много), и этот список не является полным. И нет способа его упорядочить, поскольку поставщики сторонних фирм имеют свои собственные суффиксы, которые регистрируются их собственными приложениями. Чтобы увидеть их, посмотрите две самые последние записи для Irmalan и Lotus Notes.

    <computername> 00 U Workstation Service
    <computername> 01 U Messenger Service
    <\\—__MSBROWSE__> 01 G Master Browser
    <computername> 03 U Messenger Service
    <computername> 06 U RAS Server Service
    <computername> 1F U NetDDE Service
    <computername> 20 U File Server Service
    <computername> 21 U RAS Client Service
    <computername> 22 U Microsoft Exchange Interchange (MSMail
    Connector)
    <computername> 23 U Microsoft Exchange Store
    <computername> 24 U Microsoft Exchange Directory
    <computername> 30 U Modem Sharing Server Service
    <computername> 31 U Modem Sharing Client Service
    <computername> 43 U SMS Clients Remote Control
    <computername> 44 U SMS Administrators Remote Control
    Tool
    <computername> 45 U SMS Clients Remote Chat
    <computername> 46 U SMS Clients Remote Transfer
    <computername> 4C U DEC Pathworks TCPIP service on
    Windows NT
    <computername> 42 U mccaffee anti-virus
    <computername> 52 U DEC Pathworks TCPIP service on
    Windows NT
    <computername> 87 U Microsoft Exchange MTA
    <computername> 6A U Microsoft Exchange IMC
    <computername> BE U Network Monitor Agent
    <computername> BF U Network Monitor Application
    <username> 03 U Messenger Service
    <domain> 00 G Domain Name
    <domain> 1B U Domain Master Browser
    <domain> 1C G Domain Controllers
    <domain> 1D U Master Browser
    <domain> 1E G Browser Service Elections
    <INet~Services> 1C G IIS
    <IS~computer name> 00 U IIS
    <computername> [2B] U Lotus Notes Server Service
    IRISMULTICAST [2F] G Lotus Notes
    IRISNAMESERVER [33] G Lotus Notes
    Forte_$ND800ZA [20 U DCA IrmaLan Gateway Server Service

    Именно эти виды записей вы можете встретить в базе данных WINS. (Другие называются "статическими записями".) Большинство регистраций WINS являются динамическими и ведут себя аналогично аренде DHCP. Статическая запись используется для таких систем, как UNIX (которые не поддерживают NetBIOS). Кроме случаев поиска источника проблем никогда не используйте их для поддерживающих NetBIOS клиентов, поскольку они будут пытаться регистрировать себя и будут отклонены. Это обычно означает, что клиент не получит регистрации, а вы получите сообщение: Duplicate name on network! (Дублированное имя в сети). Статические записи можно использовать для систем, которые не могут регистрировать имя NetBIOS, а записи, которые можно добавлять вручную, имеют такие же типы, как и те, что обычно вводятся динамически поддерживающим NetBIOS клиентом: Unique, Group, Domain Name, Internet Group и Multihomed.

    LMHOSTS

    Если широковещательное сообщение NetBIOS не дает результата, то следующая альтернатива – это обращение к файлу LMHOSTS на локальном компьютере. Пример этого файла можно увидеть в папке %systemroot%\system32\drivers\... В отличие от файлов HOSTS файлы LMHOSTS имеют дополнительные опции для разрешения имен, включая, в частности, следующие средства.

  • #PRE. Запись, перед которой указывается это ключевое слово, будет заранее загружаться в кэш при загрузке компьютера.
  • #DOM [имя_домена]. Это ключевое слово требуется для проверки домена через маршрутизатор, а также для навигации в домене и синхронизации учетных записей.
  • #INCLUDE <путь>. Тег #INCLUDE позволяет вам получать доступ к файлу LMHOSTS, находящемуся в каком-либо месте, отличном от местоположения по умолчанию.
  • Типы разрешения

    Настройка клиента в разрешении имен WINS/NetBIOS будет определять его поведение. Имеются четыре метода разрешения, которые называются типами узлов. Они действуют следующим образом.

  • B-узел. Напомним, что B означает Broadcast (широковещательное сообщение). Это обычно то, что вы использовали бы, если бы у вас был один сетевой сегмент, поскольку в нем распространяются широковещательные сообщения, которые требуют ответа других клиентов, а большинство маршрутизаторов не пропускают широковещательные сообщения.
  • P-узел. Этот тип вы использовали бы при наличии сервера WINS; он не передает широковещательных сообщений, но обращается непосредственно к серверу WINS для своего разрешения имен.
  • M-узел. Это смешанный режим, поскольку для него используется комбинация B- и P-узлов. По умолчанию он действует как B-узел; если он не получает никакого ответа (нужный ему ресурс находится в другой подсети), то он переходит в режим P-узла и запрашивает сервер WINS.
  • H-узел. Его называют "гибридным" узлом. Фактически это обратная версия M-узла. Сначала он запрашивает сервер WINS и если не получает никакого ответа, то переходит в режим B-узла и передает широковещательное сообщение. Это узел по умолчанию.
  • Регистрация, обновление и освобождение имен

    При своем запуске клиенты WINS обращаются к серверу WINS и регистрируют свои имена и IP-адреса. Если соответствующее имя не используется (WINS не "заботится" об IP-адресах; вы можете дублировать их сколько угодно), то сервер разрешает клиенту регистрировать его службы на сервере WINS. Клиент получит сообщение POSITIVE NAME REGISTRATION RESPONSE (положительный ответ на запрос регистрации имени). Минимально компьютер, который подключился, не имея ничего, кроме операционной системы, обычно регистрирует записи <00> (служба Workstation), <20> (служба Server) и <03> (служба Messenger). Если соответствующее имя уже используется, то сервер отправляет "вызов" последнему компьютеру, который зарегистрировал это имя (чтобы он "защитил" свое имя). Сервер делает это три раза через заранее определенные интервалы времени, и если получен ответ на вызов, то клиенту отправляется сообщение NEGATIVE NAME REGISTRATION RESPONSE (отрицательный ответ на запрос имени).

    Пользователь увидит всплывающее окно с текстом "Duplicate name on network" (Дублированное имя в сети). Но если ответ на вызов не получен, то клиенту разрешается регистрация. Эти регистрации ограничены по времени, то есть им присваивается значение TTL (срок действия). Клиенты должны обновлять регистрацию имени. При обновлении имени, когда клиенту отправлен "вызов" (как только что было описано) и он не ответил на этот вызов, считается, что этот клиент отказался от своего имени, передав его для использования другому компьютеру. По истечении 50% времени его аренды, клиент отправляет запрос подтверждения имени (обновления аренды). Этот запрос содержит IP-адрес и имя NetBIOS компьютера, которому требуется подтверждение, и сервер WINS отправляет ему сообщение с новой арендой времени. Это происходит в нормальной ситуации.

    Но если клиент не может обнаружить сервер, то сервер пытается подтвердить имя каждые 10 минут в течение часа на первичном сервере WINS. Затем он пытается перейти на вторичный сервер WINS и снова пытается получить подтверждение с 10-минутными интервалами. Если обновление по-прежнему не получено, он возвращается на первый сервер и повторяет свои попытки. Все это продолжается, пока не закончится срок аренды; если за это время не было попыток обновления имени (другим клиентом), то имя освобождается. Еще один способ освобождения имени – это отключение компьютера; нельзя просто выключить компьютер, а должен быть отправлен соответствующий запрос на сервер WINS. Сервер WINS просмотрит базу данных, и если обнаружена соответствующая запись, то сервер возвратит положительный ответ об освобождении имени со значением TTL, равным нулю. Если не найдено соответствия для IP-адреса/имени, то отправляется отрицательный ответ.

    Процесс разрешения имени

    Когда клиенту требуется разрешение имени NetBIOS, он ищет его сначала локально. Он просматривает свой кэш в поисках соответствующего имени/адреса. Если имя не разрешено, то клиент запрашивает непосредственно сервер WINS. Он ищет этот сервер, повторяя попытки три раза, и если не получает ответа, то обращается к вторичному серверу и повторяет этот процесс. Если один из этих серверов разрешает запрос, то клиент получает сообщение об успешном результате и ему передается IP-адрес для запрошенного имени NetBIOS. Если ни один из серверов не может разрешить данное имя, то клиенту отправляется сообщение "requested name does not exist" (запрошенное имя не существует). После это клиент начинает применять широковещательные сообщения.

    Репликация базы данных

    Серверы WINS реплицируют свои базы данных, и, как и в случае DNS, это определяется вашими опциями конфигурации. Напомним, что WINS – это "плоское" пространство имен, поэтому топология его репликации выглядит очень просто. Я встречался со многими пользователями, которые пытались использовать иерархию в пространстве имен WINS. Для репликации базы данных обычно имеется одна схема, которая хорошо работает и требует небольших расходов на обслуживание. Реальная схема репликации называется push/pull ("выталкивание/извлечение"), и мы ознакомимся с ней чуть ниже. На рис 3.1 показана рекомендуемая топология сети, в которой происходит репликация серверов WINS.

    (рис 3.1) Репликация типа "hub and spoke"

    Ее называют звездообразной схемой репликации ( hub and spoke ). Группа серверов WINS выполняет репликацию с центральным первичным сервером; та же схема используется со вторичным сервером, а первичный и вторичный реплицируются друг с другом. Они делают это с помощью метода push/pull. Рассмотрим этот процесс подробнее.

    Pull-партнер – это сервер WINS, который запрашивает реплики от своих push-партнеров. Push-партнеры знают, что реплицировать, поскольку номер версии должен быть больше того, что получил pull-партнер в предыдущем сеансе репликации. Push-партнер – это сервер WINS, который отправляет запрос репликации своим pull-партнерам, сообщая им, что его база данных была обновлена. После этого они извлекают реплики. При репликации типа push/pull вам следует учитывать два основных фактора: скорость вашего канала глобальной сети (WAN) и какие компьютеры должны соединяться с какими сайтами.

    Предположим, что ваш компьютер – это Remote Site 1 (Удаленный сайт 1, см. рис 3.1), осуществляющий репликацию методом push/pull с сервером Home Office. При необходимости обмена данными с компьютером Remote Site 2, осуществляющим репликацию с сервером Corporate Office, ваш компьютер никогда не получит необходимые для этого записи, если эти записи не являются частью реплики, которая извлекается из Remote Site 1 на сервер Corporate Office и затем реплицируется на сервер Home Office. Реплика – это копия записей WINS, которые реплицированы от партнера push/pull. Поскольку сервер Home Office реплицируется на свой Remote Site 1, эти записи являются частью сервера WINS в службах Remote Site 1.

    WINS не является сложной технологией (хотя она плохо масштабируется), и если использовать здравый подход, то обычно WINS действует достаточно хорошо. Большинство проблем возникает в тех случаях, когда разработчики пытаются делать сложные вещи с тем, что не представляет особых сложностей. При хорошей пропускной способности предпочтительно использовать между всеми серверами репликацию типа push/pull, поскольку все записи будут реплицироваться во все точки. Всегда конфигурируйте сервер WINS, чтобы он указывал для разрешения на самого себя.

    Автоматическая репликация

    WINS может обнаруживать и настраивать своих партнеров репликации автоматически, если ваша сеть поддерживает групповые сообщения (multicast). WINS рассылает групповые сообщения приблизительно каждые полчаса по IP-адресу 224.0.1.24. Любой найденный сервер WINS конфигурирует сам себя как партнера push/pull.

    Мощность WINS планируется из расчета один сервер на 10000 клиентов. Это вполне достижимая цифра, но в большинстве случаев не учитываются определенные факторы, например, WINS помещают на компьютер, который одновременно является контроллером домена, сервером печати и сервером приложений. Это снижает производительность, а если WINS работает недостаточно хорошо, то возникают проблемы соединений. Если вы планируете использовать WINS в конфигурации от 1 до 10000, не нагружайте данный компьютер другими процессами, убедитесь, что он имеет каналы с достаточной пропускной способностью, используйте высокоскоростные соединения локальной сети (избегайте узких мест), не устанавливайте несколько адаптеров на этот сервер и убедитесь, что этот сервер имеет высокопроизводительную дисковую подсистему. Это кажется странным, но самые сложные проблемы в этих конфигурациях возникали из-за переполнения дисковой подсистемы запросами записи. В этих случаях Performance Monitor (Монитор производительности, см. лекцию 16) показывал проблемы операций записи, а после замены дисковой подсистемы на SCSI RAID 0 производительность резко повышалась.

    Проблемы производительности возникают также в тех случаях, когда сервер WINS перегружен за счет того, что он размещен на компьютере, выполняющем много других функций. Один из характерных случаев, с которыми я сталкивался, это программа сканирования вирусов от сторонней компании в большой корпоративной сети, которая очень часто опрашивает клиентов WINS, чтобы проверить, требуются ли обновления. Такие программы обычно имеют консоль конфигурирования, и пользователь сконфигурировал ее для проверки клиентов каждые 20 минут. Причиной проблемы было то, что этот сервер имел 5000 клиентов, поэтому программа сканирования вирусов фактически связывала циклы разрешения имен WINS, то есть опрашивала всех клиентов! Это настолько перегружало сервер, что нормальное разрешение имен становилось невозможным и функционирование сети фактически прекращалось. Здесь возникал эффект, эквивалентный атаке на отказ обслуживания.

    Автоматическое резервное копирование

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

    Более подходящим, хотя и более трудным методом, может стать использование утилиты Jetpack, которая проверяет целостность базы данных, прежде чем выполнять ее копирование. Jetpack обладает возможностью придавать целостность базе данных или восстанавливать целостность, если файл базы данных не слишком поврежден. После этого выполните резервное копирование вручную. Вы можете задаться вопросом, зачем нужно резервное копирование. В основном это нужно для быстрого восстановления в случае ... повреждения базы данных! В случае повреждения WINS остается две возможности, если Jetpack не может восстановить файл.

  • Удалить этот файл, прекратить работу WINS и снова запустить WINS; в результате будет создана новая база данных. Но в этом случае всем компьютерам потребуется перерегистрация. Это обычно означает перезагрузку.
  • Перезагрузить резервную копию базы данных WINS, и восстановление потребуется только для тех машин, которым требуется обновление, что лучше отключения всей системы.
  • Основные утилиты для поиска и устранения проблем – это NBTSTAT и JETPACK.

    Вернуться к учебному плану