NetBIOS поверх TCP/IP (NBT)
NetBIOS был разработан фирмой Sytek Corporation по заказу
IBM в 1983 году. Он включает в себя интерфейс
сеансового уровня (NetBIOS interface) и протокол
транспортного уровня модели OSI.
Интерфейс NetBIOS представляет собой стандартный
интерфейс разработки приложений (API) для
обеспечения сетевых операций ввода/вывода и
управления нижележащим транспортным протоколом.
Приложения, использующие NetBIOS API интерфейс, могут
работать только при наличии протокола,
допускающего использование такого интерфейса.
NetBIOS также определяет протокол,
функционирующий на сеансовом/транспортном
уровнях модели OSI. Этот протокол используется
протоколами нижележащих уровней, такими как NBFP
(NetBEUI) и NetBT для выполнения сетевых запросов
ввода/вывода и операций, описанных в стандартном
интерфейсном наборе команд NetBIOS. То есть NetBIOS сам
не поддерживает выполнение файловых операций.
Эта функция возлагается на протоколы
нижележащих уровней, а сам NetBIOS обеспечивает
только связь с этими протоколами и NetBIOS API
интерфейс.
NetBIOS обеспечивает:
- Регистрацию и проверку сетевых имен
- Установление и разрыв соединений
- Cвязь с гарантированной доставкой информации
- Связь с негарантированной доставкой информации
- Поддержку управления и мониторина драйвера и
сетевой карты
Имена NetBIOS
- Имя NetBIOS - это уникальный 16-байтный адрес,
использующийся для идентификации NetBIOS ресурса в
сети.
- NetBIOS имена используются всеми сетевыми
сервисами Windows NT для их идентификации.
- Все имена NetBIOS состоят из 15 символов имени плюс
16-ый символ, идентифицирующий сервис.
- Имена NetBIOS не используются TCP/IP
| Computername <00> |
Регистрируется сервисом Workstation клиента. |
| Computername <03> |
Регистрируется сервисом Messenger. Это
позволяет хосту принимать сообщения, такие как net
send computername. |
| Username <03> |
Регистрируется сервисом Messenger. Это
позволяет пользователю принимать сообщения,
такие как net send username. |
| Computername <20> |
Регистрируется сервисом Server. Позволяет
хосту получать запросы на соединения от других
хостов. |
| Workgroup or domenname <00> |
Регистрирует компьютер как член домена
или рабочей группы. |
| Workgroup or domenname <1E> |
Регистрируется как групповое имя.
Используется при выборах Master Browser. |
| Domenname <1B> |
Регистрирует компьютер как Master Browser
домена. |
| Domenname <1C> |
Регистрирует компьютер как контроллер
домена. |
| Workgroup or domenname <1D> |
Регистрирует локальный броузер домена
или рабочей группы. |
| Когда NBT-хост иницализируется, он
регистрирует свое NetBIOS имя используя запрос на
регистрацию имени. Регистрация может
производится широковещательным сообщением или
непосредственной пересылкой запроса на WINS
сервер. Если регистрируемое имя уже существует,
то хост или WINS сервер информируют хост,
приславший запрос, о невозможности регистрации
NetBIOS имени. В результате возникает ошибка
инициализации имени. |
| Поиск NetBIOS имени в локадьной сети
производится широковещательным сообщением или
непосредственной пересылкой запроса на WINS
сервер. Хост, зарегистрированный с этим именем,
или WINS сервер, отвечают на запрос. |
| Освобождение имени
осуществляется когда NetBIOS приложение или сервис
заканчивают свою работу. После освобождения
имя становится доступным для регистрации другим
хостом. |
Сегментирование NetBIOS имен
Идентификатор группы имен NetBIOS (NetBIOS scope ID)
представляет собой строку символов (с учетом
регистра), добавленную к имени NetBIOS. При этом
общая длина имени не должна превышать 16 символов.
Ресурсы NetBIOS внутри группы доступны только ее
членам и недоступны извне. То есть для того, чтобы
два хоста могли установить связь друг с другом по
NBT, необходимо совпадение идентификаторов групп
у этих хостов.
В одной сети можно организовать несколько
групп (две в этом примере). Это используется если
имеется несколько отделов, которые не должны
контактировать друг с другом.
| Сегмент 1 |
Сегмент 2 |
| Клиенты:
Сервер:
|
Клиенты:
Сервер:
|
| Замечание: Клиенты из первого сегмента
не могут передавать данные клиентам второго
сегмента и наоборот. |
Разрешение NetBIOS имен
Разрешение имен NetBIOS - это процесс определения IP
адреса хоста, по известному NetBIOS имени. Microsoft TCP/IP
может использовать следующие методы для
разрешения NetBIOS имен:
| NetBIOS name cache |
Локальный кэш, содержащий
NetBIOS имена, которые хост уже разрешил в IP адреса
ранее. |
| NetBIOS Name Server (NBNS) |
Сервер для обеспечения
разрешения имен NetBIOS. Реализация Microsoft называется
WINS. |
| Local broadcast |
Посылка
широковещательного сообщения для определения IP
адреса хоста, имеющего данное NetBIOS имя. |
| Методы Microsoft |
Описание |
| LMHOSTS file |
Локальный текстовый файл,
содержащий информацию о разрешении имен NetBIOS. |
| HOSTS file |
Локальный текстовый файл,
содержащий информацию о разрешении имен хостов в
их IP адреса. |
| Domain Name System (DNS) |
Разрешение имен использую
DNS сервер. |
Разрешение имен NetBIOS, используя
широковещательное сообщение
- Когда пользователь выполняет команду Windows NT,
такую как net use, то в кэше NetBIOS ищется IP адрес,
соответствубщий NetBIOS имени требуемого хоста. Это
сделано для уменьшения числа широковещательных
сообщений в сети.
- Если NetBIOS имя не было найдено в кэше, то хост
отправляет широковещательным сообщением запрос:
Хост с NetBIOS именем xxx сообщите свой IP адрес. (В
запросе также содержится IP адрес отправителя)
- Каждый компьютер, получивший запрос, проверяет
свое NetBIOS имя на совпадение с искомым.
- Если имя совпадает, то хост отправляет ответ
пославшему запрос компьютеру, предварительно
используя ARP для определения его MAC адреса.
Не все маршрутизаторы поддерживают передачу
широковещательных сообщений. Даже если они могут
это делать, то эта возможность обычно выключена,
так как широковещательные сообщения увеличивают
траффик в сети.
Утилита NBTSTAT
Эта утилита проверяет текущее состояние NetBIOS
поверх TCP/IP. Определяет зарегистрированные NetBIOS
имена и идентификаторы групп.
| nbstat –n |
Список зарегистрированных имен |
| nbstat –c |
Высвечивает кэш NetBIOS |
| nbstat -r |
Перезагружает кэш имен NetBIOS,
используя записи файла LMHOSTS с параметром #PRE. |
Разрешение имен, используя сервер имен
NetBIOS
- Когда пользователь выполняет команду Windows NT,
такую как net use, то в кэше NetBIOS ищется IP адрес,
соответствубщий NetBIOS имени требуемого хоста.
- Если NetBIOS имя не было найдено в кэше, то это имя
отправляется на сервер (WINS), который
сконфигурирован для данного хоста. По умолчанию
клиент пытается соединиться с сервером 3 раза,
после чего, производится попытка соединиться со
вторичным WINS сервером. Если WINS сервер сообщает,
что имя не может быть разрешено, то попытка связи
со вторичным сервером не производится. Если имя
разрешено в IP адрес, то он отправляется
непосредственно запосившему его хосту.
- После разрешения имени хост использунт ARP для
разрешения IP адреса в MAC адрес и устанавливает
соединение.
Методы Microsoft для разрешения имен NetBIOS
В Windows NT 4.0 помимо вышеизложенных методов
разрешения имен, используются доплнительные:
LMHOSTS файл, HOSTS файл и DNS.
- NetBIOS кэш
- WINS
- Широковещательное сообщение
- LMHOSTS файл
- HOSTS файл (Если фключен флажок Enable DNS for Windows Resolution)
- DNS сервер
NBT узлы
Использует только
широковещательные сообщения для регистрации и
разрешения имен. Имеет две основные проблемы:
- Широковещательные сообщения сильно загружают
сеть
- Большинство маршрутизаторов не передают
широковещательные сообщения
|
Используют только сервер имен
NetBIOS для регистрации и разрешения имен.
Широковещательные сообщения не используются,
следовательно сеть не перегружается. Так как
запрос адресуется непосредственно серверу имен,
то он проходит через маршрутизатор. Основной
проблемой является невозможность связи даже в
локальной сети при выключенном сервере имен.
|
Комбинация B и P узлов. Сначала
используется широковещательное сообщение, в
случае неудачи - обращение к серверу имен.
|
Комбинация B и P узлов. Сначала
идет обращение к WINS серверу, в случае неудачи
используется широковещательное сообщение.
|
| Перед использованием
широковещательного сообщения проверяется
наличие имени в кэше NetBIOS. |
Используя ключ registry
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netbt\Parameters можно
изменить тип узла
По умолчанию используется B-node, если не
сконфигурирован WINS сервер. При конфигурации WINS
сервера тип узла меняется на H-node.
Использование файла LMHOSTS
LMHOSTS - это локальный текстовый файл который
содержит отображение имен NetBIOS в IP адреса.
- Разрешает NetBIOS имена, используемые в командах
Windows NT
- Каждая строка содержит NetBIOS имя и
соответствующий ему IP адрес
- Каждый компьютер имеет сой собственный LMHOSTS
файл, размещенный в каталоге \systemroot\SYSTEM32\DRIVERS\ETC.
Образец файла LMHOSTS содержится в также в этом
каталоге и называется LMHOSTS.SAM.
- Используется утилитами Windows NT
| #PRE |
Данный адрес будет автоматически
загружен в NetBIOS кэш при инициализации протокола.
Используйте эту директиву для более быстрого
разрешения имен наиболее часто используемых
хостов. |
| #DOM:[domain_name] |
Содержит имя домена. |
| #NOFNR |
Позволяет использовать прямые
запросы NetBIOS имени для старой версии LAN manager UNIX
systems. |
#BEGIN_ALTERNATE
#END_ALTERNATE |
Определяет список
альтернативных путей к LMHOSTS файлам |
| #INCLUDE |
Включение списка имен другого
LMHOSTS файла. |
| #MH |
Добавление дополнительных
значений для компьютера с несколькими сетевыми
интерфейсами. |
|