Работа в сети с использованием TCP/IP
Разрешение имен NetBIOS
Если включена система NetBIOS, то на всех компьютерах Windows поддерживается кэш имен NetBIOS, разрешение которых они уже выполняли. Когда компьютеру требуется разрешение NetBIOS-имени, то сначала происходит обращение к кэшу. Если это имя не найдено в кэше, то далее используется метод, определяемый типом узла данного компьютера.
- Клиент, не использующий WINS, отправляет широковещательные сообщения для разрешения имени, и в случае неудачного результата обращается к локальному файлу LMHOSTS.
- Клиент WINS может использовать для разрешения имен NetBIOS любой из имеющихся методов. Сначала он использует кэш имен NetBIOS, затем обращается к серверу WINS. Если сервер WINS не дает результата, то происходит рассылка широковещательных сообщений, и в случае неудачного результата происходит обращение к файлу LMHOSTS.
В следующих разделах дается описание возможных методов разрешения имен NetBIOS в том порядке, как они использовались бы на компьютере, поддерживающем WINS.
Кэш имен NetBIOS. Во время каждого сетевого сеанса клиентский компьютер сохраняет в кэше памяти все имена NetBIOS, для которых было успешно выполнено разрешение, чтобы их можно было использовать повторно. Поскольку кэш хранится в памяти, его использование является самым быстрым и эффективным способом разрешения имен. Это первый ресурс, к которому обращаются узлы всех типов, когда им требуется разрешение какого-либо имени. Вы можете увидеть текущее содержимое кэша имен NetBIOS вашего компьютера, набрав nbtstat -c в командной строке.
Разрешение имен WINS. WINS – это средство на уровне сети предприятия для регистрации и разрешения имен NetBIOS. Это единственный механизм, доступный сети Windows Server 2003/2000, который автоматически поддерживает базу данных NetBIOS-имен сети и соответствующих им IP-адресов. В отличие от широковещательных сообщений служба WINS использует только отдельные сетевые сообщения, что позволяет ей работать независимо от границ между сегментами сети. Использование отдельных сообщений WINS позволяет существенно сократить объем сетевого трафика, который возникает за счет операций разрешения имен NetBIOS.
WINS поставляется вместе с Windows Server 2003, и она функционирует как служба. В ваш комплект администрирования включена оснастка WINS, которая позволяет вам управлять всеми серверами WINS в сети вашего предприятия из одной центральной точки. Для повышения скорости (а также отказоустойчивости) вы можете запускать в сети предприятия несколько серверов WINS. Базы данных WINS могут автоматически реплицироваться через заранее заданные периоды времени или в указанные моменты дня. Вы можете запланировать репликацию WINS через каналы глобальной сети (WAN) на периоды низкого уровня трафика, создавая тем самым унифицированную базу данных для распределенной по всему миру сети.
WINS также позволяет своим клиентам выполнять навигацию среди машин других сегментов сети, не запрашивая услуг главных браузеров в этих сетях. Это позволяет пользователям взаимодействовать с другими машинами в удаленных сайтах, не занимая канал глобальной сети трафиком браузера.
Если клиенту WINS требуется разрешение имен NetBIOS, то он отправляет отдельное сообщение NAME QUERY REQUEST первому серверу WINS, указанному на странице WINS Address диалогового окна TCP/IP Properties. Затем сервер WINS отвечает сообщением POSITIVE NAME QUERY RESPONSE, содержащим запрашиваемое имя и соответствующий IP-адрес, или сообщением NEGATIVE NAME QUERY RESPONSE, указывающим, что в базе данных нет записи с этим именем.
Если имеется некоторая задержка с ответом на запрос, сервер WINS отправляет клиенту пакеты WACK (WAIT FOR ACKNOWLEDGEMENT RESPONSE – ожидать подтверждающего ответа), чтобы клиент не перешел к использованию следующего метода разрешения имен.
Если сервер WINS не может выполнить разрешение имени, отправив отрицательный ответ или не отправив никакого ответа, то клиент обращается к вторичному (резервному) серверу WINS и повторяет весь процесс. Если это не может сделать и вторичный сервер, то компьютер, который является H-узлом, переходит к использованию широковещательных сообщений для разрешения имени. Но если серверы WINS не могут ответить на любые запросы разрешения имен, то клиент продолжает попытки контакта с этими серверами, чтобы вернуться к разрешению имен WINS, как только появится такая возможность.
Разрешение имен с помощью широковещательных сообщений
Если разрешение имен NetBIOS происходит с помощью широковещательных сообщений, то все зарегистрированные компьютеры должны отвечать на запросы, в которых указаны их имена. Компьютер, который применяет широковещательные сообщения для разрешения имен, генерирует тот же пакет NAME QUERY REQUEST, что и клиент WINS, за исключением того, что запрос направляется в виде широковещательных сообщений всем компьютерам данной локальной подсети. Каждый компьютер, получивший этот пакет, должен проверить имя, для которого запрашивается IP-адрес.
Если пакет содержит нераспознаваемое имя, то он "молча" удаляется. Но если компьютер опознал свое собственное имя в этом запросе, то он должен ответить отправителю пакетом POSITIVE NAME QUERY RESPONSE, содержащим его IP-адрес. Этот пакет отправляется как отдельное (не широковещательное) сообщение.
Метод разрешения имени с помощью широковещательных сообщений используется всеми старыми системами Windows, которые не являются клиентами WINS (после попытки получить имя из кэша имен). Если имя, которое должно быть разрешено, принадлежит компьютеру в другом сегменте сети, то широковещательные сообщения не могут попасть в этот сегмент, и этот метод даст неудачный результат (по истечении периода тайм-аута для широковещательных сообщений).
Файл LMHOSTS
Если не удается разрешить имя NetBIOS с помощью широковещательных сообщений, то следующая альтернатива – это файл LMHOSTS на локальном жестком диске. Клиенты, не поддерживающие WINS, делают это автоматически. Чтобы клиент WINS мог использовать файл LMHOSTS (после того, как поиск с помощью WINS и широковещательных сообщений не дал результата), вы должны установить флажок Enable LMHOSTS Lookup (Разрешить поиск в LMHOSTS) на странице WINS Address диалогового окна TCP/IP Properties.
Файл LMHOSTS аналогичен файлу HOSTS (который используется для разрешения хост-имен) за исключением того, что он содержит список имен NetBIOS. Он находится в той же папке, что и HOSTS ( %SystemRoot%\System32\drivers\...), и Windows предоставляет файл-образец с именем Lmhosts.sam, который вы можете использовать как модель для своего собственного файла (это текстовый файл, который вы можете просматривать с помощью Notepad [Блокнот]).
Для компьютера, который не являются клиентом WINS, файл LMHOSTS – это единственное средство разрешения имен, доступное компьютерам в других сегментах сети. Чтобы регистрировать имена NetBIOS, нужно вручную отредактировать файл LMHOSTS и добавить запись для каждого компьютера, с которым вы будете взаимодействовать. Каждая запись должна содержать IP-адрес компьютера, после которого в той же строке (через пробел) должно следовать соответствующее NetBIOS-имя.
В отличие от файла HOSTS файл LMHOSTS может содержать дополнительные средства, которые помогают в процессе разрешения имен.
- #PRE. Если тег #PRE добавляется к какой-либо записи в файле LMHOSTS, то эта запись заранее загружается в кэш имен NetBIOS при каждой загрузке данного компьютера. Добавление в файл LMHOSTS компьютеров, к которым чаще всего выполняется доступ, ускоряет разрешение имен даже для клиентов WINS. Тег #PRE следует добавлять в конец записи с одним или несколькими пробелами, отделяющими его от имени NetBIOS.
- #DOM:имя_домена. Тег #DOM используется, чтобы связать запись файла LMHOSTS с доменом Windows NT, который указывается переменной имя_домена. В результате компьютер, указанный в этой записи, будет получать список для навигации среди компьютеров домена от главного контроллера (PDC) указанного домена. Это позволяет компьютерам, не использующим WINS, выполнять навигацию среди компьютеров домена, которые находятся в других сегментах сети. Тег #DOM вместе со своим параметром помещается в конец записи после пробела.
-
#INCLUDE путь. Тег #INCLUDE позволяет вам получать доступ к файлу LMHOSTS, находящемуся в другом месте. Обычно это средство используется для доступа к файлу на каком-либо сетевом диске, где он может одновременно использоваться другими клиентами. Это означает, что вы можете редактировать один централизованный файл LMHOSTS вместо обновления по отдельности копий на рабочих станциях. Этот тег, после которого следует полный UNC-путь к файлу, должен быть помещен в отдельную строку файла LMHOSTS, как это показано ниже:
#INCLUDE \\сервер1\разделяемый_ресурс\...\lmhosts
Примечание. Проследите, чтобы NetBIOS-имя, используемое в UNC-пути, можно было разрешить с помощью тега #PRE, если эта машина находится в другом сегменте сети. -
#BEGIN_ALTERNATE/#END_ALTERNATE. Эти теги используются, чтобы обеспечить отказоустойчивость для тега #INCLUDE. Если поместить несколько тегов #INCLUDE между тегами #BEGIN_ALTERNATE и #END_ALTERNATE, как это показано ниже, то теги #INCLUDE будут обрабатываться по порядку, пока не будет выполнен успешный доступ к соответствующему файлу LMHOSTS. После успешного чтения этого файла все следующие теги #INCLUDE игнорируются и происходит переход к следующей строке после тега #END_ALTERNATE.
#BEGIN_ALTERNATE#INCLUDE \\сервер 1\разделяемый_ресурс\...\lmhosts#INCLUDE\\ сервер 2\разделяемый_ресурс\...\lmhosts#END_ALTERNATE
-
\Oxhh. Этот тег используется для задания специальных символов в именах NetBIOS по их шестнадцатеричным значениям. Если приложению требуется специальный символ в 16-й позиции имени NetBIOS, то вы можете задать его, заключив это имя в кавычки и применив \Oxhh в соответствующей позиции (с заменой hh шестнадцатеричным значением этого символа). \Oxhh заменяет только какой-либо один символ в имени NetBIOS. Вы должны включить нужное число пробелов, чтобы в имени было 16 символов, например:
139.41.129.18 "application \ox14"
Когда следует прекратить использование NetBIOS
Microsoft рекомендует переходить к более "чистой" реализации TCP/IP в сетевых окружениях Windows. Теперь уже не обязательно использовать NetBIOS over TCP/IP для разрешения имен, поскольку эти функции взяла на себя DNS. Кроме того, NetBIOS поддерживается только для совместимости с унаследованными системами и приложениями.
DNS просто лучше – это более масштабируемое и надежное решение для разрешения имен. Она выдержала испытание временем, и интернет является наилучшим примером ее успеха. Чтобы детальнее ознакомиться с DNS и ее влиянием на среду Windows, обратитесь к "Ознакомление с DNS" .
Как вы, вероятно, уже поняли, чем быстрее вы прекратите использовать NetBIOS, тем лучше станет ваша среда Windows. Первый шаг – это модернизировать клиентов прежних версий Windows, перейдя к текущей версии Windows.
К сожалению, модернизация не позволит полностью выполнить вашу задачу. Вам придется также проверить, работают ли у вас приложения, которые зависят от NetBIOS. Если у вас есть такие приложения и они все еще нужны вам, обратитесь к поставщику, чтобы узнать, нет ли у него модернизированной версии, которая не использует NetBIOS (для начала проверьте свою версию Microsoft Office). После того как вы отключите NetBIOS, любые приложения, которые основываются на этой службе, перестанут правильно работать или не будут работать совсем. И последний шаг – это фактическое отключение NetBIOS на всех машинах Windows Server 2003/XP/2000. Для этого выполните следующие шаги.
- В меню Start\Settings выберите Network Connections.
- Щелкните правой кнопкой на значке Local Area Connection и выберите пункт Properties.
- Выберите Internet Protocol (TCP/IP) и щелкните на кнопке Properties.
- В диалоговом окне Properties щелкните на кнопке Advanced, чтобы появилось диалоговое окно Advanced TCP/IP Settings.
- Перейдите во вкладку WINS и выберите вариант Disable NetBIOS over TCP/IP (Отключить NetBIOS поверх TCP/IP).
- Два раза щелкните на кнопках OK и затем щелкните на кнопке Close.