Протокол динамического конфигурирования ЭВМ DHCP
6.1. Трансляция сетевых адресов (NAT)
Многие частные и корпоративные сети начинали формироваться изолировано, и IP-адреса сетевым объектам администраторами присваивались произвольно. Когда возникала проблема подключения сети к Интернет, число ЭВМ оказывалось значительным и надо было их все реконфигурировать, заменяя все IP-адреса. Для решения подобных проблем был разработан протокол NAT (Network Address Translation; см. RFC-2663, 2766. 3489, 3519 и 4008).
NAT позволяет группе оконечных станций использовать "нелегальные" IP-адреса и в то же время иметь полноценный доступ к Интернет.
ЭВМ с нелегальным адресом устанавливает соединение с маршрутизаторомшлюзом, имеющим нормальный IP-адрес. В начале сеанса такой маршрутизатор ставит в соответствие внутренней ЭВМ легальный IP-адрес. Этот адрес используется для замены адреса отправителя во всех дейтограммах, отсылаемых ЭВМ. С точки зрения внешнего мира, этот адрес является IP-адресом данной внутренней ЭВМ. Маршрутизаторшлюз, получая пакет от внешнего сетевого объекта, адресованного оговоренной машине, меняет действительный IP-адрес на внутренний — нелегальный.
Кроме того, наряду с протоколом DHCP, протокол NAT позволяет более экономно использовать адресное пространство IP.
Существует разные алгоритмы реализации NAT: статический и динамический. В последнем случае реальный IP адрес выделяется для машины лишь на время ее работы в сети.
Одной из версий NAT является PAT (Port Address Translation) или NATP (Network Address Port Translation). Этот метод преобразования адресов может использоваться для трансляции адресов коммутируемых соединений РРР в небольших сетях (SOHO). PAT позволяет использовать один IP-адрес в нескольких сеансах L4. Каждому соединению со стороны клиента ставится в соответствие комбинация IP-адреса и порта. Так, можно для одного и того же IP-адреса осуществить десятки и даже сотни соединений, распределив их между соответствующим числом клиентов локальной сети. Сервер NAT поддерживает таблицу, где каждому соединению с Интернет ставится в соответствие IP-адрес и номер порта. Это делается часто в оборудовании для асинхронных каналов РРР, где адреса присваиваются случайным образом при каждом подключении.
В протоколе РАТ один общий IP-адрес транслируется с собственным номером порта UDP/TCP для группы ЭВМ. При настройке NAT маршрутизатор конфигурируется по выходным и входным интерфейсам. Выходной интерфейс подключается к внешней сети Интернет через легальный IP-адрес. Внутренний интерфейс подключается к локальной сети, которая пользуется нелегальными адресами. Ниже в таблице приведен пример трансляции адресов для случая обращения к внешнему удаленному почтовому серверу с IP=193.125.31.3. Адреса 10.10.10.1 и 10.10.10.2 являются внутренними, адрес 194.85.31.1 – IP внешнего порта сервера NAT. Из этого примера видно, что одному легальному глобальному адресу 194.85.31.1 может соответствовать практически любое число внутренних адресов (таблица 6.5.1).
протокол | внутренний локальный IP-адрес:порт | внутренний глобальный IP-адрес:порт | внешний глобальный IP-адрес:порт |
---|---|---|---|
ТСР | 10.10.10.1:2500 | 194.85.31.1:2500 | 193.125.31.3:25 |
ТСР | 10.10.10.2:3010 | 194.85.31.1:3010 | 193.125.31.3:25 |
Существует, кроме того, векторизация адресов, которая напоминает трансляцию сетевых адресов. Рассмотрим в качестве примера некоторый мощный WEBсервер с большим потоком клиентских запросов в единицу времени. Эти запросы могут обрабатываться большим числом процессоров. Но если поток запросов возрастет слишком сильно, задержка отклика неизбежно начнет быстро расти. Возможным решением проблемы может быть применение нескольких серверов с разными IP-адресами и именами. Но это крайне неудобно пользователям, так как нужно помнить несколько имен и для получения нужной информации обходить несколько серверов.
Векторизация адреса позволяет распределить нагрузку между серверами, причем так, что для пользователя такая система выглядит как один сервер. Векторизация адресов транслирует внешний IP-адрес в несколько адресов локальной сети. Для практической реализации алгоритма векторизации и выбора определенного (наименее загруженного) сервера используются проксисерверы.
6.2. NetBIOS
Протокол NetBIOS был создан для работы в локальных сетях. Система NetBIOS предназначена для персональных ЭВМ типа IBM/PC в качестве интерфейса, не зависящего от фирмы-производителя. NetBIOS применяет в качестве транспортных протоколов TCP и UDP. Описание NetBIOS содержится в документе IBM 6322916 "Technical Reference PC Network" (см. также RFC-10012, 1088 и STD48).
Пакет NETBIOS (см. также ftp://ietf.org/internetdrafts/draftietfpppextnetbiosfcp08.txt) создан для использования группой ЭВМ, поддерживает как режим сессий (работа через соединение), так и режим дейтограмм (без установления соединения). 16-и символьные имена объектов в Netbios распределяются динамически. Netbios имеет собственную DNS, которая может взаимодействовать с интернетовской. Имя объекта при работе с NETBIOS не может начинаться с символа *.
Приложения могут через Netbios найти нужные им ресурсы, установить связь и послать или получить информацию. NETBIOS использует для службы имен порт 137, для службы дейтограмм — порт 138, а для сессий — порт 139.
Любая сессия начинается с Netbios-запроса, задания IP-адреса и определения TCP-порта удаленного объекта, далее следует обмен NETBIOS-сообщениями, после чего сессия закрывается. Сессия осуществляет обмен информацией между двумя netbiosприложениями. Длина сообщения лежит в пределах от 0 до 131071 байт. Допустимо одновременное осуществление нескольких сессий между двумя объектами.
При организации IP-транспорта через NETBIOS IP-дейтограмма вкладывается в NETBIOS-пакет. Информационный обмен происходит в этом случае без установления соединения между объектами. Имена Netbios должны содержать в себе IP-адреса. Так, часть NETBIOS-адреса может иметь вид, ip.**.**.**.**, где IP указывает на тип операции (IP через Netbios), а **.**.**.** — IP-адрес. Система Netbios имеет собственную систему команд ( call, listen, hang up, send, receive, session status, reset, cancel, adapter status, unlink, загрузка удаленной программы ) и примитивов для работы с дейтограммами (послать дейтограмму, послать дейтограмму широковещательно, получить дейтограмму, получить широковещательную дейтограмму). Все оконечные узлы Netbios делятся на три типа:
- широковещательные ("b") узлы;
- узлы точкаточка ("p");
- узлы смешанного типа ("m").
IP-адрес может ассоциироваться с одним из указанных типов. B узлы устанавливают связь со своим партнером посредством широковещательных запросов. P и Mузлы для этой цели используют Netbios сервер имен (NBNS) и сервер распределения дейтограмм (NBDD).
Разработана (1985 г) улучшенная версия протокола NETBIOS — NetBeui (NetBios extended user interface). Этот новый протокол используется операционными системами LAN manager, LAN server, Windows NT и Windows XP, а по своей функции занимает нишу протоколов TCP/IP, охватывая связной, сетевой и транспортный уровни. Здесь стандартизован формат пакетов NetBios, добавлены некоторые новые функции. Netbeui базируется на протоколе OSI LLC2, вводит стандарт на формат кадра Netbios (NDF) и использует NetBios в качестве интерфейса высокого уровня. Протокол обладает высоким быстродействием и служит для объединения небольших локальных сетей (20-200 ЭВМ) друг с другом или с главной ЭВМ. Этот протокол соответствует связному, сетевому и транспортному уровню модели OSI. В новых версиях NetBuei (3.0 и выше) снято ограничение на число одновременных сессий (254). Среди ограничений NetBuei следует назвать отсутствие внутренней маршрутизации и серьезные сложности при работе в региональных сетях. По этой причине Netbuei рекомендуется для локальных сетей (здесь они предпочтительнее других протоколов), а для внешних связей использовать, например, TCP/IP.
Для подключения терминальной системы к локальной сети или к другой терминальной системе разработан протокол NBFCP (NetBios frames control protocol, код поля протокола = 803F ), который, в свою очередь, базируется на протоколе PPP. Формат кадра протокола NBFCP показан на рис. 6.6.
Поле тип содержит код 2, поле длина определяет размер заголовка, если длина=8, имя партнера отсутствует. Поле класс партнера идентифицирует тип системы отправителя (см. таблицу 6.6). Таблица возможных значений поля класс партнера приведена ниже. Поле имя партнера может иметь до 32 октетов.