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

В качестве показательного примера данной функции уровня доступа к сети можно привести преобразование адресов IP в адреса Ethernet. За решение этой задач и отвечае т протокол разрешения адресов (Address Resolution Protocol, ARP), определенный документом RFC 826.

Программный модуль ARP ведет таблицу соответствий между IP-адресами и адресами Ethernet. Таблица создается динамически. Когда ARP получает запрос на преобразование адреса IP, выполняется поиск адреса в таблице. Если адрес найден, протокол возвращает адрес Ethernet программе, от которой исходил запрос. В противном случае ARP выполняет широковещательную передачу всем узлам Ethernet-сети. Пакет содержит адрес IP, для которого требуется определить адрес Ethernet. Если один из узлов, получивших пакет, опознал адрес в качестве собственного, то в ответ посылает свой Ethernet-адрес узлу, от которого исходил запрос. Ответ заносится в таблицу ARP.

Команда агр выводит содержимое таблицы ARP. Чтобы отобразить полную таблицу ARP, воспользуйтесь командой arp -a. Доступ к отдельной записи можно получить, указав имя узла в качестве аргумента командной строки агр. Например, получить запись для узла rodent из ARP-таблицы узла crab можно с помощью команды:

111

Отображение всех записей таблицы посредством ключа -а приводит к получению следующего результата:

111


Полученная таблица содержит информацию о том, что узел crab, ретранслируя дейтаграммы, адресованные узлу rodent, помещает их в Ethernet-фреймы и посылает их на Ethernet-адрес 00:50:ba:3f: с2:5е. Одна из записей приведенной таблицы (rodent) была добавлена динамически в результате запросов, выполненных узлом crab. Две записи (crab и 224.0.0.0) являются статическими, они были созданы в процессе настройки узла crab. Это видно по флагу S (static) в поле Flags. Специальная запись 224.0.0.0 относится ко всем групповым адресам. Флаг М (mapping) означает отображение и назначается только записям для групповых адресов. В широковещательной среде Ethernet для окончательной доставки данных по групповому адресу используются широковещательные адреса.

Флаг Р записи для узла crab означает, что запись подлежит «опубликованию» . Флаг «публикации» указывает, что при получении ARP-запроса по IP - адресу узла crab данная система отвечает Ethernet-адресом 00:00:c0:dd:d4:da. Такое поведение вполне логично, поскольку речь идет об ARP-таблице на узле crab. Однако возможна публикация и Ethernet-адресов других узлов, не только локального. Обслуживание ARP-запросов, адресованных другим компьютерам, называется представительством ARP.

Допустим, система 24seven является сервером для удаленной машины clock, которая подключается по коммутируемой телефонной линии. Чтобы не настраивать маршрутизацию в пользу удаленной системы, администратор сервера 24seven может создать в таблице ARP статическую, публикуемую запись с IP-адресом машины clock и Ethernet-адресом машины 24seven. Тогда сервер 24seven, получая ARP-запрос для IP-адреса clock, отвечает собственным Ethernet-адресом. В результате другие машины сети посылают пакеты, предназначенные системе clock, узлу 24seven. 24seven передает пакеты системе clock по телефонной линии. Представительство ARP создается в целях обслуживания запросов к системам, которые не могут делать этого самостоятельно.

Таблицы ARP обычно не требуют внимания администратора, поскольку создаются автоматически очень надежным протоколом ARP. Но если возникают осложнения, таблицы ARP могут редактироваться вручную. Более подробная информация по теме содержится в разделе «Диагностирование при помощи команды агр» главы 13.