Тема 12. Протоколы ARP и RARP. Протоколы BOOTP, DHCP (Протокол ARP. Протокол RARP: определение адреса при загрузке системы. Протокол загрузки BOOTP. Протокол динамического конфигурирования ЭВМ DHCP. Назначение. Обзор протокола. Динамическое выделение сетевых адресов. Взаимодействие клиента и сервера при выделении сетевого адреса).

 

        Протокол ARP.

Как нам уже известно, в интранет применяется три типа адресов: локальные, IP-адреса, и доменные адреса. Для функционирования протоколов интранет должна иметься возможность устанавливать соответствие между ними.

Одной из главных задач, которая ставилась при создании протокола IP, явилось обеспечение совместной согласованной работы в сети, состоящей из подсетей, в общем случае использующих разные сетевые технологии.

С решением задачи обеспечения совместной согласованной работы в сети, состоящей из подсетей, использующих разные сетевые технологии, связан уровень межсетевых интерфейсов стека ТСР/IP. Этот уровень кроме вопросов упаковки и распаковки IP пакетов в кадры локальных технологий должен заниматься задачей отображения IP адресов в локальные адреса.

Для определения локального адреса по IP адресу используется протокол разрешения адреса (Address Resolution Protocol RP).

Протокол ARP работает различным образом в зависимости от того, какой протокол канального уровня работает в данной сети – протокол локальный сети (Ethernet, Token Ring, FDDI) с возможностью широковещательного доступа одновременно по всем узлам или протокол глобальной сети (Х.25, Frame relay), как правило не поддерживающий широковещательный доступ.

Существует так же протокол, решающий обратную задачу – нахождение IP адреса по известному локальному адресу. Он называется реверсивным ARP – (RARP) и используется при старте бездисковых станций, не знающих в начальный момент своего IP-адреса, но знающих адрес своего сетевого адаптера.

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

Работа протокола ARP начинается с просмотра так называемой ARP-таблицы. Каждая строка таблицы устанавливает соответствие между IP адресом и МАС-адресом.

Для каждой сети, подключенной к сетевому адаптеру компьютера или к порту маршрутизатора, строится отдельная ARP таблица, пример таблицы:

IP адрес

МАС-адрес

Тип записи

194.85.135.75

008048ЕВ7Е60

Динамический

194.85.135.70

08005А21А722

Динамический

194.85.60.21

008048ЕВ7567

Статический

Поле тип записи может содержать одно из двух значений: «динамический» или «Статический».

Статические записи создаются вручную с помощью утилиты ARP и сохраняются до выключения компьютера или маршрутизатора.

Динамические записи создаются модулем протокола ARP, использующем широковещательные возможности локальных сетевых технологий. Динамические записи должны периодически обновляться. Если этого не происходит (в течении порядка нескольких минут), то она исключается из таблицы. Таким образом, в ARP-таблице содержатся записи не обо всех узлах сети, а только о тех, которые активно участвуют в сетевых операциях. Поскольку такой способ хранения информации называют кэшированием, ARP таблицы иногда называют ARP кэш.

В глобальных сетях администратору сети чаще всего приходится вручную формировать ARP таблицы, в которых он задает, например, соответствие  IP адреса адресу узла сети Х.25, который имеет для протокола IP смысл локального адреса.

В последнее время наметилась тенденция автоматизации работы протокола  ARP в глобальных сетях. Для этой цели среди всех маршрутизаторов, подключенных к какой-либо глобальной сети, выделяется специальный маршрутизатор, который ведет ARP таблицу для всех остальных узлов и маршрутизаторов данной сети.

При таком подходе для всех узлов и маршрутизаторов вручную нужно задать только IP адрес и локальный адрес выделенного маршрутизатора. Затем каждый узел и маршрутизатор регистрирует свои адреса в выделенном маршрутизаторе, а при необходимости установить соответствие между IP адресом и локальным адресом узел обращается к выделенному маршрутизатору с запросом и автоматически получает ответ без участи администратора. Работающий таким образом маршрутизатор называют ARP -  сервером.

Итак, после того как модуль IP обратился к модулю ARP с запросом на разрешение адреса, происходит поиск в ARP таблице указанного IP адреса. Если таковой адрес в ARP-таблице отсутствует, то исходящий IP-пакет, для которого нужно было определить локальный адрес, ставится в очередь. Далее протокол ARP формирует свой запрос (ARP-запрос), вкладывает его в кадр протокола канального уровня и рассылает его широковещательно.

Все узлы локальной сети получают ARP запрос и сравнивают указанный там IP адрес с собственным. В случае их совпадения узел формирует ARP-ответ, в котором указывает свой IP-адрес и свой локальный адрес, а затем отправляет его уже направленно, так как в ARP-запросе отправитель указывает свой локальный адрес.

ARP запросы и ответы используют один и тот же формат пакета.

Если в сети нет машины с искомым IP-адресом, то ARP ответа не будет. Протокол IP уничтожает IP-пакеты, направляемые по этому адресу.

 

        Протокол RARP: определение адреса при загрузке системы.

Обычно IP-адреса хранятся на диске, откуда они считываются при загрузке системы. Проблема возникает тогда, когда необходимо инициализировать рабочую станцию, не имеющую диска. Бездисковые системы часто используют операции типа TFTP для переноса из сервера в память образа операционной системы, а это нельзя сделать, не зная IP-адресов сервера и ЭВМ-клиента. Записывать эти адреса в ПЗУ не представляется целесообразным, так как их значения зависят от точки подключения ЭВМ и могут меняться. Для решения данной проблемы был разработан протокол обратной трансляции адресов (RARP – Reverse Address Resolution Protocol, RFC-0903). Форматы сообщений RARP сходны с ARP, хотя сами протоколы принципиально различны. Протокол RARP предполагает наличие специального сервера, обслуживающего RARP-запросы и хранящего базу данных о соответствии аппаратных адресов протокольным. Этот протокол работает с любой транспортной средой, в случае же кадра Ethernet в поле тип будет записан код 803516 .

http://book.itep.ru/4/44/rarp1.gif

Рис. 4.4.8.1. Формат RARP-сообщения

Здесь обозначения те же, что и в описании ARP-формата. Значение n определяется числом, записанным в поле HA-Len, а m - числом из поля PA-Len. Для Internet PA-Len=4 и тип протокола=2048, а для Ethernet равно HA-Len=6 и тип оборудования=1. В RARP используется два кода операции. Код операции=3 используется для RARP-запросов, а код операции=4 - для RARP-откликов. В первом случае поле протокольный адрес отправителя и протокольный адрес адресата не определены. Обычно локальная сеть имеет несколько RARP-серверов, что позволяет загрузиться бездисковым машинам, даже если какой-то из серверов выключен или не исправен.

 

# 12

               Протоколы BOOTP, DHCP.

               Протокол загрузки BOOTP.

В больших сетях некоторые рабочие станции (например, Х-терминалы) могут не иметь системного диска, а операционная система и сетевое программное обеспечение загружается через сеть. Для этого рабочая станция должна иметь стартовую программу, записанную в ПЗУ. Такое постоянное запоминающее устройство часто производится на фирме, изготовившей эту рабочую станцию, и по этой причине не содержат информации ни об адресе сервера, ни даже о своем IP-адресе. Выше был описан протокол RARP, который способен решать подобные задачи для случая, когда сервер находится в пределах данной локальной сети. Ведь RARP выдает широковещательный запрос на связном уровне, а он не ретранслируется маршрутизаторами. Более мощным средством для загрузки бездисковых станций является протокол BOOTP (Bootstrap протокол, RFC-951, -1048, -1532). BOOTP пригоден и для загрузки бездисковых маршрутизаторов. BOOTP в качестве транспортного использует UDP-протокол. ЭВМ-клиент (порт=68), которая хочет воспользоваться BOOTP, посылает широковещательное сообщение (по адресу = 255.255.255.255). Сервер (порт=67) в отличии от случая RARP не обязательно должен находиться в пределах данной локальной сети. В поле IP-адрес клиента будет записано 0.0.0.0, так как клиент пока не знает своего адреса. Получив запрос через порт 67, маршрутизатор помещает свой IP-адрес в поле IP-адрес маршрутизатора (см. формат запроса на рис. 4.4.10.1) и пересылает запрос действительному BOOTP-серверу, увеличив на 1 значение поля Hop#. По пути к серверу может быть несколько маршрутизаторов (но обычно не больше 3). Сервер не знает физического адреса клиента. Воспользоваться ARP-запросом он не может, так как клиент пока не знает своего IP-адреса и на ARP-запрос не откликнется. У сервера, получившего запрос, имеется две возможности.

1. Проанализировать пакет, извлечь из него физический адрес клиента и скорректировать ARP-таблицу.
2. Послать отклик, используя широковещательный адрес.

Так как программа загрузки находится на прикладном уровне, и ей запрещено исправлять ARP-таблицы, реально доступен только второй путь. Использование разных номеров портов для сервера и клиента делает работу системы более эффективной. Когда отклик сервера является широковещательным, это позволяет не прерывать работу прикладных программ, работающих с номерами портов, отличными от 68 (порт Bootp-клиента). В Bootp ответственность за надежность связи лежит на ЭВМ-клиенте. При отсутствии отклика в отведенное время клиент повторяет Bootp-запрос. На IP-уровне, где данные не имеют контрольной суммы, целостность сообщения не гарантирована. Bootp требует, чтобы проверка контрольной суммы обязательно проводилась на UDP-уровне (следует заметить, что обычно это не является обязательным). Сервер читает UDP-дейтограммы через порт 67. Для повышения надежности обменов, как правило, блокируется фрагментация дейтограмм.

Загрузка рабочих станций часто запускается броском напряжения сетевого питания. При этом несколько Bootp-процессов стартуют одновременно. Для того чтобы снизить вероятность столкновений, величина времени тайм-аута выбирается случайно в интервале 0-4сек. После каждого повторного запроса это время удваивается. Верхнее значение тайм-аута равно 60сек. Для справок время загрузки бездискового x-терминала при благоприятных условиях может составлять около 20 сек.

BOOTP осуществляет загрузку в два этапа. На первом этапе bootp лишь снабжает клиента информацией, где лежит нужные ему данные. Далее ЭВМ-клиент использует протокол RFTP для получения искомого загружаемого файла. Bootp-сервер не обязательно должен работать на той же машине, где хранятся загружаемые файлы, но он должен знать их имена. Формат Bootp-сообщений представлен на рис. 4.4.10.1.

http://book.itep.ru/4/44/boot_form.gif

Рис. 4.4.10.1. Формат сообщений BOOTP

Поле операция=1 говорит о том, что данное сообщение запрос, а значение операция=2 указывает на то, что сообщение является откликом. Поля H-тип и Hlen определяют тип используемого оборудования и длину аппаратного адреса (для Ethernet H-тип=1, а HLen=6). ЭВМ-клиент кладет в поле Hop# (число шагов) нуль. Если BOOTP-сервер, получив запрос, решит передать его другой ЭВМ, он увеличит значение этого поля на 1, и так далее. Поле идентификатор операции содержит целое число, которое на бездисковых машинах позволяет связать в пары запросы и отклики. Поле секунды хранит время с момента начала процедуры загрузки (BOOT).

ЭВМ-клиент заполняет все последующие поля, если она этой информацией владеет, в противном случае поля обнуляются. Возможность указания имени BOOT(загрузочного)-файла позволяет учесть индивидуальность конфигурации конкретной ЭВМ и пожелания относительно загружаемой операционной системы. Поле специфическая информация поставщика содержит информацию, которая передается от сервера к ЭВМ-клиенту. Первые 4 октета этого поля носят название "волшебное печенье" (magic cookie) и определяют формат остальных субполей. Если в указанном поле имеется информация, субполе волшебное печенье имеет значение 99.130.83.99. Вслед за этим субполем следует последовательность субполей, содержащих один октет тип, опционный октет длина и многооктетное субполе значение. Стандарт предусматривает следующие разновидности субполей:

               Протокол динамического конфигурирования ЭВМ DHCP.

DHCP (Dynamic Host Configuration Protocol — протокол динамической настрой­ки хостов). DHCP позволяет настраивать таблицы соответствия адресов как вручную, так и автоматически. Этот протокол описан в RFC 2131 и 2132. В боль­шинстве систем он уже практически заменил RARP и ВООТР.

Подобно RARP и ВООТР, DHCP основан на идее специализированного сер­вера, присваивающего IP-адреса хостам, которые их запрашивают. Такой сервер не обязательно должен быть подключен к той же ЛВС, что и запрашивающий хост. Поскольку сервер DHCP может быть недоступен с помощью широковеща­тельной рассылки, в каждой ЛВС должен присутствовать агент ретрансляции, как показано на рис. 5.54.

Рис. 5.54. Работа протокола DHCP

Для отыскания своего IP-адреса загружаемая машина широковещательным способом распространяет специальный пакет DISCOVER (Поиск). Агент ретрансля­ции DHCP перехватывает все широковещательные пакеты, относящиеся к прото­колу DHCP. Обнаружив пакет DISCOVER, он превращает его из широковещатель­ного в одноадресный и доставляет DHCP-серверу, который может находиться и в другой ЛВС. Агенту ретрансляции необходимо знать всего одну деталь: IP-ад­рес DHCP-сервера.

Встает вопрос: на какое время можно выдавать в автоматическом режиме IP-адреса из пула? Если хост покинет сеть и не освободит захваченный адрес, этот адрес будет навсегда утерян. С течением времени будет теряться все больше ад­ресов. Для предотвращения этих неприятностей нужно выдавать IP-адреса не на­всегда, а на определенное время. Такая технология называется лизингом. Перед окончанием срока действия лизинга хост должен послать на DHCP-сервер за­прос о продлении срока пользования IP-адресом. Если такой запрос не был сде­лан или в просьбе было отказано, хост не имеет права продолжать использова­ние выданного ранее адреса.

               Назначение.

DHCP (англ. Dynamic Host Configuration Protocol — протокол динамической конфигурации узла) — это сетевой протокол, позволяющий компьютерам автоматически получать IP-адрес и другие параметры, необходимые для работы в сети TCP/IP. Для этого компьютер обращается к специальному серверу, называемому сервером DHCP. Сетевой администратор может задать диапазон адресов, распределяемых среди компьютеров. Это позволяет избежать ручной настройки компьютеров сети и уменьшает количество ошибок. Протокол DHCP используется в большинстве крупных сетей TCP/IP.

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

               Обзор протокола.

Все сообщения протокола DHCP разбиваются на поля, каждое из которых содержит определённую информацию. Все поля, кроме последнего (поля опций DHCP), имеют фиксированную длину.

Поле

Описание

Длина (в байтах)

op

Тип сообщения. Может принимать два значения: BOOTREQUEST (1, запрос от клиента к серверу) и BOOTREPLY (2, ответ от сервера к клиенту).

1

htype

Тип аппаратного адреса. Допустимые значения этого поля определены в RFC «Assigned Numbers». Например, для MAC-адреса Ethernet 10 Мбит/с это поле принимает значение 1.

1

hlen

Длина аппаратного адреса в байтах. Для MAC-адреса Ethernet — 6.

1

hops

Количество промежуточных маршрутизаторов (так называемых агентов ретрансляции DHCP), через которые прошло сообщение. Клиент устанавливает это поле в 0.

1

xid

Уникальный идентификатор транзакции, генерируемый клиентом в начале процесса получения адреса.

4

secs

Время в секундах с момента начала процесса получения адреса. Может не использоваться (в этом случае оно устанавливается в 0).

2

flags

Поле для флагов — специальных параметров протокола DHCP.

2

ciaddr

IP-адрес клиента. Заполняется только в том случае, если клиент уже имеет собственный IP-адрес и способен отвечать на запросы ARP (это возможно, если клиент выполняет процедуру обновления адреса по истечении срока аренды).

4

yiaddr

'your' (client) IP address (RFC 2131)

4

siaddr

IP-адрес сервера. Возвращается в предложении DHCP (см. ниже).

4

giaddr

IP-адрес агента ретрансляции, если таковой участвовал в процессе доставки сообщения DHCP до сервера.

4

chaddr

Аппаратный адрес (обычно MAC-адрес) клиента.

16

sname

Необязательное имя сервера в виде нуль-терминированной строки.

64

file

Необязательное имя файла на сервере, используемое бездисковыми рабочими станциями при удалённой загрузке. Как и sname, представлено в виде нуль-терминированной строки.

128

options

Поле опций DHCP. Здесь указываются различные дополнительные параметры конфигурации. В начале этого поля указываются четыре особых байта со значениями 99, 130, 83, 99 («волшебные числа»), позволяющие серверу определить наличие этого поля.

переменная

 

               Динамическое выделение сетевых адресов.

Назначение IP-адресов узлам сети даже при не очень большом размере сети может представлять для администратора утомительную процедуру. Протокол Dynamic Host Configuration Protocol (DHCP) освобождает администратора от этих проблем, автоматизируя процесс назначения IP-адресов.

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

При динамическом распределении адресов DHCP-сервер выдает адрес клиенту на ограниченное время, называемое временем аренды (lease duration), что дает возможность впоследствии повторно использовать этот IP-адрес для назначения другому компьютеру. Основное преимущество DHCP - автоматизация рутинной работы администратора по конфигурированию стека TCP/IP на каждом компьютере. Иногда динамическое разделение адресов позволяет строить IP-сеть, количество узлов в которой превышает количество имеющихся в распоряжении администратора IP-адресов.

В ручной процедуре назначения статических адресов активное участие принимает администратор, который предоставляет DHCP - серверу информацию о соответствии IP-адресов физическим адресам или другим идентификаторам клиентов. DHCP-сервер, пользуясь этой информацией, всегда выдает определенному клиенту назначенный администратором адрес.

При автоматическом статическом способе DHCP-сервер присваивает IP-адрес из пула наличных IP-адресов без вмешательства оператора. Границы пула назначаемых адресов задает администратор при конфигурировании DHCP-сервера. Адрес дается клиенту из пула в постоянное пользование, то есть с неограниченным сроком аренды. Между идентификатором клиента и его IP-адресом по-прежнему, как и при ручном назначении, существует постоянное соответствие. Оно устанавливается в момент первого назначения DHCP-сервером IP-адреса клиенту. При всех последующих запросах сервер возвращает тот же самый IP-адрес.

DHCP обеспечивает надежный и простой способ конфигурации сети TCP/IP, гарантируя отсутствие дублирования адресов за счет централизованного управления их распределением. Администратор управляет процессом назначения адресов с помощью параметра «продолжительность аренды», которая определяет, как долго компьютер может использовать назначенный IP-адрес, перед тем как снова запросить его от DHCP-сервера в аренду.

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

DHCP-сервер может назначить клиенту не только IP-адрес клиента, но и другие параметры стека TCP/IP, необходимые для его эффективной работы, например, маску, IP-адрес маршрутизатора по умолчанию, IP-адрес сервера DNS, доменное имя компьютера и т. п.

               Взаимодействие клиента и сервера при выделении сетевого адреса.

Протокол DHCP использует четырехэтапный процесс для конфигурации своего клиента. Если у компьютера несколько сетевых адаптеров, то каждый из них конфигурируется отдельно, и ему назначается уникальный IP-адрес. Передача данных между DHCP-кли-ентом и DHCP-сервером происходит по UDP через порты 67 и 68.

Большинство сообщений протокола DHCP передаются с использованием широковещания. Для связи DHCP-клиентов с DHCP-сервером в удаленной сети IP-маршрутизаторы должны поддерживать ретрансляцию широковещательных сообщений DHCP. В таблице отображены этапы конфигурирования протокола DHCP.

 Этап                  Описание

 

 

  

Запрос аренды IP-адреса        Клиент инициализирует ограниченную версию протокола

                       TCP/IP и посылает широковещательный запрос для

                       поиска DHCP-сервера и информации об IP-адресации

 

Предложение аренды     Все серверы протокола DHCP, имеющие свободную

                       информацию об IP-адресах, отправляют предложение

                       клиенту

  

 

Выбор аренды           Клиент выбирает информацию об IP-адресации из

                       первого полученного предложения и посылает

                       широковещательное сообщение с запросом информации

                       об аренде IP-адреса

 

Подтверждение аренды   DHCP-сервер, сделавший это предложение, отвечает на

                       запрос, а все остальные серверы отзывают свои

                       предложения. Клиенту назначается IP-адрес и

                       сопутствующие параметры.

                       Клиент завершает настройку и связывает TCP/IP

                       с остальными компонентами системы. Поскольку

                       автоматическая конфигурация выполнена, клиент может

                       использовать все сервисы и утилиты протокола TCP/IP

                       для связи с другими узлами TCP/IP

 

 

http://scit.boom.ru/Andre_S/7_1.jpg

 

 

 

Hosted by uCoz