Использование служб имен DNS и WINS в сетях Windows NT
9.5.1. Способы разрешения имен в сетях Windows
Конфигурирование стека TCP/IP в среде Windows NT связано с назначением IP-адреса и имени компьютера, которые уникально идентифицируют каждый компьютер в сети. Для сети TCP/IP и сети Internet используется составное имя компьютера - это глобально известное системное имя плюс имя домена DNS. (В локальной сети Microsoft имя компьютера - это имя в стиле протокола NetBIOS, которое было определено во время инсталляции Windows NT.)
Для идентификации друг друга компьютеры используют IP-адреса, но пользователи обычно предпочитают работать с именами компьютеров. Следовательно, в сети TCP/IP должен быть предусмотрен механизм для установления соответствия между именами и IP-адресами. Для того, чтобы обеспечить уникальность как имени, так и адреса, компьютер Windows NT, использующий TCP/IP, регистрирует свое имя и IP-адрес во время старта системы. Компьютер Windows NT может использовать один или несколько из следующих методов для того, чтобы обеспечить корректное разрешение имен в интерсетях TCP/IP.
- Windows Internet Name Service (WINS)
Компьютеры Windows NT могут использовать сервис WINS, если в сети имеется один или несколько серверов WINS, которые содержат динамическую базу данных, отображающую имена компьютеров на IP-адреса. WINS может использоваться в сочетании с широковещательным разрешением имен для интерсети, в которой другие методы разрешения имен не работают. Как описывается в следующем разделе, WINS - режим работы NetBIOS поверх TCP/IP, определенный в RFC 1001/1002 как режим p-node.
Компьютеры Windows NT могут также использовать широковещательное разрешение имен, которое представляет собой режим работы NetBIOS поверх TCP/IP, определенный в RFC 1001/1002 как режим b-node. Этот метод основан на том, что компьютер посылает широковещательные сообщения IP-уровня для регистрации своего имени в сети. Каждый компьютер этой широковещательной области следит за тем, чтобы регистрируемое имя не дублировалось. Все они также отвечают на запросы о собственных именах.
В Windows NT 4.0 реализован клиент службы DNS (Domain Name System). Служба DNS обеспечивает способ просмотра отображения имен при подключения компьютеров к посторонним (не Windows NT) хостам, в которых работают DNS-серверы. Эта служба предназначена для тех случаев, когда подключение осуществляется путем использования NetBIOS поверх TCP/IP или для приложений, использующих интерфейс Windows Sockets, таких как FTP. DNS - это распределенная база данных, разработанная для решения задач направления трафика, которые возникли во время быстрого роста сети Internet в начале 80-х годов.
Файл HOSTS используется приложениями, работающим с интерфейсом Windows Sockets, а файл LMHOSTS используется приложениями, работающими с интерфейсом NetBIOS поверх TCP/IP. Файл LMHOSTS используется обычно для разрешения имен в сетях небольшого масштаба, где служба WINS не установлена.
9.5.2. Разрешение имен в протоколе NetBIOS поверх TCP/IP
NetBIOS поверх TCP/IP - это сетевой сервис сессионного уровня, который выполняет отображение имен в IP-адреса.
Режимы работы NetBIOS поверх TCP/IP определяют способ идентификации сетевых ресурсов и доступа к ним. Имеется два аспекта функционирования этого механизма: регистрация- фиксация уникального имени для каждого компьютера сети и разрешение - получение адреса по имени.
В протоколе NetBIOS поверх TCP/IP используются следующие режимы:
- b-node, при котором для разрешения имен используются широковещательные сообщения;
- p-node, при котором для разрешения имен используется взаимодействие типа точка-точка с сервером имен WINS, который представляет собой улучшенный вариант сервера NetBIOS Name Server (NBNS);
- m-node, при котором сначала используется режим b-node, а затем p-node, если широковещательный запрос не смог разрешить имя;
- h-node, при котором сначала используется режим p-node, а затем b-node, если сервер имен недоступен или в его базе данных отсутствует запрашиваемое имя.
В сети Windows NT пользователям сервиса DHCP тип режима разрешения имени назначается сервером DHCP. Если в сети имеются серверы WINS, то протокол NetBIOS поверх TCP/IP разрешает имена путем взаимодействия с сервером WINS. Когда серверы WINS отсутствуют, протокол NetBIOS поверх TCP/IP использует для разрешения имен широковещательный режим b-node. Протокол NetBIOS поверх TCP/IP в среде Windows NT может также использовать файлы LMHOSTS и службу DNS для разрешения имен в зависимости от того, как сконфигурирован стек TCP/IP на конкретном компьютере. В Windows NT 3.5 модуль NETBT.SYS обеспечивает работу протокола NetBIOS поверх TCP/IP, при этом поддерживаются все перечисленные выше режимы.
Сервер DHCP в Windows NT Server позволяет гибко управлять назначением IP-адресов, комбинируя для одной и той же подсети диапазоны динамически и статически выделяемых адресов. Сервер RAS также может быть клиентом сервиса DHCP, получая от него IP-адреса для удаленных компьютеров.
Кроме IP-адреса сервер DHCP может также передать своему клиенту и другую информацию, необходимую для корректной работы стека TCP/IP:
- IP-адрес серверов WINS
- IP-адрес серверов DNS
- IP-адрес маршрутизатора по умолчанию
- имя домена DNS, которое нужно добавлять к плоскому имени компьютера
Для того, чтобы запросы и ответы протокола DHCP нормально циркулировали между серверами и клиентами DHCP, разделенными маршрутизаторами, эти маршрутизаторы должны поддерживать спецификацию RFC 1542. Программный маршрутизатор MPR, работающий в составе стека TCP/IP Windows NT Server, поддерживает спецификацию RFC 1542 (DHCP/BOOTP relay agent).
9.5.3. Служба имен WINS
WINS представляет собой распределенную базу данных, предназначенную для регистрации и динамического отображения имен компьютеров в IP-адреса в маршрутизируемой сетевой среде. Служба WINS уменьшает интенсивность локальных широковещательных сообщений, связанных с разрешением имен, и позволяет пользователям легко обнаруживать нужный компьютер в удаленных сетях. Кроме того, когда служба DHCP динамически изменяет адрес компьютера, то эти изменения автоматически переносятся в базу данных WINS. Ни пользователь, ни сетевой администратор не принимают никакого участия в этом процессе.
Служба WINS состоит из двух компонент: сервера WINS, который обрабатывает запросы о именах и регистрирует их, и клиентской части, которая посылает запросы на разрешение имен (рисунок 9.3).
Сетевые клиенты Windows (Windows NT или Windows for Workgroups) могут использовать службу WINS непосредственно. Компьютеры, не поддерживающие службу WINS, но использующие широковещательный режим b-node, могут получать доступ к службе WINS через посредников. Эти посредники представляют собой поддерживающие службу WINS компьютеры, которые воспринимают широковещательные запросы на разрешение имен, а затем отвечают на имена, которые не принадлежат локальной подсети или принадлежат компьютерам, поддерживающим только режим p-node.
Рис. 9.3. Взаимодействие клиента и сервера WINS
В сети Windows NT пользователи могут осуществлять прозрачный просмотр сети через маршрутизаторы. Для того, чтобы обеспечить просмотр в отсутствие серверов WINS, сетевой администратор должен сделать так, чтобы первичный домен имел Windows NT Server или Windows NT Workstation с обеих сторон маршрутизатора, которые бы действовали как главные просмоторщики (Master browsers). В этих компьютерах необходимо правильно сконфигурировать файлы LMHOSTS, в которых должны быть записи о просмоторщике в других подсетях.
При наличии серверов WINS такая стратегия не является необходимой, так как серверы WINS и компьютерыпосредники обеспечивают прозрачность, необходимую для просмотра ресурсов через маршрутизаторы (когда домен включает маршрутизаторы).
На рисунке 9.4 изображена небольшая интерсеть, состоящая из трех локальных сетей, соединенных двумя маршрутизаторами.
Две из этих подсетей содержат серверы WINS, которые могут использоваться клиентами обеих подсетей. Поддерживающие службу WINS компьютеры, включая посредников, непосредственно обращаются к серверу WINS, а компьютеры, использующие широковещательный сервис, обращаются к серверу WINS через посредников. Посредники только передают пакеты с запросами имен и проверяют, что регистрируемое имя не дублируется в базе данных WINS. Однако, посредники не регистрируют компьютеры типа b-node в базе данных WINS.
Рис. 9.4. Клиенты сервиса WINS
Компьютер-посредник взаимодействует с сервером WINS для разрешения имен (а не поддерживает собственную базу данных), а затем кэширует имена на определенное время. Посредник действует как промежуточный элемент, взаимодействуя либо с сервером WINS, либо поставляя отображение имя - IP-адрес из своего кэша. Рисунок 9.4 иллюстрирует взаимоотношения между сервером WINS и клиентами, основанные на использовании компьютеров-посредников для клиентов, не поддерживающих службу WINS.
Как показано на рисунке, компьютер ClientA устанавливает соответствие символьных имен IP-адресам, для этого он сначала запрашивает серверы WINS, а если эта попытка оказывается неудачной, то он использует широковещательные запросы. Компьютер ClientB, который не поддерживает службу WINS, может использовать для разрешения имен только широковещательные запросы. Когда компьютер ClientC получает такой запрос, то он передает его в соответствующей форме серверу WINS, а затем возвращает полученный адрес компьютеру ClientB.
При разрешении имен в сложных сетях возникают дополнительные проблемы. Например, если интерсеть состоит из двух подсетей, причем все компьютеры, относящиеся к домену А, присоединены к подсети 1, все компьютеры домена В - присоединены к подсети 2, а компьютеры домена С присоединены частично к одной, частично к другой подсети. В этом случае при отсутствии службы WINS компьютеры домена А могут просматривать подсеть 1, компьютеры домена В могут просматривать подсеть 2, а компьютеры домена С могут просматривать обе подсети до тех пор, пока имеется первичный контроллер домена для домена С. При наличии службы WINS компьютеры всех доменов могут просматривать все подсети, если их серверы WINS разделяют свои базы данных.
Если клиентский компьютер Windows NT поддерживает протокол DHCP и администратор установил сервер WINS, как часть этого протокола, то компьютер автоматически конфигурируется с базой данных WINS. Если компьютер не поддерживает DHCP, то адреса для службы WINS нужно задавать посредством диалогового окна "TCP/IP Configuration". Если вы хотите, чтобы компьютер работал как посредник протокола WINS, то нужно установить опцию enable WINS Proxy Agent в окне диалога "Advanced Microsoft TCP/IP Configuration".
Если в интерсети имеются серверы WINS, то при разрешении имен используется два основных метода, в зависимости от того, поддерживается или нет протокол WINS на каждом отдельном компьютере. Независимо от того, какой метод разрешения используется, этот процесс прозрачен для пользователя после конфигурирования системы.
Протокол WINS не поддерживается. Компьютер регистрирует свое имя путем широковещательной рассылки пакетов name registration request (запрос регистрации имени) по локальной подсети с помощью дейтаграмм протокола UDP. Для того, чтобы найти адрес конкретного компьютера, компьютер, не поддерживающий протокол WINS, широковещательно распространяет пакеты name query request (запрос разрешения имени) по локальной подсети, эти пакеты не передаются через IP-маршрутизаторы. Если на этот запрос не приходит ответ, то используются данные из файла LMHOSTS. Описанный процесс происходит независимо от того, является ли данный компьютер сервером или рабочей станцией.
Протокол WINS поддерживается. В этом случае компьютер выполняет следующие действия:
- Во время конфигурации стека TCP/IP имя компьютера регистрируется в сервере WINS, а IP- адрес сервера WINS хранится локально, так что сервер WINS может быть найден в интерсети. База данных WINS реплицируется между всеми серверами WINS интерсети.
- Запросы разрешения имени посылаются сначала на сервер WINS, включая запросы от удаленных клиентов, которые в этом случае маршрутизируются через IP-маршрутизатор. Эти запросы представляют собой направленные дейтаграммы UDP. Если имя содержится в базе данных WINS, то в ответ возвращается IP-адрес.
- Если имя не найдено в базе данных WINS, а клиентский компьютер сконфигурирован как h-node, то он использует широковещательные пакеты name query request тем же способом, что и компьютер, не поддерживающий службу WINS.
- Наконец, если все предыдущие методы не привели к успеху, просматривается файл LMHOSTS.
Сервис WINS интегрируется со службой DHCP. Если компьютер одновременно является клиентом DHCP и WINS, то при получении IP-адреса от сервера DHCP соответствие имени компьютера его новому IP-адресу автоматически регистрируется в сервере WINS.
9.5.4. Служба DNS
DNS (Domain Name System) - это распределенная база данных, поддерживающая иерархическую систему имен для идентификации хостов в сети Internet. Спецификация DNS определяется стандартами RFC 1034 и 1035. Хотя служба DNS на первый взгляд может показаться похожей на службу WINS, между ними есть существенное различие. DNS требует статической конфигурации для отображения имени компьютера в IP-адрес, а WINS работает в динамическом режиме и требует гораздо меньше административных усилий.
База данных DNS имеет структуру дерева, называемого доменным пространством имен, в котором каждый домен (узел дерева) имеет имя и может содержать поддомены. Имя домена идентифицирует его положение в этой базе данных по отношению к родительскому домену, причем точки в имени отделяют части, соответствующие узлам домена.
Корень базы данных DNS управляется центром Internet Network Information Center. Домены верхнего уровня назначаются для каждой страны, а также на организационной основе. Имена этих доменов должны следовать международному стандарту ISO 3166. Для обозначения стран используются трехбуквенные и двухбуквенные аббревиатуры, а для различных типов организаций используются следующие аббревиатуры:
- com - коммерческие организации (например, microsoft.com);
- edu - образовательные (например, mit.edu);
- gov - правительственные организации (например, nsf.gov);
- org - некоммерческие организации (например, fidonet.org);
- net - организации, поддерживающие части сети Internet (например, nsf.net).
Каждый домен DNS администрируется отдельной организацией, которая обычно разбивает свой домен на поддомены и передает функции администрирования этих поддоменов другим организациям. Каждый домен имеет уникальное имя, а каждый из поддоменов имеет уникальное имя внутри своего домена. Имя домена может содержать до 63 символов. Каждый хост в сети Internet однозначно определяется своим полным доменным именем (fully qualified domain name, FQDN), которое включает имена всех доменов по направлению от хоста к корню. Пример полного имени DNS:
citint.dol.ru.
Служба DNS использует модель клиент-сервер, в соответствии с которой серверы DNS хранят часть распределенной базы данных DNS и предоставляют эту информацию клиентам (resolver's), которые обращаются по сети с запросами о разрешении имен к серверам DNS. Серверы имен DNS - это программы, которые хранят информацию о частях доменного пространства, называемых зонами. Начиная с версии 4.0 Windows NT Server включает сервер DNS, который полностью соответствует спецификациям Internet. В Windows NT Server 4.0 сервер DNS интегрирован с WINS и снабжен графической утилитой администрирования.
Windows NT Workstation включает клиентскую часть DNS, которая используется приложениями через интерфейсы NetBIOS поверх TCP/IP или Windows Sockets.
Если локальный сервер имен не хранит адрес запрашиваемого имени, то он возвращает клиенту имена и адреса других серверов имен, которые могут знать эту информацию. Затем клиент опрашивает эти серверы имен, пока не найдет нужные отображения. Этот процесс ускоряется из-за того, что серверы имен постоянно кэшируют информацию, предоставляемую по запросам. Все программное обеспечение клиента DNS инсталлируется одновременно со стеком Microsoft TCP/IP и активизируется опцией в окне диалога конфигурации DNS. Приложения, использующие интерфейс Windows Sockets на компьютерах Windows NT Server 3.5, Windows NT Workstation 3.5 или Windows for Workgroups 3.11 с установленным стеком TCP/IP-32, могут пользоваться для разрешения имен либо службой DNS, либо сервисами протокола Net-BIOS поверх TCP/IP.
9.5.5. Интеграция WINS и DNS
Domain Name System (DNS) служит для разрешения IP-адреса по имени хоста и в традиционной реализации требует указывать статическое соответствие между именем хоста и его адресом. Структура зоны DNS обновляется всякий раз при добавлении нового хоста или перемещении его в другую подсеть. Так как DNS не динамичен, кто-то должен вручную делать изменения в базе DNS для отражения в ней происшедших перемен. Это сильно осложняет жизнь администраторов, особенно управляющих зонами с часто выполняемыми модификациями.
Стандарта на динамический вариант DNS, который мог бы принимать изменения в соответствии между именами и IP-адресами, пока нет - в настоящее время IETF его разрабатывает.
В Windows NT Server 4.0 реализовано временное решение об интеграции трех служб - DHCP, WINS и DNS. Так как WINS динамически отслеживает изменения, которые выполняет DHCP, то решено было несколько модифицировать службу DNS. Сервер DNS в Windows NT Server 4.0 может использовать для поиска имен, которые он не нашел в своей собственной базе данных, серверы WINS. Для этого у сервера DNS имеется опция "Use WINS Resolution", с помощью которой указываются IP-адреса серверов WINS, имеющихся в сети.
Для того, чтобы тройка DHCP-WINS-DNS работала корректно, необходимо использовать имена NetBIOS, которыми именуются компьютеры Windows NT и Windows 95, в качестве младшей компоненты составного имени DNS. Сервер DNS должен быть сконфигурирован так, чтобы он самостоятельно выполнял разрешение только старшей части имени, а за разрешением младшей обращался к серверу WINS.