Служба Computer Browser
Служба Microsoft Computer Browser обеспечивает функционирование списков Windows-доменов, рабочих групп и компьютеров в масштабе всей сети, а также списков других сетевых аппаратных устройств, совместимых с протоколом NetBIOS (таких как сетевые накопители Network Attached Storage (NAS). В этих списках просмотра хранятся те самые данные, которые предъявляются пользователю после того, как он открывает Network Neighborhood в Windows Explorer. В сетях на базе ОС Windows 2000 служба Computer Browser применяется лишь из соображений совместимости с более ранними версиями Windows. Дело в том, что когда поддерживающие Active Directory – AD – клиенты взаимодействуют в сети Windows 2000, работающей в собственном режиме, служба Computer Browser замещается службой AD. Однако в сетях смешанного типа с контроллерами доменов под управлением более ранних по сравнению с Windows 2000 версий Windows, а также в сетях с клиентами, не оснащенными поддержкой AD, по-прежнему используется служба Computer Browser.
Если в сети имеется несколько доменов Windows 2000 и Windows NT, широковещательных доменов или протоколов, система просмотра (т.е. процесс обслуживания и распределения списков просмотра, а также вовлеченных в этот процесс компьютеров) будет достаточно сложной. Администратор должен следить за тем, чтобы в списки службы Computer Browser были включены все компьютеры, которые следует отобразить, и чтобы в них не было машин, которые лучше скрыть от рядовых пользователей. Эта работа требует навыков управления всеми аспектами работы сети. Прежде чем браться за нее, администратор должен получить четкое представление о том, как функционирует служба: какие роли могут играть те или иные системы, как определяются эти роли, как системы взаимодействуют в контексте службы и по каким причинам различные устройства могут оказаться вне списков просмотра.
Распределение ролей
Всякий компьютер, способный собирать, обслуживать и распределять списки просмотра, считается браузером и может брать на себя одну или несколько из пяти перечисленных ниже ролей: главный браузер (master browser), главный браузер домена (domain master browser), резервный браузер (backup browser), потенциальный браузер (potential browser) и не-браузер (nonbrowser). В качестве браузера могут выступать машины, работающие под управлением Windows for Workgroups (WFW) 3.11 или любой другой более поздней версии Windows (Windows XP, Windows 2000, NT, Windows Me или Windows 9.x).
В процессе инициализации компьютеры Windows извещают о себе с помощью сообщений в масштабах локального сетевого сегмента (т.е. внутри домена широковещательных сообщений, для каждого используемого данным компьютером сетевого протокола). При этом одна из систем каждого сегмента берет на себя роль главного браузера и ответственность за получение этих широковещательных сообщений. Каждый главный браузер ведет списки просмотра для своего сегмента и – если речь идет об IP-сети – пересылает эти списки главному браузеру домена.
Роль главного браузера домена всегда играет главный контроллер домена (в сети Windows 2000 – исполнитель роли главного контроллера домена). Главный браузер домена выступает в качестве центрального хранилища. Он компилирует списки просмотра, получаемые от главных браузеров сети и затем направляет полный список просмотра каждому главному браузеру. Кроме того, главный браузер домена играет роль главного браузера в своем сетевом сегменте. Роль главного браузера домена существует только в сетях на базе протоколов TCP/IP. (Вопрос о том, как служба Computer Browser взаимодействует с различными сетевыми протоколами, рассматривается во врезке “Домены широковещательных сообщений, сетевые протоколы и адаптеры”).
Врезка 1: Домены широковещательных сообщений, сетевые протоколы и адаптеры.
Windows создает различные списки просмотра для каждого протокола, который функционирует в сети. Поскольку один компьютер может взаимодействовать только с теми компьютерами сети, которые поддерживают одинаковый с ним сетевой протокол, то в списке просмотра он видит только их. Если компьютер поддерживает несколько протоколов, то он запрашивает, получает и объединяет списки для каждого протокола.
IP. Маршрутизаторы IP обычно не пропускают широковещательные пакеты, поэтому архитектура построения браузеров требует наличия главного браузера для каждой подсети IP. Если в дальнейшем подсеть IP будет разделена с помощью VPN, то широковещательные пакеты будут доставляться только членам одной сети VPN, поэтому каждая VPN требует главного браузера. Поскольку IP – единственный маршрутизируемый протокол, ограничивающий передачу широковещательных пакетов, то роль главного браузера домена как центрального хранилища списков просмотра появляется только в случае использования протокола IP.
IPX/SPX NwLnkNb. NwLnkNb – NetBIOS протокол с поддержкой IPX/SPX. Маршрутизаторы IPX обычно разрешают передачу широковещательных пакетов, поэтому одного главного браузера достаточно для всех соединенных между собой сегментов IPX. Однако IPX/SPX может использовать только один из четырех типов фрейма, поэтому компьютеры могут взаимодействовать только с теми, кто использует тот же тип фрейма. Поэтому служба Computer Browser выбирает главного браузера для каждого типа фреймов, используемых в сети IPX/SPX.
NetBEUI. Это немаршрутизируемый протокол, и главный браузер и список просмотра необходимы для каждого сетевого сегмента, в который входят системы Windows NT и более старые.
Если компьютер-браузер содержит несколько сетевых адаптеров, то он собирает список компьютеров для каждого из них; список просмотра для каждого адаптера состоит только из компьютеров, которые объявляют о себе через этот адаптер. Следовательно, каждый главный браузер, в том числе главный браузер домена, управляет списком просмотра для каждой комбинации сетевой адаптер+протокол. Если главный браузер не поддерживает все протоколы, используемые в сегменте, потенциальный браузер, который поддерживает такой протокол, объявляет выборы для этого протокола. Таким образом, для каждого протокола в сети существует главный браузер. Многодомный компьютер, являющийся главным браузером, перенаправляет главному браузеру домена или резервному браузеру только те списки просмотра, которые соответствуют адаптеру или протоколу, через который эти браузеры послали запрос. Многодомный главный браузер домена, который получает объявления от хостов или удаленные списки просмотра через более чем один адаптер, не может управлять глобальным списком просмотра; удаленные главные браузеры и браузеры клиентов получают список, содержащий только те компьютеры, которые доступны через один из адаптеров главного браузера домена. Поэтому следует установить параметр MaintainServerList раздела HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Browser\Parameters в No, чтобы отключить функцию браузера на многодомном комьютере.
Служба Computer Browser использует протокол NetBIOS over TCP/IP (NetBT), поэтому отключение протокола NetBIOS для сетевого адаптера приведет к игнорированию этого адаптера службой просмотра. Чтобы отключить NetBIOS в Windows 2000, откройте окно свойств для соответствующего сетевого соединения, укажите Internet Protocol (TCP/IP) в списке Components, нажмите Properties, а затем Advanced и откройте окно Advanced TCP/IP Settings. Перейдите на закладку WINS и укажите пункт Disable NetBIOS over TCP/IP. В NT 4.0 запустите модуль Network в Control Panel и перейдите на закладку Bindings. В списке Show Bindings for укажите all services. Раскройте пункты NetBIOS Interface, WINS Client (TCP/IP). Выберите нужный сетевой адаптер, щелкните Disable, потом OK. Когда в многодомном компьютере NetBIOS включен только для одного адаптера, только этот адаптер будет связан со службой Computer Browser, только через него будут поступать объявления от других компютеров и создаваться список просмотра. Но этот список может быть неполным, поскольку служба просмотра не видит объявлений других компьютеров, входящих в сегменты, подключенные к остальным сетевым адаптерам.
Резервные браузеры в каждом сетевом сегменте получают от главного браузера сегмента по экземпляру полного списка просмотра и далее предоставляют этот список по запросам клиентов. Главный браузер также может играть роль резервного и включать свое имя в список резервных браузеров, которые он направляет клиентам.
Потенциальный браузер может выполнять функции главного или резервного браузера, но не может выступать и в том, и в другом качестве одновременно. Не-браузер – это компьютер с отключенной администратором функцией обслуживания списков просмотра. При попытке запустить службу Computer Browser на таком компьютере служба не инициализируется, а система выдает код ошибки 2550 и регистрирует событие ID 7024. При этом клиенты, на которых не установлена служба Computer Browser, могут по-прежнему получать списки просмотра и отображать их в окне программы Windows Explorer.
Располагая полномочиями системного администратора Windows 2000 или NT, можно редактировать записи реестра и тем самым определять роль каждого компьютера в процессе просмотра ресурсов сети. Сводка соответствующих записей и их функций приводится в Таблице 1. Большинство связанных с просмотром ресурсов записей хранится в разделе HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\Browser\Parameters.
Таблица 1: Записи реестра, управляющие работой службы просмотра (Computer Browser).
Значение ключа в разделе HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Services |
Тип записи | Действие |
\Browser\Parameters\IsDomainMaster=True | REG_SZ | Система определяется как предпочтительный главный браузер (значение по умолчанию False) |
\Browser\Parameters\MaintainServerList=Yes | REG_SZ | Система определяется как браузер, который всегда используется в качестве главного или резервного (на серверах принимается по умолчанию) |
\Browser\Parameters\MaintainServerList=Auto | REG_SZ | Система определяется как потенциальный браузер (принимается по умолчанию на клиентских системах) |
\Browser\Parameters\MaintainServerList=No | REG_SZ | Система определяется как небраузер |
\LanmanServer\Parameters\Hidden=1 | DWORD | Система исключается из списка просмотра |
\Browser\Parameters\UnboundBindings= NetBT_<network_adapter_driver> | REG_MULTI_SZ | Команда службе Computer Browser не обеспечивать список просмотра для указанного сетевого адаптера |
Когда компьютеры сетевого сегмента принадлежат различным доменам или рабочим группам, по меньшей мере, один компьютер каждого из представленных доменов или рабочих групп обслуживает список просмотра для своего домена или группы. Главные браузеры каждого домена и рабочей группы данного сегмента “представляются” друг другу так, чтобы пользователи могли видеть ресурсы во всех доменах и рабочих группах – даже в тех, что расположены за пределами данного сегмента.
Какой системе поручается задача?
Допустим, что к сети подключен потенциальный браузер. Если эта машина является к тому же главным контроллером домена, если вы определили ее как предпочтительный главный браузер или если она не в состоянии обнаружить главный браузер для одного из своих сетевых протоколов, в момент начала работы в сети этот браузер инициирует среди потенциальных браузеров своего сетевого сегмента нечто вроде избирательного процесса. Процедура выбора построена таким образом, чтобы чаша весов склонилась в пользу сервера Windows 2000 или NT, содержащего последнюю версию правил выбора браузера (т.е. правил, в соответствии с которыми различные версии Windows определяют, какой машине быть главным браузером). Если одной и той же версией протокола оснащено несколько машин, серверным версиям Windows 2000 или NT всегда отдается предпочтение перед версиями XP, Windows 2000 Professional и NT Workstation. Последние, в свою очередь, неизменно получают преимущество перед версиями Windows 9.x. и WFW. А внутри каждого набора версий (т.е. сервер, рабочая станция Win32 или Windows 9.x и WFW) принимается следующий порядок предпочтения, от высшего к низшему: главный контроллер домена, сервер WINS, предпочтительный главный браузер, действующий главный браузер, система, сконфигурированная для выполнения роли главного браузера или резервного браузера и действующий резервный браузер. И последний критерий: (при прочих равных условиях) предпочтение отдается машине, имя которой в алфавитном порядке следует первым (регистр во внимание не принимается); таким образом, компьютер с именем ART получает преимущество перед машиной по имени BOB.
Инициализирующий процесс выбора компьютер передает в широковещательном режиме дейтаграмму выборов, содержащую поле Election Protocol Version размером в 1 байт и поле Election Criteria размером в 4 байта. Большее значение байта поля Election Criteria определяет приоритет операционной системы. Следующие 2 байта определяют уровень подверсии (внутри данной версии протокола выбора), а биты последнего байта определяют роль – или роли – данного компьютера при исполнении данной сетевой службы. Каждый потенциальный браузер производит оценку полей выбора и – если номер его версии протокола выбора (Election Protocol Version) или (когда номера версий идентичны) если значение поля «Критерии выбора» (Election Creteria) больше полученных значений – передает в широковещательном режиме свою дейтаграмму выбора. Система, выигравшая такое соревнование, становится главным браузером; если же главный браузер уже существует, ее статус понижается до статуса резервного браузера.
Служба Computer Browser предусматривает выделение резервного браузера для первых 31 компьютера в домене и дополнительного резервного браузера для каждой дополнительной группы из 32 компьютеров. Главный браузер следит за тем, чтобы достаточное число браузеров оставалось в активном состоянии. Все контроллеры доменов сетевого сегмента главного браузера, а также машины, в реестрах которых имеется запись MaintainServerList=Yes, становятся резервными браузерами, если не получают статуса главного браузера. Если же после этого сегмент все еще испытывает нехватку резервных браузеров, главный браузер осуществляет дополнительный отбор из пула потенциальных браузеров до тех пор, пока положение не меняется.
Разрешение имен NetBIOS
Но как же главный браузер отыскивает главный браузер домена? Как клиенты находят браузер, способный ответить на запрос о предоставлении списка просмотра? Чтобы ответить на эти вопросы, надо рассмотреть систему разрешения имен NetBIOS.
Система просмотра использует несколько определяемых ролями машин NetBIOS-имен, которые позволяют серверам службы просмотра и клиентским браузерам находить друг друга. Список этих имен приведен в Таблице 2, где также указано, какие системы их регистрируют и как они используются системами. Каждый раз, когда сервер просмотра или клиентский браузер не в состоянии разрешить одно из этих имен в IP-адрес выполняющего соответствующую роль компьютера, список просмотра оказывается неполным. Понимание принципов использования службой Computer Browser каждого из этих имен поможет производить диагностику подобных отказов.
Таблица 2: NetBIOS-имена, используемые службой Computer Browser.
NetBIOS-имя | Какая система регистрирует? | Какие системы используют? |
domain_name<1Bh> | Главный контроллер домена в качестве главного браузера домена | Главные браузеры для поиска главного браузера домена. |
domain_name<1Dh> | Главный браузер | Резервные браузеры для получения списка просмотра; клиенты для получения списка резервных браузеров у сервера, регистрирующего данное имя. |
domain_name<1Eh> | Потенциальный браузер | Дейтаграммы выбора. |
..__MSBROWSE__.<01H> | Главные браузеры | Объявления, предназначенные для нескольких доменов или нескольких рабочих групп. |
computer_name<00h> | Обслуживание рабочих станций | Главные браузеры, клиенты. |
Служба Computer Browser регистрирует три имени. Все потенциальные браузеры регистрируют имя_домена<1Eh> (domain_name<1Eh>). Это имя идентифицирует их в качестве компьютеров, которые будут принимать участие в выборе браузеров для именованного домена в их сетевом сегменте. Все главные браузеры регистрируют имя_домена<1Dh> (domain_name<1Dh>) и __MSBROWSE__.<01H> (трассировка с помощью сетевого монитора показывает, что фактическое имя – <01h><02h>__MSBROWSE__<02h><01h>). При поисках и взаимодействии с главным браузером в процессе извлечения списка просмотра резервные браузеры используют имя_домена<1Dh> (domain_name<1Dh>). При передаче и приеме предназначенных для нескольких доменов или рабочих групп объявлений в локальной подсети главные браузеры используют имя __MSBROWSE__.<01H>. Главные браузеры, подключенные к тем сетевым сегментам, где размещаются главные браузеры других доменов или рабочих групп, с помощью таких объявлений узнают о существовании друг друга, и в результате список просмотра может содержать информацию о каждом домене и рабочей группе. Наконец, главный контроллер домена регистрирует имя_домена<1Bh> (domain_name<1Bh>). Главные браузеры NT исходят из того, что компьютер с таким именем является главным браузером домена. Оснащенные поддержкой AD главные браузеры обращаются к службе AD с запросом об имени эмулятора главного контроллера домена, который и выполняет роль главного браузера домена.
Если резервный браузер (или главный браузер, выполняющий функции резервного) предоставляет клиентам неполный список просмотра, причина этого часто кроется в некорректной работе системы разрешения имен NetBIOS. Скажем, если список просмотра содержит только имена компьютеров локального сетевого сегмента, отсюда, возможно, следует, что главный браузер не в состоянии разрешить имя главного браузера домена – а это необходимо для того, чтобы получить полный глобальный список просмотра. Системы Windows Me, Windows 9.x или WFW 3.11b на базе TCP/IP могут выступать в качестве главного браузера лишь потому, что, во-первых, и данная Windows-система, и главный контроллер домена используют для разрешения имен систему WINS (так, чтобы эта Windows-система могла разрешать имя_домена<1Bh> (domain-name<1Bh>) в IP-адрес главного контроллера домена), и, во-вторых, поскольку имя рабочей группы компьютера совпадает с именем домена главного контроллера домена.
Формирование и обслуживание списка просмотра
Итак, главный контроллер домена взял на себя роль главного браузера домена и главного браузера своего сетевого сегмента, а компьютеры других сегментов завершили процедуру выбора главных браузеров для соответствующих сегментов. Это означает, что инфраструктура для обслуживания списка просмотра готова.
Когда только что взявшая на себя роль главного браузера машина обнаруживает, что список просмотра пуст, она передает в широковещательном режиме дейтаграмму Announcement Request, которая направляется системе domain_name<00h> в локальном сегменте сети. Все компьютеры, получившие упомянутую дейтаграмму, заявляют о себе через произвольные интервалы в течение 30 секунд с момента получения первой дейтаграммы. Таким образом формируется первоначальный список просмотра.
Все компьютеры с включенной функцией File and Printer Sharing for Microsoft Networks заявляют о себе при инициализации системы, а также каждые 12 минут после этого, передавая соответствующим главным браузерам на имя domain_name <1Dh> дейтаграмму Host Announcement. Данные сведения сохраняются каждым главным браузером.
Все главные браузеры сети IP отыскивают главный браузер соответствующего домена и затем заявляют о себе главному браузеру домена при назначении последнего, а также после этого раз в 12 минут. Эти объявления создаются с помощью дейтаграммы Master Browser Announcement, которую соответствующий главный браузер направляет на имя domain_master_browser_name<00>.
Каждый главный браузер заявляет о себе потенциальным браузерам своего сетевого сегмента при получении статуса главного браузера и далее раз в 12 минут. Эти данные передаются с помощью дейтаграммы Local Master Announcement, направляемой на имя domain_name<1Eh>. В данном объявлении резервным браузерам сообщается имя главного браузера. Если этот пакет получает компьютер, полагающий, что именно он является главным браузером, получивший пакет компьютер инициирует новую процедуру выбора браузера, что и разрешает конфликтную ситуацию.
Раз в 12 минут главный браузер домена через интерфейс прикладного программирования NetServerEnum запрашивает список просмотра у каждого главного браузера. При этом вызов направляется главным браузером домена на IP-адрес каждого главного браузера (разрешенный из NetBIOS-имени master_browser_name<00h>).
Раз в 12 минут каждый главный браузер запрашивает у главного браузера домена глобальный список просмотра с помощью интерфейса NetServerEnum. Главный браузер направляет вызов на IP-адрес главного браузера домена (разрешенный из NetBIOS-имени domain_master_browser_name<00h>).
Раз в 12 минут каждый резервный браузер запрашивает глобальный список просмотра у своего главного браузера.
Главные браузеры сообщают о себе другим доменам или рабочим группам сетевого сегмента раз в 15 минут с помощью дейтаграммы Workgroup Announcement, которую главный браузер передает в широковещательном режиме на NetBIOS-имя ..__MSBROWSE_.<01H>, регистрируемое всеми главными браузерами.
Если в ходе трех следующих один за другим сеансов передачи объявлений браузер не получает от передающего компьютера каких-либо данных, он удаляет соответствующую запись из своего списка просмотра. Так, если главный браузер домена три раза подряд (т.е. в течение 36 минут) не получает данных от главного браузера, этот главный браузер домена удаляет из своего глобального списка просмотра все записи, сделанные ранее на основании полученной от умолкнувшего главного браузера информации. Подобным же образом, если главный браузер в течение трех сеансов связи подряд не получает от какого-либо компьютера дейтаграмму Host Announcement, данный главный браузер удаляет такой компьютер из своего списка просмотра.
При первом инициированном клиентским приложением запросе списка просмотра с помощью интерфейса NetServerEnum API клиент инициирует процесс, направляя на имя domain_name<1Dh> дейтаграмму Get Backup List Request. В ответ главный браузер направляет список резервных браузеров, который может включать в себя и направляющий сообщение главный браузер. Затем клиент направляет одному из этих браузеров NetServerEnum-запрос. Когда пользователь пытается получить информацию о другом домене или рабочей группе, клиентская машина запрашивает список браузеров для этого домена или рабочей группы, а затем запрашивает список просмотра у одного из этих браузеров.
По умолчанию обмен обновленными версиями списков просмотра между главным браузером домена и главными браузерами происходит раз в 12 минут. Между тем, в “Белой книге” Microsoft “MS Windows NT Browser” утверждается, что интервал обмена обновленными списками составляет 15 минут. Я провел мониторинг своей сети, в которую входит домен NT и домен Windows 2000 AD с пакетом Windows .NET Enterprise Server (Win.NET Enterprise Server – новое название Windows 2000 Advanced Server) третьей бета-версии, с системами Windows 2000 AS, NT Server, Windows 2000 Pro и с XP Professional Edition (все они выступают в качестве браузеров многосегментной сети). Трассировка пакетов показала, что интервал составляет именно 12 минут.
В IP-сетях служба Computer Browser использует как протокол TCP, так и протокол UDP. Главный браузер и главный браузер домена обмениваются списками просмотра по протоколу NetBIOS поверх TCP/IP (NetBT), что обеспечивает более надежную связь. Для передачи данных по всем другим каналам используется UDP, IP-протокол без установления соединения, не гарантирующий доставки пакетов. Точнее говоря, в этих каналах связи UDP используется реализация протокола Common Internet File System (CIFS), который, в свою очередь, представляет собой усовершенствованную версию протокола файловой системы, именуемого Server Message Block (SMB).
Поскольку успешная доставка браузерных дейтаграмм не гарантируется, целевая служба Computer Browser иногда не обеспечивает получение дейтаграмм в сети с интенсивным трафиком или на загруженном сервере. В результате бывает и так, что успешная передача обновленной информации осуществляется лишь по истечении нескольких интервалов между сеансами обмена обновленными списками. Иначе говоря, механизм доставки дейтаграмм далек от совершенства, и потому служба Computer Browser удаляет старую информацию из списка просмотра лишь после того, как данный браузер не получает данных от передающего компьютера на протяжении трех сеансов связи подряд. Надо сказать, что при выключении каждый компьютер четко извещает об этом главный браузер, однако система, которая отключается внезапно, остается в списке просмотра ее главного браузера в течение 36 минут. А поскольку до того момента, когда резервный браузер другого сетевого сегмента получит обновленный список просмотра, может пройти еще целых 36 минут, компьютер может оставаться в списке просмотра другого сетевого сегмента до 72 минут с момента завершения работы.
Понимание механизма работы службы Computer Browser поможет вам успешно решать проблемы диагностики. Более подробный анализ службы Computer Browser содержится в разделе “Appendix 1 – Windows 2000 Browser Server” материала Windows 2000 Server TCP/IP Core Networking Guide. В будущем я намерен посвятить одну из статей инструментальным средствам и процедурам, позволяющим решать проблемы, которые возникают при работе со службой Computer Browser.