BOOTP: вся информация о предшественнике DHCP

Компьютерные системы нуждаются в IP-адресе, чтобы иметь возможность общаться друг с другом в таких сетях, как Интернет. В принципе, он может быть назначен вручную, но в настоящее время большинство устройств получают свой адрес автоматически. Основой для этого является коммуникационный протоколDHCP, который помогает системам, ищущим соединение, получать необходимую информацию. На заре развития компьютеров, сетей и т.д. функцию менеджера адресов еще брал на себя протокол bootstrap, который также известен как BOOTP.

Что такое BOOTP (протокол начальной загрузки)?

В сентябре 1985 года сетевая группа Стэнфордского университетаRFC 951 BOOTP в RFC 951 — Bootstrap Protocol. Этот коммуникационный протокол, разработанный в сотрудничестве с командой из Sun Microsystems, впервые позволил получить такую информацию, как шлюз, адреса загрузочных серверов, каталог загрузочных файлов (необходимых для загрузки операционной системы), а также IP-адрес с терминалов и рабочих станций без жесткого диска. Он заменил использовавшийся до этого протокол обратного разрешения адресов (RRP), который предоставлял исключительно сетевые адреса и мог использоваться только в подсетях.

Протокол bootstrap является частью семейства протоколов Интернета и работает — как и многие другие протоколы стека — по модели клиент-сервер, что означает, что обмен сообщениями для передачи сетевой информации происходит между клиентом BOOTP и сервером BOOTP. В качестве протокола для передачи соответствующих пакетов данных используется минимальный, не требующий соединения протокол User Datagram Protocol (UDP) (порт 67 и 68). По сравнению с TCP он не только менее сложен, но и, в отличие от стандартного протокола для транспортировки данных, поддерживает широковещательную передачу. Поскольку при установлении соединения клиент не знает ни своего адреса, ни адреса сервера BOOTP, этот метод обмена сообщениями, при котором обращаются ко всем участникам сети, является единственным решением для автоматического получения адреса.

Таким образом, обмен сетевой информацией происходит через BOOTP.

Распределение адресов через BOOTP основано на простом двухэтапном обмене сообщениями между клиентом и сервером, в котором клиентский компонент является инициатором. Поскольку клиент изначально не знает ни своего IP-адреса, ни IP-адреса сервера BOOTP, он посылает общий запрос («BOOTREQUEST») на адрес широковещательной группы 255.255.255.255. Сервер, прослушивающий UDP-порт 67, получает и обрабатывает этот запрос, выделяя соответствующий IP-адрес MAC-адресу клиентской системы. Затем ответ («BOOTREPLY»), включающий дальнейшую сетевую информацию, отправляется обратно клиенту по широковещательной сети, который в результате может получить операционную систему по сети.

Примечание

Если клиент уже знает адрес сервера BOOTP, он также может послать этот запрос напрямую через одноадресное соединение.

Вот как выглядит конструкция сообщений, которые клиент и сервер посылают при общении по протоколу bootstrap:

Каждое сообщение BOOTP начинается с поля op длиной 8 бит, которое определяет тип операции или сообщения. Для запросов через клиента в этой точке устанавливается значение 1 (для BOOTREQUEST), в то время как ответы от сервера отображают значение 2 (для BOOTREPLY). Далее следуют 8 бит, которые обозначают тип («htype»), а также длину аппаратного адреса («hlen»). Поле «hops», длина которого также составляет 8 бит, указывает количество промежуточных станций, через которые проходит пакет на пути к получателю. Для клиентских запросов это значение всегда равно 0.

Следующий блок включает случайный идентификатор транзакции длиной 32 бита, который генерируется клиентом и впоследствии также используется в ответе сервера, чтобы клиент мог однозначно его выделить. Клиент также заполняет «secs» (16 бит), который дает количество секунд, прошедших с момента попытки загрузки клиентом. Завершение вводной информации формирует еще одно 16-битное поле, которое остается совершенно пустым. Дальнейшие записи пакета BOOTP содержат фактическую сетевую информацию, которая более подробно описана в следующем списке:

  • IP-адрес клиента (ciaddr): Метка «ciaddr» (ip-адрес клиента) выделяет 32-битное поле, в которое клиент вводит свой собственный IP-адрес, если он уже известен. Если это не так, поле содержит значение 0.
  • IP-адрес клиента (yiaddr): Поле «yiaddr», (ваш ip-адрес) зарезервировано для IP-адреса клиента. Однако, в отличие от ранее упомянутого раздела пакета, это 32-битное поле заполняется сервером, в случае если клиент не знал своего IP-адреса на момент создания сетевого запроса.
  • IP-адрес сервера (siaddr): В 32-битной последовательности «siaddr», (ip-адрес сервера), сервер BOOTP сообщает клиенту свой собственный IP-адрес.
  • IP-адрес шлюза (giaddr): Если в процесс связи включен шлюз (например, маршрутизатор), этот адрес вводится в поле «giaddr» (ip-адрес шлюза).
  • Аппаратный адрес клиента (chaddr): Аппаратный адрес (128-битный) является частью обязательной информации клиента при обмене сообщениями протокола bootstrap. Без этого идентификатора, также известного как адрес устройства или MAC-адрес, сервер не может назначить клиенту ни правильный адрес, ни правильные сетевые параметры.
  • Имя хоста сервера (sname): По желанию, в ответе BOOTP серверу может быть присвоено имя хоста. Для этого имеется 512-битное поле, в которое он может добавить соответствующую строку символов с нулевым окончанием (нулевой символ отмечает конец строки).
  • Имя загрузочного файла: Другим вариантом является указание конкретного загрузочного файла, который требуется клиенту для запуска операционной системы на данном терминале или рабочей станции. В этом поле также указывается строка с нулевым окончанием, которая в данном случае представляет собой полный путь к каталогу файла. Последовательность символов может иметь длину до 1024 бит. Запрос клиента содержит либо значение 0, либо общее имя.
  • Информация, специфичная для производителя (vend): Потенциальное завершение сообщения протокола BOOTP формирует специфическую для производителя информацию, которая не охватывается протоколом. Это может быть, например, обозначение специальных типов оборудования и серийных номеров. Кроме того, это информационное поле длиной 512 бит может быть зарезервировано для третьего загрузочного процесса или процесса ядра.

В целом, длина сообщений BOOTP может достигать 2 400 бит (300 байт). Полная датаграмма UDP/IP, включая интегрированный запрос или ответ протокола bootstrap, выглядит следующим образом:

BOOTP против DHCP: почему протокол bootstrap больше не используется сегодня

Для терминальных клиентов и бездисковых рабочих станций BOOTP был идеальным решением для получения персонального IP-адреса в необходимой сети и обращения к операционной системе таким образом. Тот факт, что обращение к адресу могло осуществляться протоколом связи одновременно с процессом загрузки, был практичным и простым для стационарных компьютеров, которые использовались в сетях управляемого размера. Например, редко возникала проблема, что администратору приходилось вручную конфигурировать таблицы сетевой информации сервера BOOTP.

Однако по мере того, как сети становились все более крупными, а компьютеры все более независимыми и — в связи с развитием портативных устройств — все более мобильными, стало очевидным, что отсутствие возможности автоматизации процесса конфигурирования является негативным фактором. Возникла потребность в новом протоколе. Протокол динамической конфигурации хоста (DHCP) появился в 1993 году (окончательная спецификация в RFC 2131). DHCP фактически в значительной степени основан на структуре протокола bootstrap, но дополняет его за счет различных дополнительных опций конфигурации, а также предоставляет возможность назначать многократно используемые сетевые адреса клиентам, ищущим подключение. Распределение адресной информации с помощью DHCP также работает во время текущей работы системы — перезагрузка, как в случае с BOOTP, не требуется.

«BOOTP против DHCP» — наиболее важные различия приведены ниже:

 

BOOTP

DHCP

Автоконфигурация

Выделение IP-адресов требует ручной настройки

Поддерживает автоматическое выделение и получение IP-адресов (а также ручную настройку)

Временные IP-адреса

Невозможно

Возможно на ограниченный период

Поддерживает мобильные устройства

Конфигурация IP-адресов и доступ к сетевой информации невозможны

Поддерживает мобильность сетевых клиентов

Возникновение ошибок

Очень подвержен ошибкам из-за ручного конфигурирования

Практически не подвержен ошибкам благодаря автоматическому конфигурированию сетевых компонентов

Системные требования

Нет

Требуется диск для хранения и передачи информации

Благодаря различным оптимизациям, DHCP быстро стал стандартным протоколом для управления IP в сетях, в то время как протокол BOOTP сейчас имеет лишь историческое значение. Поскольку DHCP поддерживает протокол bootstrap, в принципе, серверы DHCP могут также отвечать на любые запросы клиента BOOTP.

Оцените статью
cdelat.ru
Добавить комментарий