Начальная загрузка и автоконфигурация (ВООТР, DHCP)

В этой главе продемонстрировано, как принцип клиент/сервер используется в процессе начальной загрузки компьютера. Мы уже знаем, что, прежде чем компьютер, подключенный к объединенной сети TCP/IP, сможет отсылать или получать дейтаграммы, ему должен быть назначен уникальный IP-адрес. Кроме этого компьютеру необходима и другая информация — адрес ближайшего маршрутизатора, текущая маска подсети и адрес сервера доменных имен. В главе 6, "Определение IP-адреса при начальной загрузке (RARP)", было описано, как в процессе начальной загрузки компьютер может определить свой IP-адрес при с помощью протокола RARP. В этой главе рассмотрен альтернативный вариант: два тесно связанных между собой протокола начальной загрузки, каждый из которых позволяет узлу сети определить свой IP-адрес, не используя при этом протокол RARP. Удивительно то, что клиент и сервер взаимодействуют при этом между собой посредством протокола UDP (User Datagram Protocol, или протокол передачи пользовательских дейтаграмм), описанного в главе 12, "Передача пользовательских дейтаграмм (UDP)".

Особенностью процесса начальной загрузки является то, что для передачи сообщений в протоколе UDP используется протокол IP. Сам факт, что для нахождения своего IP-адреса, необходимого для выполнения взаимодействия, компьютер может использовать протокол UDP, может показаться невероятным. Тем не менее это возможно благодаря гибкости механизма транспортировки UDP/IP и использованию особых IP-адресов, о которых упоминалось в главе 4, "Классовая адресация". В этой главе будет также показано, каким образом сервер может автоматически назначить компьютеру IP-адрес. Такое назначение является особенно важным в тех сетевых окружениях, где разрешены временные подключения к объединенной сети или компьютеры часто перемещаются из одной сети в другую (например, служащий с портативным компьютером переезжает из одного офиса компании в другой).

Необходимость в альтернативе протоколу RARP

В главе 6, "Определение IP-адреса при начальной загрузке (RARP)", описана проблема, с которой сталкиваются бездисковые рабочие станции во время начальной загрузки системы. Обычно программа начальной загрузки таких машин находится в энергонезависимом запоминающем устройстве (например, в микросхеме ПЗУ, которая расположена на плате сетевого интерфейса). С целью минимизации затрат и поддержки взаимозаменяемости частей производители используют одинаковую программу на всех машинах. Поскольку одна и та же программа начальной загрузки должна выполняться на машинах с разными IP-адресами, IP-адрес не может быть жестко "зашит" в машинном коде, содержащемся в ПЗУ. Следовательно, бездисковая машина должна получить свой IP-адрес другим путем. Кроме того, для выполнения начальной загрузки бездисковому компьютеру необходимо "знать" не только свой IP-адрес, но и другую информацию. Как правило, в микросхеме ПЗУ находится только небольшая программа начального запуска. Поэтому бездисковый компьютер также должен загрузить по сети образ памяти программы начальной загрузки и передать ей управление. Более того, каждая бездисковая машина должна как-то определить адрес файлового сервера, где она может хранить данные, и адрес ближайшего IP-маршрутизатора.

Описанный в главе 6, "Определение IP-адреса при начальной загрузке (RARP)", протокол RARP имеет три недостатка. Во-первых, поскольку он функционирует на самом низком уровне, использующая его прикладная программа должна напрямую взаимодействовать с сетевым оборудованием. Это создает дополнительные трудности для программиста, что в конечном итоге затрудняет реализацию программы начальной загрузки или делает ее вообще невозможной. Во-вторых, хотя в протоколе RARP предусмотрен обмен пакетами между машиной клиента и компьютером, отвечающим на ее запрос, в ответном сообщении содержится только один небольшой фрагмент информации — 4 октета адреса клиента. Этот недостаток вызывает особые неудобства в сетях типа Ethernet, для которых существует такое понятие, как минимальный размер пакета. А это значит, что в ответном пакете можно дополнительно переслать информацию без каких-либо дополнительных затрат, поскольку часть пространства пакета попросту не используется. В-третьих, поскольку в протоколе RARP для идентификации машины отправителя используется аппаратный адрес сетевой платы, его нельзя использовать в тех сетях, где аппаратные адреса назначаются динамически.

Чтобы компенсировать недостатки протокола RARP, исследователи разработали новый протокол начальной загрузки (BOOTstrap Protocol, или ВООТР). Позже был создан протокол динамической конфигурации узла сети (Dynamic Host Configuration Protocol, или DHCP), который пришел на смену протоколу ВООТР. Поскольку эти протоколы тесно связаны между собой, большая часть материала, описанного в этой главе, относятся к обоим протоколам. Чтобы упростить описание, мы сначала рассмотрим протокол ВООТР, а затем покажем, каким образом протокол DHCP расширяет его функциональные возможности и обеспечивает динамическое назначение адресов.

Поскольку в протоколе ВООТР используются протоколы UDP и IP, его можно реализовать с помощью обычной прикладной программы, а не как часть операционной системы. В основу работы протокола ВООТР, также как и RARP, положен принцип взаимодействия типа клиент/сервер; при этом системы обмениваются пакетами только один раз. Несмотря на использование высокоуровневых транспортных протоколов, протокол ВООТР эффективнее, чем RARP, поскольку в одном сообщении протокола ВООТР указывается вся информация, которая необходима для начальной загрузки и инициализации машины, включая IP-адрес компьютера, адрес маршрутизатора и адрес сервера. В ответном сообщении протокола ВООТР также присутствует поле, формат которого определяется производителем оборудования. В это поле производители аппаратного обеспечения могут помещать дополнительную информацию, которая используется только для их типа оборудования.

Похожие статьи Меню Опрос Фото Популярное