Тема: NetBEUI и Windows 7
Опции темы
Поиск по теме
Отображение
NetBEUI и Windows 7
Доброго времени суток!
Есть комп с кассовым сервером, Win7 x86, и несколько ДОСовых станций, сеть настроена на NetBEUI. Станции видят сервер, все работает. Проблема заключается в невозможности подключить сетевой диск станции на компе с семеркой. При этом на компах с XP шара прекрасно цепляется.
Существуют ли варианты решения данной проблемы?? Обходные пути в виде RKFTP и XP Mode известны, но интересует именно прямое подключение сетевого диска, без лишней магии.
Не знаю, как через NetBEUI, но через NetBIOS по TCP\IP все прекрасно шарится, даже на Windows 10 x64. Так, что устанавливайте TCP\IP на станции. Пора уже про NeTBEUI забыть.
сложность в том, что большинство объектов как раз на NetBEUI и в ближайшее время переводить на TCP не планируем
В чем именно проблема?
команда «net view \\manager» что говорит?
Системная ошибка 53. Не найден сетевой путь.
Та же ошибка возникает при попытке подключения сетевого диска — net use Z: \\UNIT01\C . При этом если сделать просто «net view» ДОСовые станции видны. И опять же на XP подключение шары работает на ура.
Надо крутить политики безопасности на 7ке.
Панель упр — администрирование — локальная политика безопасности.
Локальные политики — параметры безопасности:
1. Доступ к сети: разрешить трансляцию анонимного SID в имя — включить
2. Сетевой доступ: запретить анонимный доступ к именованным каналам и общим ресурсам — отключить. Скорее всего из за этого 7-ка не отдает клиенту ДОС перечень своих шар. Т.к. клиент ДОС не удовлетворяет параметрам безопасности 7ки и поэтому считается анонимным.
3. Сетевой доступ: модель совместного доступа и безопасности для локальных учетных записей — поставить «Гостевая».
4. Сетевой доступ: не разрешать перечисление учетных записей SAM анонимными пользователями. — Отключить
5. Сетевой доступ: не разрешать перечисление учетных записей SAM и общих ресурсов анонимными пользователями — Отключить
6. Сетевой доступ: разрешать применение разрешений «Для всех» к анонимным пользователям — Включить.
Включить учетку Гостя, дать ему права на шару.
Все это ослабляет защиту винды, после того как шара заработает, можно попробовать по одному отключать приведенные параметры, возможно не все они нужны.
Национальная библиотека им. Н. Э. Баумана
Bauman National Library
Персональные инструменты
NetBEUI (NetBIOS Extended User Interface)
NetBEUI (англ. NetBIOS Extended User Interface ) — расширенный пользовательский интерфейс дейтаграммной передачи NetBIOS. В середине 1990-х годов широко использовался для небольших LAN, затем постепенно был вытеснен TCP/IP. Комбинированный протокол L3/L4, используемый как механизм передачи для NetBIOS на основе широковещательных рассылок. Этот протокол является реализацией стандарта NetBIOS. Транспортной частью NetBEUI является NBF (NetBIOS Frame Protocol). Сейчас вместо NetBEUI обычно применяется NetBIOS over TCP/IP (NBT), так как поддержка NetBEUI в Windows прекращена с Microsoft Windows 2003. Samba (SMB-файловый сервер под UNIX) имеет только реализацию NBT, не поддерживая ни IPX, ни NetBEUI.
Протокол NetBEUI вследствие своей примитивности требует меньше всего ресурсов и обеспечивает наивысшую скорость работы, но из-за ряда присущих ему недостатков, таких как невозможность маршрутизации и сильная зашумлённость в большой сети, NetBEUI можно эффективно использовать только в небольших локальных сетях (IBM разработала протокол NetBEUI для локальных сетей, содержащих порядка 20 — 200 рабочих станций). Так как NetBEUI не маршрутизируемый, то он не позволяет создавать глобальные сети, объединяя несколько локальных сетей. Сети, основанные на протоколе NetBEUI, легко реализуются, но их трудно расширять, по этой же причине.
Содержание
История и терминология
NetBEUI разрабатывался под наименованием Network Basic Extended User Interface IBM в 1985 году для операционной системы IBM OS/2. Позже такие компании , как Microsoft, Intel und Novell подхватили протокол и совершенствовали это под наименованием NetBIOS Extended User Interface. NetBEUI применяется с тех пор для базирующихся на Windows сетей.
В 1985 году IBM перешла к схеме сети Token Ring, и был выпущен эмулятор NetBIOS, позволяющий NetBIOS-приложениям из эры PC-Network работать над этим новым дизайном. Этот эмулятор, получивший название NetBIUI Extended User Interface (NetBEUI), расширил базовый API NetBIOS, среди прочего, способностью обрабатывать большую емкость узла Token Ring. Новый сетевой протокол NetBIOS Frame был одновременно создан, чтобы позволить NetBEUI (NetBIOS) предоставлять свои услуги по Token Ring, в частности, на уровне IEEE 802.2 Logical Link Control .
Стоит отметить популярную путаницу между именами NetBIOS и NetBEUI. NetBEUI возник исключительно как прозвище для усовершенствованного эмулятора NetBIOS 1985 года для Token Ring. Наименование NetBEUI должно было исчезнуть еще тогда, учитывая, что в то время реализации NetBIOS другими компаниями были известны просто как NetBIOS независимо от того, были ли они включены расширения API, найденные в этом эмуляторе. Однако для MS-Net Microsoft решила назвать свою реализацию протокола NBF, «NetBEUI» — буквально называя ее реализацией транспортного протокола после второй версии API IBM. Следовательно, даже сегодня, обмен файлами и принтерами Microsoft поверх Ethernet по-прежнему называется NetBEUI, причем имя NetBIOS широко используется только в отношении совместного использования файлов и принтеров через TCP / IP. По правде говоря, первым является протокол NetBIOS Frames (NBF), а последний — NetBIOS через TCP / IP (NBT).
Cтруктура
NetBEUI — это не отдельный протокол, а окрестность для коммуникативных служб, которая состоит из 3 частей:
- Интерфейс для приложений:NetBIOS
- Транспортный протокол: NetBEUI
- Интерфейс к сетевому адаптеру: NDIS
NetBIOS
NetBios — это программный интерфейс между приложениями и транспортными протоколами. Основной компонент NetBIOS — это управление логичных имен в сочетании с MAC или IP адресами. Наряду с NetBEUI может переноситься NetBIOS также о TCP/IP или IPX/SPX.
NetBEUI
Протокол NetBEUI расширяет NetBIOS на необходимые способности протокола. Кроме активизации протокола и предоставление имени NetBIOS и наименование рабочей группы ничего не нужно делать. NetBEUI с NetBIOS функционируют почти полностью автоматизировано. NetBEUI определяет сооружение пакетов данных и строит ориентированную на связь сеть. Доступ к ресурсам может осуществляться в виде одноранговой сети (P2P) или клиент-серверного приложения.. Адресами управляет NetBIOS.
NDIS (Network Driver Interface Specification) — это интерфейс между протоколами и программным драйвером сетевого адаптера. В качестве транспортного протокола может использовать Ethernet так же хорошо, как и ISDN
Разрешение Имен
Существует три способа отображения имен NetBIOS в IP-адреса на небольшие сети, которые не выполняют маршрутизацию:
- IP-вещание — Пакет данных с именем компьютера NetBIOS передается, когда связанный адрес не находится в локальном кэше. Хост, у которого есть это имя, возвращает его адрес.
- LMHOSTS file — Это файл, который сопоставляет IP-адреса и имена компьютеров NetBIOS.
- NBNS — сервер имен NetBIOS. Сервер, который сопоставляет имена NetBIOS по IP-адресам. Эта услуга предоставляется nmbd daemon в Linux.
Системные методы определения имен NetBIOS для IP-адресов:
- B-node — узел вещания
- P-node — узел «точка-точка» запрашивает сервер имен NBNS для разрешения адресов.
- M-node — сначала использует широковещательную передачу, а затем возвращает запрос на сервер имен NBNS.
- H-node — система сначала пытается выполнить запрос к серверу имен NBNS, а затем возвращается к широковещательным сообщениям, если сервер имен выходит из строя. В крайнем случае, он будет искать файл lmhosts локально.
Службы имен NetBIOS используют порт 137, а службы сеанса NetBIOS — порт 139. Служба датаграмм NetBIOS использует порт 138.
Чтобы разрешить адреса из имен, компьютер из сети Microsoft будет проверять свой кэш, чтобы увидеть, присутствует ли адрес компьютера, к которому он хочет подключиться, в списке. Если нет, он посылает широковещательную передачу NetBIOS, запрашивая компьютер с именем, чтобы ответить его аппаратным адресом. Когда адрес будет получен, NetBIOS начнет сеанс между компьютерами. В больших сетях, использующих маршрутизаторы, это является проблемой, поскольку маршрутизаторы не пересылают широковещательные передачи, и протокол NetBEUI не является маршрутизируемым. Поэтому Microsoft внедрила другой метод разрешения имен с помощью службы WINS. Для разрешения имен NetBIOS на IP-адреса для разрешения H-узлов в больших сетях с использованием TCP/IP (NBT) выполняются следующие шаги:
- Кэш имен NetBIOS
- WINS-сервер
- Передача по протоколу NetBIOS
- Файл lmhosts
- Файл hosts
- DNS-сервер
NetBIOS через TCP/IP
NetBIOS (Network Basic Input/Output System, Сетевая Базовая Система Ввода/Вывода) — это интерфейс для работы в локальных сетях, разработанный фирмой Sytek для компании IBM в 1983 году. Как гласит RFC1001: NetBIOS defines a software interface not a protocol. There is no «official» NetBIOS service standard . И всё же NetBIOS, по моему скромному мнению, и интерфейс и протокол, поэтому, с вашего позволения, назовем его стандартом (не смотря на то, что официально он так и не был полностью стандартизован). Довольно часто NetBIOS называют сетевым протоколом, но это не совсем корректно, поскольку NetBIOS реализован в Windows сразу в нескольких компонентах операционной системы :: в виде интерфейса в библиотеках пользовательского режима и режима ядра, и в виде модуля в стеке сетевого протокола. Интерфейс NetBIOS представляет из себя стандартный набор для разработки приложений (API), протокол NetBIOS функционирует на транспортном/сеансовом уровне стека и используется для передачи данных, управления сеансом и прочих нужд.
Особенностью NetBIOS является возможность работы «поверх» основных сетевых протоколов, таких как IPX , NetBEUI и TCP/IP . В своё время реализация протокола NetBIOS в Windows была существенно переработана и ориентирована на использование протокола TCP/IP (как наиболее перспективного), получив новое название “NetBIOS over TCP/IP” (NetBIOS через TCP/IP). NetBIOS через TCP/IP имеет псевдоним NetBT (NBT). NetBIOS через TCP/IP представляет собой промежуточный уровень между NetBIOS и TCP/IP и создан для того, чтобы приложения на базе NetBIOS могли работать в сетях TCP/IP, то есть предназначен для отображения имен NetBIOS в IP-адреса и, наоборот. Как мы уже упоминали, NetBIOS разрабатывался на заре становления сетевых технологий, и с того времени часто модифицировался, однако параллельно с ним создавались и другие стандарты сетевого взаимодействия, которые существенно опережали NetBIOS по функционалу. На данный момент NetBIOS считается устаревшим стандартом и не рекомендуется к использованию, заместо него, в части организации передачи данных по сети, Microsoft предлагает использовать сокеты (windows sockets), почтовые каналы (mailslots), именованные каналы (named pipes). Для оставшегося функционала, то есть для сервисных целей разработан новый протокол LLMNR (через PNRP):
Однако, не смотря на устаревание NetBIOS, поддержка его сохранена и по сей день, код NetBIOS через TCP/IP всё еще присутствует в составе последних версий Windows. Причиной столь огромной популярности стандарта является тот факт, что до определенного времени NetBIOS оставался основным интерфейсом программирования сетевых приложений, и с использованием функций NetBIOS было написано огромное количество разнообразного программного обеспечения.
NetBT является неотъемлемой частью сетевого стека TCP/IP ОС Windows и инсталлируется вместе с протоколом TCP/IP. Части функционала NetBT встречаются в коде библиотек, переменных окружения ( %COMPUTERNAME% , %USERDOMAIN% ), коде некоторых современных антивирусных продуктов, почтовых серверов, баз данных. NetBIOS до сих пор используется в алгоритме добавления рабочей станции в домен, в процедурах работы с сетевым окружением, подключения сетевых дисков. Об исключительном значении протокола NetBIOS через TCP/IP говорит уже и тот факт, что штатными средствами самой ОС протокол NetBIOS может быть только отключен, но никак не удален. Удаление же его возможно только вместе с удалением протокола TCP/IP.
Службы NetBIOS
Далее не будет лишним посмотреть, какие же сетевые порты используются сервисами NetBIOS:
NETBIOS-NS (NetBIOS Name Service) — Служба имен NetBIOS . Сервис обеспечивает работу с именами: запрос на регистрацию имени, запрос на регистрацию имени группы, запрос на разрегистрацию (удаление) имени, проверку имени на существование.
NETBIOS-DGM (NetBIOS Datagram Services) — Служба дейтаграмм NetBIOS . Сервис обеспечивает рассылку дэйтаграм: адресную передачу к одной станции, широковещательную рассылку ко всем станциям, многоадресную рассылку к [определенным] станциям (с одним групповым именем).
NETBIOS-SSN (NetBIOS Sessions Services) — Служба сессий NetBIOS . Сервис организует управление сессиями: фактически [надежный] обмен сообщениями между двумя NetBIOS-приложениями (точка-точка/хост-хост).
Подобная структура отражает требование RFC 1001, RFC 1002, регламентирующее наличие трех базовых сервисов, которые реализуют эмуляцию NetBIOS в системе Windows.
Реализация NetBIOS
NetBIOS через TCPIP реализован в качестве драйвера уровня ядра netbt.sys , поддерживающего специализированный интерфейс TDI (общий интерфейс для взаимодействия с драйверами, который позволяет сервисам взаимодействовать с транспортными протоколами). Все сервисы, которые работают с NetBT (рабочая станция, сервер, браузер, сетевой вход в систему) используют TDI напрямую. Пользовательские приложения используют стандартный WinAPI (функции, вызовы), поддерживаемый библиотекой netapi32.dll , которая, в свою очередь, является простой «заглушкой» и перенаправляет вызовы к функциям netbios.dll . Функции библиотеки netbios.dll передают запросы к драйверу уровня ядра под названием NetBIOS-эмулятор ( %SystemRoot%\System32\Drivers\netbios.sys ), который транслирует команды NetBIOS, переданные приложением, в команды TDI-интерфейса.
Принципы работы NetBIOS
Собственно, как же работает NetBIOS? Я попытаюсь дать, пока что, собственное объяснение принципов работы стандарта. Все мы понимаем, что для того, чтобы станции могли взаимодействовать по сети, они должны подчиняться определенным правилам, выполнять предписанные действия на различных этапах работы. Этими этапами являются: заявление о себе (регистрация), попытка взаимодействия (обнаружение имен, установление сеанса, управление сеансом), отключение себя (освобождение имени). Поэтому, все узлы, использующие NetBIOS через TCP/IP, применяют регистрацию, обнаружение и освобождение имен, а так же многие другие методы, предоставляемые стандартом. Давайте рассмотрим их детальнее:
- Регистрация имен . Начиная работу, узел NetBIOS пытается заявить о себе в сети, другими словами — сказать «Я есть узел такой то, с таким то именем». Регистрация имени NetBIOS происходит при помощи широковещательного или направленного только к серверу имен NetBIOS (WINS-сервер) запроса. Если какой-либо узел пробует зарегистрировать уже существующее в сети имя NetBIOS, то либо узел с данным именем, либо сервер имен NetBIOS (WINS-сервер) посылает отказ в регистрации имени, и узел, инициировавший регистрацию, получает в качестве ответа сообщение об ошибке.
- Обнаружение имен . Когда узел уже зарегистрировался, работает в сети, но вдруг хочет связаться с другим узлом, он должен узнать IP-адрес этого узла. Для этого, узел-инициатор посылает запрос на определение имени, содержащий искомое NetBIOS имя. Для запроса используется широковещательный пакет или адресный запрос серверу имен NetBIOS (WINS). Узел, которому принадлежит искомое имя, или WINS-сервер отправляют обратно положительный/отрицательный ответ об определении имени. В результате инициатор получает информацию об IP-адресе целевого узла.
- Освобождение имен . Освобождение имени происходит, если станция, приложение или служба NetBIOS прекращает работу. К примеру, если станция отключается некорректно, то она перестает отвечать на запросы, и другие станции через некоторое время прекращают попытки связаться с ней. Если в сети используется сервер имен NetBIOS, то перед корректным выключением станция посылает ему запрос на удаление информации о всех ресурсах, которые она поддерживала. В таком случае говорят, что имя NetBIOS освобождено, и доступно для использования другими узлами.
- Запуск/завершение сеанса . Вероятно, мы пытались обнаружить сетевое имя не просто так, а с какой-то целью. А что если мы хотим обменяться данными: получить/передать файлы? Для этого нам необходимо установить сеанс связи с целевой станцией.
- Надежная передача данных сеанса . После установления надежного сеанса связи с использованием транспортного протокола TCP, мы начинаем обмен данными. Например, передачу файлов.
- Ненадежная передача данных сеанса . После запроса на разрешение имени, мы начинаем передачу информации с помощью транспортного протокола UDP. Например, поиск имени.
- Возможность мониторинга и диагностики . Позволяет запрашивать статус удаленных и локальных ресурсов.
Для того, чтобы лучше понять логику работы NetBIOS через TCP/IP, давайте немного отступим от основной линии рассуждений, и рассмотрим по-отдельности некоторые сущности стандарта.
Имя NetBIOS
Одной из основных целей разработки NetBIOS являлось создание простого интерфейса, который давал бы возможность пользователям назначать станциям символьные имена вида MyComputer . Очевидно, что без подобных имен нам сложно обойтись, поскольку именно легкие имена позволяют человеку «узнать» (однозначно идентифицировать) ресурс, к которому он хочет обратиться по сети. Программам то всё-равно, вместо имен они могут использовать любые идентификаторы, однако человеку удобнее работать именно с фонетическими, понятными и легко запоминающимися маркерами — именами. В качестве имени NetBIOS используется простое одноранговое (“плоское”) имя, без какой-либо иерархической структуры (в противоположность DNS). Подобная простота и отсутствие иерархии имени имеют и оборотную сторону — имена должны быть уникальными.
Первые 15 — собственно имя, 16й — тип ресурса или суффикс (значение в диапазоне 00-FF, шестнадцатеричное представление). NetBIOS имя и имя компьютера ( hostname ) совпадают по первым 15 символам. Хранится это имя в параметре реестра с именем hostname , который располагается в ветке HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters .
С развитием сетевых технологий логическая структура сетей усложнялась, и помимо станций появились такие понятия как «рабочая группа» и «домен». Пришло осознание того, что ресурсы бывают разнотипными, а имя может быть присвоено не только станции. Опираясь на новые данные, было введено понятие «тип ресурса», который предназначался для логического разделения ресурсов по назначению, это позволило присваивать одно и то же имя нескольким ресурсам одновременно.
Ресурсы динамически регистрируются сначала в операционной системе (в которой ресурс и создается), а затем [при помощи оповещений] распространяются по сети, которой принадлежит станция. Регистрация ресурса происходит в тот момент, когда в операционной системе стартует сервис (читать: приложение), использующий NetBIOS , либо авторизуется пользователь.
Типы ресурсов стандартизованы по классам и имеют следующие значения:
- Уникальное (Unique, U) — к этому имени может быть привязан только один адрес IP;
- Групповое (Group, G) — к этому имени не привязан единственный адрес, имя может содержать множественные IP-адреса; На запрос WINS-клиента об адресе всегда возвращается limited broadcast address 255.255.255.255;
- Группа Интернет (Internet Group, Special Group, I) — к этому имени может быть привязано до 25 адресов; для каждого адреса хранится свой TTL. Используется для управления именами домена в WinNT;
- Доменное имя (Domain Name, D) — к этому имени может быть привязано множество адресов;
Поскольку NetBIOS не использует номера портов, как это делает TCP/IP, адресное пространство имен должно быть способно поддерживать множество имен для каждой системы. К примеру, если на одной станции реализованы файловый сервер, служба Exchange и сервер удаленного доступа, то каждый из этих сервисов должен иметь отличное от других имя, однозначно определяющее сам сервис. Для этой цели авторы NetBIOS придумали понятие суффикса , который фактически является аналогом порта в TCP/IP . Как было указано выше, он занимает последний, 16й байт в имени и однозначно идентифицирует сервис.
Полный перечень типов общих ресурсов NetBIOS
У имен NetBIOS имеется следующий нюанс — все имена длиной менее 15 символов дополняются пробелами (код символа 20 в шестнадцатеричном представлении), а в некоторых случаях символами BE либо BF . Поскольку к работе над NetBIOS подключались многие разработчики, то и типов общих ресурсов существует великое множество, однако в таблице я привожу только те типы, которые используются Microsoft.
Уникальное имя (Unique name) | Суффикс | Описание |
---|---|---|
COMPUTERNAME | Регистрируется сервисом «Рабочая станция» (Workstation). Это NetBIOS-имя станции. Передается в качестве имени источника в запросе на установку NBT-сессии. Позволяет хосту подключаться к сетевым ресурсам. | |
COMPUTERNAME | Регистрируется сервисом Messenger. Не во всех версиях Windows. Передается в качестве имени источника в запросе на установку NBT-сессии сервисом Messenger. | |
COMPUTERNAME | Регистрируется сервисом Messenger. Это имя используется при обмене сообщениями (WinPopup) между хостами. Для этого используется SMB протокол. | |
USERNAME | Регистрируется сервисом Messenger. Используется так же, как и описанное выше правило для COMPUTERNAME , однако адресатом, вероятно, является пользователь. | |
COMPUTERNAME | Регистрируется сервисом RAS Server. | |
COMPUTERNAME | Регистрируется сервисом NetDDE | |
COMPUTERNAME | Регистрируется сервисом «Сервер» (Server). Позволяет хосту получать запросы на соединения от других узлов с целью подключения к ресурсам станции. Используется SMB протокол. | |
COMPUTERNAME | Регистрируется сервисом RAS Client. | |
COMPUTERNAME | Регистрируется сервисом Exchange Interchange. | |
COMPUTERNAME | Регистрируется сервисом Exchange Store. | |
COMPUTERNAME | Регистрируется сервисом Exchange Directory. | |
COMPUTERNAME | Регистрируется сервисом Lotus Notes Server. | |
COMPUTERNAME | Регистрируется сервисом Modem Sharing Server. | |
COMPUTERNAME | Регистрируется сервисом Modem Sharing Client. | |
COMPUTERNAME | Регистрируется McAfee Antivirus. | |
COMPUTERNAME | Регистрируется сервисом SMS Client Remote Control. | |
COMPUTERNAME | Регистрируется сервисом SMS Admin Remote Control Tool. | |
COMPUTERNAME | Регистрируется сервисом SMS Client Remote Chat. | |
COMPUTERNAME | Регистрируется сервисом SMS Client Remote Transfer. | |
COMPUTERNAME | Регистрируется сервисом DEC Pathworks TCPIP Service. | |
COMPUTERNAME | Регистрируется сервисом DEC Pathworks TCPIP Service. | |
COMPUTERNAME | Регистрируется сервисом Microsoft Exchange IMC. | |
COMPUTERNAME | Регистрируется сервисом Microsoft Exchange MTA. | |
COMPUTERNAME | Агент Network Monitor. Microsoft’s Network Monitor (NetMon). | |
COMPUTERNAME | Приложение Network Monitor Client. GUI для Network Monitor (NetMon). | |
DOMAINNAME/WORKGROUPNAME | Регистрирует станцию как Domain Master Browser. Регистрация суффикса 1B отличает PDC от остальных контроллеров домена. | |
DOMAINNAME | Регистрирует станцию как Master Browser (зачастую именуется как Local Master Browser). Имя уникально для локального сегмента сети. | |
Групповое имя (Group name) | Суффикс | Описание |
DOMAINNAME/WORKGROUPNAME | Регистрирует станцию как члена рабочей группы или домена. | |
DOMAINNAME | Регистрирует станцию как контроллер домена. Каждый контроллер домена регистрирует это групповое имя. | |
DOMAINNAME/WORKGROUPNAME | Регистрируется как групповое имя. Используется при выборах Master Browser. | |
Forte_$ND800ZA | DCA IrmaLan Gateway Server Service | |
IRISMULTICAST | Lotus Notes. | |
IRISNAMESERVER | Lotus Notes. | |
[01h][02h]__MSBROWSE__[02h] | Master Browser (Local Master Browser). Групповое имя, регистрируемое всеми Master Browser в сети. Используется для поиска других LMB с целью обмена списками просмотра. |
Тип ресурса можно посмотреть командой nbtstat -a :
Основное назначение этой команды — показать информацию из локальной таблицы NetBIOS имен для всех интерфейсов, установленных на станции. Имеет алиас — nbtstat -n.
Методы разрешения имени NetBIOS
Очевидно, что тут мы будем говорить о том, какими средствами NetBIOS удается найти соответствие имени и IP-адреса ресурса? Какие же методы определения имен доступны интерфейсу NetBIOS? Сразу обращу ваше внимание на то, что не все из перечисленных методов относятся непосредственно к стандарту NetBIOS. Я считаю, что к NetBIOS относятся только лишь: LMHOSTS, WINS, кеш имен NetBIOS, широковещательный запрос в подсети. Такие же понятия как HOSTS и DNS относятся уже к TCP/IP Direct Hosting. Но поскольку понятия «NetBIOS имя станции» и «имя хоста» довольно тесно взаимосвязаны в современных ОС Windows, то resolver (модуль, разрешающий имена) использует все доступные методы для нахождения соответствия, умело комбинируя разнородные методы определения имен.
- NetBIOS name cache (локальный кеш NetBIOS) — специальная структура в памяти процесса для записи результатов разрешения имен. Время жизни записей — 10 минут. Приложение смотрит в локальном кэше, нет ли там искомого имени. И правда, зачем нам тратить время на другие методы, если может статься, что мы недавно уже обращались к станции, и имя её содержится в локальном кеше. Локальный кеш NetBIOS можно посмотреть командой «nbtstat -r». Некоторые параметры, которые влияют на функционал NetBIOS name cache можно найти в ветке реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters .
- NetBIOS name server (WINS, NBNS) . Если сказать иначе, WINS это DNS от Microsoft для NetBIOS. Станции с определенными типами узлов обращаются к WINS-серверу за разрешением имени.
- IP subnet broadcast — широковещательное сообщение в IP-подсети. Станции с определенными типами узлов формируют широковещательный запрос для разрешения имени.
- Локальный LMHOSTS файл . Аналог файла hosts для NetBIOS. Файл, в котором, в специальном формате, хранится таблица соответствия имен NetBIOS IP-адресам. Размещается в директории %SystemRoot%\System32\Drivers\Etc .
- Локальный HOSTS файл . Файл, в котором, в специальном формате, хранится таблица соответствия имен хостов (TCP/IP hostname) IP-адресам. Располагается в директории %SystemRoot%\System32\Drivers\etc . Этот метод непосредственно не относится к NetBIOS через TCP/IP, а относится уже к TCP/IP Direct Hosting. Если NetBIOS имя найти не удалось, то имя считается как TCP/IP hostname и разрешается уже методами HOSTS+DNS.
- DNS-сервер . Запрос к DNS-серверу. DNS-сервер возвращает запись о соответствии имени хоста IP-адресу.
Тип узла NetBIOS (NodeType)
Поскольку методы регистрации имен в сети у NetBIOS тоже не стояли на месте, и если изначально все сводилось, как мы уже упоминали, к широковещательным запросам, то со временем начали появляться и другие способы зарегистрировать имя (например, с использованием WINS-сервера). В связи с необходимостью разделять логику работы станций, было введено понятие NodeType (NBT-узел) для описания разницы в способах регистрации и распознавания имен. Проще говоря, разные типы узлов имеют свои обособленные алгоритмы разрешения имен в IP-адреса:
- B-node (тип 0x01 , широковещательный). Для преобразования имен станций в IP-адреса используется только широковещательные сообщения. Минус этого типа заключается в том, что широковещательные запросы, обычно, режутся маршрутизаторами, поэтому имена могут быть разрешены только в пределах одного сетевого сегмента.
- P-node (тип 0x02 , одноранговый). Для разрешения имен используются WINS-сервер (сервер имен NetBIOS). Сессии клиента длятся на три этапа: регистрация имени, обновление имени и освобождение имени. Если WINS не работает, то ни регистрации, ни разрешения не происходит.
- M-node (тип 0x04 , смешанный, гибрид B- и P-узлов). Сначала действует как B-node, то есть для разрешения имен используются широковещательные сообщения. Если не получает ответа на широковещательный запрос, то переключается в P-node и использует WINS-сервер.
- H-node (тип 0x08 , гибридный, гибрид B- и P-узлов). Сначала пытается стать P-node и действовать через WINS-сервер. Если WINS-сервер не доступен, переключается в B-node и пытается функционировать через широковещательные запросы. Переключается обратно в P-node, как только находит WINS-сервер.
Пополнив многообразие сетевых разработок, с 1990 года начал активно внедряться протокол DHCP , и пришлось оптимизировать NetBIOS под работу с ним. Так, если в сети используется DHCP для автоматического назначения IP-адресов, то можно установить метод разрешения имен для DHCP-клиентов. Другими словами, можно назначить тип узла (nodetype), через установку опцию DHCP-сервера 046 WINS/NBT. Либо, в случае отсутствия DHCP-сервера, можно локально задать тип узла в реестре через параметр nodetype ключа HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netbt\Parameters .
По умолчанию, при отсутствии WINS-сервера в сети, Windows выставляет тип узла в значение «модифицированный B-node», а при наличии WINS-сервера тип узла выставляется в гибридный, H-node.
Увидеть тип узла можно посредством команды ipconfig /all, в параметре “тип узла”: