Шрифт:
Рис. 11.6. Промежуточная пересыпка запроса загрузки на удаленный сервер
Промежуточный агент (relay agent) помогает системе отправить локальный запрос BOOTP на удаленный сервер. В качестве промежуточных агентов используются маршрутизаторы (хотя стандарты позволяют работать в этом режиме и хостам).
Обычно маршрутизатор конфигурируется с IP-адресом (адресами) для пересылки запросов загрузки на один или несколько серверов (так делается в удачных реализациях, хотя стандарты допускают широковещательные рассылки запросов загрузки по указанным соединениям для поиска сервера загрузки, когда его IP-адрес неизвестен, и именно для этого в сообщении загрузки имеется поле счетчика попаданий, препятствующее зацикливанию). Когда промежуточный агент получает от клиента запрос на загрузку, то:
■ Промежуточный маршрутизатор запроса BOOTP проверяет поле. Если оно равно нулю, промежуточный агент вставляет в него IP-адрес интерфейса, по которому и был получен данный запрос. Сервер BOOTP использует этот адрес для возврата ответа загрузки клиенту через промежуточный агент.
■ Затем агент пересылает запрос клиента на один или несколько предварительно указанных адресов серверов.
11.7.4 Присваивание IP-адресов
Администратор конфигурирует сервер BOOTP для присваивания системам IP-адресов посредством ручного создания таблицы отображения на IP-адрес комбинации типа оборудования и аппаратного адреса клиента. Кодирование типов оборудования определяется документом Assigned Numbers. Например, для Ethernet код типа оборудования = 1. Таблица должна выглядеть как:
Тип оборудования | Аппаратный адрес | IP-адрес |
---|---|---|
1 | 02 60 8С 12 14 AA | 128.121.2.5 |
1 | 08 00 20 D3 20 14 | 128.121.2.19 |
Многие реализации включают в таблицу дополнительные столбцы, идентифицирующие имена хостов для удобочитаемости таблицы.
Простейший сценарий для клиента, не знающего своего IP-адреса:
■ Клиент отправляет в широковещательной рассылке запрос (на порт 67 сервера).
■ Сервер получает этот запрос.
■ По типу оборудования и аппаратному адресу клиента сервер выбирает в таблице IP-адрес.
■ Если клиент расположен локально, сервер отправляет ответ в широковещательной рассылке (на порт 68 клиента).
■ Если клиент удален от сервера, ответ посылается на порт 67 по адресу, указанному в поле IP-адреса промежуточного агента. Затем промежуточный агент пересылает его в локальной широковещательной рассылке на клиентскую систему.
11.7.5 Загрузка клиента, знающего собственный IP-адрес
Предположим, что клиент уже предварительно сконфигурирован на определенный IP-адрес или сохранил IP-адрес, присвоенный ему во время прошлой загрузки. В этом случае в поле IP-адреса клиента указывается уже присвоенный ему адрес.
В соответствии с первоначальным стандартом BOOTP сервер может позволить клиенту сохранить старый адрес и будет использовать его в заголовке IP для доставки клиенту ответа. Отметим, что, если после предыдущей загрузки компьютер был физически перемещен в иную подсеть или иную локальную сеть, клиент не сможет получить ответ, поскольку в нем будет использован адрес старой подсети. Решить эту проблему поможет использование протокола DHCP.
11.7.6 Конфигурирование загрузки программного обеспечения
Первоначально предполагалось размещение на одном сервере как конфигурационных данных, так и загружаемого через TFTP программного обеспечения. Однако разделить эти службы очень просто. Сервер конфигурации BOOTP может просто указать IP-адрес хоста для сервера TFTP, а также путь к загружаемому файлу.
Как же сервером BOOTP выбираются сервер TFTP и загружаемый файл, если загружаемое программное обеспечение может быть распределено по нескольким физическим серверам?
Сервер BOOTP можно сконфигурировать с таблицей отображения коротких имен систем в IP-адреса серверов TFTP, содержащих загружаемые файлы, с указанием пути для каждого файла. Например:
Короткое имя | IP-адрес сервера TFTP | Путь к файлу |
---|---|---|
SunOS | 128.121.50.2 | /bin/vmunix |
Клиент BOOTP посылает соответствующее короткое имя на сервер в поле имени загружаемого файла (вместо этого в DHCP используется отдельное поле идентификатора класса). По короткому имени сервер выбирает из таблицы нужные, сведения и помещает полный путь к файлу в поле имени загружаемого файла, а IP-адрес сервера TFTP записывает в поле "IP-адрес сервера" сообщения.