Разрешение IP-адресов в физические адреса сетевых устройств. Протокол ARP

Для доставки IP-пакета к станции назначения, или от одного маршрутизатора к другому, необходимо передать его протоколу канального уровня, например Ethernet. Последний же «умеет» передавать кадры только по физическим адресам устройств, подключенных к среде передачи. В IP-сетях задачу преобразования сетевых адресов в физические решает протокол ARP (Address Resolution Protocol). Идея его функционирования иллюстрируется рис. 6.6.

 
 

 


Пусть хост Н1 хочет отослать пакет хосту Н3, MAC-адрес которого не известен. Хост Н1 генерирует так называемый ARP-запрос – специальный МАС-кадр, имеющий широковещательный адрес назначения. В поле данных этого кадра (собственно, поля ARP-запроса) находится IP-адрес хоста, MAC-адрес которого необходимо узнать. Каждый узел сети, получив такой кадр, сравнивает находящийся в нем IP-адрес со своим сетевым адресом. Если совпадение обнаружено, то этот хост посылает запрашивающей станции ответный кадр (ARP-ответ), содержащий его физический адрес. На всех остальных станциях сети кадры, содержащие ARP-запросы с «чужим» искомым IP-адресом, уничтожаются. Для того, чтобы уменьшить количество передаваемых в сети ARP-запросов, каждое сетевое устройство имеет специальную буферную память, в которой хранит ARP-таблицу. Последняя пополняется каждый раз, когда хост получает ARP-ответ, или широковещательный ARP-запрос, в котором указаны сетевой и физический адреса станции-отправителя.

В ARP-таблице могут быть как статические, так и динамические записи. Статические записи добавляются администратором и сохраняются в таблице до перезагрузки устройства. Кроме того, в таблице всегда содержится широковещательный адрес (FFFFFFFFFFFF), который позволяет обрабатывать широковещательные пакеты. Динамические записи добавляются и удаляются автоматически. Запись добавляется в результате получения ARP-ответа на запрос, инициированный данной станцией, а также в результате приема широковещательных ARP-запросов, отправленных любой из станций сегмента (из них извлекается IP- и MAC-адреса источника). Каждая такая запись имеет потенциальное время жизни. После добавления записи в таблицу включается специальный таймер и, если в течение первых двух минут запись не используется (станция, соответствующая записи, не отвечала на ARP-запросы, или не отправляла их сама), то запись удаляется; в противном случае, время жизни такой записи составляет некое предустановленную величину (обычно 5-10 минут). Требования к хостам (Host Requirements RFC) говорит, что запись из ARP-таблицы должна удаляться по тайм-ауту, даже если данная запись используется, однако большинство реализаций протокола не делают этого - они обновляют значения времени жизни записи каждый раз, когда происходит обращение к ней. Ниже приведен фрагмент ARP-таблицы маршрутизатора.

Таблица 6.5

IP-address Port Type Media Address Address Source
20.0.0.0 Broadcast FFFFFFFFFFFF Static
10.0.0.0 Broadcast FFFFFFFFFFFF Static
10.0.0.10 Local 080002145DE6 Static
20.0.0.10 Local 080002145DE5 Static
10.0.0.1 External 080002A56BC0 ARP
20.0.0.1 External 080002A719DD ARP

 

Протокол ARP достаточно универсален, и его можно применять в сетях, использующих любые технологии на сетевом и канальном уровнях. ARP-сообщения имеют формат, представленный на рис. 6.7; они переносятся кадром канального протокола в его поле «Данные».

 
 

 


В поле «Тип сети» указывается код канального протокола; для Ethernet указывается значение 1, определены значения этого поля и для других технологий канального уровня. Поле «Тип протокола» определяет протокол сетевого уровня. Эти поля совместно с полями «Длина аппаратного адреса» и «Длина сетевого адреса» обеспечивают отмеченную выше универсальность протокола ARP. В поле «Тип операции» для ARP-запроса указывается 1, для ARP-ответа – 2.

Устройство, отправляющее ARP-запрос, заполняет в этом сообщении-запросе все поля, кроме искомого аппаратного адреса. Значение этого поля заполняется станцией, опознавшей свой IP-адрес в указанном значении поля «Сетевой адрес получателя» при формировании сообщения ARP-ответа.