Введение
Протокол компьютерной сети Bootstrap Protocol (BOOTP) — это компьютерный сетевой протокол, используемый в сетях Internet Protocol для автоматического назначения IP-адреса сетевым устройствам с конфигурационного сервера. BOOTP был первоначально определен и опубликован в 1985 году. Хотя некоторые части BOOTP были фактически вытеснены протоколом динамической конфигурации хоста (DHCP), который добавляет функцию аренды, части BOOTP используются для обеспечения работы протокола DHCP. Некоторые DHCP-серверы также предоставляют устаревшую функциональность BOOTP. Когда компьютер, подключенный к сети, загружается, его IP-стек широковещательно рассылает сетевые сообщения BOOTP с запросом на назначение IP-адреса. Сервер конфигурации BOOTP отвечает на запрос, назначая IP-адрес из пула адресов, предварительно настроенного администратором. BOOTP реализован с использованием протокола пользовательских данных (UDP) для передачи. Порт 67 используется сервером для приема запросов от клиентов, а порт 68 — клиентом для приема ответов от сервера. BOOTP работает только в сетях IPv4. Исторически BOOTP также использовался для Unix-подобных бездисковых рабочих станций для получения сетевого местоположения их загрузочного образа, в дополнение к назначению IP-адреса. Компании использовали его для развертывания предварительно настроенной клиентской установки (например, Windows) на вновь установленные ПК. Изначально для установления начального сетевого соединения требовалось использование загрузочной дискеты, но позже производители сетевых интерфейсов встроили протокол в прошивку интерфейсных карт, а также в системные платы с интегрированными сетевыми интерфейсами, что позволило осуществлять прямую сетевую загрузку.
The Bootstrap Protocol (BOOTP) is a computer networking protocol used in
Internet Protocol networks to automatically assign an IP address to network devices from a configuration server. The BOOTP was originally defined in published in 1985. While some parts of BOOTP have been effectively superseded by the Dynamic Host Configuration Protocol (DHCP), which adds the feature of leases, parts of BOOTP are used to provide service to the DHCP protocol. Some DHCP servers also provide the legacy BOOTP functionality. When a network connected computer boots up, its IP stack broadcasts BOOTP network messages requesting an IP address assignment. A BOOTP configuration server replies to the request by assigning an IP address from a pool of addresses, which is preconfigured by an administrator. BOOTP is implemented using the User Datagram Protocol (UDP) for transport. Port number 67 is used by the server for receiving client requests, and port number 68 is used by the client for receiving server responses. BOOTP operates only on IPv4 networks. Historically, BOOTP has also been used for Unix like diskless workstations to obtain the network location of their boot image, in addition to the IP address assignment. Enterprises used it to roll out a pre configured client (e. g., Windows) installation to newly installed PCs. Initially requiring the use of a boot floppy disk to establish the initial network connection, manufacturers of network interfaces later embedded the protocol in the firmware of interface cards as well as system boards with on board network interfaces, thus allowing direct network booting.
История
BOOTP был впервые определен в сентябре 1985 года как замена протокола обратного разрешения адресов (RARP), опубликованного в июне 1984 года. Основной причиной замены RARP на BOOTP было то, что RARP являлся протоколом канального уровня. Это затрудняло его реализацию на многих серверных платформах и требовало присутствия сервера в каждой отдельной IP-подсети. BOOTP представил инновацию в виде ретрансляторов, которые пересылали пакеты BOOTP из локальной сети, используя стандартную IP-маршрутизацию, что позволяло одному центральному BOOTP-серверу обслуживать хосты во многих подсетях. Постепенно был разработан расширяющийся набор расширений информации от поставщиков BOOTP, предназначенных для предоставления BOOTP-клиентам необходимой информации о сети, такой как IP-адрес шлюза по умолчанию, IP-адрес сервера имен, доменное имя и т.д. С появлением протокола динамической конфигурации хостов (DHCP), расширения информации от поставщиков BOOTP были включены в качестве опций DHCP, чтобы серверы DHCP могли также обслуживать BOOTP-клиентов.
Случай 1: клиент и сервер в одной сети
Когда клиент BOOTP запускается, у него отсутствует IP-адрес, поэтому он рассылает широковещательное сообщение, содержащее его MAC-адрес. Это сообщение называется "BOOTP-запрос", и его перехватывает сервер BOOTP, который отвечает клиенту следующей необходимой информацией: IP-адрес клиента, маска подсети и адрес шлюза по умолчанию. IP-адрес и имя хоста сервера BOOTP. IP-адрес сервера, на котором хранится загрузочный образ, необходимый клиенту для загрузки операционной системы. Получив эту информацию от сервера BOOTP, клиент конфигурирует и инициализирует свой стек протоколов TCP/IP, а затем подключается к серверу, на котором размещен загрузочный образ. Клиент загружает загрузочный образ и использует полученные данные для загрузки и запуска операционной системы. Протокол динамической конфигурации хоста (DHCP) был разработан как расширение протокола BOOTP. Описание BOOTP содержится в документах Requests for Comments (RFC) 951 и 1084.
The client's IP address, subnet mask, and default gateway address. The IP address and host name of the BOOTP server. The IP address of the server that has the boot image, which the client needs to load its operating system. When the client receives this information from the BOOTP server, it configures and initializes its TCP/IP protocol stack, and then connects to the server on which the boot image is shared. The client loads the boot image and uses this information to load and start its operating system. The Dynamic Host Configuration Protocol (DHCP) was developed as an extension of BOOTP. BOOTP is defined in Requests for Comments (RFC) 951 and 1084.
Случай 2: клиент и сервер на разных сетях
Проблема с запросом BOOTP заключается в том, что запрос является широковещательным. Широковещательная IP-датаграмма не может пройти через маршрутизатор. Маршрутизатор отбрасывает этот пакет. Для решения этой проблемы необходим посредник (ретранслятор). Один из хостов или маршрутизаторов может быть настроен на уровне приложения для работы в качестве ретрансляционного агента. Ретрансляционный агент знает униicast-адрес сервера BOOTP и прослушивает широковещательные сообщения на порту 67. Когда он получает этот широковещательный пакет, он инкапсулирует сообщение в unicast-датаграмму и отправляет запрос серверу BOOTP. Пакет, содержащий unicast-адрес назначения, маршрутизируется любым маршрутизатором и достигает сервера BOOTP. Ретрансляционный агент, после получения ответа, отправляет его клиенту BOOTP.